Utilizarea selecțiilor în SCD. Utilizarea selecțiilor din DCS elemente sintactice ale extensiei limbajului de interogare a sistemului de compunere a datelor

Extensie limbaj de interogare pentru sistemul de compunere a datelor

Extinderea limbajului de interogare pentru sistemul de compunere a datelor se realizează utilizând instrucțiuni sintactice speciale incluse în acolade și plasate direct în textul interogării.

Elemente sintactice ale extensiei limbajului de interogare a sistemului de compunere a datelor

ALEGE

Această propoziție descrie câmpurile pe care utilizatorul le va putea selecta pentru ieșire. După acest cuvânt cheie, sunt listate aliasurile câmpurilor din lista principală de selecție a interogărilor care vor fi disponibile pentru configurare, separate prin virgule.

De exemplu:

(SELECTARE articol, depozit)

După aliasul câmpului poate exista o combinație de caractere „.*”, ceea ce indică posibilitatea de a utiliza câmpuri copil din acest câmp.

De exemplu, intrarea Nomenclatură.* indică posibilitatea utilizării câmpurilor copil din câmpul „Nomenclatură” (de exemplu, câmpul „Nomenclatură.Cod”). Elementul SELECT poate apărea numai în prima interogare de alăturare.

UNDE

Sunt descrise câmpurile pe care utilizatorul poate aplica selecția. Această propunere utilizează câmpuri de tabel. Utilizarea alias-urilor câmpurilor din lista de selecție nu este permisă. Fiecare parte a uniunii poate conține propriul element WHERE.

(UNDE Nomenclatura.*, Depozit)

Un exemplu simplu

Este necesar să obțineți vânzări pentru perioada + afișarea întregului articol, indiferent dacă au existat vânzări sau nu. Adică trebuie să selectați date din tabelul cifrei de afaceri din Registrul vânzărilor, date din directorul nomenclatorului. Să omitem întrebarea de ce avem nevoie de toată nomenclatura.

Pentru a rezolva problema, puteți crea o interogare care conectează articolul și tabelul cifrei de afaceri din vânzări cu o îmbinare la stânga, ca urmare, pentru articolul care nu a fost vândut în perioada selectată, vom obține valorile câmpului Contrapartidă, Acord, Cantitate, Sumă= nul. Aceasta cerere:

SELECT ReferenceNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty, SalesTurnover.Counterparty Agreement, SalesTurnover.QuantityTurnover AS Cantitate, SalesTurnover.CostTurnover AS Cost FROM Reference.Nomenclature AS Reference. menclature.Link = SalesTurnover.Nomenclature

Iată rezultatul:

Contrapartidă Acord Nomenclatură Cantitate Sumă
nul nul _Test1 nul nul
LLC „Coarne și copite” Acord1 Papuci 10 1200
"Gazprom" Mișto contract Cizme 5 13000
nul nul Galoshes nul nul
nul nul Ardezii nul nul

În acest exemplu, nu au existat vânzări ale articolelor: „Plantofi” și „Papuci”

Și totul ar fi bine, dacă grupăm eșantionul după contraparte, atunci toate articolele nevândute se vor încadra într-un grup separat, unde Contraparte = Null, dar clientul dorește să aibă o selecție aleatorie în raport în funcție de câmpul contraparte (în mod firesc, aceasta înseamnă contrapartea din Registrul vânzărilor). Ce ar trebuii să fac? La urma urmei, de fapt, trebuie doar să filtram tabelul Vânzări. Dacă folosim completarea automată în constructorul ACS, atunci câmpurile de selecție disponibile vor include câmpul Contrapartidă, totul pare să fie în regulă, dar la executarea unui raport cu selecție de contraparte vom pierde toate înregistrările din legătura cu articolul. De exemplu, să setăm selecția: Contrapartidă = LLC „Coarne și copite”. Rezultatul va arăta astfel:

Deloc ce ne trebuie, nu?

Pentru a rezolva problema, puteți, desigur, să adăugați un parametru la interogare, de exemplu, la parametrii unui tabel virtual Cifra de afaceri din vânzări, dar in acelasi timp se pierde flexibilitatea setarii tipului de comparatie.

Există o soluție: pentru aceasta în generator de interogări pe filă Compoziția datelor => Mese adăugați un câmp de condiții la condițiile tabelului virtual Cifra de afaceri din vânzăriși își schimbă porecla în CounterpartySelection

Pentru a nu confunda utilizatorul cu câmpurile de selecție, vom dezactiva câmpul de condiție Contrapartidăși schimbați titlul câmpului CounterpartySelection


Ca urmare a executării acestei scheme cu selecția activată de câmpul contraparte, interogarea rezultată va lua forma:

SELECT SprNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty AS Counterparty, SalesTurnover.Counterparty Agreement AS Counterparty Agreement, SalesTurnover.QuantityTurnover AS >Quantity, SalesTurnover.CostTurnover AS Counterparty, SalesTurnover AS Counterparty Agreement(Counterparty ASgrement) sentation, 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 Nomenclature.Spr.Nomenclature.Vânzare.

Și în consecință rezultatul:

Contrapartidă Acord Nomenclatură Cantitate Sumă
nul nul _Test1 nul nul
LLC „Coarne și copite” Acord1 Papuci 10 1200
nul nul Cizme nul nul
nul nul Galoshes nul nul
nul nul Ardezii nul nul

Test1 este un grup din directorul Nomenclatură în care se află totul

La publicație este atașată schema XML a raportului utilizat în publicație. Am creat circuitul în Integrated Automation, dar cred că totul va funcționa bine atât în ​​UPP, cât și în UT 10

Rezumând

Acest exemplu arată cum să vă creați propriile setări de selecție în sistemul de control al accesului și să le dezactivați pe cele create automat dacă proiectați un circuit cu marcajul activat Completare automată.

Dacă aveți suficientă experiență pentru a crea circuite fără a utiliza Completare automată- atunci acest sfat nu are sens.

Software utilizat

  • Program de captură de ecran SnimOK!
  • Editor de fișiere XML

Atenţie! Aceasta este o versiune introductivă a lecției, ale cărei materiale pot fi incomplete.

Conectați-vă la site ca student

Conectați-vă ca student pentru a accesa materialele școlare

Sistem de compunere a datelor 1C 8.3 pentru începători: conectarea seturi de date

  • Scrieți un raport care să afișeze clienții și produsele lor preferate. Fiecare client are o culoare preferată, iar fiecare produs are propria sa culoare - pe baza acestor culori, trebuie să determinați „favoritul” produsului. De exemplu, dacă culoarea preferată a lui Andrey este roșu, atunci una dintre alimentele sale preferate va fi roșiile (sunt roșii).
  • Aplicați două seturi de date în raport. Primul set este reprezentat de date din tabelul de director „Clienți”. Al doilea sunt datele din tabelul directorului „Food”.
  • Implementează legătura dintre aceste două seturi, astfel incat raportul sa contina doar produsele preferate pentru fiecare client.

Creați un nou raport

Deschideți baza de date „Gastronom” în configurator și creați un nou raport prin meniul principal:

Tip document - „Raport extern”:

Sub forma unui nou raport, indicați numele „Lecția 6” și faceți clic pe butonul „Deschide diagrama compoziției datelor”:

Lăsați numele implicit al schemei:

Adăugarea primului set de date

În diagrama care se deschide, accesați fila „Seturi de date” și selectați „Adăugați un set de date - Interogare” folosind semnul plus verde:

Apelați constructorul cererii:

Indicăm tabelul „Clienți” și câmpurile care trebuie obținute din cerere:

Adăugarea unui al doilea set de date

Adăugați un al doilea set de date:

Selectați-l (DataSet2) și apelați din nou constructorul de interogare:

Indicăm tabelul directorului „Food” și câmpurile care trebuie obținute din cerere:

Textul de solicitare rezultat a fost:

Vă rugăm să rețineți că în prezent avem două seturi de date în raport: Data Set1 și Data Set2. Fiecare are propriul text și date de solicitare.

A face numele mai descriptive

Pentru claritate, să redenumim DataSet1 în Customers și DataSet2 în Food.

Faceți acest lucru făcând dublu clic pe fiecare dintre seturi:

Putem folosi datele din fiecare set din raportul nostru. Vom accesa aceste date prin câmpuri.

În prezent, setul „Clienți” are următoarele câmpuri: „Nume” și „Culoare Favorită”, iar setul „Mâncare” are: „Nume” și „Culoare”.

Vedem că numele se suprapun și ne putem încurca cu ușurință. Deci, să schimbăm numele câmpurilor pentru a fi mai semnificative.

Selectați setul „Clienți” și modificați numele câmpurilor astfel:

Apoi selectați setul „Mâncare” și schimbați numele câmpurilor astfel:

Apelarea constructorului de setări

În cele din urmă, accesați fila „Setări” și faceți clic pe bagheta magică pentru a afișa designerul de setări:

Tipul raportului - „Lista...”:

Selectați câmpurile pentru raport din ambele seturi:

Vezi de ce a fost atât de important să schimbi numele câmpurilor? În stadiul setărilor de compoziție a datelor, nu vedem din ce seturi provin aceste câmpuri. Vedem doar numele lor.

Verificarea raportului

Salvăm raportul și îl generăm în modul utilizator:

Da. Bine, dar nu chiar. A avut loc o așa-numită îmbinare încrucișată a două seturi (ar trebui să fiți foarte familiarizați cu acest lucru de la îmbinările în interogările pe care le-am studiat în modulele anterioare). Fiecare înregistrare din tabelul Clienți are o înregistrare corespunzătoare din tabelul Alimente.

Dar din toate aceste înregistrări trebuie să lăsăm doar pe acelea al căror câmp „Culoarea preferată a clientului” este egal cu câmpul „Color alimentară”:

Conectăm două seturi de date

Pentru a face acest lucru, vom conecta două seturi de date (Clienți și Alimente) folosind câmpurile Customer's FavoriteColor și FoodColor.

Accesați fila „Legături seturi de date” și faceți clic pe butonul plus pentru a adăuga un nou link:

Configuram parametrii ca in figura de mai jos:

O sa fac o explicatie.

Sursa și receptorul comunicării. Ei bine, totul este clar aici. Indicăm primul set (Clienți) și al doilea set (Food) de date. Aș dori să atrag o atenție deosebită asupra faptului că comunicarea se va desfășura conform principiului unire stânga exterioară(am tratat-o ​​la tema cererilor din modulele anterioare). Pe baza acestui lucru, trebuie să alegeți care set va fi sursa și care receptor.

Sursa de expresie. Indicăm aici o expresie sau pur și simplu un câmp din setul de date sursă (am specificat câmpul ClientFavoriteColor din setul Clienți aici).

Expresia receptorului. Indicăm aici o expresie sau pur și simplu un câmp din setul de date receptor (am indicat aici câmpul ColorFood din setul Food).

Astfel, această conexiune va lăsa din lista anterioară doar acele rânduri pentru care câmpul FavoriteColor al Clientului este egal cu câmpul FoodColor.

Să salvăm raportul și să-l rulăm în modul utilizator:

Grozav!

O sa fac o explicatie despre domeniu " Condiția de comunicare„, despre care programatorii începători își lovesc atât de des sulițele.

Condiția de conectare este un câmp auxiliar. Puteți scrie expresii acolo implicând câmpuri numai din setul de date specificat în sursa linkului.

În acest caz, pentru toate rândurile din sursa linkului, această expresie (condiția linkului) va fi verificată înainte ca linkul să fie făcut. Și dacă această expresie este TRUE, atunci se va încerca să se stabilească legături între acest rând și rândurile de la receptorul de legătură. Dacă expresia este FALSĂ, atunci nu se vor face astfel de încercări.

Conectați-vă la site ca student

Sistemul de compunere a datelor 1C 8.3 pentru începători: primul raport despre SKD

Dacă nu ați citit introducerea acestui modul, vă rugăm să o citiți: .

Pentru a finaliza lecțiile veți avea nevoie 1C 8.3 (nu mai jos 8.3.13.1644 ) .

Dacă aveți deja instalată versiunea 1C 8.3, utilizați-o. Dacă nu, descărcați și instalați versiunea educațională, pe care 1C o produce special în scopuri educaționale: .

Următoarea comandă rapidă ar trebui să apară pe desktop:

Pentru toate lecțiile din această serie vom folosi baza de date Gastronom pe care am pregătit-o. Coincide complet cu baza pe care am folosit-o în modulele școlare atunci când studiem interogările. Prin urmare, mă aștept să fiți familiarizați cu cărțile și documentele sale de referință.

Dacă l-ați șters, descărcați-l din nou folosind următorul, despachetați-l și adăugați-l la lista de baze de date.

În cele din urmă, bancul de lucru este configurat și acum vom crea primul nostru raport împreună folosind sistemul de compunere a datelor. Va fi foarte simplu să demonstrezi capacitățile generale ale unui sistem de compunere a datelor (abreviat SKD).

Stabilirea unui obiectiv

Scopul acestei lecții- creați un raport care, în modul utilizator, afișează o listă de clienți cu următoarele câmpuri:

  • Nume
  • Podea
  • Culoarea preferată a clientului.

Raportul trebuie să fie extern. Aceasta înseamnă că va fi creat și configurat în configurator și apoi salvat ca fișier separat (extern) pe computer.

Pentru a genera un astfel de raport în 1C, utilizatorul va trebui să lanseze baza de date în modul utilizator, să deschidă acest fișier și să facă clic pe butonul „Generează”.

Merge!

Crearea unui raport

Lansăm configuratorul pentru baza de date Gastronom:

Din meniul principal, selectați „Fișier” -> „Nou...”:

Selectați „Raport extern”:

Crearea unei diagrame de aspect de date în cadrul raportului

Se deschide fereastra pentru crearea unui raport extern. Pentru nume, introduceți: " Lectia 1", apoi apăsați butonul " Diagrama de compoziție a datelor deschise":

Designerul de creare a schemei a început. Suntem de acord cu numele implicit " MainData Layout Schema" și apăsați butonul " Gata":

S-a deschis fereastra principală de lucru, cu multe file și câmpuri, în care ne vom configura schema de aspect al datelor.

Nu trebuie să ne sperii - există într-adevăr o mulțime de oportunități aici, dar nu avem nevoie de toate. Mai ales la prima lecție.

Acum suntem la marcaj " Seturi de date— Vom rămâne acolo.

Scriem o cerere prin constructor

Sistemul de compunere a datelor (abreviat ca DCS) ne cere date, pe care îl va afișa utilizatorului.

Cel mai simplu mod - scrie o cerere până la bază. La școală am învățat să scriem și să înțelegem cererile - așa că mă aștept să aveți abilitățile adecvate.

Click pe verde semnul plus și în lista derulantă selectați elementul " Adăugați un set de date - Interogare":

Sarcina noastră este să scriem textul solicitării în acest câmp. Ai uitat încă cum să faci asta?

Vă dau un indiciu:

În această interogare am selectat trei câmpuri (" Nume", "Podea" Și " Culoare preferata") din tabel " Director.Clienți".

Dar nu vă grăbiți să scrieți manual acest text în câmpul „Solicitare”.

Acum vom crea aceeași cerere vizual, doar folosind mouse-ul. Această metodă se numește „ Constructor de interogări".

Pentru a apela acest constructor, faceți clic pe butonul " Constructor de interogări..." în partea dreaptă sus a câmpului "Solicitare":

În fereastra care se deschide, trageți tabelul " Clienții" de la prima coloană la a doua pentru a indica că din acest tabel vom interoga datele:

A ieșit așa:

În continuare, vom deschide tabelul " Clienții„în a doua coloană prin semn” La care se adauga"pentru a vedea toate câmpurile și trageți câmpul" Nume" din a doua coloană la a treia pentru a indica faptul că din acest tabel trebuie să interogăm câmpul "Nume":

A ieșit așa:

Să facem la fel cu câmpurile” Podea" Și " Culoare preferata". Rezultatul va fi astfel:

Faceți clic pe butonul „OK” pentru a părăsi generatorul de interogări și pentru a vedea că textul interogării este adăugat automat în câmpul „Interogare”.

Mai mult, pe baza textului cererii, 1C însuși a scos numele câmpurilor (zona de deasupra cererii) care vor fi utilizate de schema de compunere a datelor:

Acum că am compilat o solicitare, ACS știe cum să obțină date pentru raport.

Configurarea prezentării datelor

Rămâne cumva vizualiza aceste date pentru utilizator sub forma unui formular tipărit. Și aici ACS poate face minuni!

Pentru a crea un astfel de miracol, să mergem la fila " Setări" și faceți clic pe butonul designer de setări ( bagheta magica):

În fereastra care se deschide, specificați tipul de raport " Listă"și apăsați „ Mai departe":

În fereastra următoare, selectați (prin glisare) câmpurile care trebuie afișate în listă (trageți toate cele disponibile pentru noi: " Culoare preferata", "Nume" Și " Podea"):

Să obținem acest rezultat și să apăsăm butonul " Bine":

Designerul de setări s-a închis și elementul „ Intrări detaliate":

Raportul este gata, să-l verificăm. Pentru a face acest lucru, mai întâi salvați raportul ca fișier extern.

Salvați raportul ca fișier

Deschideți elementul din meniul principal " Fişier"->"Salvați":

Îl voi salva pe desktop sub numele " Lectia 1":

Verificarea raportului în modul utilizator

În cele din urmă, să închidem configuratorul și să mergem la baza noastră de date în modul utilizator:

Nume de utilizator „Administrator”, fără parolă:

Prin meniu, selectați elementul " Fişier"->"Deschis...":

Și specificați fișierul raport (l-am salvat pe desktop sub numele „Lesson1.erf”:

S-a deschis formularul de raportare, faceți clic pe butonul „ Formă":

Gata! Iată imprimabilul nostru cu o listă de clienți, culoarea și sexul lor preferat:

Formularul imprimabil poate fi imprimat cu ușurință. Pentru a face acest lucru, trebuie doar să selectați elementul " Fişier"->"Sigiliu...":

Așa, fără programare, am reușit să creăm un raport cu drepturi depline pe care utilizatorii îl pot deschide în bazele lor de date, îl pot genera și imprima.

studenți - răspund prin poștă, dar mai întâi uită-te la.

Conectați-vă la site ca student

Conectați-vă ca student pentru a accesa materialele școlare

În ultimul meu articol, am scris deja că 1C este o platformă paradoxală. Sistemul de compunere a datelor este unul dintre aceste paradoxuri. SKD este conceput pentru proiectarea rapoartelor complexe și implică înlocuirea programării „manuale” a rapoartelor cu proiectarea într-un set de instrumente multifuncțional. Capacitatea de a utiliza sisteme de control al accesului a apărut în cea de-a opta versiune, dar a durat mult până să apară versiunea 8.2 pentru ca 1C să o poată folosi în produsele sale standard. Pe de o parte, ACS este un set de instrumente multifuncțional, cu ajutorul căruia puteți crea rapoarte foarte complexe fără o singură linie de cod. Cu toate acestea, sistemul de control al accesului are o barieră destul de ridicată la intrare; învățarea și începerea utilizării pe deplin a acestuia „din mers” este foarte dificilă, deoarece interfața nu este complet intuitivă, iar cele mai complete manuale de utilizare sunt disponibile numai în formă de literatură plătită.

În procesul studiului meu despre SKD, a apărut o problemă. Este necesar să obțineți date dintr-un tabel de valori terță parte folosind un limbaj de interogare și apoi să operați aceste date ca și cu date similare din tabelele bazei de date (operații de reducere, grupare și așa mai departe). În formatul clasic, am crea o interogare care primește informații din tabelul trecut la interogare ca parametru.

Solicitare = Solicitare nouă(
"ALEGE
| Tabel.Nomenclatură,
| Masa.Depozit
|DIN
| &TK AS Tabel");
Request.SetParameter("TZ", TZ);

Dar cu SKD totul nu este atât de simplu. Din păcate, este imposibil să se efectueze operația descrisă mai sus în sistemul de compunere a datelor. Cu toate acestea, sistemul a implementat capacitatea de a încărca tabele externe de valori.

Aici merită să facem o scurtă digresiune și să vorbim despre seturi de date. Seturile de date sunt surse de informații de la care sistemul de management al datelor primește date pe care ulterior le compila într-un raport. Seturile de date sunt împărțite în tipuri, folosind în principal tipul „Interogare”, în corpul căruia programatorul scrie o interogare în baza de date. Tipul „Obiect” este folosit pentru a încărca date de la obiecte externe. În ambele cazuri, rezultatul este un anumit set de câmpuri obținute ca urmare a executării unei cereri sau a încărcării unui obiect extern. Ulterior, aceste câmpuri pot fi manipulate în fila „Setări”, împreună cu setări detaliate pentru structura raportului. Pentru a interconecta diferite seturi, ACS oferă posibilitatea de a indica conexiuni între seturi de date în fila cu același nume. Aceste conexiuni sunt un analog direct al uniunii din stânga într-o interogare clasică. Cu toate acestea, trebuie luat în considerare faptul că interogările din orice set de date nu „știu” despre existența altor seturi de date; în cele din urmă, relațiile dintre seturile de date vor afecta aspectul datelor conform structurii specificate în „ fila Setări”.

Să detaliem problema până la un exemplu. Există un raport standard: Declarații de plată pentru organizarea configurației ZiK 8. Este necesar ca tipurile de calcule din raport să fie grupate în anumite grupuri. Calcul Corespondențele Vizualizare-Grup sunt stocate într-un tabel de valori extern. Pentru a-l încărca în schema principală de aspect al datelor, creăm un „obiect de set de date” cu numele „Grupuri” (Figura 2). Facem o conexiune cu „setul de date de interogare” - „Angajări” după tip de calcul (Figura 3). În „Setul de date solicitate” - „Angajări” există informații pentru grupuri, ștergem toate intrările. Ulterior, în fila „Setări” putem folosi câmpul „Grup”, a cărui valoare este încărcată dintr-o sursă de date externă (Figura 4). În funcția de generare a rapoartelor, suplimentăm încărcarea datelor externe.

Funcția GenerateReport(Rezultat = Nedefinit, Date de decriptare = Nedefinit, OutputInReportForm = True) Export

//obținerea sau formarea tabelului necesar de valori „Grupuri” și scrierea acestuia în variabila cu același nume

ExternalData = New Structure();//creează și completează structura de date externe
ExternalData.Insert(Grupuri);

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

EndFunction

Dacă am face un raport de la zero, codul de lansare pentru generarea raportului ar arăta astfel:

ExternalDataSets = Structură nouă;
ExternalDataSets.Insert(„Grupuri”, Grupuri); //Grupuri - tabelul de valori dorit
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //aspectul nostru cu diagrama fluxului de date
Settings = DataCompositionScheme.DefaultSettings;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Settings);
DataCompositionProcessor = newDataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = New TabularDocument;
OutputProcessor = Nou OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Citit 9660 o singura data

O zi bună, cititorii mei! Astăzi vom continua să ne uităm la elementele de bază ale sistemului de layout. În această serie de articole, ați aflat ce este un sistem de control al accesului și v-ați familiarizat cu principalele componente ale unui sistem de control al accesului. De asemenea, am analizat datele de intrare pentru construirea unui raport și am învățat principalele etape ale rulării unui raport pe un sistem de control al accesului. În plus, mulți au avut ocazia să-și testeze cunoștințele trecând un scurt test. Acum puteți arunca o privire asupra conținutului articolului și puteți vedea ce va fi acoperit în el.

Set de date - interogare.

  1. Spre deosebire de o interogare obișnuită, nu există nicio clauză REZULTATE în interogarea compoziției datelor. În schimb, totalurile sunt generate în fila „Resurse”. Pe această filă, selectați câmpurile pentru care doriți să obțineți expresii finale. Și în fila „Setări” este indicat în ce secțiune vor fi obținute rezultatele, adică aici sunt create grupări adecvate și resursele sunt calculate din acestea. Puteți citi mai multe despre asta în articol.
  2. Următorul punct se referă la setările de selecție. Există două posibilități de execuție.
    1. Prin setările opțiunii de raportare. Acest lucru se poate face în fila „Setări” - „Selectare”. Dacă folosim această opțiune, atunci este cea mai flexibilă, deoarece putem specifica diferite tipuri de comparații pe care chiar și utilizatorul le poate alege. În plus, atunci când utilizați această opțiune, condițiile de filtrare sunt impuse în interogarea în sine. Dacă raportul se bazează pe o interogare de lot care utilizează tabele temporare, atunci selecția va afecta toate tabelele din interogarea de lot în care apare câmpul de selecție.
    2. La nivelul cererii. Dacă folosim o interogare, atunci nu vom putea folosi altceva decât operația de egalitate.
      Excepția este cazul când trebuie să efectuăm o filtrare „hard” a datelor după o anumită valoare. Să zicem, după valoarea de enumerare. În fila „Parametri” putem seta o condiție. Dacă activăm indicatorul „Limit Disponibilitate”, utilizatorul nu va putea anula această condiție.
  3. De asemenea, este mai corect să aplicați sortarea la nivelul setărilor opțiunilor de raportare.
    1. Dacă specificați un câmp de sortare în cerere, atunci utilizatorul va specifica un alt câmp în configurarea versiunii sale de raport, atunci setarea noastră făcută la nivelul cererii va avea cea mai mică prioritate. Sortarea setată de utilizator în configurarea variantei de raport va fi efectuată mai întâi. Prin urmare, dacă trebuie să setați sortarea „în mod implicit”, atunci folosim setările opțiunii de raport din Configurator.
    2. Ce se întâmplă dacă trebuie să configurați sortarea „hard” într-un raport, astfel încât utilizatorul să nu o poată schimba? Apoi setăm sortarea la nivel de interogare, iar în fila „Seturi de date” setăm o limitare a câmpului. Selectați setul de date necesar și bifați caseta din coloana „Limitarea câmpului” - „Comandă”.

Parametrii tabelului virtual.

  • Construirea tabelelor virtuale de registre contabile, registre de acumulare și registre de informații depinde de o dată dată. Aceasta poate fi fie o dată, fie un interval, cum ar fi pentru un tabel de solduri și cifra de afaceri. SDS-ul este creat în așa fel încât dacă raportul se bazează pe un tabel virtual, atunci este necesar să lase utilizatorul să aleagă pentru ce interval sau la ce dată să genereze raportul. SKD adaugă automat parametrii necesari perioadei la diagrama de aspect.
  • Dacă în interogare este selectat un tabel virtual de solduri sau un tabel virtual de registre de informații, atunci se adaugă automat un parametru numit „Perioadă”.
  • Dacă în cerere este selectat un tabel virtual de solduri și cifra de afaceri sau un tabel virtual de cifra de afaceri, atunci se adaugă automat parametrii „Începutul perioadei” și „Sfârșitul perioadei”.
  • Ce să faci dacă trebuie să obții solduri la sfârșitul perioadei? Există două moduri:
    1. Accesați fila „Parametri” și în parametrul „Perioadă” din coloana „Expresii” scrieți următoarele:
      &EndPeriod. Vom activa, de asemenea, indicatorul „Limita disponibilitate”.
    2. Scăpăm complet de parametrul „Perioada” și îl înlocuim cu parametrul „Sfârșitul perioadei”. Să configuram un parametru opțional de tabel virtual:
      • Accesați fila „Seturi de date” și faceți clic pe butonul „Generator de interogări...”.
      • În fila „Compoziția datelor” din colțul din stânga sus, faceți clic pe butonul pentru a deschide dialogul „Opțiuni tabel virtual” (acesta este un buton pătrat gri cu o imagine a unei roți dințate pe fundalul unui tabel mic).
      • În câmpul „Perioad” al casetei de dialog scriem: &End of Period.
      • Acum, în textul solicitării setului de date din parametrii tabelului virtual, acest parametru va apărea înconjurat de acolade:
Registrul de acumulare. Bunuri rămase. Remaining(((&EndPeriod) ), ) AS Remaining

Acoladele indică o extensie a limbajului de interogare pentru compoziția datelor. Acest lucru indică, de asemenea, că acest parametru este opțional. Aceasta înseamnă că dacă nu este definit în schema de compunere a datelor, atunci soldurile vor fi obținute de la data curentă.

Extensie de limbaj de interogare.

Acestea sunt instrucțiuni speciale care sunt incluse în acolade în corpul cererii. Aceste instrucțiuni indică câmpurile și parametrii care pot fi manipulați la configurarea unei versiuni de raport. Datele din acolade vor fi prezente în diagrama de aspect chiar dacă caseta de selectare Completare automată este dezactivată.

Când se creează un set de date de interogare, în mod implicit, câmpurile disponibile ale schemei de compunere a datelor sunt completate automat pe baza interogării create (caseta de selectare „Completare automată” este selectată în fila „Seturi de date”).

Cum funcționează completarea automată a câmpurilor disponibile pentru schema de compoziție a datelor?

    1. Câmpurile din lista de selecție a interogărilor și câmpurile lor secundare devin disponibile.
    2. Dacă selectăm din registrul de acumulare, atunci chiar și câmpurile de înregistrare care nu sunt incluse în cerere devin disponibile în câmpurile de compunere a datelor. Dar aceste câmpuri sunt disponibile doar pentru selecție (în expresii condiționate)
      și nu pot fi folosite ca câmpuri de ieșire.
    3. Parametrii tabelelor virtuale „Perioada”, „Începutul perioadei” și „Sfârșitul perioadei” devin
      disponibile pentru selecție.
    4. Dacă în textul solicitării este specificată o condiție „grea”, atunci acest parametru va fi adăugat și la fila „Parametri”.

Dacă caseta de selectare Completare automată este debifată, câmpurile schemei de compunere a datelor sunt șterse, dar parametrii încadrați între acolade în textul cererii rămân.

Cum să completați singur câmpurile schemei de compunere a datelor?

Debifați caseta de selectare „Completare automată” din fila „Seturi de date”.

Faceți clic pe butonul „Query Builder...”. Să creăm următoarea cerere:

SELECT Rămășițele. Nomenclatură AS Nomenclatură, Rămășițe. Cantitate AS Cantitate RegisterAcumulare. Bunuri rămase. Remaining(((&EndPeriod) ), ) AS Remaining

În fila „Tabele” putem seta parametrii tabelului virtual pentru toate mesele.

Acum, în fila „Aspect de date”, selectați fila „Câmpuri”. Aici setăm câmpurile de selecție care
vor fi prezentate în diagrama de layout.

Câmpul „Și....” înseamnă că înregistrările secundare vor fi incluse în selecție
câmpuri de tip complex, cum ar fi directoare și documente etc. Dacă câmpul este un număr, atunci va fi imposibil să puneți un steag în câmpul „Și...”.

Să selectăm două câmpuri „Nomenclatură” și „Cantitate”. Pentru câmpul „Nomenclatură”, setați steagul „I..”
astfel încât să fie selectate înregistrările copil. Veți primi următoarea interogare:

SELECT Rămășițele. Nomenclatură AS Nomenclatură, Rămășițe. Cantitate AS Cantitate (SELECT Nomenclatura. * , Cantitate) Registrul de acumulare. Bunuri rămase. Remaining(((&EndPeriod) ), ) AS Remaining

În noua cerere, între acolade, a apărut o altă secțiune SELECT - acesta este textul extensiei care indică câmpurile care vor fi disponibile în aspect. Câmpul „Nomenclatură.*” indică faptul că câmpul „Nomenclatură” și detaliile sale secundare, cum ar fi „Cod”, „Nume”, etc. vor fi disponibile. Deci, am completat singuri câmpurile de aspect.

Dar acum nu putem folosi câmpuri în condiții de aspect. Dacă accesați fila „Setări” și selectați fila „Selectare”, nu puteți seta condiții pentru niciunul dintre câmpurile pe care le-am selectat în paragraful anterior. De ce?

Impunerea de condiții pentru parametrii tabelului virtual trebuie de asemenea specificată în fila „Compoziția datelor” a Proiectantului de interogări. În colțul din stânga sus, faceți clic pe butonul pentru a deschide dialogul „Parametrii tabelului virtual”.
(acesta este un buton pătrat gri cu o imagine a unei roți dințate pe fundalul unei mese mici). În câmpul „Condiție” al casetei de dialog scriem: Nomenclatură. Acum, în textul solicitării setului de date din parametrii tabelului virtual, acest parametru „Nomenclatură” va apărea înconjurat de acolade:

Registrul de acumulare. Bunuri rămase. Solduri(((&Sfârșitul perioadei) ), ((Nomenclatură) )) Solduri AS

În limbajul obișnuit de interogare, specificarea unui parametru arată astfel: Nomenclatură = &Nomenclatură. Dar în extensia limbajului de interogare este scris diferit. Este indicat doar numele câmpului. Aici nu specificăm operația de egalitate, inegalitate sau în ierarhie, deoarece utilizatorul însuși va selecta operația dorită în setările sale.

În fila „Compoziția datelor” a Generatorului de interogări, vedem o altă filă, „Condiții”. Este necesar să se indice în extensia limbajului de interogare condițiile pentru clauza WHERE. Selectați câmpul „Cantitate”. Acest câmp este acum disponibil în condițiile din fila „Setări” - „Selectare”. Și în textul cererii au apărut linii noi, cuprinse între acolade.

(UNDE rămâne. Cantitate)

Dacă se specifică selecția după câmpul cantității, atunci această propoziție va fi inserată în cererea finală. Unde tipul de condiție și valoarea de comparație vor fi determinate prin configurarea opțiunii de raportare.

Deci, cred că este suficient material pentru astăzi. Dacă există puncte neclare, nu ezitați să întrebați, pentru că de aceea este posibil să comentați. Acest material va fi pregătit pentru a fi fixat în curând, așa că abonați-vă la actualizări de pe site-ul nostru pentru a nu rata!

Și în această serie de lecții ne vom uita la funcțiile limbajului de expresie SKD, vom vorbi despre caracteristicile sistemului de aspect și, de asemenea, vom analiza setările de bază ale câmpurilor de aspect. Succes în înțelegerea acestui material dificil!

La finalul articolului vreau să vă recomand unul gratuit de la Anatoly Sotnikov. Acesta este un curs de la un programator experimentat. Vă va arăta separat cum să creați rapoarte în sistemul de control al accesului. Trebuie doar să ascultați cu atenție și să vă amintiți! Veți primi răspunsuri la următoarele întrebări:
  • Cum se creează un raport simplu de listă?
  • Pentru ce sunt coloanele Câmp, Cale și Titlu din fila „Câmpuri”?
  • Care sunt limitările pentru câmpurile de aspect?
  • Cum se configurează corect rolurile?
  • Care sunt rolurile câmpurilor de aspect?
  • Unde pot găsi fila de compoziție a datelor într-o interogare?
  • Cum se configurează parametrii în sistemul de control acces?
  • Devine și mai interesant...
Poate că nu ar trebui să încerci să navighezi singur pe internet în căutarea informațiilor necesare? În plus, totul este gata de utilizare. Doar începeți! Toate detaliile despre ceea ce este în tutorialele video gratuite sunt pe pagina autorului softmaker http://www..pngsoftmaker 2015-12-07 14:51:12 2018-06-12 13:14:13 Sistemul de compunere a datelor (DCS). Partea 2.