Ang ACS ay hindi lamang para sa mga ulat - pagpapatupad ng mga pangkalahatang seleksyon. Paggamit ng mga seleksyon sa SKD SKD paglilipat ng halaga sa pagpili

Extension ng wika ng query para sa sistema ng komposisyon ng data

Ang pagpapalawak ng wika ng query para sa sistema ng komposisyon ng data ay isinasagawa gamit ang mga espesyal na syntactic na tagubilin na nakapaloob sa mga kulot na brace at direktang inilagay sa teksto ng query.

Mga syntactic na elemento ng extension ng wika ng query ng system ng komposisyon ng data

PUMILI

Inilalarawan ng pangungusap na ito ang mga field na mapipili ng user para sa output. Pagkatapos ng keyword na ito, ang mga alias ng mga field mula sa pangunahing listahan ng pagpili ng query na magiging available para sa configuration ay nakalista, na pinaghihiwalay ng mga kuwit.

Halimbawa:

(PUMILI NG Item, Warehouse)

Pagkatapos ng field alias maaaring mayroong kumbinasyon ng mga character na ".*", na nagpapahiwatig ng posibilidad ng paggamit ng mga child field mula sa field na ito.

Halimbawa, ang entry na Nomenclature.* ay nagpapahiwatig ng posibilidad ng paggamit ng mga child field ng field na “Nomenclature” (halimbawa, ang field na “Nomenclature.Code”). Ang SELECT element ay maaari lamang lumabas sa unang join query.

SAAN

Inilalarawan ang mga field kung saan maaaring ilapat ng user ang pagpili. Gumagamit ang panukalang ito ng mga field ng talahanayan. Ang paggamit ng mga alyas sa field ng listahan ng pagpili ay hindi pinapayagan. Ang bawat bahagi ng unyon ay maaaring maglaman ng sarili nitong WHERE na elemento.

(WHERE Nomenclature.*, Warehouse)

Isang simpleng halimbawa

Ito ay kinakailangan upang makakuha ng mga benta para sa panahon + ipakita ang buong item, hindi alintana kung mayroong mga benta o wala. Iyon ay, kailangan mong pumili ng data mula sa turnover table ng Sales register, data mula sa nomenclature directory. Laktawan natin ang tanong kung bakit kailangan natin ang lahat ng nomenclature.

Upang malutas ang problema, maaari kang lumikha ng query na nag-uugnay sa item at talahanayan ng Sales turnover na may kaliwang pagsali, bilang resulta, para sa item na hindi naibenta sa napiling panahon, makukuha namin ang mga halaga ng field Counterparty, Kasunduan, Dami, Sum= Null. Ang hiling na ito:

SELECT ReferenceNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty, SalesTurnover.Counterparty Agreement, SalesTurnover.QuantityTurnover AS Dami, SalesTurnover.CostTurnover AS Cost FROM Reference.Nomenclature AS ReferenceNomenclature AS ReferenceNomenclature.LEFT CONNECTION SalesNomenclature.Nomenclature.LEFT CONNECTION.POLISACCUMLINKS. SalesTurnover.Nomenclature

Narito ang resulta:

Counterparty Kasunduan Nomenclature Dami Sum
wala wala _Pagsusulit1 wala wala
LLC "Mga Sungay at Hooves" Kasunduan1 Mga tsinelas 10 1200
"Gazprom" Astig na kontrata Mga bota 5 13000
wala wala Galoshes wala wala
wala wala Mga slate wala wala

Sa halimbawang ito, walang mga benta ng mga item: "Overshoes" at "Slippers"

At magiging maayos ang lahat, kung papangkatin natin ang sample ayon sa counterparty, kung gayon ang lahat ng hindi nabentang item ay mahuhulog sa isang hiwalay na grupo, kung saan Counterparty = Null, ngunit nais ng kliyente na magkaroon ng random na seleksyon sa ulat ayon sa field ng counterparty (natural, ito nangangahulugang ang katapat mula sa rehistro ng Pagbebenta). Anong gagawin ko? Pagkatapos ng lahat, sa katunayan, kailangan lang nating i-filter ang talahanayan Benta. Kung gagamit kami ng autocomplete sa ACS constructor, ang mga available na field ng pagpili ay isasama ang field Counterparty, mukhang maayos ang lahat, ngunit kapag nagsagawa ng ulat na may pagpili ng katapat, mawawala ang lahat ng mga tala mula sa koneksyon sa item. Halimbawa, itakda natin ang pagpili: Counterparty = LLC "Mga Sungay at Hooves". Magiging ganito ang resulta:

Hindi naman kung ano ang kailangan natin, tama ba?

Upang malutas ang problema, maaari kang, siyempre, magdagdag ng isang parameter sa query, halimbawa, sa mga parameter ng isang virtual na talahanayan SalesTurnover, ngunit sa parehong oras ang flexibility ng pagtatakda ng uri ng paghahambing ay nawala.

May solusyon: para dito sa tagabuo ng query sa tab Komposisyon ng data => Mga mesa magdagdag ng field ng kundisyon sa mga kundisyon ng virtual na talahanayan SalesTurnover at palitan ang kanyang palayaw sa CounterpartySelection

Upang hindi malito ang user sa mga field ng pagpili, idi-disable namin ang field ng kundisyon Counterparty at baguhin ang pamagat para sa field CounterpartySelection


Bilang resulta ng pagpapatupad ng scheme na ito na pinagana ang pagpili ng counterparty na field, ang resultang query ay kukuha ng form:

SELECT SprNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty AS Counterparty, SalesTurnover.Counterparty Agreement AS Counterparty Agreement, SalesTurnover.QuantityTurnover AS >Quantity, SalesTurnover.CostTurnover AS Cost, PRESENTATIONY.CostTurnover AS Cost, PRESENTATIONLINK a.ConterpartyTurnover AS Cost, PRESENTATIONLINK a.ConterpartyTurnover ASCost PRESENTATIONLINK(SalesTurnover.Counterparty ) AS CounterpartyPresentation, SprNomenclature.Presentation AS NomenclaturePresentation FROM Directory.Nomenclature AS SprNomenclature LEFT CONNECTION Register Accumulations.Sales.Turnover(&P , , , Counterparty = &P3 ) AS SalesTurnover BY SprNomenclatureTurnover BY SprNomenclature

At naaayon ang resulta:

Counterparty Kasunduan Nomenclature Dami Sum
wala wala _Pagsusulit1 wala wala
LLC "Mga Sungay at Hooves" Kasunduan1 Mga tsinelas 10 1200
wala wala Mga bota wala wala
wala wala Galoshes wala wala
wala wala Mga slate wala wala

Ang Test1 ay isang pangkat sa direktoryo ng Nomenclature kung saan matatagpuan ang lahat

Naka-attach sa publikasyon ang XML schema ng ulat na ginamit sa publikasyon. Nilikha ko ang circuit sa Integrated Automation, ngunit sa tingin ko lahat ay gagana nang maayos sa parehong UPP at UT 10

Pagbubuod

Ipinapakita ng halimbawang ito kung paano gumawa ng sarili mong mga setting ng pagpili sa access control system at huwag paganahin ang mga awtomatikong ginawa kung nagdidisenyo ka ng circuit na naka-enable ang flag. Autocomplete.

Kung mayroon kang sapat na karanasan upang lumikha ng mga circuit nang hindi gumagamit Autofill- kung gayon ang payo na ito ay walang katuturan.

Software na ginamit

  • Screenshot program SnimOK!
  • XML File Editor

Ano ang maaaring gamitin ng SKD?

Ang itinatag na opinyon ay para sa mga layunin ng pag-uulat.

Sa totoo lang Ang mga kakayahan ng ACS ay higit pa sa paggawa ng mga pangkalahatang ulat.

At ngayon ipapakita namin kung paano gamit ang access control system, magagawa ng user na i-configure ang flexible data selection. Dagdag pa, ang pagpili na ito ay gagamitin kapag kumukuha at nagpoproseso ng data.

Para sa anong mga gawain ito magiging kapaki-pakinabang?

Pagbigyan natin mga halimbawa mula sa karaniwang mga pagsasaayos:

  • Pagproseso ng "Pag-upload ng data sa site"
  • Pagbuo ng isang listahan ng presyo
  • Pag-upload ng data sa TSD (data collection terminal)
  • Segmentation ng mga produkto, mga kasosyo
  • Pagbuo ng mga order (kliyente, supplier) ayon sa mga pangangailangan
  • Pagpaplano ng pagkumpuni sa 1C:ERP.

Iyon ay, ang tool ay kapaki-pakinabang saanman ito kinakailangan upang mabigyan ang gumagamit ng malawak na mga pagpipilian sa pagpili.

Paglikha ng random na pagpili sa isang kinokontrol na form gamit ang ACS

Saklaw ng aralin ang paggawa sa tagabuo ng mga setting mga scheme ng layout ng data:

  • Output ng pagpili sa form
  • Koneksyon ng software sa pagitan ng tagabuo ng mga setting at ng layout diagram
  • Paglikha ng mga default na seleksyon sa access control system.

Pagtanggap ng data mula sa database na may pag-filter sa pamamagitan ng pagpili ng ACS

Ipinapakita ng video kung paano ka makakapili ng data gamit ang dating itinakda na seleksyon sa tagabuo ng mga setting.

Ang isang "nakakatakot" na bagay ay ginagamit - ProcessorOutputResultCompositionDataIntoValueCollection.

Sa katunayan, hindi lahat ay sobrang kumplikado - sa 8 minuto ay malulutas namin ang problema.

Pag-iimbak ng mga piniling SKD sa base ng impormasyon

Sa aralin ay titingnan natin nagse-save ng mga setting ng ACS builder gamit ang Value Store.

Alamin natin kung paano lutasin ang problemang ito sa configuration ng "1C: Manufacturing Enterprise Management 1.3".

Masiyahan sa panonood! :)

Sa pangkalahatan, ang ACS ay nagbibigay ng maraming pagkakataon.

Narito ang ilang "panlilinlang" na hindi man lang kami nagkaroon ng oras upang ilarawan sa pahina ng kurso.

Kung kailangan mong mangolekta data mula sa iba't ibang mapagkukunan, mayroong tatlong mga pagpipilian.

Maaari mong subukang bumuo ng isang "unibersal" na query para sa lahat ng data (mahaba), maaari mong ipakita ang data ng ilang mga query sa isang loop (matibay, hindi nababaluktot na istraktura) - o maaari mo lamang gamitin ACS at koneksyon ng mga set ng data sa halip na isang kahilingan.

Kasabay nito, mahalaga na makakuha ng tamang mga resulta - mayroon itong mga kakaiba kung mayroong maraming mga mapagkukunan

Sa tulong ng SKD magagawa mo nang simple kumuha ng snapshot ng pinakabago para sa bawat petsa sa ulat.

O, para sa kalinawan, - makuha ang presyo ng produkto para sa bawat petsa ng pagbebenta.

Sa tulong ng ACS maaari kang mag-organisa ipinapakita ang lahat ng mga petsa para sa panahon sa ulat, at hindi lamang ang mga kung saan mayroong data sa ulat (pagdaragdag ng mga petsa nang walang programming, na may mga kakayahan lamang ng access control system)

Gamit ang ACS, maaari mong ayusin ang mga nested grouping na may pagdaragdag ng mga tuldok (taon/quarter/buwan, atbp.)

Ayusin ang ulat ayon sa ninanais, halimbawa, ipakita ang header ng column nang patayo at pahalang ang data sa column na ito.

Pahintulutan ang user na piliin ang dalas kung saan ipapakita ang data sa ulat (sa pamamagitan ng taon, ayon sa quarter, ayon sa buwan) - ayon lamang sa mga setting, nang hindi na-edit ang module ng ulat.

Paano pagsamahin ang ilang kundisyon gamit ang OR sa isang ulat? Ang opsyong ito, halimbawa, ay hindi available sa tagabuo ng ulat, ngunit available sa ACS

Kung magpapakita ka ng buod ng data sa anyo ng isang chart, kailangan mong tumpak na makontrol ang hitsura nito: ang visibility ng mga marker para sa isang serye, mga papalit-palit na kulay ng mga serye ng chart, paghihiwalay ng nakaraang data mula sa hinaharap na data sa isang chart na may patayong linya , atbp.

Siyempre, may mga nuances na kailangang bigyang pansin.

Kapag gumagawa ng ulat, na-debug ng developer ang teksto ng query, ngunit kapag ginagamit ang query na ito sa isang ulat sa sistema ng kontrol sa pag-access, ang system ay gumagawa ng isang hindi tamang resulta.

Samakatuwid, mahalagang makuha ang query na aktwal na isinasagawa ng system upang makakuha ng data mula sa database, at i-debug ang naturang query.

Kapag nagdaragdag ng mga detalye sa isang document-recorder sa isang ulat, ang system ay minsan ay gumagawa ng "maling" pambungad at pagsasara ng mga balanse.

Samakatuwid, mahalagang i-configure nang tama ang mga patlang sa ulat sa sistema ng kontrol sa pag-access upang ang mga balanse ay maipakita nang tama kapwa may at walang detalye sa dokumento.

Maaaring magbago ang resulta ng ulat depende sa kung saan naka-configure ang pagpili ayon sa halaga ng mapagkukunan - sa antas ng ulat at sa antas ng isang indibidwal na grupo, kailangan mong subaybayan ito.

Kung gusto mo master ang ACS nang propesyonal at araw-araw mag-apply sa iyong trabaho, mag-sign up para sa kurso:

Suporta - 2 buwan. Saklaw ng kurso - 34 na oras ng pagtuturo.

Huwag ipagpaliban ang iyong pag-aaral!

Upang magsulat ng pagproseso, ang mga programmer ay madalas na gumamit ng mga query upang makakuha ng data at pagkatapos ay iproseso ito. Ang data, sa turn, ay nakuha mula sa kahilingan. Well, bihira ang isang kahilingan na walang pinipili o filter. Pag-usapan natin ang mga pagpipilian sa mga naturang kahilingan, gamit ang halimbawang kahilingan:

Upang ayusin ang pagpili sa pamamagitan ng katapat para sa gumagamit sa isang regular na anyo, ang programmer ay kailangang maglagay ng tatlong elemento sa form, na mukhang ganito:

Gaano karaming pagsisikap ang kinakailangan para sa isang programmer upang ilarawan ang iba't ibang uri ng mga paghahambing (pantay, hindi katumbas, sa isang listahan, sa isang pangkat...) at, batay sa mga ganitong uri ng paghahambing, pinuhin ang kanyang huling kahilingan para sa pagkuha ng data.

Tingnan natin kung paano ito magagawa gamit ang ACS. Sa aming pagproseso, gumawa tayo ng Layout na may uri ng Data Composition Scheme at punan ito ng aming kahilingan:

Sa tab na Mga Setting, magdaragdag kami ng bagong pagpapangkat nang walang detalye at, sa aming halimbawa, ang field ng Account, dahil sa huli ay makukuha namin ang lahat sa talahanayan ng mga halaga:

At sa tab na Selection, idagdag ang Counterparty sa pagpili:

Ngayon simulan natin ang paglikha ng form. Ipakita natin sa anyo ng mismong pagproseso ang Pinili kung saan gagana ang user. Magpapakita kami ng elemento ng uri ng Table Field sa form at bibigyan ito ng pangalang Selection na may uri ng data na Composer.Settings.Selection:

Ngayon, gumawa tayo ng mga tagapangasiwa ng kaganapan para sa OnOpen na form at isang tagapangasiwa para sa pag-click sa pindutan ng Run, ang code ay ipinakita sa ibaba:

Layout ng Perem; Pindutan ng PamamaraanIpatupad ang Pindutan(Button) Resulta.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Output Processor = Bagong Output Processor ng Resulta ng Komposisyon ng Data sa Koleksyon ng mga Halaga; OutputProcessor.SetObject(Resulta); OutputProcessor.Output(CompositionProcessor); Kung FormElements.Result.Columns.Quantity() = 0 Then FormElements.Result.CreateColumns(); tapusin kung; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = Bagong SourceAvailableSettingsDataComposition(Layout); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); Katapusan ng Pamamaraan

Handa na ang pagpoproseso, nang mailunsad ito, makikita mo kaagad sa aming Pinili ang Counterparty na lumitaw sa aming Pinili, kung saan maaari kang pumili ng anumang uri ng paghahambing, pati na rin magdagdag ng mga karagdagang linya ng pagpili gamit ang mga detalye ng direktoryo ng Counterparty:

Iyon lang, sana ay matulungan ka ng artikulong ito na mapabuti ang flexibility ng mga seleksyon sa iyong pagproseso.

Kononov Sergey