SCD ist eine externe Datenquelle, wir laden die technischen Spezifikationen herunter und erhalten dann die Salden für jedes Dokument. Ein Beispiel für die Verwendung einer externen Datenquelle in SDS SDS führt zu einer Wertetabelle

Wenn Sie neue Filialen eines Unternehmens eröffnen, müssen Sie zur Berechnung der Belastung des 1C:Enterprise-Servers und anderer Aufgaben möglicherweise die Dynamik der Benutzerarbeit in der Informationsdatenbank in Form eines Diagramms betrachten.

Die Dynamik muss für den vom Benutzer gewählten Zeitraum angezeigt werden. Bei den angezeigten Daten handelt es sich um die Anzahl der von diesen Benutzern pro Stunde ausgeführten Aktionen. Informationen für einen solchen Bericht können dem Logbuch entnommen werden.

Betrachten wir die schrittweise Erstellung eines solchen Berichts und bauen ihn mithilfe eines externen Datensatzes auf einem Datenkompositionssystem auf.

Lesen des Registrierungsprotokolls

Und so werden wir den Bericht über das Zugangskontrollsystem erstellen. Wir erhalten die Daten nicht über eine Abfrage aus der Datenbank, sondern aus dem Registrierungsprotokoll. Über die Art und Weise, wie die Plattform das Protokoll speichert, habe ich in einem früheren Artikel geschrieben.

Gemäß dem im Bericht angegebenen Zeitraum müssen wir alle Benutzeraktionen für Infobase-Daten abrufen. Gruppieren Sie die resultierende Tabelle nach Benutzern und zeigen Sie sie als Diagramm an (siehe Screenshot oben).

Um Informationen aus dem Registrierungsprotokoll zu erhalten, verwenden wir die globale Kontextmethode „UnloadRegistrationLog()“. Fügen Sie im Ereignis „On Result Layout“ des erstellten Berichts den folgenden Programmcode hinzu:

Vorgehensweise beim Zusammenstellen des Ergebnisses (DocumentResult, Decryption Data, StandardProcessing) StandardProcessing = False ; // Standardberichtsausgabe deaktivieren – wir werden sie programmgesteuert ausgeben // Holen Sie sich die Berichtseinstellungen, inkl. Zeitraum Einstellungen = SettingsComposer. GetSettings() ; // Berichtseinstellungen abrufen ParameterPeriod = LinkerSettings. GetSettings() . Datenparameter. Elemente. Finden("Zeitraum"). Bedeutung; ZhurTab = Neue Wertetabelle; LogSelection = Neue Struktur; // Erstellen Sie eine Protokollauswahlstruktur // Füllen Sie die Auswahl nach Punkt aus Zeitschriftenauswahl. Insert("StartDate", ParameterPeriod.StartDate) ; Zeitschriftenauswahl. Insert("EndDate", ParameterPeriod.EndDate) ; // Auswahl für Ereignisse festlegen EventArray = Neues Array; EventArray. Add(" _$Data$_ . Löschen. Neu" ); Ereignisarray. Add(" _$Data$_ . Post" ); Ereignisarray. Add(" _$Data$_ . TotalsPeriodUpdate" ); Ereignisarray. Add(" _$Data$_ . Unpost" ); Ereignisarray. Add(" _$Data$_ . Aktualisieren" ); Protokollauswahl. Insert(" Event ", EventArray) ; // Das Protokoll hochladen UnloadRegistrationLog(JourTab, EventArray) ; // Erstellen und füllen Sie die Daten für die Ausgabe im Bericht aus ZhurTab. Säulen. Zeit hinzufügen "); ZhurTab. Säulen. Hinzufügen(" Anzahl der Ereignisse" ); Für jede Seite aus Journalzyklus Seitenzeit = Stunde (Seitendatum); Seitenanzahl der Ereignisse = 1 ; Ende des Zyklus ; // Das Ergebnis gruppieren ZhurTab. Zusammenbruch(" Benutzername, Uhrzeit" , " Anzahl der Ereignisse" ) ; // ..............

Der erste Parameter der Methode „UploadRegistrationLog“ legt eine Wertetabelle fest, in die das Ergebnis der Stichprobe aus dem Registrierungsprotokoll hochgeladen wird. Der zweite Parameter besteht darin, einen Filter für die ausgewählten Datensätze festzulegen. Ein Filter ist eine Struktur, deren Schlüssel die Felder sind, anhand derer die Auswahl erfolgt. Wir verwenden die Felder „Startdatum“ und „Enddatum“, um den Zeitraum der Protokollanalyse festzulegen, sowie das Feld „Ereignis“, in das wir ein Array von Zeichenfolgen (Namen von Ereignissen) übergeben. Die dem Array hinzugefügten Ereignisse entsprechen Aktionen für die Daten in der Datenbank.

Weitere Informationen zur Verwendung der Methode „UploadRegistrationLog“ finden Sie im Syntaxassistenten.

Wir übertragen die Wertetabelle an das Zutrittskontrollsystem

Damit das ACS mit der resultierenden Wertetabelle arbeiten kann, müssen Sie Folgendes tun:

1) Erstellen Sie einen Datensatz im Layoutdiagramm und legen Sie seine Felder fest.
2) Registrieren Sie im Programmcode des Moduls „Beim Zusammenstellen des Ergebnisses“ die Übertragung der Wertetabelle an das Zutrittskontrollsystem.

// Das Ergebnis gruppieren ZhurTab. Zusammenbruch(" Benutzername, Uhrzeit" , " Anzahl der Ereignisse" ) ;DecryptionData = NewDataCompositionDecryptionData; // Entschlüsselungsdaten erstellen LayoutLinker = newDataLayoutLayoutLinker; // Erstellen Sie einen Layout-Builder // Initialisieren Sie das Layout-Layout mithilfe des Datenlayout-Schemas // und zuvor erstellte Einstellungen und Entschlüsselungsdaten DataLayoutSchema = GetLayout(" BasicData-Layoutschema" ); Layout Layout = Layout Linker. Ausführen (Datenlayoutschema, Einstellungen, Entschlüsselungsdaten) ; // Das Ergebnis zusammenstellen CompositionProcessor = newDataCompositionProcessor; ProzessorLayout. Initialize(LayoutLayout, // !!! Wir übertragen die Tabelle „ZhurTab“ an den Layoutprozessor!!! Neue Struktur(" Zeitschriftenregistrierung", JournalTab), Entschlüsselungsdaten); DocumentResult. Clear(); // Das Ergebnis in ein Tabellenkalkulationsdokument ausgeben OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument; Ausgabeprozessor. SetDocument(DocumentResult) ; Ausgabeprozessor. Output(LayoutProcessor) ; EndProzedur

3) Richten Sie die Ressourcen und die Struktur des Berichts ein (weitere Einzelheiten finden Sie in der Berichtsdatei, deren Link am Ende des Artikels angegeben ist).

An diesem Punkt sind die Berichtseinstellungen abgeschlossen und wir können ihn im Unternehmensmodus ausführen.

Endeffekt

Eine externe Datenquelle im Zutrittskontrollsystem ermöglicht es uns, Daten aus nahezu jeder Quelle in Berichten zu verwenden, auch solche, deren Daten wir nicht durch Abfragen erhalten können.

Durch die Verwendung von ACS für solche Quellen können Sie Berichte mit einem flexiblen Einstellungssystem erstellen und dem Benutzer auch die Änderung der Berichtsausgabe und ihrer Struktur ermöglichen. Für solche Quellen werden alle Möglichkeiten des Datenkompositionssystems voll ausgenutzt.

Sie können den Bericht aus dem Beispiel herunterladen unter folgendem Link.

Hallo!
Heute möchte ich ein Thema beschreiben, das man ohne Tauchausrüstung nicht verstehen kann :) ;)

Beim Gerätetauchen ist der Tauchgang ziemlich tief. Es gibt nur wenige Hinweise auf dieses Thema in der Literatur, und Sie werden es erst verstehen, wenn Sie den Drang dazu verspüren. Für eine solche Aktion wird es nicht einmal eine Meldung geben ;) Die Dokumentation spricht darüber übrigens sehr dürftig und inkonsistent; man muss auf Literatur von Drittanbietern zurückgreifen.

Ich empfehle zum Beispiel „Entwicklung komplexer Berichte in 1C:Enterprise 8.2“ wärmstens. „Data Composition System“ (genauer gesagt, siehe Seiten 224, 267 und 473)

In ACS gibt es zwei Arten von Datenquellen: Abfrage, Objekt und Union (dieses Ding zählt nicht, es ist keine Datenquelle, sondern ein Prozessor vorhandener Daten). Siehe Abbildung 1:


Wenn wir also mehr oder weniger verstehen, wie man mit einer Datenquelle (Datensatz) vom Typ „Abfrage“ arbeitet, dann gibt es Schwierigkeiten mit dem Datensatz „Objekt“.

Zunächst beschreibe ich, was wir als Ausgabe erhalten möchten:

Bericht, der Benutzer hat auf „ geklickt Bilden» und eine Liste der Elemente wurde angezeigt (siehe Abb. 2):

Ja, ich habe eine Ungenauigkeit gemacht, nämlich: Es gibt keinen Knopf „ Bilden", aber es gibt einen Knopf" neue Aktion„(Ich werde etwas später erklären, warum das passiert ist;)

Ja Ja! Ein weiterer Punkt: Diese gesamte Liste ist aus dem „Object“-Datensatz abgeleitet:

Lösung:

  1. Erstellen Sie einen externen Bericht;
  2. Fügen Sie ein ACS-Layout hinzu, nennen wir es „Hauptdaten-Layoutschema“;
  3. Wir fügen den Datensatz „Objekt“ hinzu und weisen ihm den Namen „Nomenklaturliste“ zu (sollte derselbe sein wie in Abb. 3);
  4. Wir experimentieren nicht zu viel mit den Berichtseinstellungen, lassen Sie alles einfach sein (siehe Abb. 4)

Ok, die halbe Arbeit ist geschafft ;)

Lassen Sie uns nun das Hauptberichtsformular generieren (ja, noch etwas! Meine Konfiguration funktioniert auf einer regulären Schnittstelle, aber ich denke, dass Sie auf verwalteten Formularen eine Lösung finden werden;) Also das Formular:

Hier entsteht das Problem! Wenn wir auf die Schaltfläche „Generieren“ klicken (Abb. 5.), wird uns ein Fehler angezeigt!


Ich habe diesen Artikel der Lösung dieses Problems gewidmet!

Es war nicht möglich, das Schaltflächenereignis „Generieren“ abzufangen, daher habe ich mich für die Verwendung einer Krücke entschieden. Ich habe die Konfiguration im Debug-Modus gestartet und versucht, die Schaltfläche „Generieren“ zu finden.

Ich habe die Prozedur „Generieren“ in das Formular eingefügt, aber es gibt keine Einträge darin. Ich musste die Aktion der Schaltfläche „Formular“ neu definieren, bevor ich das Formular öffnete:


In Abb. Neben der Änderung der Aktion des Formulars zeigt Abbildung 8 ein Beispiel für eine Anfrage, deren Verarbeitung und Übermittlung der generierten Daten an das Zutrittskontrollsystem. Schauen wir uns das genauer an:

  1. Wir generieren Eingabedaten für das Zutrittskontrollsystem;
  2. Wir initialisieren das Zugangskontrollsystem;
  3. Das Ergebnis zeigen wir AUF DEM FORMULAR an (Achten Sie auch darauf!).

Erinnern wir uns an das Interaktionsdiagramm von Datenkompositionssystemobjekten:

Das Datenlayoutschema in einem externen Bericht ist als globales Objekt in einer Formularmethode verfügbar DataComposition-Schema. Sie können auch über den Namen darauf zugreifen, indem Sie ihn an die Methode übergeben GetLayout(siehe Abb. 8)

Der Hauptcode ist unten:

Anfrage = Neue Anfrage; Query.Text = "SELECT | Nomenclature.Name as Nomenclature |FROM | Directory.Nomenclature AS Nomenclature"; NomenclatureList = Request.Run().Upload(); DataSets = New Structure("NomenclatureList", NomenclatureList); //SKD = ​​​​GetLayout("MainData LayoutScheme"); SKD = ​​​​DataCompositionScheme; LayoutComp = neuer DataLayoutComposer; layoutComp = LayoutComp.Run(SKD, SKD.DefaultSettings); CompDataProcessor = neuer DataCompositionProcessor; ProcessorCompData.Initialize(layoutComp, DataSets); Ausgabe = neues DataCompositionResultOutputProcessorInTabularDocument; Ausgabe.SetDocument(FormElements.Result); Ausgabe.Ausgabe(ProcessorCompData, true);

Ja! Hier ist wieder ein schöner Moment!!!

Wie Sie sehen können (siehe Abb. 2), erfolgt die Ausgabe in diesem Beispiel in einem Formular und nicht in einer Tabelle. dokumentieren! Und das ist sehr gut, denn wir können mit dem Formular arbeiten (programmgesteuert die Ereignisse des Formularelements abfangen, alle möglichen Tricks mit Drag & Drop ausführen usw.;)

In einem Tabellenkalkulationsdokument können wir die verarbeiteten Daten einfach auf dem Bildschirm anzeigen und die Kontrolle über das Dokument an den Benutzer übergeben und haben keinerlei Einfluss auf den weiteren Prozess der Bearbeitung dieses Inhalts!

Siehe das Hilfesystem " Feld für ein Tabellendokument „Und ich gebe nur einen Auszug aus der integrierten Dokumentation des 1c Enterprise 8.2-Systems:

„Ein Tabellendokumentfeld ist ein Tabellendokument, das in einem Formular platziert wird. Zusammen mit den vielfältigen Gestaltungsmöglichkeiten eines Tabellenkalkulationsdokuments können Sie so die Verarbeitung von Ereignissen organisieren, die beim Auswählen von Zellen, Bildern und anderen Steuerelementen auftreten, die in einem Feld eines Tabellenkalkulationsdokuments platziert werden.“

Okay, wie sie sagen, viel Glück im Kampf;)

In meinem letzten Artikel habe ich bereits geschrieben, dass 1C eine paradoxe Plattform ist. Das Datenkompositionssystem ist eines dieser Paradoxien. SKD ist für die Gestaltung komplexer Berichte konzipiert und beinhaltet den Ersatz der „manuellen“ Berichtsprogrammierung durch die Gestaltung in einem multifunktionalen Toolkit. Die Möglichkeit, Zugangskontrollsysteme zu nutzen, erschien in der achten Version, aber es dauerte lange, bis Version 8.2 erschien, damit 1C sie in seinen Standardprodukten nutzen konnte. Einerseits ist ACS ein multifunktionales Toolkit, mit dem Sie sehr komplexe Berichte ohne eine einzige Codezeile erstellen können. Allerdings birgt das Zugangskontrollsystem eine relativ hohe Einstiegshürde; es ist sehr schwierig, es „on the fly“ vollständig zu nutzen, da die Benutzeroberfläche nicht ganz intuitiv ist und die umfassendsten Handbücher nur im Internet verfügbar sind Form der bezahlten Literatur.

Während meines SKD-Studiums trat ein Problem auf. Es ist notwendig, mithilfe einer Abfragesprache Daten aus einer Wertetabelle eines Drittanbieters zu erhalten und diese Daten dann wie mit ähnlichen Daten aus Datenbanktabellen zu verarbeiten (Reduktionsoperationen, Gruppierung usw.). Im klassischen Format würden wir eine Abfrage erstellen, die Informationen aus der Tabelle erhält, die als Parameter an die Abfrage übergeben wird.

Anfrage = Neue Anfrage(
"WÄHLEN
| Tabelle.Nomenklatur,
| Tisch.Lager
|VON
| &TK AS-Tabelle");
Request.SetParameter("TZ", TZ);

Aber mit SKD ist nicht alles so einfach. Leider ist es unmöglich, den oben beschriebenen Vorgang im Datenkompositionssystem durchzuführen. Das System verfügt jedoch über die Möglichkeit, externe Wertetabellen zu laden.

Hier lohnt es sich, einen kurzen Exkurs zu machen und über Datasets zu sprechen. Datensätze sind Informationsquellen, aus denen das Datenverwaltungssystem Daten erhält, die es später in einem Bericht zusammenstellt. Datensätze werden in Typen unterteilt, hauptsächlich mithilfe des Typs „Abfrage“, in dessen Hauptteil der Programmierer eine Abfrage an die Datenbank schreibt. Der Typ „Objekt“ dient zum Laden von Daten aus externen Objekten. In beiden Fällen handelt es sich bei der Ausgabe um einen bestimmten Satz von Feldern, die als Ergebnis der Ausführung einer Anfrage oder des Ladens eines externen Objekts erhalten werden. Später können diese Felder auf der Registerkarte „Einstellungen“ manipuliert werden, zusammen mit detaillierten Einstellungen für die Berichtsstruktur. Um verschiedene Sets miteinander zu verbinden, bietet das ACS die Möglichkeit, Verbindungen zwischen Datensätzen im gleichnamigen Reiter anzuzeigen. Diese Verbindungen sind ein direktes Analogon zum Left Join in einer klassischen Abfrage. Es sollte jedoch berücksichtigt werden, dass Abfragen in einem Datensatz nicht „wissen“, dass andere Datensätze vorhanden sind. Letztlich wirken sich die Beziehungen zwischen den Datensätzen auf das Layout der Daten entsprechend der in „“ angegebenen Struktur aus. Registerkarte „Einstellungen“.

Lassen Sie uns das Problem anhand eines Beispiels detailliert beschreiben. Für die Organisation der Konfiguration ZiK 8 gibt es einen Standardbericht: Lohn- und Gehaltsabrechnung. Es ist erforderlich, dass die Berechnungsarten im Bericht in bestimmte Gruppen gruppiert werden. Berechnungsansicht-Gruppen-Korrespondenzen werden in einer externen Wertetabelle gespeichert. Um es in das Hauptdatenlayoutschema zu laden, erstellen wir ein „Datensatzobjekt“ mit dem Namen „Gruppen“ (Abbildung 2). Wir stellen eine Verbindung zum „Abfragedatensatz“ her – „Rückstellungen“ nach Berechnungstyp (Abbildung 3). Im „Datensatz anfordern“ – „Rückstellungen“ gibt es Informationen für Gruppen, wir löschen alle Einträge. Anschließend können wir auf der Registerkarte „Einstellungen“ das Feld „Gruppe“ verwenden, dessen Wert aus einer externen Datenquelle geladen wird (Abbildung 4). In der Berichtsgenerierungsfunktion ergänzen wir das Laden externer Daten.

Funktion GenerateReport(Result = Undefiniert, Entschlüsselungsdaten = Undefiniert, OutputInReportForm = True) Exportieren

//Erhalten oder Bilden der erforderlichen Tabelle mit „Gruppen“-Werten und Schreiben in die gleichnamige Variable

ExternalData = New Structure();//erstelle und fülle die externe Datenstruktur
ExternalData.Insert(Groups);

UserPanelValue = TypischeReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
TypischeReports.GetAppliedSetting(ThisObject);
TypischeReports.GenerateTypicalReport(ThisObject, Ergebnis, Entschlüsselungsdaten, OutputToReportForm, ExternalData);
SettingsLinker.LoadSettings(DefaultSetting);
Rückgabeergebnis;

EndFunction

Wenn wir einen Bericht von Grund auf erstellen würden, würde der Startcode für die Berichtsgenerierung so aussehen:

ExternalDataSets = neue Struktur;
ExternalDataSets.Insert("Groups", Groups); //Gruppen – die gewünschte Wertetabelle
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //unser Layout mit Datenflussdiagramm
Settings = DataCompositionScheme.DefaultSettings;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Settings);
DataCompositionProcessor = newDataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = Neues tabellarisches Dokument;
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Lesen 9660 einmal

41
Ich habe kürzlich einen Bericht mit einer unbestimmten Anzahl von Spalten erstellt. Da ich nicht an dem Code herumbasteln wollte, beschloss ich, es über das Zutrittskontrollsystem zu machen. Das war kein Problem, das Ergebnis musste auf ein beliebiges Layout (eigener Header +...) ausgedehnt werden. 27
Auch wenn CDS-Studenten am ersten oder zweiten Tag darauf stoßen, sollte es im FAQ-Bereich stehen. Ein einfaches Beispiel für die programmgesteuerte Ausgabe eines Berichts in einem Layout unter Verwendung der Standardeinstellungen. //Holen Sie sich die Schaltung von... 18
Beim Erstellen von Berichten im Zutrittskontrollsystem werden standardmäßig alle Gruppierungen erweitert. Manchmal ist es jedoch erforderlich, einen Bericht mit reduzierten Gruppierungen direkt nach der Erstellung anzuzeigen! Mit diesem Code im Berichtsmodul können Sie... 10
Auf dieser Registerkarte können Sie angeben, welche Verbindungen zwischen zwei oder mehr Datensätzen gemäß welchen Parametern und Bedingungen hergestellt werden..png 1. „Verbindungsquelle“ – gibt den ersten Datensatz an, von... 9
Voraussetzung für die Erstellung von Berichten ist, dass für einen Benutzer mit eingeschränkten Rechten der Bericht komplett ohne Überprüfung der Rechte erstellt wird! Insbesondere wenn RLS konfiguriert ist. Es gibt mehrere Möglichkeiten, dies zu tun: 1. Installieren...

Manchmal kommt es vor, dass die Daten in einem Bericht nicht mithilfe einer Abfrage oder einer Kombination von Abfragen abgerufen werden können. Sie müssen einige Verfahren zum Sammeln von Daten verwenden und die Daten werden in einer Wertetabelle abgelegt. Es stellt sich die Frage: Können diese Daten in einem Datenzusammensetzungsschema verwendet werden? Schließlich ist das SKD-Tool leistungsstark und praktisch. Es stellt sich heraus, dass es möglich und überhaupt nicht schwierig ist, Daten aus der Wertetabelle als Datenquelle für einen Bericht im Zutrittskontrollsystem zu verwenden. In diesem Artikel erfahren Sie, wie Sie einen solchen Bericht für reguläre Formulare erstellen.
Wie erstellt man also einen ACS-Bericht mit Daten aus einer Wertetabelle? Das wichtigste zuerst.
Öffnen Sie zunächst den Konfigurator und erstellen Sie einen neuen externen Bericht.

Öffnen Sie das Objektmodul und erstellen Sie eine vordefinierte Prozedur beim Erstellen des Ergebnisses (DocumentResult, Decryption Data, StandardProcessing).

Im Rahmen dieses Verfahrens sammeln wir Daten und erstellen einen Bericht.
Im Verfahren „Beim Verfassen von Ergebnissen“ deaktivieren wir die Standardverarbeitung. StandardProcessing = False;
Dann bilden wir auf beliebige Weise eine Wertetabelle. Die Namen der Spalten der Wertetabelle müssen mit den zukünftigen Feldern des Datensatzes im ACS übereinstimmen:


Fügen wir beispielsweise drei Datenzeilen hinzu. Als nächstes erstellen wir Schritt für Schritt die Berichtsausgabe.

  • Aus dem Diagramm erhalten wir die Standardeinstellungen.

  • Wir senden Entschlüsselungsdaten an die entsprechende Variable.

  • Das Layout erstellen wir mit dem Layout Builder.

  • Wir übertragen das Diagramm, die Einstellungen und die Entschlüsselungsdaten in das Layout-Layout.

  • Das Layout führen wir mit dem Layoutprozessor durch. Führen Sie dazu die DInitialize() aus. Als Parameter übergeben wir das Datenzusammensetzungslayout, externe Datensätze (Typ: Struktur, der Strukturschlüssel muss mit dem Namen des Objekts im Datenzusammensetzungsschema übereinstimmen, der Wert ist die generierte Wertetabelle), Entschlüsselungsdaten.

  • Löschen Sie das Feld des Tabellendokuments.

  • Das Ergebnis zeigen wir in einem Tabellendokument an.
Das Ergebnis ist der folgende Code:
DataLayoutSchema = GetLayout( „MainDataCompositionSchema“); //Settings = DataCompositionScheme.DefaultSettings; // – Wenn Sie es wie oben gezeigt machen (empfohlen für einige Ressourcen), werden Sie diese Änderungen nicht sehen, wenn Sie die Einstellungen im Client-Modus // ändern, da die Einstellungen immer standardmäßig sind. So machen Sie es richtig – Option unten Einstellungen = SettingsComposer. GetSettings(); DecryptionData = newDataCompositionDecryptionData; LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLocker. Execute(DataCompositionScheme, Settings, DecryptionData); ExternalDataSet = Neue Struktur( „Beispiel einer Wertetabelle“, TZOutput); DataCompositionProcessor = newDataCompositionProcessor; DataCompositionProcessor. Initialize(LayoutLayout, ExternalDataSet, DecryptionData); Dokumentergebnis. Klar(); OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument; Ausgabeprozessor. SetDocument(DocumentResult); Ausgabeprozessor. Ausgabe(DataCompositionProcessor); Hinzufügen eines Layoutdiagramm-Layouts. Wir können den Namen als Standard belassen.

Wir erstellen einen Datensatz. Fügen Sie dazu einen neuen Datensatz vom Typ Objekt hinzu. Im Feld „Name“ des Objekts, das die Daten enthält, platzieren wir den Namen, den wir beim Erstellen der External DataSet-Struktur als Schlüssel angegeben haben. Dann fügen wir Felder hinzu. Die Namen müssen genau mit den Namen der Spalten in der Wertetabelle übereinstimmen. Als nächstes können wir akzeptable Werte, Formate usw. angeben.

Fügen Sie bei Bedarf Ressourcen hinzu. Darauf basierend werden die Ergebnisse berechnet. In unserem Fall sind dies die Felder Menge und Betrag.

Auf der Registerkarte „Einstellungen“ erstellen wir mithilfe des Einstellungsdesigners eine Standardberichtsoption

Wir speichern unseren Bericht. Wir starten es im Client und erstellen es. Ein Beispiel für die Ausführung eines ACS-Berichts mit Daten aus der Wertetabelle ist im Bild dargestellt.


Das ist alles. Ganz einfach, oder?

Der resultierende Beispielbericht kann heruntergeladen werden