Përdorimi i përzgjedhjeve në SCD. Përdorimi i përzgjedhjeve në DCS Elementet sintaksore të zgjerimit të gjuhës së pyetjes të sistemit të përbërjes së të dhënave

Zgjerimi i gjuhës së pyetjes për sistemin e përbërjes së të dhënave

Zgjerimi i gjuhës së pyetjes për sistemin e përbërjes së të dhënave kryhet duke përdorur udhëzime të veçanta sintaksore të mbyllura në kllapa kaçurrelë dhe të vendosura drejtpërdrejt në tekstin e pyetjes.

Elementet sintaksore të zgjerimit të gjuhës së pyetjeve të sistemit të përbërjes së të dhënave

ZGJIDHNI

Kjo fjali përshkruan fushat që përdoruesi do të jetë në gjendje të zgjedhë për dalje. Pas kësaj fjale kyçe, emërtimet e fushave nga lista kryesore e përzgjedhjes së pyetjeve që do të jenë të disponueshme për konfigurim renditen, të ndara me presje.

Për shembull:

(ZGJIDH artikullin, Magazina)

Pas pseudonimit të fushës mund të ketë një kombinim të karaktereve “.*”, që tregon mundësinë e përdorimit të fushave fëmijë nga kjo fushë.

Për shembull, shënimi Nomenklatura.* tregon mundësinë e përdorimit të fushave fëmijë të fushës "Nomenklatura" (për shembull, fusha "Nomenklature.Code"). Elementi SELECT mund të shfaqet vetëm në pyetjen e parë të bashkimit.

KU

Përshkruhen fushat në të cilat përdoruesi mund të aplikojë përzgjedhjen. Ky propozim përdor fushat e tabelës. Përdorimi i pseudonimeve të fushave të listës së përzgjedhjes nuk lejohet. Çdo pjesë e bashkimit mund të përmbajë elementin e vet WHERE.

(WHERE Nomenklatura.*, Magazina)

Një shembull i thjeshtë

Është e nevojshme të merrni shitje për periudhën + të shfaqni të gjithë artikullin, pavarësisht nëse ka pasur shitje apo jo. Kjo do të thotë, ju duhet të zgjidhni të dhënat nga tabela e qarkullimit të regjistrit të shitjeve, të dhëna nga drejtoria e nomenklaturës. Le të anashkalojmë pyetjen se pse na duhet gjithë nomenklaturë.

Për të zgjidhur problemin, mund të krijoni një pyetje që lidh artikullin dhe tabelën e qarkullimit të shitjeve me një bashkim majtas, si rezultat, për artikullin që nuk u shit në periudhën e zgjedhur, do të marrim vlerat e fushës Kundërpartia, Marrëveshja, sasi, Shuma= Nul. Kjo kërkesë:

SELECT Nomenklatura e Referencës.Lidhja AS Nomenklatura, ShitjetQurtimi.Kontraparti, ShitjaTurnimi.Marrëveshja e Kundërpartisë,ShitjetQurtimi.SasiaQurtimi AS Sasia,ShitjaQurtimi.KostoTurnover AS Kosto NGA Referenca.Nomenklatura ASNJËRREF AS SalesTurnover PO SprNomenclature.Link = SalesTurnover.Nomenklature

Këtu është rezultati:

Kundërpartia Marrëveshja Nomenklatura sasi Shuma
i pavlefshëm i pavlefshëm _Test1 i pavlefshëm i pavlefshëm
LLC "Brirët dhe thundrat" Marrëveshja 1 Pantofla 10 1200
"Gazprom" Kontratë e bukur Çizme 5 13000
i pavlefshëm i pavlefshëm Galoshët i pavlefshëm i pavlefshëm
i pavlefshëm i pavlefshëm Pllakat i pavlefshëm i pavlefshëm

Në këtë shembull, nuk kishte shitje të artikujve: "Mbi këpucët" dhe "Pantofla"

Dhe gjithçka do të ishte mirë, nëse grupojmë kampionin sipas palës tjetër, atëherë të gjithë artikujt e pashitur do të bien në një grup të veçantë, ku Counterparty = Null, por klienti dëshiron të ketë një përzgjedhje të rastësishme në raport nga fusha e palës tjetër (natyrisht, kjo nënkupton palën tjetër nga regjistri i shitjeve). Cfare duhet te bej? Në fund të fundit, në fakt, ne vetëm duhet të filtrojmë tabelën Shitjet. Nëse përdorim plotësimin automatik në konstruktorin ACS, atëherë fushat e përzgjedhjes në dispozicion do të përfshijnë fushën Kundërpartia, duket se gjithçka është në rregull, por gjatë ekzekutimit të një raporti me përzgjedhje sipas palës, do të humbasim të gjitha regjistrimet nga lidhja me artikullin. Për shembull, le të vendosim përzgjedhjen: Kundërpartia = LLC "Brirë dhe thundra". Rezultati do të duket si ky:

Nuk është aspak ajo që na nevojitet, apo jo?

Për të zgjidhur problemin, natyrisht, mund të shtoni një parametër në pyetje, për shembull, në parametrat e një tabele virtuale Qarkullimi i shitjeve, por në të njëjtën kohë humbet fleksibiliteti i vendosjes së llojit të krahasimit.

Ekziston një zgjidhje: për këtë në ndërtues pyetjesh në skedën Përbërja e të dhënave => Tabelat shtoni një fushë kushti në kushtet e tabelës virtuale Qarkullimi i shitjeve dhe ndryshoni pseudonimin e tij në Zgjedhja e kundërpartisë

Për të mos ngatërruar përdoruesin me fushat e përzgjedhjes, ne do të çaktivizojmë fushën e kushtit Kundërpartia dhe ndryshoni titullin e fushës Zgjedhja e kundërpartisë


Si rezultat i ekzekutimit të kësaj skeme me përzgjedhjen e aktivizuar nga fusha e palës tjetër, pyetja që rezulton do të marrë formën:

SELECT SprNomenclature.Link AS Nomenklature, SalesTurnover.Counterparty AS Counterparty, SalesTurnover.Marrëveshja e kundërpalës AS Marrëveshja e kundërpartit, ShitjaQurtimi.SasiaTurnover AS >Sasia, SalesQurnover.ShpenzimetASTurnover.CostATIONTurnoverTunrENT Kontrata kundërpalës një Prezantim, PRESENTATIONLINK(SalesTurnover.Counterparty ) AS Kundërpartia Prezantimi, SprNomenklatura.Prezantimi AS NomenklaturaPrezantimi FROM Directory.Nomenklatura AS SprNomenklatura Sa LIDHJA E LEFT Regjistro akumulimet.Shitjet.Turnover(&P , , , Kundërpartia = &P3Nr.Nr.NrmenTurnT ) klature

Dhe në përputhje me rrethanat rezultati:

Kundërpartia Marrëveshja Nomenklatura sasi Shuma
i pavlefshëm i pavlefshëm _Test1 i pavlefshëm i pavlefshëm
LLC "Brirët dhe thundrat" Marrëveshja 1 Pantofla 10 1200
i pavlefshëm i pavlefshëm Çizme i pavlefshëm i pavlefshëm
i pavlefshëm i pavlefshëm Galoshët i pavlefshëm i pavlefshëm
i pavlefshëm i pavlefshëm Pllakat i pavlefshëm i pavlefshëm

Test1 është një grup në drejtorinë e Nomenklaturës në të cilin ndodhet gjithçka

Publikimit i është bashkangjitur skema XML e raportit të përdorur në publikim. Kam krijuar qarkun në Automatizimin e Integruar, por mendoj se gjithçka do të funksionojë mirë si në UPP ashtu edhe në UT 10

Duke përmbledhur

Ky shembull tregon se si të krijoni cilësimet tuaja të përzgjedhjes në sistemin e kontrollit të hyrjes dhe çaktivizoni ato të krijuara automatikisht nëse jeni duke projektuar një qark me flamurin të aktivizuar Plotësimi automatik.

Nëse keni përvojë të mjaftueshme për të krijuar qarqe pa përdorur Plotësimi automatik- atëherë kjo këshillë nuk ka kuptim.

Softueri i përdorur

  • Programi i pamjes së ekranit SnimOK!
  • Redaktori i skedarëve XML

Kujdes! Ky është një version hyrës i mësimit, materialet e të cilit mund të jenë të paplota.

Hyni në sit si student

Identifikohu si student për të aksesuar materialet shkollore

Sistemi i përbërjes së të dhënave 1C 8.3 për fillestarët: lidhja e grupeve të të dhënave

  • Shkruani një raport që shfaq klientët dhe produktet e tyre të preferuara. Çdo klient ka një ngjyrë të preferuar, dhe çdo produkt ka ngjyrën e vet - bazuar në këto ngjyra, ju duhet të përcaktoni "të preferuarin" e produktit. Për shembull, nëse ngjyra e preferuar e Andreit është e kuqja, atëherë një nga ushqimet e tij të preferuara do të jenë domatet (ato janë të kuqe).
  • Aplikoni dy grupe të dhënash në raport. Grupi i parë janë të dhëna nga tabela e drejtorisë "Klientë". E dyta janë të dhënat nga tabela e drejtorisë "Ushqimi".
  • Zbatoni lidhje mes këtyre dy grupeve, në mënyrë që raporti të përmbajë vetëm produktet e preferuara për çdo klient.

Krijo një raport të ri

Hapni bazën e të dhënave "Gastronom" në konfigurues dhe krijoni një raport të ri përmes menysë kryesore:

Lloji i dokumentit - "Raport i jashtëm":

Në formën e një raporti të ri, tregoni emrin "Mësimi 6" dhe klikoni butonin "Hap diagramin e përbërjes së të dhënave":

Lëreni emrin e paracaktuar të skemës:

Shtimi i grupit të parë të të dhënave

Në diagramin që hapet, shkoni te skeda "Setet e të dhënave" dhe zgjidhni "Shto grupin e të dhënave - pyetje" duke përdorur shenjën e gjelbër plus:

Thirrni konstruktorin e kërkesës:

Ne tregojmë tabelën "Klientë" dhe fushat që duhet të merren nga kërkesa:

Shtimi i një grupi të dytë të dhënash

Shtoni një grup të dytë të dhënash:

Zgjidhni atë (DataSet2) dhe thirrni përsëri konstruktorin e pyetjes:

Ne tregojmë tabelën e drejtorisë "Ushqimi" dhe fushat që duhet të merren nga kërkesa:

Teksti i kërkesës që rezultoi ishte:

Ju lutemi vini re se aktualisht kemi dy grupe të dhënash në raport: Të dhënat Set1 dhe Data Set2. Secili ka tekstin dhe të dhënat e veta të kërkesës.

Duke i bërë emrat më përshkrues

Për qartësi, le të riemërtojmë DataSet1 në Klientë dhe DataSet2 në Ushqim.

Bëni këtë duke klikuar dy herë në secilën prej grupeve:

Ne mund të përdorim të dhënat nga secili grup në raportin tonë. Ne do t'i qasemi këtyre të dhënave përmes fushave.

Aktualisht, grupi "Klientë" ka këto fusha: "Emri" dhe "Ngjyra e preferuar", dhe grupi "Ushqimi" ka: "Emri" dhe "Ngjyra".

Shohim që emrat mbivendosen dhe lehtë mund të ngatërrohemi. Pra, le të ndryshojmë emrat e fushave për të qenë më kuptimplotë.

Zgjidhni grupin "Klientë" dhe ndryshoni emrat e fushave si kjo:

Pastaj zgjidhni grupin "Ushqim" dhe ndryshoni emrat e fushave si kjo:

Thirrja e konstruktorit të cilësimeve

Më në fund, shkoni te skeda "Cilësimet" dhe klikoni shkopin magjik për të shfaqur projektuesin e cilësimeve:

Lloji i raportit - "Lista...":

Zgjidhni fushat për raportin nga të dy grupet:

Shihni pse ishte kaq e rëndësishme ndryshimi i emrave të fushave? Në fazën e cilësimeve të përbërjes së të dhënave, ne nuk shohim se nga cilat grupe janë këto fusha. Ne shohim vetëm emrat e tyre.

Kontrollimi i raportit

Ne e ruajmë raportin dhe e gjenerojmë atë në modalitetin e përdoruesit:

Po. Mirë, por jo në të vërtetë. Një i ashtuquajtur ndërlidhje e dy grupeve ka ndodhur (ju duhet të jeni shumë të njohur me këtë nga bashkimet në pyetjet që kemi studiuar në modulet e mëparshme). Çdo rekord nga tabela e Konsumatorëve ka një rekord përkatës nga tabela e Ushqimit.

Por nga të gjitha këto regjistrime duhet të lëmë vetëm ata, fusha e të cilëve "Ngjyra e preferuar e klientit" është e barabartë me fushën "Ngjyra ushqimore":

Ne lidhim dy grupe të dhënash

Për ta bërë këtë, ne do të lidhim dy grupe të dhënash (Klientë dhe Ushqim) duke përdorur fushat Ngjyra e preferuar e klientit dhe Ngjyra e ushqimit.

Shkoni te skeda "Lidhjet e grupit të të dhënave" dhe klikoni në butonin plus për të shtuar një lidhje të re:

I konfigurojmë parametrat si në figurën më poshtë:

Unë do të bëj një shpjegim.

Burimi dhe marrësi i komunikimit. Epo, gjithçka është e qartë këtu. Tregojmë grupin e parë (Klientë) dhe grupin e dytë (Ushqimin) e të dhënave. Dëshiroj të tërheq vëmendje të veçantë për faktin se komunikimi do të kryhet sipas parimit bashkimi i jashtëm i majtë(e kemi trajtuar në temën e kërkesave në modulet e mëparshme). Bazuar në këtë, ju duhet të zgjidhni se cili grup do të jetë burimi dhe cili marrës.

Burimi i shprehjes. Ne tregojmë këtu një shprehje ose thjesht një fushë nga grupi i të dhënave burimore (ne specifikuam fushën ClientFavoriteColor nga grupi i klientëve këtu).

Shprehja e marrësit. Ne tregojmë këtu një shprehje ose thjesht një fushë nga grupi i të dhënave të marrësit (ne treguam fushën ColorFood nga grupi i ushqimit këtu).

Kështu, kjo lidhje do të lërë nga lista e mëparshme vetëm ato rreshta për të cilat fusha Ngjyra e preferuar e klientit është e barabartë me fushën FoodColor.

Le ta ruajmë raportin dhe ta ekzekutojmë në modalitetin e përdoruesit:

E shkëlqyeshme!

Unë do të bëj një shpjegim për fushën " Gjendja e komunikimit", për të cilën programuesit fillestarë aq shpesh godasin shtizat e tyre.

Kushti i lidhjes është një fushë ndihmëse. Mund të shkruani shprehje atje duke përfshirë fusha vetëm nga grupi i të dhënave të specifikuara në burimin e lidhjes.

Në këtë rast, për të gjitha rreshtat nga burimi i lidhjes, kjo shprehje (gjendja e lidhjes) do të kontrollohet përpara se të bëhet lidhja. Dhe nëse kjo shprehje është e VËRTETË, atëherë do të bëhet një përpjekje për të vendosur lidhje midis këtij rreshti dhe rreshtave nga marrësi i lidhjes. Nëse shprehja është FALSE, atëherë nuk do të bëhen përpjekje të tilla.

Hyni në sit si student

Sistemi i përbërjes së të dhënave 1C 8.3 për fillestarët: raporti i parë për SKD

Nëse nuk e keni lexuar hyrjen e këtij moduli, ju lutemi lexoni: .

Për të përfunduar mësimet do t'ju nevojiten 1C 8.3 (jo më e ulët 8.3.13.1644 ) .

Nëse tashmë keni të instaluar versionin 1C 8.3, përdorni atë. Nëse jo, shkarkoni dhe instaloni versionin arsimor, të cilin 1C e prodhon posaçërisht për qëllime edukative: .

Shkurtorja e mëposhtme duhet të shfaqet në desktopin tuaj:

Për të gjitha mësimet në këtë seri do të përdorim bazën e të dhënave Gastronom që kam përgatitur. Përputhet plotësisht me bazën që kemi përdorur në modulet shkollore gjatë studimit të pyetjeve. Prandaj, pres që të njiheni me librat dhe dokumentet e tij referuese.

Nëse e keni fshirë, shkarkoni përsëri duke përdorur atë që vijon, shpaketoni dhe shtojeni në listën e bazave të të dhënave.

Më në fund, tavolina e punës është ngritur dhe tani ne do të krijojmë raportin tonë të parë së bashku duke përdorur sistemin e përbërjes së të dhënave. Do të jetë shumë e thjeshtë për të demonstruar aftësitë e përgjithshme të një sistemi të përbërjes së të dhënave (shkurtuar SKD).

Vendosja e një qëllimi

Qëllimi i këtij mësimi- krijoni një raport që, në modalitetin e përdoruesit, shfaq një listë të klientëve me fushat e mëposhtme:

  • Emri
  • Kati
  • Ngjyra e preferuar e klientit.

Raporti duhet të jetë i jashtëm. Kjo do të thotë se do të krijohet dhe konfigurohet në konfigurues, dhe më pas do të ruhet si një skedar i veçantë (i jashtëm) në kompjuter.

Për të gjeneruar një raport të tillë në 1C, përdoruesi do të duhet të nisë bazën e të dhënave në modalitetin e përdoruesit, të hapë këtë skedar dhe të klikojë butonin "Generate".

Shkoni!

Krijimi i një raporti

Ne hapim konfiguruesin për bazën e të dhënave Gastronom:

Nga menyja kryesore, zgjidhni "File" -> "I ri...":

Zgjidhni "Raport i jashtëm":

Krijimi i një diagrami të paraqitjes së të dhënave brenda raportit

Hapet dritarja për krijimin e një raporti të jashtëm. Për emrin, shkruani: " Mesimi 1", dhe më pas shtypni butonin " Hap diagramin e përbërjes së të dhënave":

Projektuesi i krijimit të skemës ka filluar. Ne pajtohemi me emrin e paracaktuar " Skema e paraqitjes së të dhënave kryesore"dhe shtypni butonin" Gati":

Është hapur dritarja kryesore e punës, me shumë skeda dhe fusha, në të cilat do të konfigurojmë skemën tonë të paraqitjes së të dhënave.

Nuk ka nevojë të kesh frikë - ka vërtet shumë mundësi këtu, por ne nuk kemi nevojë për të gjitha. Sidomos në mësimin e parë.

Tani jemi në faqerojtësin " Grupet e të dhënave"Ne do të qëndrojmë atje."

Ne shkruajmë një kërkesë përmes konstruktorit

Sistemi i përbërjes së të dhënave (shkurtuar si DCS) na kërkon këtë të dhëna, të cilat do t'i shfaqë përdoruesit.

Mënyra më e lehtë - shkruani një kërkesë në bazë. Në shkollë kemi mësuar të shkruajmë dhe të kuptojmë kërkesat - prandaj pres që të keni aftësitë e duhura.

Klikoni mbi jeshile shenjë plus dhe në listën rënëse zgjidhni artikullin " Shto grup të dhënash - Pyetje":

Detyra jonë është të shkruajmë tekstin e kërkesës në këtë fushë. A keni harruar ende si ta bëni këtë?

Unë do t'ju jap një sugjerim:

Në këtë pyetje ne kemi zgjedhur tre fusha (" Emri", "Kati"Dhe" Ngjyra e preferuar") nga tabela" Drejtoria.Klientë".

Por mos nxitoni ta shkruani manualisht këtë tekst në fushën "Kërkesë".

Tani do të krijojmë të njëjtën kërkesë vizualisht, vetëm duke përdorur miun. Kjo metodë quhet " Konstruktori i pyetjeve".

Për të thirrur këtë konstruktor, klikoni butonin " Konstruktori i pyetjeve..." në pjesën e sipërme djathtas të fushës "Kërkesë":

Në dritaren që hapet, tërhiqni tabelën " Klientët" nga kolona e parë në të dytën për të treguar se është nga kjo tabelë që ne do të kërkojmë të dhënat:

Doli kështu:

Më pas, ne do të hapim tryezën " Klientët"në kolonën e dytë sipas shenjës" Plus"për të parë të gjitha fushat e saj dhe për të tërhequr fushën" Emri" nga kolona e dytë në të tretën për të treguar se nga kjo tabelë duhet të kërkojmë fushën "Emri":

Doli kështu:

Le të bëjmë të njëjtën gjë me fushat" Kati"Dhe" Ngjyra e preferuar Rezultati do të jetë si ky:

Klikoni butonin "OK" për të dalë nga ndërtuesi i pyetjeve dhe për të parë që teksti i pyetjes shtohet automatikisht në fushën "Query".

Për më tepër, bazuar në tekstin e kërkesës, vetë 1C nxori emrat e fushave (zona mbi kërkesën) që do të përdoren nga skema e përbërjes së të dhënave:

Tani që kemi përpiluar një kërkesë, ACS di se si të marrë të dhëna për raportin.

Vendosja e prezantimit të të dhënave

Mbetet disi vizualizoni këto të dhëna për përdoruesin në formën e një formulari të printuar. Dhe këtu ACS mund të bëjë mrekulli!

Për të krijuar një mrekulli të tillë, le të shkojmë te skeda " Cilësimet" dhe klikoni butonin e projektuesit të cilësimeve ( shkop magjik):

Në dritaren që hapet, specifikoni llojin e raportit " Listë" dhe shtypni " Me tutje":

Në dritaren tjetër, zgjidhni (duke zvarritur) fushat që duhet të shfaqen në listë (zvarritni të gjitha ato që kemi në dispozicion: " Ngjyra e preferuar", "Emri"Dhe" Kati"):

Le të marrim këtë rezultat dhe të shtypim butonin " Ne rregull":

Projektuesi i cilësimeve u mbyll dhe artikulli " Regjistrimet e detajuara":

Raporti është gati, le ta kontrollojmë. Për ta bërë këtë, së pari ruani raportin si një skedar të jashtëm.

Ruani raportin si skedar

Hapni artikullin e menusë kryesore " Skedari"->"Ruaj":

Do ta ruaj në desktopin tim me emrin " Mesimi 1":

Kontrollimi i raportit në modalitetin e përdoruesit

Më në fund, le të mbyllim konfiguruesin dhe të shkojmë në bazën tonë të të dhënave në modalitetin e përdoruesit:

Emri i përdoruesit "Administrator", pa fjalëkalim:

Përmes menusë, zgjidhni artikullin " Skedari"->"Hapur...":

Dhe specifikoni skedarin e raportit (e ruajta në desktop me emrin "Lesson1.erf":

Formulari i raportit është hapur, klikoni butonin " Forma":

Gati! Këtu është printimi ynë me një listë klientësh, ngjyrën dhe gjininë e tyre të preferuar:

Formulari i printueshëm mund të printohet lehtësisht. Për ta bërë këtë, thjesht zgjidhni artikullin " Skedari"->"Vula...":

Pra, thjesht, pa programim, arritëm të krijonim një raport të plotë që përdoruesit mund ta hapin në bazat e të dhënave të tyre, të gjenerojnë dhe printojnë.

studentë - Unë përgjigjem me postë, por së pari shikoni.

Hyni në sit si student

Identifikohu si student për të aksesuar materialet shkollore

Në artikullin tim të fundit, unë kam shkruar tashmë se 1C është një platformë paradoksale. Sistemi i përbërjes së të dhënave është një nga këto paradokse. SKD është projektuar për hartimin e raporteve komplekse dhe përfshin zëvendësimin e programimit "manual" të raporteve me dizajnin në një paketë veglash shumëfunksionale. Aftësia për të përdorur sistemet e kontrollit të aksesit u shfaq në versionin e tetë, por u desh shumë kohë që të shfaqej versioni 8.2 në mënyrë që 1C ta përdorte atë në produktet e tij standarde. Nga njëra anë, ACS është një mjet shumëfunksional, duke përdorur të cilin mund të krijoni raporte shumë komplekse pa një linjë të vetme kodi. Sidoqoftë, sistemi i kontrollit të hyrjes ka një pengesë mjaft të lartë për hyrjen; mësimi dhe fillimi i përdorimit të plotë "në fluturim" është shumë i vështirë, sepse ndërfaqja nuk është plotësisht intuitive dhe manualet më të plota për përdorim janë të disponueshme vetëm në formë e letërsisë me pagesë.

Në procesin e studimit tim për SKD, lindi një problem. Është e nevojshme të merren të dhëna nga një tabelë vlerash e palëve të treta duke përdorur një gjuhë pyetëse dhe më pas të përdoren këto të dhëna si me të dhëna të ngjashme nga tabelat e bazës së të dhënave (operacionet e reduktimit, grupimi, etj.). Në formatin klasik, ne do të krijonim një pyetje që merr informacion nga tabela që i kalon pyetjes si parametër.

Kërkesë = Kërkesë e Re(
"ZGJIDH
| Tabela.Nomenklatura,
| Tabela.Depo
|NGA
| Tabela &TK AS");
Request.SetParameter("TZ", TZ);

Por me SKD gjithçka nuk është aq e thjeshtë. Mjerisht, është e pamundur të kryhet operacioni i përshkruar më sipër në sistemin e përbërjes së të dhënave. Megjithatë, sistemi ka zbatuar aftësinë për të ngarkuar tabela të jashtme të vlerave.

Këtu ia vlen të bëjmë një digresion të shkurtër dhe të flasim për grupet e të dhënave. Grupet e të dhënave janë burime informacioni nga të cilat sistemi i menaxhimit të të dhënave merr të dhëna që më vonë i përpilon në një raport. Grupet e të dhënave ndahen në lloje, kryesisht duke përdorur llojin "Query", në trupin e të cilit programuesi shkruan një pyetje në bazën e të dhënave. Lloji "Object" përdoret për të ngarkuar të dhëna nga objekte të jashtme. Në të dyja rastet, prodhimi është një grup i caktuar fushash të marra si rezultat i ekzekutimit të një kërkese ose ngarkimit të një objekti të jashtëm. Më vonë, këto fusha mund të manipulohen në skedën "Cilësimet", së bashku me cilësimet e detajuara për strukturën e raportit. Për të ndërlidhur grupe të ndryshme, ACS ofron mundësinë për të treguar lidhjet midis grupeve të të dhënave në skedën me të njëjtin emër. Këto lidhje janë një analog i drejtpërdrejtë i bashkimit të majtë në një pyetje klasike. Sidoqoftë, duhet të merret parasysh se pyetjet në asnjë grup të dhënash nuk "dinë" për ekzistencën e grupeve të tjera të të dhënave; në fund të fundit, marrëdhëniet midis grupeve të të dhënave do të ndikojnë në paraqitjen e të dhënave sipas strukturës së specifikuar në " Skeda e Cilësimeve.

Le të detajojmë problemin deri në një shembull. Ekziston një raport standard: Pasqyrat e pagave për organizimin e konfigurimit ZiK 8. Është e nevojshme që llojet e llogaritjeve në raport të grupohen në grupe të caktuara. Llogaritja Korrespondencat e View-Group ruhen në një tabelë vlerash të jashtme. Për ta ngarkuar atë në skemën kryesore të paraqitjes së të dhënave, ne krijojmë një "objekt të grupit të të dhënave" me emrin "Grupet" (Figura 2). Ne bëjmë një lidhje me "bashkësinë e të dhënave të pyetjes" - "Akrualet" sipas llojit të llogaritjes (Figura 3). Në "Grupin e të dhënave të kërkesës" - "Akrualet" ka informacione për grupet, ne fshijmë të gjitha hyrjet. Më pas, në skedën "Cilësimet" mund të përdorim fushën "Group", vlera e së cilës ngarkohet nga një burim i jashtëm i të dhënave (Figura 4). Në funksionin e gjenerimit të raportit, ne plotësojmë ngarkimin e të dhënave të jashtme.

Funksioni GenerateReport (Rezultati = i papërcaktuar, të dhënat e deshifrimit = të papërcaktuara, OutputInReportForm = E vërtetë) Eksporto

//marrja ose formimi i tabelës së kërkuar të vlerave të "Grupeve" dhe shkrimi i saj në ndryshoren me të njëjtin emër

ExternalData = New Structure();//krijoni dhe plotësoni strukturën e jashtme të të dhënave
ExternalData.Insert(Grupet);

UserPanelValue = TypicalReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
TypicalReports.GetAppliedSetting(ThisObject);
TypicalReports.GenerateTypicalReport(ThisObject, Result, Decryption Data, OutputToReportForm, ExternalData);
SettingsLinker.LoadSettings(DefaultSetting);
Rezultati i Kthimit;

Funksioni i Fundit

Nëse do të bënim një raport nga e para, kodi i nisjes së gjenerimit të raportit do të dukej kështu:

ExternalDataSets = Strukturë e re;
ExternalDataSets.Insert("Grupet", Grupet); //Grupet - tabela e dëshiruar e vlerave
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //paraqitja jonë me diagramin e rrjedhës së të dhënave
Cilësimet = DataCompositionScheme.DefaultSettings;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Settings);
DataCompositionProcessor = newDataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = TabularDocument i ri;
OutputProcessor = Processor i ri OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Lexoni 9660 një herë

Ditën e mirë, lexuesit e mi! Sot do të vazhdojmë të shikojmë bazat e sistemit të paraqitjes. Në këtë seri artikujsh, mësuat se çfarë është sistemi i kontrollit të aksesit dhe u njohët me komponentët kryesorë të një sistemi të kontrollit të aksesit. Ne shikuam gjithashtu të dhënat hyrëse për ndërtimin e një raporti dhe mësuam fazat kryesore të ekzekutimit të një raporti në një sistem të kontrollit të aksesit. Përveç kësaj, shumë patën mundësinë të testojnë njohuritë e tyre duke kaluar një test të shkurtër. Tani mund t'i hidhni një sy përmbajtjes së artikullit dhe të shihni se çfarë do të përfshihet në të.

Kompleti i të dhënave - pyetësor.

  1. Ndryshe nga një pyetje e zakonshme, nuk ka asnjë klauzolë REZULTATE në pyetjen e përbërjes së të dhënave. Në vend të kësaj, totalet gjenerohen në skedën "Burimet". Në këtë skedë, ju zgjidhni fushat për të cilat dëshironi të merrni shprehjet përfundimtare. Dhe në skedën "Cilësimet" tregohet se në cilën pjesë do të merren rezultatet, domethënë krijohen grupime të përshtatshme këtu dhe burimet llogariten prej tyre. Ju mund të lexoni më shumë rreth kësaj në artikull.
  2. Pika tjetër ka të bëjë me cilësimet e përzgjedhjes. Ka dy mundësi ekzekutimi.
    1. Nëpërmjet cilësimeve të opsionit të raportit. Kjo mund të bëhet në skedën "Cilësimet" - "Zgjedhja". Nëse e përdorim këtë opsion, atëherë është më fleksibil, pasi mund të specifikojmë lloje të ndryshme krahasimesh që mund të zgjedhë edhe përdoruesi. Për më tepër, kur përdorni këtë opsion, kushtet e filtrimit vendosen në vetë pyetjen. Nëse raporti bazohet në një kërkesë grupi duke përdorur tabela të përkohshme, atëherë zgjedhja do të ndikojë në të gjitha tabelat në pyetjen e grupit ku shfaqet fusha e përzgjedhjes.
    2. Në nivelin e kërkesës. Nëse përdorim një pyetje, atëherë nuk do të jemi në gjendje të përdorim asgjë tjetër përveç operacionit të barazisë.
      Përjashtim bën rasti kur duhet të kryejmë një filtrim “të vështirë” të të dhënave me një vlerë të caktuar. Le të themi, sipas vlerës së numërimit. Në skedën "Parametrat" ​​mund të vendosim një kusht. Nëse aktivizojmë flamurin "Limit Availability", përdoruesi nuk do të jetë në gjendje ta anulojë këtë kusht.
  3. Është gjithashtu më e saktë të aplikohet renditja në nivelin e cilësimeve të opsioneve të raportit.
    1. Nëse specifikoni një fushë klasifikimi në kërkesë, atëherë përdoruesi do të specifikojë një fushë tjetër në konfigurimin e versionit të raportit të tij, atëherë cilësimi ynë i bërë në nivelin e kërkesës do të ketë përparësinë më të ulët. Renditja e vendosur nga përdoruesi në konfigurimin e variantit të raportit do të kryhet së pari. Prandaj, nëse duhet të vendosni renditjen "si parazgjedhje", atëherë ne përdorim cilësimet e opsionit të raportit në Konfigurator.
    2. Po sikur të duhet të konfigurosh renditjen "e vështirë" në një raport në mënyrë që përdoruesi të mos mund ta ndryshojë atë? Më pas vendosim renditjen në nivelin e pyetjes dhe në skedën "Grupe të dhënash" vendosëm një kufizim të fushës. Zgjidhni grupin e kërkuar të të dhënave dhe kontrolloni kutinë në kolonën "Kufizimi i fushës" - "Porosit".

Parametrat e tabelës virtuale.

  • Ndërtimi i tabelave virtuale të regjistrave kontabël, regjistrave të grumbullimit dhe regjistrave të informacionit varet nga një datë e caktuar. Kjo mund të jetë ose një datë ose një interval, si p.sh. për një tabelë të bilanceve dhe qarkullimit. SDS është krijuar në atë mënyrë që nëse raporti bazohet në një tabelë virtuale, atëherë është e nevojshme që përdoruesi të zgjedhë për çfarë intervali ose në cilën datë për të gjeneruar raportin. SKD automatikisht shton parametrat e nevojshëm të periudhës në diagramin e paraqitjes.
  • Nëse në pyetje zgjidhet një tabelë virtuale e bilanceve ose një tabelë virtuale e regjistrave të informacionit, atëherë automatikisht shtohet një parametër i quajtur "Periudha".
  • Nëse në kërkesë zgjidhet një tabelë virtuale e bilanceve dhe qarkullimit ose një tabelë virtuale e qarkullimit, atëherë parametrat "Fillimi i periudhës" dhe "Fundi i periudhës" shtohen automatikisht.
  • Çfarë duhet të bëni nëse keni nevojë të merrni bilancet në fund të periudhës? Ka dy mënyra:
    1. Shkoni te skeda "Parametrat" ​​dhe në parametrin "Periudha" në kolonën "Shprehjet" shkruani sa vijon:
      &Periudha e Fundit. Ne gjithashtu do të aktivizojmë flamurin "Limit disponueshmërinë".
    2. Ne heqim qafe plotësisht parametrin "Periudha" dhe e zëvendësojmë atë me parametrin "Fundi i periudhës". Le të konfigurojmë një parametër opsional të tabelës virtuale:
      • Shkoni te skeda "Kompletet e të dhënave" dhe klikoni në butonin "Query Builder...".
      • Në skedën "Përbërja e të dhënave" në këndin e sipërm të majtë, klikoni butonin për të hapur dialogun "Opsionet e tabelës virtuale" (ky është një buton katror gri me një foto të një ingranazhi në sfondin e një tavoline të vogël).
      • Në fushën “Periudha” të dialog boxit shkruajmë: &Fundi i periudhës.
      • Tani në tekstin e kërkesës së grupit të të dhënave në parametrat e tabelës virtuale, ky parametër do të shfaqet i rrethuar nga kllapa kaçurrelë:
Regjistri i Akumulimit. Mallrat e mbetura. Remaining(((&EndPeriod) ), ) AS Mbetet

Kllapat kaçurrelë tregojnë një shtrirje të gjuhës së pyetjes së përbërjes së të dhënave. Kjo gjithashtu tregon se ky parametër është opsional. Kjo do të thotë që nëse nuk përcaktohet në skemën e përbërjes së të dhënave, atëherë bilancet do të merren në datën aktuale.

Zgjerimi i gjuhës së pyetjes.

Këto janë udhëzime të veçanta që janë të mbyllura në mbajtëse kaçurrelë në trupin e kërkesës. Këto udhëzime tregojnë fushat dhe parametrat që mund të manipulohen kur konfiguroni një version raporti. Të dhënat nga kllapat kaçurrelë do të jenë të pranishme në diagramin e paraqitjes edhe nëse kutia e kontrollit AutoComplete është e çaktivizuar.

Kur krijohet një grup i të dhënave të pyetjeve, si parazgjedhje, fushat e disponueshme të skemës së përbërjes së të dhënave plotësohen automatikisht bazuar në pyetjen e krijuar (kutia e kontrollit "Plotësimi automatik" zgjidhet në skedën "Grupet e të dhënave").

Si funksionon plotësimi automatik i fushave të skemës së përbërjes së të dhënave të disponueshme?

    1. Fushat nga lista e përzgjedhjes së pyetjeve dhe fushat e tyre të fëmijëve bëhen të disponueshme.
    2. Nëse zgjedhim nga regjistri i grumbullimit, atëherë edhe fushat e regjistrit që nuk përfshihen në kërkesë bëhen të disponueshme në fushat e përbërjes së të dhënave. Por këto fusha janë të disponueshme vetëm për përzgjedhje (në shprehje të kushtëzuara)
      dhe ato nuk mund të përdoren si fusha dalëse.
    3. Parametrat e tabelave virtuale "Periudha", "Fillimi i periudhës" dhe "Fundi i periudhës" bëhen
      në dispozicion për përzgjedhje.
    4. Nëse në tekstin e kërkesës specifikohet një gjendje "e vështirë", atëherë ky parametër do të shtohet gjithashtu në skedën "Parametrat".

Nëse kutia e kontrollit AutoComplete pastrohet, fushat e skemës së përbërjes së të dhënave pastrohen, por parametrat e mbyllur në kllapa kaçurrelë në tekstin e kërkesës mbeten.

Si të plotësoni vetë fushat e skemës së përbërjes së të dhënave?

Hiq zgjedhjen e kutisë "Autofill" në skedën "Data Sets".

Klikoni në butonin "Query Builder...". Le të krijojmë kërkesën e mëposhtme:

ZGJIDHni mbetjet. Nomenklatura AS Nomenklatura, Mbetet. Sasia AS Regjistri i sasisë Akumulimi. Mallrat e mbetura. Remaining(((&EndPeriod) ), ) AS Mbetet

Në skedën "Tabelat" mund të vendosim parametrat e tabelës virtuale për të gjitha tabelat.

Tani në skedën "Paraqitja e të dhënave", zgjidhni skedën "Fushat". Këtu kemi vendosur fushat e përzgjedhjes që
do të paraqitet në diagramin e paraqitjes.

Fusha "Dhe..." do të thotë që të dhënat e fëmijëve do të përfshihen në përzgjedhje
fusha të tipit kompleks, si drejtoritë dhe dokumentet, etj. Nëse fusha është e tillë si një numër, atëherë do të jetë e pamundur të vendosni një flamur në fushën "Dhe...".

Le të zgjedhim dy fusha "Nomenklatura" dhe "Sasia". Për fushën "Nomenklatura", vendosni flamurin "I..",
në mënyrë që të zgjidhen të dhënat e fëmijëve. Ju do të merrni pyetjen e mëposhtme:

ZGJIDHni mbetjet. Nomenklatura AS Nomenklatura, Mbetet. Sasia AS Sasia (Nomenklatura SELECT. * , Sasia) Regjistri i akumulimit. Mallrat e mbetura. Remaining(((&EndPeriod) ), ) AS Mbetet

Në kërkesën e re, në kllapat kaçurrela, është shfaqur një seksion tjetër SELECT - ky është teksti i zgjerimit që tregon fushat që do të jenë të disponueshme në paraqitje. Fusha "Nomenklatura.*" tregon se fusha "Nomenklatura" dhe detajet e saj të fëmijës, si "Kodi", "Emri", etj. do të jenë të disponueshme. Pra, ne i plotësuam vetë fushat e paraqitjes.

Por tani ne nuk mund të përdorim fushat në kushtet e paraqitjes. Nëse shkoni te skeda "Cilësimet" dhe zgjidhni skedën "Përzgjedhja", nuk mund të vendosni kushte për asnjë nga fushat që kemi zgjedhur në paragrafin e mëparshëm. Pse?

Kushtet e imponuara në parametrat e tabelës virtuale duhet të specifikohen gjithashtu në skedën "Përbërja e të dhënave" të Projektuesit të Pyetjeve. Në këndin e sipërm të majtë, klikoni butonin për të hapur dialogun "Parametrat e tabelës virtuale".
(ky është një buton katror gri me një foto të një ingranazhi në sfondin e një tavoline të vogël). Në fushën “Kushti” të dialog box-it shkruajmë: Nomenklatura. Tani në tekstin e kërkesës së grupit të të dhënave në parametrat e tabelës virtuale, ky parametër "Nomenklaturë" do të shfaqet i rrethuar nga kllapa kaçurrelë:

Regjistri i Akumulimit. Mallrat e mbetura. Bilancet(((&Fundi i periudhës) ), ((Nomenklatura) )) Bilancet AS

Në gjuhën e zakonshme të pyetjes, specifikimi i një parametri duket kështu: Nomenklatura = &Nomenklatura. Por në zgjerimin e gjuhës së pyetjes shkruhet ndryshe. Tregohet vetëm emri i fushës. Këtu nuk specifikojmë funksionimin e barazisë, pabarazisë ose në hierarki, pasi vetë përdoruesi do të zgjedhë operacionin e dëshiruar në cilësimet e tij.

Në skedën "Përbërja e të dhënave" të Ndërtuesit të pyetjeve, shohim një skedë tjetër, "Kushtet". Është e nevojshme të tregohen në shtrirjen e gjuhës së pyetjes kushtet për klauzolën WHERE. Zgjidhni fushën "Sasia". Kjo fushë është tani e disponueshme në kushtet në skedën "Cilësimet" - "Zgjedhja". Dhe linja të reja u shfaqën në tekstin e kërkesës, të mbyllura në kllapa kaçurrelë.

(KU mbetet. Sasia)

Nëse specifikohet zgjedhja nga fusha e sasisë, atëherë kjo fjali do të futet në kërkesën përfundimtare. Ku lloji i kushtit dhe vlera e krahasimit do të përcaktohen duke vendosur opsionin e raportit.

Pra, mendoj se ky është material i mjaftueshëm për sot. Nëse ka ndonjë pikë të paqartë, mos hezitoni të pyesni, sepse kjo është arsyeja pse komentimi është i mundur. Ky material do të përgatitet për t'u ngjitur së shpejti, kështu që abonohuni në përditësimet në faqen tonë të internetit që të mos humbisni!

Dhe në këtë seri mësimesh do të shikojmë funksionet e gjuhës së shprehjes SKD, do të flasim për veçoritë e sistemit të paraqitjes dhe gjithashtu do të analizojmë cilësimet themelore të fushave të paraqitjes. Fat të mirë në të kuptuarit e këtij materiali të vështirë!

Në fund të artikullit dua t'ju rekomandoj një falas nga Anatoli Sotnikov. Ky është një kurs nga një programues me përvojë. Ai do t'ju tregojë në një bazë të veçantë se si të ndërtoni raporte në sistemin e kontrollit të aksesit. Thjesht duhet të dëgjoni me kujdes dhe të mbani mend! Ju do të merrni përgjigje për pyetjet e mëposhtme:
  • Si të krijoni një raport të thjeshtë të listës?
  • Për çfarë shërbejnë kolonat Fusha, Shtegu dhe Titulli në skedën "Fushat"?
  • Cilat janë kufizimet për fushat e paraqitjes?
  • Si të konfiguroni rolet në mënyrë korrekte?
  • Cilat janë rolet për fushat e paraqitjes?
  • Ku mund ta gjej skedën e përbërjes së të dhënave në një pyetje?
  • Si të konfiguroni parametrat në sistemin e kontrollit të hyrjes?
  • Bëhet edhe më interesante...
Ndoshta nuk duhet të përpiqeni të lundroni vetë në internet në kërkim të informacionit të nevojshëm? Për më tepër, gjithçka është gati për përdorim. Vetëm filloni! Të gjitha detajet në lidhje me atë që është në mësimet e videove falas janë në faqen e autorit zbutës http://www..pngzbutës 2015-12-07 14:51:12 2018-06-12 13:14:13 Sistemi i përbërjes së të dhënave (DCS). Pjesa 2.