1s SKD-bewerkingsparameters. Schemaontwerper voor gegevenscompositie - tabblad Instellingen. Stapsgewijze rapportage maken

In de queryontwerper, wanneer deze wordt aangeroepen vanuit het configuratieformulier voor de gegevensbron, voor het gegevenscompositieschema. Er is een tabblad “kenmerken” waarvan het gebruik niet duidelijk wordt beschreven in de documentatie. In dit artikel zal ik proberen uit te leggen hoe en waarom kenmerken worden gebruikt in ACS.

In de queryontwerper, wanneer deze wordt aangeroepen vanuit het configuratieformulier voor de gegevensbron, voor het gegevenscompositieschema. Er is een tabblad “kenmerken” waarvan het gebruik niet duidelijk wordt beschreven in de documentatie. In dit artikel zal ik proberen uit te leggen hoe en waarom kenmerken worden gebruikt in ACS. Typische configuraties maken actief gebruik van het mechanisme van eigenschappen en eigenschapswaarden, dat voor vrijwel elk object beschikbaar is. Primitief werd dit mechanisme in naslagwerken geïmplementeerd in configuraties 7.7. Nu wordt dit mechanisme geïmplementeerd met behulp van een plan van kenmerktypen en een informatieregister, maar het idee blijft hetzelfde. Toen ik voor het eerst de noodzaak tegenkwam om dit mechanisme te gebruiken in een toegangscontrolesysteem, heb ik heel lang geworsteld met het organiseren van geneste zoekopdrachten, deze aan de hoofdselectie toegevoegd en mijn hoofd gebroken over hoe ik rekening moest houden met de mogelijkheid van de opkomst van nieuwe soorten eigendommen die nog niet bestonden op het moment dat het rapport werd ontwikkeld. Het hele mechanisme van eigenschappen, dat vanuit het oogpunt van de gebruiker eenvoudig en logisch was, leende zich niet voor enige normale verwerking totdat ik het tabblad "Kenmerken" ontdekte. De tabel op het tabblad is erg wispelturig: u voert de hele regel correct in, of u weigert de regel helemaal in te voeren; het systeem staat niet toe dat u een onvolledig gevulde regel 'voor later' achterlaat. Laten we dus op de details ingaan. Eerste kolom: Type – hier selecteren we het type object waaraan de kenmerken worden gekoppeld, bijvoorbeeld “DirectoryLink.Nomenclatuur”. Dit betekent dat het nu voor alle objecten van het opgegeven type mogelijk is om eigenschapswaarden te verkrijgen. Vervolgens moeten we in de volgende kolom Bron van weergaven de parameters van de bron van vastgoedweergaven instellen. De tabel- en query-opties zijn mogelijk; ik zal u later vertellen waarom de query-optie nodig is, laten we nu het tabelitem selecteren. In de kolom Typen kenmerken moeten we de infobase-tabel selecteren waarin de vereiste typen kenmerken zijn opgeslagen. In ons voorbeeld zal dit "Plan van typen kenmerken. Eigenschappen van objecten" zijn. Verder zijn de waarden die voor ons beschikbaar zijn voor selectie in de kolommen Sleutelveld, Naamveld en Waardetypeveld rechtstreeks afhankelijk van de velden van de tabel die we hebben geselecteerd. In het Sleutelveld selecteren we Link, in het Naamveld – Weergave (dit is wat de gebruiker zal zien als de naam van het attribuut) en in het Typeveld respectievelijk ValueType. Laten we nu verder gaan met de bron van waarden. Onze bron van waarden zal het informatieregister “ObjectPropertyValues” zijn, dus selecteren we de tabel in de kolom Bron van waarden en “InformationRegister.ObjectPropertyValues” in de kolom Karakteristieke waarden. Selecteer in de kolommen Object, Eigenschap, Waarde de overeenkomstige velden van het register Object, Eigenschap, Waarde. Het lijkt erop dat dat alles is. We gaan naar de schema-instellingen, voegen een groepering op producten toe en voegen een ondergeschikte groepering toe, bijvoorbeeld op Merken, we hebben zo'n eigenschap. We breiden de lijst met details van de nomenclatuurgroepering uit en... we zien daar geen eigenschappen: het feit is dat we in de configurator zitten, vanwaar er geen toegang is tot de gegevens. Hoe de nodige instellingen maken? De handigste manier om dit te doen is door de console voor gegevenscompositie te gebruiken, die op de ITS-schijf of die in het subsysteem “Developer Tools”. Maar u kunt de rapportinstellingen eenvoudig openen in de bedrijfsmodus. Laten we dus dezelfde instelling openen, maar dan in de bedrijfsmodus: Zoals u kunt zien, hebben we nieuwe "Details" toegevoegd, en...

Aandacht! Dit is een inleidende versie van de les, waarvan het materiaal mogelijk onvolledig is.

Log als student in op de site

Log in als leerling om toegang te krijgen tot schoolmateriaal

Datacompositiesysteem 1C 8.3 voor beginners: datasets verbinden

  • Schrijf een rapport waarin klanten en hun favoriete producten worden weergegeven. Elke klant heeft een favoriete kleur en elk product heeft zijn eigen kleur - op basis van deze kleuren moet u de 'favoriet' van het product bepalen. Als Andrey's favoriete kleur bijvoorbeeld rood is, dan zijn tomaten een van zijn favoriete gerechten (ze zijn rood).
  • Pas twee sets gegevens toe in het rapport. De eerste set bestaat uit gegevens uit de directorytabel "Clients". De tweede zijn gegevens uit de maptabel "Voedsel".
  • Implementeren verbinding tussen deze twee sets, zodat het rapport voor elke klant alleen de favoriete producten bevat.

Maak een nieuw rapport

Open de database "Gastronom" in de configurator en maak een nieuw rapport aan via het hoofdmenu:

Documenttype - "Extern rapport":

Geef in de vorm van een nieuw rapport de naam “Les 6” aan en klik op de knop “Open datacompositiediagram”:

Laat de standaardschemanaam staan:

De eerste gegevensset toevoegen

In het diagram dat wordt geopend, gaat u naar het tabblad “Datasets” en selecteert u “Dataset toevoegen - Query” met behulp van het groene plusteken:

Roep de verzoekconstructor aan:

We geven de tabel "Klanten" aan en de velden die uit de aanvraag moeten worden verkregen:

Een tweede dataset toevoegen

Voeg een tweede set gegevens toe:

Selecteer het (DataSet2) en roep de queryconstructor opnieuw aan:

We geven de tabel van de map "Voedsel" aan en de velden die uit de aanvraag moeten worden verkregen:

De resulterende verzoektekst was:

Houd er rekening mee dat we momenteel twee datasets in het rapport hebben: Data Set1 en Data Set2. Elk heeft zijn eigen verzoektekst en gegevens.

Namen beschrijvender maken

Voor de duidelijkheid: laten we DataSet1 hernoemen naar Klanten en DataSet2 naar Voedsel.

Doe dit door te dubbelklikken op elk van de sets:

We kunnen de gegevens van elke set gebruiken in ons rapport. We hebben toegang tot deze gegevens via velden.

Momenteel heeft de set “Klanten” de volgende velden: “Naam” en “Favoriete Kleur”, en de set “Eten” heeft: “Naam” en “Kleur”.

We zien dat de namen elkaar overlappen en we kunnen gemakkelijk in de war raken. Laten we dus de veldnamen wijzigen zodat ze betekenisvoller zijn.

Selecteer de set “Clients” en wijzig de veldnamen als volgt:

Selecteer vervolgens de set "Eten" en wijzig de veldnamen als volgt:

De instellingenconstructor aanroepen

Ga ten slotte naar het tabblad “Instellingen” en klik op het toverstafje om de instellingenontwerper te openen:

Rapporttype - "Lijst...":

Selecteer velden voor het rapport uit beide sets:

Zie je waarom het zo belangrijk was om de veldnamen te wijzigen? In het stadium van de gegevenscompositie-instellingen zien we niet uit welke sets deze velden afkomstig zijn. Wij zien alleen hun namen.

Het rapport controleren

We slaan het rapport op en genereren het in de gebruikersmodus:

Ja. Oké, maar niet echt. Er heeft een zogenaamde cross-join van twee sets plaatsgevonden (u zou hier goed bekend mee moeten zijn door de joins in queries die we in eerdere modules hebben bestudeerd). Elk record uit de tabel Klanten heeft een corresponderend record uit de tabel Voedsel.

Maar uit al deze records hoeven we alleen de records over te laten waarvan het veld “Favoriete kleur van de klant” gelijk is aan het veld “Voedselkleur”:

We verbinden twee sets gegevens

Om dit te doen, zullen we twee sets gegevens (Klanten en Voedsel) met elkaar verbinden met behulp van de velden Favoriete Kleur van de Klant en VoedselKleur.

Ga naar het tabblad “Data Set Links” en klik op de plusknop om een ​​nieuwe link toe te voegen:

We configureren de parameters zoals in de onderstaande afbeelding:

Ik zal een toelichting geven.

Bron en ontvanger van communicatie. Nou, alles is hier duidelijk. We geven de eerste set (Klanten) en de tweede set (Voeding) met gegevens aan. Ik zou speciale aandacht willen vestigen op het feit dat de communicatie volgens het principe zal plaatsvinden buitenste links sluit aan(we hebben dit besproken in het onderwerp verzoeken in eerdere modules). Op basis hiervan moet u kiezen welke set de bron zal zijn en welke de ontvanger.

Expressie bron. We geven hier een uitdrukking aan of eenvoudigweg een veld uit de brongegevensset (we hebben het veld ClientFavoriteColor gespecificeerd uit de hier ingestelde Clients).

Ontvanger expressie. We geven hier een uitdrukking aan of eenvoudigweg een veld uit de gegevensset van de ontvanger (we hebben hier het ColorFood-veld uit de set Voedsel aangegeven).

Deze verbinding zal dus uit de vorige lijst alleen die rijen overlaten waarvoor het FavorieteKleurveld van de Klant gelijk is aan het VoedselKleurveld.

Laten we het rapport opslaan en uitvoeren in de gebruikersmodus:

Geweldig!

Ik zal een uitleg geven over het vakgebied " Communicatieconditie", waarover beginnende programmeurs zo vaak op hun speer slaan.

De verbindingsvoorwaarde is een hulpveld. U kunt daar uitdrukkingen schrijven waarbij alleen velden betrokken zijn uit de gegevensset die is opgegeven in de linkbron.

In dit geval wordt voor alle rijen uit de linkbron deze expressie (linkvoorwaarde) gecontroleerd voordat de link wordt gemaakt. En als deze uitdrukking WAAR is, zal er een poging worden gedaan om koppelingen tot stand te brengen tussen deze rij en rijen van de verbindingsontvanger. Als de uitdrukking FALSE is, zullen dergelijke pogingen niet worden ondernomen.

Het tabblad repliceert het aangepaste dialoogvenster “Instellingen”, beschikbaar voor de gebruiker om rapportparameters te configureren.

Het invullen van de instellingen op dit tabblad wordt gebruikt om het standaardrapport in de gebruikersmodus van het rapport te configureren.
Het venster voor het instellen van het rapport is beschikbaar in de aangepaste rapportmodus, en het verschil met het instellen van de ACS in de configurator is dat u waarden kunt gebruiken van niet-voorgedefinieerde gegevens uit de database.
Het instellingenvenster bestaat uit een hoofdvenster waarin lijsten met groeperingen, tabellen en grafieken worden weergegeven en een reeks tabbladen waarin instellingsparameters worden ingesteld voor objecten die zijn opgegeven in de sectie Groeperingen. We kunnen aangeven welke instellingen momenteel worden bewerkt door op de knop te klikken met de inscriptie over welk object we bewerken:

Het is mogelijk om algemene instellingen voor het gehele rapport te bewerken, en door op de overeenkomstige knop te klikken kunt u de instellingen uitsluitend voor het geselecteerde object bewerken: groeperingselement, tabel, diagram.

Tabblad "Gegevensparameters"
Op dit tabblad worden de waarden van gegevensparameters ingesteld. De lijst met beschikbare dataparameters wordt bepaald op het tabblad “Parameters” van het ACS-diagram; hier worden alleen door de gebruiker gedefinieerde parameterwaarden ingesteld. Bovendien zijn alleen die parameters beschikbaar waarvoor het selectievakje “Beperkte beschikbaarheid” is uitgeschakeld in het toegangscontroleschema.


De tabel bevat verschillende kolommen:
1. “Gebruik” – door het aanvinken geeft de gebruiker aan of hij deze parameter al dan niet wil gebruiken om een ​​rapport te genereren.
2. “Parameter” - parameternaam
3. “Parameterwaarde” - de waarde van de parameter of een indicatie waar de waarde van de parameter kan worden opgehaald. Als u bijvoorbeeld de huidige waarde opnieuw instelt door op “X” te klikken, wordt door op de knop “T” te klikken de selectie van het parametertype in het dialoogvenster geopend:

De bron kan elke waarde zijn van het eenvoudige type String, Date, Number, Boolean of een verwijzing naar een object in de database. De bron voor deze parameter kan ook de waarde van een andere parameter zijn; hiervoor selecteert u de waarde “Gegevenscompositieveld” en selecteert u het gewenste veld uit de lijst met parameters.
Voor datums kunt u automatische waarden voor vervanging toewijzen: “Begin van deze dag”, “Begin van deze week”, enz.

Tabblad “Geselecteerde velden”.
Op dit tabblad definieert u de velden, behalve de groeperingen, die in het rapport worden weergegeven. Het tabblad bevat twee lijsten met beschikbare velden en geselecteerde velden. Naast de velden die in de datasets zijn gedefinieerd, zijn er ook parameters en systeemvelden “Sequence Number”, “Sequence NumberInGrouping”, “Level”, “LevelInGrouping”, evenals aangepaste velden die zijn gedefinieerd op het tabblad “Custom Fields” beschikbaar voor uitvoer .

U kunt velden overbrengen door te dubbelklikken op de naam in het linkervenster of door de speciale knop in het opdrachtpaneel te gebruiken. U kunt de volgende elementen toevoegen: “Nieuw veld”, “Nieuwe groep”, “Nieuw autoveld”. “Nieuw veld” - voegt een element toe waarin u een veld kunt selecteren uit de beschikbare lijst met velden. “Nieuwe groep” - u kunt een aantal velden onder één kopje groeperen. “Nieuw autoveld” - wordt gebruikt om aan te geven dat de velden die worden weergegeven voor groeperingen worden geselecteerd uit de groeperingsinstellingen van een hoger niveau. Nadat we bijvoorbeeld een aantal resourcevelden voor het hele rapport hadden gedefinieerd, hebben we een nieuw autoveld voor groeperingen gespecificeerd. U kunt elementen verwijderen met de knop Verwijderen, of ze per positie verplaatsen met de knoppen Verplaatsen. Door de vakjes aan te vinken, kunt u de zichtbaarheid van velden in het rapport aanpassen.
Nadat we een reeks velden hebben gedefinieerd, kunnen we de velden in de lijst bewerken; we moeten naar de veldbewerkingsmodus gaan, op de selectieknop klikken en het gewenste veld uit de lijst selecteren.

Voor hulpbronnen zijn verduidelijkingen voor attribuutberekeningen beschikbaar voor selectie: “% in groep” - gebruikt om het aandeel van de hulpbronnenwaarde voor de gehele groepering in de groep te berekenen, d.w.z. als resultaat zal de groep op basis van het geheel van de bronwaarden 100% zijn; “% totaal” - het totale percentage, ongeacht de groep, voor alle resourcewaarden.
Voor objecttypevelden: directory, document, etc. Het is mogelijk om objectdetails op te geven in de geselecteerde velden.

Tabblad "Selectie"
Op dit tabblad definieert u selecties die van invloed zijn op het resultaat van het rapport.


Net als op het tabblad ‘Geselecteerde velden’ zijn er twee vensters: links staan ​​alle beschikbare ACS-velden voor selectie in de selectie, rechts staan ​​elementen en waarden die van invloed zijn op de selectie. U kunt ook een nieuw element of een groep elementen toevoegen met behulp van de knop Toevoegen. U kunt elementen verwijderen met de knop Verwijderen, of ze per positie verplaatsen met behulp van de verplaatsingspijlen. Door de vakjes aan te vinken kunt u de activiteit van een bepaalde selectie in het rapport regelen. Nadat u op de knop “Soortgelijk” hebt geklikt, worden verduidelijkende selectiedetails toegevoegd aan de lijst met selectie-elementen: “Weergavemodus” en “Presentatie”.

Nadat u een nieuw element aan de keuzelijst heeft toegevoegd, zijn de volgende velden beschikbaar voor bewerking:
“Linkerwaarde” - ACS-veld of een eenvoudig veldtype (“Nummer”, “String”, “Datum”, “Boolean”), waarop selectie wordt toegepast
"Vergelijkingstype" - een lijst met mogelijke selectievoorwaarden: "Gelijk", "Niet gelijk", "In de lijst", "In een groep uit de lijst", "In een groep", "Niet in de lijst", " Niet in een groep uit de lijst”, “Niet in groep”, “Bevat”, “Bevat niet”, “Gevuld”, “Niet gevuld”
“Rechterwaarde” - selectiewaarde, komt overeen met de waarde van het veld “Linkerwaarde”. Als het “Vergelijkingstype” “In de lijst”, “In een groep uit de lijst”, “Niet in de lijst”, “Niet in een groep uit de lijst” is, dan is er een lijst met waarden beschikbaar om in te stellen
"Weergavemodus" - er zijn twee mogelijke opties: "Snelle toegang" en "Normaal". Als "Snelle toegang" is geïnstalleerd, worden de waarden voor selectie indien mogelijk weergegeven in de vorm van een vervolgkeuzelijst, dit geldt vooral voor kleine, zelden veranderende mappen, opsommingen of soorten kenmerken. “Normaal” is de standaardmethode om waarden voor objecten weer te geven in de vorm van een selectieformulier of lijst.
“Bekijken” - een tekstweergave van de selectie in verkorte modus (als de knop “Details” niet is ingedrukt), evenals een weergave van de selectie bij weergave van het rapport.
U kunt groepen aan selecties toevoegen - die dienen om verschillende selecties te combineren, volgens elk criterium "EN", "OF", "NIET".


U moet bijvoorbeeld verschillende voorwaarden combineren met de AND-operator. Om dit te doen, moet u “Groep EN” aan de selectie toevoegen en de voorwaarden in deze groep vermelden. Het nesten van groepen is toegestaan, met behulp waarvan u complexe voorwaarden kunt creëren. Naast “Groep EN” zijn “Groep OF” en “Groep Niet” beschikbaar. Standaard is er eenvoudigweg een lijst met selectievoorwaarden die tot geen enkele groep behoren, met elkaar verbonden via de operator “AND”.

Tabblad “Sorteren”.
Op dit tabblad worden de velden opgegeven waarop wordt gesorteerd.


Het toevoegen van velden op dit tabblad is vergelijkbaar met hoe u dit doet op het tabblad “Geselecteerde velden”. De enige parameter die wordt opgegeven in de geselecteerde sorteervelden is de sorteerrichting.

Tabblad “Voorwaardelijke verschijning”
Op het tabblad ‘Voorwaardelijke opmaak’ geven we aan welke velden, selectievoorwaarden en registratievoorwaarden worden toegepast bij het weergeven van velden in het rapport.


“Gebied” is een lijst met velden die worden beïnvloed door de voorwaardelijke weergave.

“Selectie” - selectievoorwaarden waaronder voorwaardelijke inschrijving geldig is

Selectievoorwaarden worden op dezelfde manier gespecificeerd als op het tabblad “Selectie” van het hoofdvenster met lay-outinstellingen.
“Voorwaardelijk ontwerp” - wanneer u dit veld invult, wordt een venster weergegeven met een keuze uit mogelijke ontwerpopties voor de opgegeven velden.

Lijst met mogelijke ontwerpopties:
Achtergrondkleur - Definieert de achtergrondkleur van de cellen.
Tekstkleur - Definieert de kleur van tekst in cellen
Grafiekkleur - Definieert de kleur van de lijnen in het diagram.
Randkleur - Kleur van de randlijn
Randstijl - Randlijntypen
Randstijl links - links
Stijl bovenste rand - Bovenkant
Randstijl rechts - rechts
Stijl onderste rand - Onder
Lettertype - Type lettertype, dikte, schuinte, enz.
Inspringen - Aantal inspringtekens
Automatisch inspringen - Aantal ingesprongen tekens, gebruikt in groeperingen
Horizontale positie - Horizontale positie van tekst in een cel
Verticale positie - De verticale positie van de tekst in de cel
Plaatsing - Plaats tekst die niet in de cel past
Tekstrichting - Oriëntatie van de tekst in graden (bijvoorbeeld loodrecht 90 graden draaien)
Formaat - Formaatwaardetekenreeks
Negatief markeren: teken om negatieve waarden te markeren
Minimale breedte - Minimale celbreedte in punten
Minimale hoogte - Minimale celhoogte
Maximale hoogte - Maximale hoogte
Tekst - De tekst die wordt weergegeven in plaats van de waarde

Tabblad "Aangepaste velden"
Op dit tabblad kunt u aangepaste velden en formules opgeven waarmee de velden worden berekend.


Wanneer u op het toevoegen van een veld klikt, wordt een selectie van het type aangepast veld geopend: “Nieuw selectieveld”, “Nieuw expressieveld”.
“Selectieveld” - er verschijnt een dialoogvenster voor het samenstellen van een nieuw selectieveld. Dit veld zal de opgegeven waarden aannemen, afhankelijk van de selectievoorwaarde die is opgegeven in de tabel “Opties”.

"Veldexpressie" - gebruikt in het geval dat u berekende velden moet invoegen zonder het lay-outschema te wijzigen. Het schema bevat bijvoorbeeld de bronnen “Aantal” en “Bedrag”. In de gebruikersmodus willen we de prijs berekenen. Om dit te doen, voegen we de formule in het expressieontwerpveld in:

U kunt expressies uit query's in aangepaste velden gebruiken.
Om het totale aantal records in een expressie aan te geven, moet u bovendien de aggregatiefuncties SUM(..), QUANTITY(), MIN(..), MAX(..) gebruiken.

Tabblad “Overige instellingen”.
Op het tabblad “Overige instellingen” definieert u instellingen die van invloed zijn op de indeling van groeperingen, selectievelden, bronnen, enz.

Ontwerplay-out Gedefinieerde, vooraf gedefinieerde ontwerplay-outs
Locatie van totalen De parameter beïnvloedt de locatie van totalen
Locatie van groeperingsvelden
Locatie van facties
Locatie van details
Bronlocatie
Horizontale rangschikking van eindtotalen
Verticale rangschikking van eindtotalen
Type veldkop
Diagramtype
Basiswaarde
Basiswaarde overslaan
Samenstelling van handtekeningen
Schuif modus
Gegevenstabel weergeven
Maximale waarde
Minimale waarde
Randen
Verloop
Lettertype
Achtergrond kleur
Lijnstijl
Legenda plaatsing
Maattabel strepen
Titel weergeven
Rubriek
Uitvoergegevensparameters
Selectie weergeven

Venster Groeperingsinstellingen


De instellingen voor het gegevenscompositieschema kunnen een structuur bevatten die de beschikbare instellingenelementen bevat.
Deze elementen zijn:
groepering;
tafel;
diagram;
genest rapport.

De volgende instellingen zijn beschikbaar voor groeperen:
Groepering gebruik vlag - indien ingesteld, wordt groepering gebruikt tijdens de lay-out;
Velden groeperen - een set velden waarmee groepering wordt uitgevoerd. Elk gegevensheeft de volgende eigenschappen:
- Veldgebruikvlag - indien ingesteld, wordt het veld gebruikt;
- Groeperingsveld - pad naar de veldgegevens waarmee de groepering wordt uitgevoerd;
- Groeperingstype – groeperingstype (hiërarchie, alleen hiërarchie, elementen);
- Toevoegingstype – de noodzaak om datums in de periode toe te voegen;
- Startdatum - de startdatum van de periode. Kan een constante waarde of een veldwaarde bevatten;
- Einddatum - de einddatum van de periode. Kan een constante waarde bevatten, of de waarde is een veld;

Bij groeperen op periodeveld wordt automatisch een bovenliggend periodeveld aan de groepering toegevoegd. Dit is geen extra periode als de bovenliggende groeperingen niet op dit bovenliggende periodeveld zijn gegroepeerd.
Als de groepering bijvoorbeeld wordt uitgevoerd door het veld Recorder, wordt het veld PeriodSecond automatisch aan de groepering toegevoegd.
Het maken van groeperingen op basis van periodevelddetails is echter verboden.

Functies voor het maken van rapporten in 1C v8 in Thick Client-modus

Hoe een optie kiezen?

  • Plaats de knop "Selecteer optie" op het rapportpaneel
  • Plaats het veld "OnDate" op het formulier.

Voorbeeldcode: ProcedureFormActionSelectOption(Knop) layout = GetLayout("MainDataLayoutScheme"); spOptions = Nieuwe WaardeLijst; Voor elke optie uit layout.OptionsSettings Loop spOptions.Add(option.Settings, Option.View); Eindcyclus;

selectie = cnOptions.SelectItem(); Als keuze = Ongedefinieerd Dan Return; stop als;

InstellingenComposer.LoadSettings(selectie.Waarde);

Genereer(); Einde procedure

Procedure OnDateOnChange(Element) Genereer(); Einde procedure

Procedure Genereer()FormElements.Result.Clear(); Instellingen Composer.Settings.DataParameters.SetParameterValue("Period", ToDate); ComposeResult(FormElements.Resultaat); Einde procedure

Procedure bij openen() OnDate = CurrentDate(); Genereer(); Einde procedure

Kenmerken van het maken van rapporten via toegangscontrolesysteem

Stapsgewijze rapportage maken

  1. Maak een rapport in het knooppunt Rapporten
  2. Maak een lay-out in een rapport met het type Gegevenslay-outschema
  3. Stel in de rapporteigenschappen het volgende in: Basisgegevensindelingsschema = Gemaakte indeling
  4. Stel in de rapporteigenschappen het subsysteem in waartoe het behoort (het rapport in Enterprise wordt weergegeven in het bovenste navigatiepaneel)
  5. Maak een query aan in Layout (item: Dataset toevoegen - Query)
  6. Op het tabblad Opties voor Lay-out moet u alle regels in de kolom Beschikbaarheidsbeperking uitschakelen, d.w.z. alle parameters kunnen door de gebruiker worden bewerkt
  7. Op het tabblad Instellingen van de Lay-out, in het venster waarin het rapportknooppunt wordt weergegeven, moet u een nieuwe groepering maken zonder het groeperingsveld op te geven - er wordt een gedetailleerde regel gemaakt
  8. Op het tabblad Instellingen van Layout, in het venster waarin een extra set bladwijzers wordt weergegeven, selecteert u Extra. Tabblad Parameters - markeer alle parameters met een vinkje en klik bij elke parameter op het element Eigenschappen van het element gebruikersinstellingen. Het venster met parameterinstellingen wordt geopend, waar u het vakje - Parameter opnemen in gebruikersinstellingen moet aanvinken
  9. Op het tabblad Instellingen van Layout, in het venster waarin een extra set bladwijzers wordt weergegeven, selecteert u Extra. Tabblad SelectedFields - daar moet u kolommen toevoegen die in het rapport worden weergegeven
  10. Start Enterprise, open het rapport, stel parameterwaarden in, Genereer (controleer of de optie voor het genereren van hoofdrapporten is geselecteerd)

Hoe kan ik een niet door de gebruiker bewerkbare parameter toevoegen?

We moeten bijvoorbeeld de queryparameter 'Infobase' instellen

  • Schakel in het lay-outformulier op het tabblad Opties de selectievakjes 'Opnemen in beschikbare velden' en 'Beschikbaarheid beperken' uit voor de gewenste parameter.
  • In het lay-outformulier, op het tabblad Instellingen, op het subtabblad Parameters (onderaan), schakelt u de gewenste parameter uit, opent u eigenschappen (knop met sleutel), op dit formulier:
    • Schakel de vlag 'Opnemen in gebruikersinstellingen' uit
    • Zet de bewerkingsmodus op "Niet beschikbaar"


  • In de rapportformuliermodule in de gebeurtenishandler "Bij het laden van een optie op de server" (u kunt dit ook doen bij het openen, maar NIET bij het maken op de server, omdat dit wordt uitgevoerd VOORDAT de rapportinstellingen worden geladen en de instellingen worden overschreven) stelt u programmatisch de parameter:

&Op de server Procedure bij het laden van de optie op de server (Instellingen)

//De parameter Instellingen instellen = Report.Settings Composer.Settings; Instellingen.DataParameters.SetParameterValue("InformationBase", Report.InformationBase); Einde procedure

Hoe rapportopties instellen?

  • In het lay-outformulier op het tabblad Instellingen in het veld aan de linkerkant kunt u de benodigde rapportopties aanmaken

Hoe groeperingen instellen?

  • In het lay-outformulier op het tabblad Instellingen in het veld rechtsboven kunt u de benodigde groeperingen aanmaken

Hoe kan ik een rapport programmatisch weergeven?

In de formuliermodule:

&Over de clientprocedure GenerateReportExecute()

ThisForm.ComposeResult();

Einde procedure

Hoe een rapport testen?

Je moet:

  • De handigste manier om een ​​situatie in een cliënttest te creëren is via een situatietabel
  • haal het rapportformulier op - form = GetForm("Report.Process Movement.Form.ReportForm");
  • laad de gewenste rapportvariant - stel de r"Variantsleutel" in (de naam van de instelling in de lay-out van de gegevenscompositie)
  • laad de vereiste rapportinstellingen - ? het invullen van de extensieparameter "UserSettings" van het rapportformulier (type "UserDataCompositionSettings") is niet gelukt, alles is ingewikkeld, zie hieronder.
  • open formulier - formulier.Open()
  • formatie uitvoeren - form.ArrangeResult();
  • controleer de inhoud van het spreadsheet-documentformulier Resultaat - het zou leuk zijn om vergelijkingsfuncties te hebben met de referentie mxl
  • formulier sluiten - formulier.Close(); - of misschien hoeft u het niet te openen, u moet het controleren

zie ook

  • Beschrijving: Help-menu/Syntaxisassistent/tabblad Inhoud/Beheerde applicatie-interfaceobjecten/Beheerde formulierextensies/Beheerde formulierextensie voor rapport/Formulieropties

Hoe laad ik de vereiste rapportinstellingen?

De documentatie beschrijft dat er zo'n parameter is voor het uitbreiden van het rapportformulier "UserSettings" van het type "UserDataCompositionSettings", maar er is een zeer complexe objectstructuur, het was niet mogelijk om deze te gebruiken.

Echt werkend schema:

1. Maak parameters in het rapport

  • Periodetype StandaardPeriode
  • Selectie van het ValueList-type (Structuur zou beter zijn, maar staat niet in de lijst met parametertypen, en is ook een willekeurig type)

2. We geven de benodigde parameters door aan de GetForm-procedure:

periode = NieuweStandaardPeriode; period.Option = StandaardPeriodOption.CustomPeriod; periode.StartDatum = huidigeDatum; periode.EndDate = morgenDatum;

selectie = Nieuwe WaardenLijst; selectie.Add(Testing.GetObject(stSituatie, "BP1"), "BusinessProcess");

stParameters = Nieuwe structuur("Variantsleutel, periode, selectie", "Hoofd", periode, selectie); // OpenFormModal("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm("Report.Process Movement.Form.ReportForm", stParameters);

3. Stel de parameters in het formulier gebeurtenishandlers in

&OnServer-functie spGet(spList, view) Exporteren voor elk element uit spList Lus If element.View = view Then Return element.Value; stop als; Eindcyclus; Retour Ongedefinieerd; Eindfunctie

&Op de serverprocedure SetCustomSettingsValue(Settings, Name, Value) Voor elk element uit Settings.Elements Loop If TypeValue(element) = Type("DataCompositionSettingsParameterValue") Then If String(element.Parameter) = Naam Then element.Value = Waarde; element.Gebruik = Waar; stop als; stop als; Eindcyclus; Einde procedure

&Op de serverprocedure SetCustomSelectionValue(Instellingen, Naam, Waarde) Voor elk element uit Instellingen.Elements Loop If TypeValue(element) = Type("DataComposition Selection") Then voor elke selectie Van element.Elements Loop If Row(selection.LeftValue) = Naam Vervolgens selectie.RightValue = Waarde; selectie.Gebruik = Waar; stop als; Eindcyclus; stop als; Eindcyclus; Einde procedure

&Op de server Procedure bij het laden van de optie op de server (Instellingen)

Naam van de huidige variant = Weergave van de huidige variant;

Instellingen = Report.SettingsComposer.Settings; Instellingen.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Einde procedure

&OnServer-procedure bij het laden van UserSettingsOnServer(Settings) Instellingen = Report.Settings Linker.UserSettings;

<>"00010101" Dan Instellingen = Report.Settings Composer.UserSettings; SetCustomSettingValue(Instellingen, "Periode", Parameters.Periode); stop als;

ssBusinessProcess = spGet(Parameters.Selectie, "BusinessProcess"); Als ssBusinessProcess<>Niet gedefinieerd Vervolgens SetCustomSelectionValue(Instellingen, "BusinessProcess", ssBusinessProcess); stop als;

Einde procedure

Opmerkingen:

  • Er zijn gegevensparameters, dat wil zeggen wat is ingesteld in de ACS-aanvraagparameters
  • Sommigen van hen zijn toegewezen in de optie-instellingen in UserSettings (in de parametereigenschappen staat een vlag "Opnemen in gebruikersinstellingen"
  • Zelfs als u bij het laden op de server de benodigde waarden in de gegevensparameters laadt, wordt er een formulier geopend waarin de laatst opgeslagen instellingen automatisch worden geladen. Deze instellingen ‘onderbreken’ de gegevensinstellingen bij het genereren van een rapport
  • In de handler WhenLoadingUserSettingsOnServer is het doorgegeven object Instellingen een kopie echte instellingen. Om de instellingen die op het formulier verschijnen te wijzigen, moet u daarom het object Report.Settings Composer.UserSettings invullen

Hoe maak ik meerdere (lijst)queryparameters in ACS?

De query moet de expressie gebruiken "In (&Parameternaam)"(zie Booleaanse expressies in de 1Cv8-querytaal)

Bij het instellen van de lay-out van het ACS-diagram op het tabblad "Parameters" moet u voor deze parameter het vakje in de kolom "Lijst met beschikbare waarden" aanvinken. In dit geval geeft de ACS, wanneer u een parameter selecteert, een lijstbewerkingsformulier weer waarin u elke parameterwaarde kunt toevoegen.

Hoe kan ik queryparameters in het toegangscontrolesysteem uitschakelen?

In de SKD-query moet u constructies gebruiken die omgeven zijn door accolades "{}" .

Als het selectievakje voor de overeenkomstige parameter is uitgeschakeld in het rapportformulier (paneel voor snelle instellingen), wordt deze constructie uit de aanvraag verwijderd.

Zie meer details. Querytaaluitbreiding voor gegevenscompositiesysteem (1Cv8)

Hoe maak je een rapport met een kolomspreiding?

Om dit te doen, moet u bij het instellen van de rapportoptie (bewerken van de lay-out van de gegevenslay-out, tabblad "Instellingen", veld rechtsboven) "Tabel" toevoegen als de eerste groepering.

Hierna verschijnen de takken “Rijen” en “Kolommen” in het knooppunt “Tabel”, waar de nodige groeperingen worden toegevoegd.

Hoe configureer ik het velduitvoerformaat?

In de lay-outeditor voor gegevenscompositie vindt u op het tabblad 'Gegevenssets' in de rechterbovenhoek een lijst met rapportvelden.

Er zijn twee mogelijkheden:

  1. Stel de waarde van de kolom 'View Expression' in
    • hier kunt u een taalexpressie invoeren die de gewenste string produceert
    • het werkt niet met resourcevelden
  2. Stel de waarde van de kolom "Ontwerp" in
    • in het ontwerp is er een eigenschap "Format" - deze waarde is vergelijkbaar met de parameter van de taalfunctie "Format", u kunt het gewenste uiterlijk instellen
    • typeconversie is hier niet mogelijk

Voor resourcevelden kunt u berekeningsuitdrukkingen opgeven (op het tabblad "Bronnen"), bijvoorbeeld

Bedrag (tijd)/3600,0

om te zetten van seconden naar uren.

De vereiste nauwkeurigheid kan worden ingesteld via het veld "Ontwerp" op het tabblad "Gegevenssets".

Kenmerken van het instellen van parameters voor het datacompositiesysteem

Er bestaan ​​minstens DRIE soorten parameters die verschillende verwerkingen vereisen:

Gegevensopties

Gegevensparameters worden gedefinieerd in het verzoek (gegevensbron) van het toegangscontrolesysteem.

Gegevensparameters worden doorgegeven aan de gegevensbronaanvraag en definiëren de gegevens die moeten worden opgehaald.

Het object Instellingen Composer heeft een speciale eigenschap voor het werken met gegevensparameters Instellingen Componist.Instellingen.Gegevensopties

Je kunt het instellen met een oproep zoals

Instellingen = Report.SettingsComposer.Settings; Instellingen.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Selectie

Selecties worden over de ontvangen gegevens heen gelegd na uittreksel uit de gegevensbron.

Het object Instellingencomposer heeft een speciale eigenschap voor het werken met selecties ComponistInstellingen.Instellingen.Selectie.

Bijvoorbeeld: Instellingen = Report.SettingsComposer.Settings; Instellingen.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Voor elk element From Parameters.Selection Cycle Selection Element = Settings.Selection.Elements.Add(Type("Data Composition Selection Element")); Selectie Element.Vergelijkingstype = DataComposition Vergelijkingstype.Equal; SelectionElement.LeftValue = NewDataCompositionField(element.View); SelectionElement.RightValue = element.Waarde; Eindcyclus;

Aangepaste instellingen

Gebruikersvoorkeuren definiëren de gegevens die een gebruiker op een formulier kan aanpassen.

Gebruikersinstellingen kunnen op het formulier in een speciale tabel worden weergegeven en kunnen worden opgeroepen door op de knop "Instellingen" en vanuit het menu "Alle acties" te klikken.

Aangepaste instellingen verbonden met dataparameters en selecties op een nogal complexe manier kan deze verbinding visueel worden geconfigureerd, maar programmatisch ermee werken is op de een of andere manier erg lastig.

Tot nu toe hebben we niets beters gevonden dan het instellen van de waarden van een bestaande collectie per index, wat uiteraard kan verdwijnen als u de ACS-indeling in de visuele editor wijzigt.

Als een dataparameter door de gebruiker gedefinieerd is, is de programmatische instelling van de dataparameter (zie hierboven) bovendien niet voldoende; de ​​herstelde waarde van de gebruikersinstelling heeft voorrang op de instelling van de dataparameter. Daarom heeft het voor dergelijke parameters geen zin om in te stellen gegevensparameter, moet onmiddellijk worden geïnstalleerd aangepaste instelling.

Een handige plek om de vereiste waarden in te stellen is de gebeurtenishandler "When LoadingUserSettingsOnServer" van de rapportformulierextensie.

&Op de server Procedure bij het laden van gebruikersinstellingen op de server (Instellingen)

Als Parameters.Periode.Einddatum<>"00010101" Dan Instellingen = Report.Settings Composer.UserSettings; Instellingen.Elements.Value = Opties.Periode; stop als;

Einde procedure

Een gegevensbron als object gebruiken

Om een ​​dataset van het type object te gebruiken, moet u de externe gegevensbron doorgeven aan de Initialize-methode van het Data Composition Processor-object.

DecryptionData = ongedefinieerd;

LayoutLinker = nieuweDataLayoutLayoutLinker; LayoutLayout = LayoutLinker.Execute(DataCompositionScheme, SettingsLinker.Settings, DecryptionData);

CompositionProcessor = nieuweDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout, New Structure("Gegevens", GetDataExternalSource()), DecryptionData);

Een eenvoudig voorbeeld is bijgevoegd (om het voorbeeld te laten werken, moet u over de mappen “Tegenpartijen” en “Tegenpartijovereenkomsten” beschikken).

Hallo, beste lezer! We hebben nog een les over de basisprincipes van het lay-outsysteem. Hierin maakte je kennis met de functies van de SKD-expressietaal, zag je de kenmerken van het lay-outsysteem en begreep je ook de basisinstellingen van de lay-outvelden. Nu gaan we naar nieuw materiaal kijken. Gaan!

Aanvullende instellingen voor ACS-velden.

Kolom "Waarde type" Hiermee kunt u het gegevenstype voor het lay-outveld opgeven. Waarom zou u het type bijvoorbeeld opgeven voor het veld ‘Nomenclatuur’, als u al weet welk type het is? Dit is nodig als het lay-outveld van een samengesteld type is. U kunt een specifiek type selecteren. Wanneer u via dit veld selecteert, worden waarden van dit type geselecteerd.

Kolom "Beschikbare waarden" Hiermee kunt u de waarden specificeren die beschikbaar zijn voor selectie en de keuze van de gebruiker beperken tot bepaalde limieten.

Kolom "Decor" Hiermee kunt u het ontwerp van een lay-outveld opgeven zonder lay-outs te gebruiken. U kunt de kleur van het lettertype, de framekleur, de tekstrichting, enz. opgeven.

Kolom "Bewerkingsopties" Hiermee kunt u opgeven hoe u het lay-outveld wilt bewerken. U kunt bijvoorbeeld een snelle selectie van elementen uit een lijst in een selectie opgeven. Standaard neemt een lay-outveld alle bewerkingsopties over van het metadataobject.

Berekende velden

Op het tabblad “Berekende velden” van de gegevenssamenstelling kunt u uw eigen berekende velden maken.

Waarom heb je berekende velden nodig als je ze op queryniveau kunt maken? Niet alle velden kunnen worden beschreven met behulp van een query. Als u een complex veld moet maken uit verschillende gegevenssets, bijvoorbeeld een query en een object, dan kunt u niet zonder berekende velden. U kunt geen gegevenscompositieveld toevoegen als de gegevensbron een query is en automatisch aanvullen is ingeschakeld. Met behulp van berekende velden kunt u echter zoveel velden toevoegen als u wilt.

In de kolom ‘Expressie’ van het berekende veld moet u een willekeurige expressie schrijven die gebruikmaakt van de gegevenscompositievelden en toegang krijgt tot hun pad (de kolom ‘Pad’ op het tabblad ‘Gegevenssets’). U kunt wiskundige transformatiefuncties gebruiken of toegang krijgen tot de functies van algemene modules. Laten we bijvoorbeeld in de kolom ‘Gegevenspad’ de naam van het berekende veld ‘Afwijking’ schrijven, en in het veld ‘Expressie’ het volgende.