Funktionen der Ausdruckssprache des Datenkompositionssystems. Verwendung von Ressourcen im Zutrittskontrollsystem am Beispiel der Erstellung eines externen tabellarischen Berichtszutrittskontrollsystems, um die Ressource nur in Gruppierung anzuzeigen

In der Datenzusammensetzung Summen aufstellen sieht etwas anders aus als bei Anfragen. Definieren wir den Datensatz „Abfrage“ im Datenkompositionssystem.

In der Anfrage selbst konfigurieren wir die Summen nicht, sondern gehen auf den Reiter „Ressourcen“ der Datenzusammensetzung. Auf der Ebene des Datenzusammensetzungsschemas haben wir Ressourcen bestimmen. Dies sind die Felder, die auf der Gruppierungsebene gezählt werden müssen. Klicken Sie auf die Schaltfläche „>>“ und das System übernimmt automatisch alle numerischen Felder und definiert sie als Ressourcen.

Sie können in Ressourcen auch nicht numerische Felder angeben. Wenn Sie beispielsweise das Attribut „Link“ auswählen, zählt das System die Anzahl der Dokumente in unseren Gruppen. Diese Informationen können ebenfalls nützlich sein. Also, Im Layoutdiagramm definieren wir nur Ressourcen, und die Gruppierungen selbst werden auf Berichtsvariantenebene konfiguriert. Der Benutzer kann in seinen Berichtsoptionseinstellungen auch die Gruppierungen erstellen, die er sehen möchte.

Lassen Sie uns eine Standardeinstellung für die Datenzusammensetzung erstellen.
Klicken Sie auf die Schaltfläche „Einstellungen-Designer öffnen“.

Wählen wir den Berichtstyp aus – Liste. Klicken Sie auf die Schaltfläche „Weiter“.

Wählen wir alle Felder aus und verschieben wir das Kontrahentenfeld an die oberste Position. Klicken Sie auf die Schaltfläche „Weiter“.

Wählen wir alle Felder aus und verschieben wir das Kontrahentenfeld an die oberste Position. Klicken Sie auf die Schaltfläche „OK“.

Das Ergebnis ist die folgende Einstellung:

Wie Sie sehen, werden Ressourcen beim Einrichten einer Berichtsoption mit einem grünen Symbol hervorgehoben, sodass sie schnell von anderen Feldern unterschieden werden können.

Wenn wir unseren Bericht im 1C:Enterprise-Modus öffnen und generieren, werden wir sehen, dass die endgültigen Daten auf Gruppierungsebene generiert werden. Ergebnisse nach Artikeln und Kontrahenten.

Einrichten von Ressourcen im 1C-Datenzusammensetzungsschema

Nun richten wir unsere Aufmerksamkeit auf Einstellungen, die für Ressourcen vorhanden sind. Im Feld „Ausdruck“ können wir eine Aggregatfunktion angeben, mit der wir den Wert der Ressource ermitteln können. In der Dropdown-Liste sehen Sie einige Standardfunktionen, jedoch nicht alle. Beispielsweise gibt es keine Funktionen.

Hier im Feld „Ausdruck“ können wir unseren eigenen Ausdruck schreiben.

Im Feld „Expression“ können wir auch auf die Funktionen gängiger Module zugreifen.

Darüber hinaus können Sie im Feld „Berechnen nach...“ festlegen, nach welchen Gruppierungen die Ressource berechnet werden soll. Wenn das Feld „Berechnen nach...“ nicht ausgefüllt ist, wird der Endwert der Ressource auf allen Gruppierungsebenen berechnet, die in den Berichtsoptionseinstellungen definiert sind. In unserem Fall müssen wir das Feld „Berechnen nach...“ der Ressource „Menge“ ausfüllen, da wir Waren mit unterschiedlichen Maßeinheiten verkaufen können. Zum Beispiel: Öl in Litern und Räder in Stücken. Stimmt es nicht, dass es unlogisch wäre, die Mengen dieser Güter zu addieren? Daher müssen wir die Mengensummierung auf der Artikelebene und auf der Ebene der Gegenpartei belassen
Entfernen wir die Summierung.

Wenn wir einen Bericht erstellen, sehen wir, dass die Mengensummen nur pro Artikel berechnet werden und die Mengensummen für Auftragnehmer leer sind.

Möglichkeiten bei der Beschreibung von Ressourcen im 1C-Datenzusammensetzungsschema

Lasst uns überlegen eine Reihe nicht offensichtlicher Merkmale im Zusammenhang mit der Beschreibung von Ressourcen.

  • Jede Ressource kann mehrfach definieren. Dies macht aber nur dann Sinn, wenn
    Die Ressource wird auf verschiedenen Gruppierungsebenen berechnet. Wenn zum Beispiel die Menge in einem Fall
    wird für den Posten aufsummiert und für Gegenparteien erhalten wir den Mindestwert.

Wenn wir einen Bericht erstellen, sehen wir, dass für den Kontrahenten „Deriya“ die Mindestabnahme fünf Einheiten der Produktreihe „Selbstklebepapier“ beträgt.

  • Im Feld „Ausdruck“ können Sie neben dem Schreiben einer Formel auch Folgendes verwenden: eine spezielle Datenkompositionsfunktion namens „Berechnen“. Mit dieser Funktion können Sie mithilfe einer bestimmten Formel einen Endwert berechnen. Beispielsweise muss für jede Gegenpartei der prozentuale Anteil der Käufe in physischen Einheiten am Gesamtvolumen bekannt sein. Aber wie erhält man das Gesamtvolumen der Einkäufe nach Menge? Nutzen Sie dazu die Funktion „Berechnen“ und schreiben Sie in das Feld „Ausdruck“ folgenden Ausdruck:
Summe(Menge)/Berechnen("Summe(Menge)", "TotalTotal")*100

Wie gesehen, Alle Parameter der Funktion „Berechnen“ sind Strings. Damit das Mengenfeld im Bericht schön dargestellt wird, konfigurieren wir es auf der Registerkarte „Datensätze“. In der Mengenzeile finden wir das Feld „Bearbeitungsoptionen“. Öffnen wir den Dialog, suchen die Zeile „Format“ und bearbeiten die Formatzeile darin, indem wir auf der Registerkarte „Zahl“ den Wert „Genauigkeit“ auf zwei setzen.

Lassen Sie uns den Bericht ausführen und das Ergebnis der Berechnung des Prozentsatzes der Käufe für die Gegenpartei „AUPP KOS TOO“ im Verhältnis zu sehen
volle Lautstärke:


Am Ende des Artikels möchte ich Ihnen einen kostenlosen von Anatoly Sotnikov empfehlen. Dies ist ein Kurs von einem erfahrenen Programmierer. Es zeigt Ihnen gesondert, wie Sie Berichte im Zutrittskontrollsystem erstellen. Sie müssen nur genau zuhören und sich erinnern! Sie erhalten Antworten auf folgende Fragen:
  • Wie erstelle ich einen einfachen Listenbericht?
  • Wozu dienen die Spalten „Feld“, „Pfad“ und „Titel“ auf der Registerkarte „Felder“?
  • Welche Einschränkungen gibt es für Layoutfelder?
  • Wie konfiguriere ich Rollen richtig?
  • Welche Rollen haben Layoutfelder?
  • Wo finde ich die Registerkarte „Datenzusammensetzung“ in einer Abfrage?
  • Wie konfiguriere ich Parameter im Zutrittskontrollsystem?
  • Es wird noch interessanter...
Vielleicht sollten Sie nicht selbst versuchen, im Internet nach den nötigen Informationen zu suchen? Darüber hinaus ist alles einsatzbereit. Fangen Sie einfach an! Alle Details zu den Inhalten der kostenlosen Video-Lektionen

Hier ist eine der Lektionen zum Lesezeichen der Datenzusammensetzung in einer Abfrage:

Schauen wir uns ein Beispiel an:

Mehrere Wareneinheiten werden mit unterschiedlichen Rabatten an den Kunden versandt. Sie müssen die Rabattwerte für jedes Produkt in einem Bericht anzeigen und den durchschnittlichen Rabatt berechnen. Lassen Sie uns einen Bericht über das Zutrittskontrollsystem erstellen.
Für alle Felder, für die wir Summen anzeigen müssen, legen wir auf der Registerkarte „Ressourcen“ einen Ausdruck (Methode) für deren Berechnung fest. Stellen Sie für das Feld „Rabatt“ die Berechnungsmethode auf „Durchschnitt“ ein.

Wir geben den Bericht aus:

Wie Sie sehen können, wird die Summe für das Feld „Rabatt“ als arithmetisches Mittel der Feldwerte berechnet, d. h. die Summe aller Werte geteilt durch die Anzahl der Werte. Aber weil Da die Mengen der versendeten Waren mit unterschiedlichen Rabatten unterschiedlich sind, kann der durchschnittliche Rabatt auch auf andere Weise berechnet werden: zum Beispiel als Verhältnis der Gesamtmenge der versendeten Waren unter Berücksichtigung des Rabatts zur Gesamtmenge der versendeten Waren. Hier stellt sich jedoch die Frage: Wenn Sie eine Formel schreiben können, um die Werte der Felder detaillierter Datensätze im ACS zu berechnen, werden die Summen automatisch gemäß dem auf der Registerkarte „Ressourcen“ angegebenen Ausdruck berechnet und dort als Wie wir zuvor gesehen haben, wird „Durchschnitt“ als arithmetisches Mittel der angezeigten Werte berechnet. Soll ich in diesem Fall die Gesamtsumme in dieser Spalte mit meiner eigenen Formel berechnen?
Es ist eigentlich nicht schwierig. Dazu passen wir unseren Bericht an, indem wir ihm die notwendigen Felder hinzufügen, die an der Berechnung beteiligt sind, in unserem Fall sind dies „AmountWithDiscount“ und „AmountAtPrice“.

Um dem ACS beizubringen, unsere Ergebnisse anzuzeigen, führen wir die folgenden Schritte aus:
1. Vergeben Sie im Reiter „Einstellungen“ einen Namen für die Gruppierung „“, zum Beispiel „ErgebnisSKD“. Rufen Sie dazu das Kontextmenü der Gruppierung auf und klicken Sie auf „Namen vergeben“;

2. Fügen Sie auf der Registerkarte „Layouts“ ein „Gruppierungskopflayout“ hinzu, in dem wir den zuvor zugewiesenen Namen „TotalSKD“ auswählen.

3. Wir zeichnen eine Linie des Layouts, in der wir alle Ergebnisse, deren Berechnung zu uns passt, so belassen, wie sie sind, und um den durchschnittlichen Rabattprozentsatz zu berechnen, schreiben wir eine Berechnungsformel;

Wenn alles korrekt ist, werden bei der Anzeige des Berichts darunter zwei Summenzeilen angezeigt, zuerst die automatisch generierte, dann die von Ihnen erstellte.

Um die Ausgabe nur Ihrer Gesamtzeile zu belassen, müssen Sie auf der Registerkarte „Einstellungen“ im Abschnitt „Andere Einstellungen“ der Layout-Ausgabe die Ausgabe für „Horizontales Gesamtsummenlayout“ und „Vertikales Gesamtsummenlayout“ deaktivieren.

Der Artikel beschreibt ein Beispiel für die praktische Verwendung eines gewichteten Durchschnitts in Berichtsergebnissen. Es werden einige Techniken für die Arbeit mit Zugangskontrollsystemen gezeigt. Der Artikel richtet sich an einen geschulten Leser mit mindestens Grundkenntnissen im Umgang mit Zugangskontrollsystemen und dem Abfrage-Builder.

Die Berechnung des gewichteten Durchschnitts wird aktiv bei Aufgaben im Zusammenhang mit dem Management Accounting und anderen betriebswirtschaftlichen Berechnungen eingesetzt.

A-Priorat, - GEWICHTETER DURCHSCHNITT(gewichteter Durchschnitt) ist ein arithmetischer Durchschnitt, der das Gewicht jedes einzelnen Begriffs berücksichtigt, für den dieser Durchschnitt berechnet wird.

In fast allen Lehrbüchern zum Management Accounting wird zur Veranschaulichung des gewichteten Durchschnitts ein Beispiel mit dem Kauf von drei Chargen des gleichen Produkts gegeben – jede Warencharge hat einen anderen Einkaufspreis und eine andere Menge. Es ist klar, dass wir, wenn wir in einer solchen Situation den arithmetischen Durchschnitt der Einkaufspreise nehmen, die Durchschnittstemperatur im Krankenhaus erhalten – eine Zahl, die keine praktische Bedeutung hat. In einer solchen Situation ist der gewichtete Durchschnitt sinnvoll.

Das gleiche Musterbeispiel: Waren wurden in drei Partien eingekauft, eine davon 100 Tonnen für 70 Pfund. Kunst. pro Tonne, der andere - 300 Tonnen bei 80 Pfund. Kunst. pro Tonne und Drittel - 50 Tonnen bei 95 Pfund. Kunst. pro Tonne, dann kauft er insgesamt 450 Tonnen Ware; Der übliche durchschnittliche Kaufpreis beträgt (70 + 80 + 95): 3 = 81,7 Pfund. Kunst. Der gewichtete Durchschnittspreis unter Berücksichtigung der Volumina jeder Charge beträgt (100 × 70) + (300 × 80) + (50 × 95): 450 = 79,4 Pfund. Kunst. pro Tonne.

Formel:

Dabei sind X die Werte, deren gewichteter Durchschnitt wir ermitteln möchten, und W die Gewichte.

Hier endet die Theorie.

Damit musste ich mich auseinandersetzen, als ich Daten über Warenverkäufe in einem Bericht, gruppiert nach Managern, anzeigte, wobei es darauf ankam, Rentabilität zu erzielen. In den Zeilen des Berichts wurde die Rentabilität für jedes verkaufte Produkt angezeigt. In den Ergebnissen musste festgestellt werden, mit welcher Rentabilität der Manager arbeitete. Dementsprechend ist die Rentabilität ein „Wert“, und das „Gewicht“ dieses Werts ist der Umsatz. Eine Reihe von Klarstellungen runden das Bild ab. Der Umsatz (Verkaufsvolumen) ist der Verkaufspreis und die Menge des Produkts multipliziert. Der Bruttogewinn ist der Umsatz abzüglich der Kosten (wie genau die Kosten im Rahmen dieses Artikels berechnet wurden, ist nicht wichtig). Und schließlich ist unsere Rentabilität das Verhältnis von Bruttogewinn zu Umsatz, ausgedrückt in Prozent.

Es stellt sich die Frage: Welche Rentabilität hat der Manager im Berichtszeitraum erzielt? Um diese Frage richtig zu beantworten, müssen Sie den gewichteten durchschnittlichen Rentabilitätswert berechnen.

Um den rentabilitätsgewichteten Durchschnitt im SKD zu erhalten, erstellen wir im Abfragekonstruktor ein Hilfsfeld des Formularswillkürlicher Ausdruck, wobei wir das Produkt aus Rentabilität und Umsatz erfassen. Wir weisen diesem Feld einen Alias ​​zu -Hilfsfeld. Siehe das Bild unten.

Wir werden dieses Feld nicht im Bericht anzeigen; wir benötigen die Daten, um die Ergebnisse zu berechnen. Wir berechnen die Ergebnisse im ACS-TabRessourcen.

Eine weitere Technik für die Arbeit mit ACS auf der Registerkarte „Ressourcen“, auf der die Berechnung von Gesamtsummen angezeigt wird, ist die Möglichkeit, Ausdrücke im Feld „Ausdruck“ mit Daten aus dem Feld „Verfügbare Felder“ zu verwenden. Siehe das Bild unten.

Für die Berichtsspalte „Prozentsatz der Rentabilität“ schreiben wir den Ausdruck Betrag (Hilfsfeld)/Betrag (Umsatz).

Zusammenfassend ist es zunächst wichtig zu verstehen, was ein gewichteter Durchschnitt ist und wo Sie nur den arithmetischen Durchschnitt verwenden müssen und wo Sie den gewichteten Durchschnitt verwenden müssen. Aus technischer Sicht können zwei Punkte Schwierigkeiten bereiten: die Erstellung eines Hilfsfelds im Bericht und die Möglichkeit, einen beliebigen Ausdruck in den ACS-Ressourcen zu verwenden, um die benötigten Ergebnisse zu berechnen.

Ich hoffe, dass dieser Artikel für jemanden nützlich sein wird.

1. Berechnen (Auswerten)- soll einen Ausdruck im Kontext einer Gruppierung bewerten. Die Funktion dient der Kompatibilität mit früheren Versionen der Plattform. Es wird empfohlen, stattdessen die Funktion CalculateExpression zu verwenden.

Syntax:
Berechnen(Ausdruck, Gruppierung, Berechnungstyp)

Optionen :

  • Ausdruck(Linie). Enthält einen berechneten Ausdruck;
  • Gruppierung(Linie). Enthält den Namen der Gruppierung, in deren Kontext der Ausdruck ausgewertet werden soll. Wenn als Gruppierungsname eine leere Zeichenfolge verwendet wird, wird die Berechnung im Kontext der aktuellen Gruppierung durchgeführt. Wenn der GrandTotal-String als Gruppenname verwendet wird, wird die Berechnung im Kontext der Gesamtsumme durchgeführt. Andernfalls wird die Berechnung im Kontext der gleichnamigen übergeordneten Gruppierung durchgeführt.
    Zum Beispiel:
    Sum(Sales.SumTurnover) / Calculate("Sum(Sales.SumTurnover)", "Total").
    In diesem Beispiel ist das Ergebnis das Verhältnis des Betrags für das Feld „Sales.AmountTurnover“ des Gruppierungsdatensatzes zum Betrag desselben Felds im gesamten Layout.
  • Berechnungstyp(Linie). Wenn dieser Parameter auf „TotalTotal“ gesetzt ist, wird der Ausdruck für alle Gruppierungsdatensätze berechnet. Wenn der Wert des Parameters „Gruppierung“ lautet, werden die Werte für den aktuellen Gruppierungsgruppendatensatz berechnet.
2. Ausdruck auswerten (EvalExpression) - soll einen Ausdruck im Kontext einer Gruppierung bewerten. Die Funktion berücksichtigt die Auswahl von Gruppierungen, berücksichtigt jedoch keine hierarchischen Auswahlen. Die Funktion kann nicht auf eine Gruppierung in der Gruppenauswahl dieser Gruppierung angewendet werden.

Syntax:
CalculateExpression(Expression, Grouping, CalculationType, Start, End, Sort, HierarchicalSort, ProcessingIdenticalOrderValues)

Optionen :

  • Ausdruck(Linie). Enthält einen berechneten Ausdruck;
  • Gruppierung(Linie). Enthält den Namen der Gruppierung, in deren Kontext der Ausdruck ausgewertet werden soll. Wenn als Gruppierungsname eine leere Zeichenfolge verwendet wird, wird die Berechnung im Kontext der aktuellen Gruppierung durchgeführt. Wenn der GrandTotal-String als Gruppenname verwendet wird, wird die Berechnung im Kontext der Gesamtsumme durchgeführt. Andernfalls wird die Berechnung im Kontext der übergeordneten Gruppierung mit diesem Namen durchgeführt;
  • Berechnungstyp(Linie). Wenn dieser Parameter auf „TotalTotal“ gesetzt ist, wird der Ausdruck für alle Gruppierungsdatensätze berechnet. Wenn der Wert des Parameters „Gruppierung“ lautet, werden die Werte für den aktuellen Gruppierungsgruppendatensatz berechnet. Wenn der Parameter auf „Nicht-Ressourcen-Gruppierung“ eingestellt ist, wird bei der Berechnung der Funktion für einen Gruppendatensatz nach Ressource der Ausdruck für den ersten Gruppendatensatz der ursprünglichen Gruppierung ausgewertet. Bei der Auswertung der CalculateExpression-Funktion mit dem Wert „GroupingNonResource“ für Gruppendatensätze, bei denen es sich nicht um Gruppierungen nach Ressourcen handelt, wird die Funktion auf die gleiche Weise ausgewertet, wie sie mit dem Wert des Parameters „Grouping“ ausgewertet würde. Der Datenzusammensetzungslayout-Builder gibt beim Generieren eines Datenzusammensetzungslayouts bei der Ausgabe eines Felds – einer Ressource, nach der die Gruppierung durchgeführt wird – an das Layout einen Ausdruck aus, der mithilfe der Funktion CalculateExpression mit dem angegebenen Parameter „GroupingNon-Resource“ berechnet wurde. Für andere nach Ressource gruppierte Ressourcen werden normale Ressourcenausdrücke zurückgegeben. Wenn der Parameter auf „Hierarchie“ gesetzt ist, muss der Ausdruck für den übergeordneten hierarchischen Datensatz ausgewertet werden, sofern vorhanden, und für die gesamte Gruppierung, sofern kein übergeordneter hierarchischer Datensatz vorhanden ist. Wenn der Layout-Builder einen Ausdruck für das Feld „% in Hierarchiegruppe“ generiert, generiert er einen Ausdruck, der die Beziehung des Ressourcenausdrucks zur Funktion „CalculateExpression“ für den Ressourcenausdruck enthält, der für die aktuelle Gruppierung mit dem Berechnungstyp „Hierarchie“ berechnet wird.
  • Start. Gibt an, ab welchem ​​Datensatz das Fragment beginnen soll, in welchen Aggregatausdrucksfunktionen berechnet werden soll und aus welchem ​​Datensatz Feldwerte außerhalb der Aggregatfunktionen abgerufen werden sollen. Eine Zeichenfolge, die Folgendes enthält:
    • "Erste" Es ist erforderlich, den ersten Gruppierungsdatensatz abzurufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Beginn der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: First(3) – Empfang des dritten Datensatzes vom Beginn der Gruppierung. Wenn der erste Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie First(4) erhalten möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.
    • "Zuletzt" Sie müssen den letzten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Ende der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: Last(3) – Empfang des dritten Datensatzes vom Ende der Gruppe. Wenn der letzte Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie Last(4) abrufen möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.
    • "Vorherige" Sie müssen den vorherigen Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset zurück zum aktuellen Gruppierungsdatensatz verwendet wird. Beispiel: Previous(2) – Vorheriges aus dem vorherigen Datensatz abrufen. Wenn der vorherige Datensatz außerhalb der Gruppierung liegt (z. B. muss für den zweiten Gruppierungsdatensatz „Previous(3)“ abgerufen werden), wird der erste Gruppierungsdatensatz abgerufen. Beim Empfang des vorherigen Datensatzes für die Gruppierungssumme wird der erste Datensatz abgerufen.
    • "Nächste" Sie müssen den nächsten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom aktuellen Gruppierungseintrag nach vorne verwendet wird. Zum Beispiel Next(2) – das Nächste aus dem nächsten Datensatz abrufen. Wenn der nächste Datensatz über die Gruppierung hinausgeht, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Einträge vorhanden sind und der dritte Eintrag „Weiter“ erhält, wird davon ausgegangen, dass keine Einträge vorhanden sind. Wenn der nächste Datensatz für die Gruppierungssumme empfangen wird, wird davon ausgegangen, dass kein Datensatz vorhanden ist.
    • "Aktuell". Sie müssen den aktuellen Datensatz abrufen. Beim Abrufen einer Gruppierungssumme wird der erste Datensatz abgerufen.
    • "Grenzwert". Die Notwendigkeit, einen Datensatz mit dem angegebenen Wert zu erhalten. Nach dem Wort LimitingValue in Klammern müssen Sie den Ausdruck angeben, mit dessen Wert Sie das Fragment beginnen möchten, das erste Bestellfeld. Als Datensatz wird der erste Datensatz zurückgegeben, dessen Bestellfeldwert größer oder gleich dem angegebenen Wert ist. Wenn beispielsweise das Feld „Periode“ als Bestellfeld verwendet wird und es die Werte 01.01.2010, 01.02.2010, 01.03.2010 hat und Sie den LimitingValue(DateTime(2010) erhalten möchten , 1, 15)), dann wird ein Datensatz mit dem Datum 01.02.2010 erhalten.
  • Ende. Gibt an, bis zu welchem ​​Datensatz das Fragment fortgesetzt werden soll, in dem der Aggregatausdruck berechnet werden soll. Eine Zeichenfolge, die Folgendes enthält:
    • "Erste"
    • "Zuletzt"
    • "Vorherige"
    • "Nächste"
    • "Aktuell".
    • "Grenzwert".
  • Sortierung. Eine Zeichenfolge, die durch Kommas getrennt die Ausdrücke auflistet, in deren Richtung die Reihenfolge geordnet werden soll. Wenn nicht angegeben, erfolgt die Sortierung auf die gleiche Weise wie für die Gruppierung, für die der Ausdruck ausgewertet wird. Nach jedem Ausdruck können Sie das Schlüsselwort Ascending für die Sortierung in aufsteigender Reihenfolge, Descending für die Sortierung in absteigender Reihenfolge und Auto-Ordering für die Sortierung der Referenzfelder nach den Feldern angeben, nach denen Sie das referenzierte Objekt ordnen möchten. Das Wort „Automatische Reihenfolge“ kann sowohl mit dem Wort „Aufsteigend“ als auch mit dem Wort „Absteigend“ verwendet werden.
  • Hierarchische Sortierung. Ähnlich wie beim Sortieren. Wird zum Organisieren hierarchischer Datensätze verwendet. Wenn nicht angegeben, generiert der Layout-Compositor die Reihenfolge gemäß der im Parameter „Sort“ angegebenen Reihenfolge.
  • Verarbeitung gleicher Auftragswerte. Eine Zeichenfolge, die Folgendes enthält:
    • „Zusammen“ bedeutet, dass eine Folge geordneter Datensätze verwendet wird, um den vorherigen und den nächsten Datensatz zu bestimmen;
    • „Getrennt“ bedeutet, dass der vorherige und der nächste Datensatz anhand der Werte der Sortierausdrücke bestimmt werden;
    Wenn die resultierende Sequenz beispielsweise nach Datum sortiert ist:
    1. 01. Januar 2001 Ivanov M. 10
    2. 02. Januar 2001 Petrov S. 20
    3. 2. Januar 2001 Sidorov R. 30
    4. 03. Januar 2001 Petrov S. 40
    Bei Verwendung der Verarbeitung identischer Werte der Reihenfolge „Getrennt“ ist der vorherige für Datensatz 3 Datensatz 2 und bei Verwendung von „Zusammen“ Datensatz 1. Und das Fragment für den aktuellen Datensatz für Datensatz 2 für „Getrennt“ wird Datensatz 2 und für „Gemeinsam“ die Datensätze 2 und 3 sein. Somit beträgt die Gesamtsumme für den aktuellen Datensatz für „Getrennt“ 20 und für „Gemeinsam“ - 50. Wenn „Gemeinsam“ im Start und angegeben ist Endparameter können Sie keinen Offset für die Positionen „First“, „Last“, „Previous“, „Next“ angeben. Der Standardwert ist „Getrennt“.
Beispiel:
Ermitteln des Verhältnisses des Betrags für das Feld „Sales.AmountTurnover“ eines Gruppierungsdatensatzes zum Betrag desselben Felds im gesamten Layout:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

In diesem Beispiel wird der Wert der aktuellen Hierarchie berechnet:
Auswahl
Wenn Level() > 0
Dann EvaluateExpression("Reference", "Hierarchy")
Ansonsten Null
Ende

Anmerkungen:
Die Funktion berücksichtigt die Auswahl von Gruppierungen, berücksichtigt jedoch keine hierarchischen Auswahlen. Die Funktion kann nicht auf eine Gruppierung in der Gruppenauswahl dieser Gruppierung angewendet werden. Beispielsweise können Sie bei der Auswahl der Nomenklatur-Gruppierung nicht den Ausdruck CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 verwenden. Ein solcher Ausdruck kann jedoch bei der hierarchischen Auswahl verwendet werden. Wenn der Enddatensatz vor dem Startdatensatz liegt, wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind. Bei der Berechnung von Intervallausdrücken für eine Gesamtsumme (der Gruppierungsparameter ist auf „GrossTotal“ festgelegt) wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind. Beim Generieren eines Ausdrucks für die CalculateExpression-Funktion ersetzt der Layout-Compositor die CalculateExpression-Funktion durch NULL, wenn der Sortierausdruck Felder enthält, die nicht in der Gruppierung verwendet werden können.

3. Ausdruck mit Gruppenarray auswerten (EvalExpression With Group Array) - Die Funktion gibt ein Array zurück, dessen jedes Element das Ergebnis der Berechnung eines Ausdrucks zur Gruppierung nach dem angegebenen Feld enthält.

Syntax:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Optionen :

  • Ausdruck(String) – der auszuwertende Ausdruck. Beispiel: „Amount(AmountTurnover)“;
  • FieldExpressionsGroups
  • Auswahl von Datensätzen
  • Auswahl von Gruppierungen- Auswahl wird auf Gruppendatensätze angewendet. Zum Beispiel: „Betrag(AmountTurnover) > &Parameter1“.
Beispiel:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Wenn der Layout-Builder Ausdrücke generiert, um ein benutzerdefiniertes Feld anzuzeigen, dessen Ausdruck nur die Funktion CalculateArrayWithGroup enthält, generiert er den Ausgabeausdruck so, dass die Anzeigedaten und die Daten geordnet sind.
Beispielsweise für ein benutzerdefiniertes Feld mit dem Ausdruck:
CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty")
Der Layout-Builder generiert den folgenden Ausdruck für die Ausgabe:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Ausdruck mit GroupValueTable berechnen (EvalExpressionWithGroupValueTable) - Die Funktion gibt eine Wertetabelle zurück, deren jedes Element das Ergebnis der Berechnung eines Ausdrucks zur Gruppierung nach dem angegebenen Feld enthält.

Syntax:
CalculateExpressionWithGroupValueTable (Ausdruck, GroupField-Ausdrücke, Datensatzauswahl, Gruppenauswahl)

Optionen :

  • Ausdruck(String) – der auszuwertende Ausdruck. Eine Zeile kann mehrere durch Kommas getrennte Ausdrücke enthalten. Nach jedem Ausdruck kann ein optionales Schlüsselwort AS und der Name der Wertetabellenspalte stehen. Beispiel: „Gegenpartei, Betrag (AmountTurnover) als Verkaufsvolumen.“
  • FieldExpressionsGroups- Ausdrücke von Gruppierungsfeldern, durch Kommas getrennt. Beispiel: „Gegenpartei, Partei“;
  • Auswahl von Datensätzen– ein Ausdruck, der auf Detaildatensätze angewendet wird. Beispiel: „Löschkennzeichen = Falsch.“ Wenn dieser Parameter eine Aggregatfunktion verwendet, tritt beim Zusammenstellen der Daten ein Fehler auf.
  • Auswahl von Gruppierungen- Auswahl wird auf Gruppendatensätze angewendet. Zum Beispiel: „Betrag(AmountTurnover) > &Parameter1“.
Beispiel:
Berechnen Sie den Ausdruck mit der Gruppierungstabelle der Werte („Konto als Gegenpartei, Betrag (Umsatzbetrag) als Verkaufsvolumen“, „Konto“)

Das Ergebnis dieser Funktion ist eine Wertetabelle mit den Spalten Kontrahent und Verkaufsvolumen, die Kontrahenten mit ihren Verkaufsvolumina enthält.
Der Layout-Compositor wandelt beim Generieren eines Layouts Funktionsparameter in Begriffe von Datenzusammensetzungs-Layoutfeldern um. Beispielsweise wird das Feld „Konto“ in „DataSet.Account“ konvertiert.
Beispielsweise ein benutzerdefiniertes Feld mit dem Ausdruck:
CalculateExpressionWithGroupValueTable("Account, Amount(AmountTurnover)", "Account")
Der Layout-Builder generiert den folgenden Ausdruck für die Ausgabe:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), „2, 4“))

5. Ebene - Die Funktion dient dazu, den aktuellen Aufnahmepegel zu ermitteln.

Syntax:
Ebene()

Beispiel:
Ebene()

6. Sequenznummer - Holen Sie sich die nächste Seriennummer.

Syntax:
NumberByOrder()

Beispiel:
NumberByOrder()

7. SequenceNumberInGrouping – gibt die nächste Sequenznummer in der aktuellen Gruppierung zurück.

Beispiel:
NumberByOrderInGroup()

8. Formatieren - Holen Sie sich eine formatierte Zeichenfolge des übergebenen Werts.

Syntax:
Format(Wert, FormatString)

Optionen :

  • Bedeutung– der Ausdruck, der formatiert werden muss;
  • FormatString- Die Formatzeichenfolge wird gemäß der 1C:Enterprise-Formatzeichenfolge festgelegt.
Beispiel:
Format(Consumable Invoices.Doc Amount, „NPV=2“)

9. BeginOfPeriod

Syntax:
StartPeriod(Datum, Periodentyp)

Optionen :

  • Datum(Datum von). Angegebenes Datum;
  • Periodentyp
Beispiel:
StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Monat“)
Ergebnis: 01.10.2002 0:00:00

10. EndOfPeriod - Die Funktion dient dazu, ein bestimmtes Datum aus einem bestimmten Datum auszuwählen.

Syntax:
EndPeriod(Datum, Periodentyp)

Optionen :

  • Datum(Datum von). Angegebenes Datum;
  • Periodentyp(Linie). Enthält einen der folgenden Werte: Minute; Stunde; Der Tag; Die Woche; Monat; Quartal; Jahr; Jahrzehnt; Halbes Jahr.
Beispiel:
EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Woche“)
Ergebnis: 13.10.2002 23:59:59

11. AddKDate (DateAdd) - Die Funktion soll dem Datum einen bestimmten Wert hinzufügen.

Syntax:
AddToDate(Ausdruck, Inkrementtyp, Magnitude)

Optionen :

  • Ausdruck(Datum von). Ursprüngliches Datum;
  • TypVergrößerung(Linie). Enthält einen der folgenden Werte: Minute; Stunde; Der Tag; Die Woche; Monat; Quartal; Jahr; Jahrzehnt; Halbes Jahr.
  • Größe(Nummer). Um wie viel das Datum erhöht werden muss, wird der Bruchteil ignoriert.
Beispiel:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Monat", 1)
Ergebnis: 12.11.2002 10:15:34

12. Datumsunterschied - Die Funktion dient dazu, die Differenz zwischen zwei Datumsangaben zu ermitteln.

Syntax:
DifferenceDate(Expression1, Expression2, DifferenceType)

Optionen :

  • Ausdruck1(Datum von). Subtrahiertes Datum;
  • Ausdruck2(Datum von). Ursprüngliches Datum;
  • Typunterschied(Linie). Enthält einen der Werte: Second; Minute; Stunde; Der Tag; Monat; Quartal; Jahr.
Beispiel:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), „DAY“)
Ergebnis: 2

13. Teilzeichenfolge – Diese Funktion dient zum Extrahieren eines Teilstrings aus einem String.

Syntax:
Teilzeichenfolge (Zeichenfolge, Position, Länge)

Optionen :

  • Linie(Linie). Die Zeichenfolge, aus der die Teilzeichenfolge extrahiert wird;
  • Position(Nummer). Die Position des Zeichens, an der die aus der Zeichenfolge zu extrahierende Teilzeichenfolge beginnt;
  • Länge(Nummer). Länge des zugewiesenen Teilstrings.
Beispiel:
SUBSTRING(Accounts.Address, 1, 4)

14. StringLength - Die Funktion soll die Länge einer Zeichenfolge bestimmen.

Syntax:
StringLength(String)

Parameter:

  • Linie(Linie). Eine Zeichenfolge, deren Länge angegeben ist.
Beispiel:
Zeile(Gegenparteien.Adresse)

15 Jahre– Diese Funktion dient dazu, das Jahr aus einem Wert vom Typ „Datum“ zu extrahieren.

Syntax:
Jahr (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem das Jahr bestimmt wird.
Beispiel:
JAHR (Ausgabendatum)

16. Viertel – Diese Funktion dient dazu, die Quartalszahl aus einem Wert vom Typ „Datum“ zu extrahieren. Die Quartalszahl liegt normalerweise zwischen 1 und 4.

Syntax:
Quartal (Datum)

Parameter:

  • Datum(Datum von). Das Datum, bis zu dem das Quartal bestimmt wird
Beispiel:
QUARTER(Ausgaben.Datum)

17. Monat – Diese Funktion dient dazu, die Monatszahl aus einem Wert vom Typ „Datum“ zu extrahieren. Die Monatszahl liegt normalerweise zwischen 1 und 12.

Syntax:
Monatsdatum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem der Monat bestimmt wird.
Beispiel:
MONAT (Ausgabendatum)

18. Tag des Jahres (DayOfYear) – Diese Funktion dient dazu, den Tag des Jahres aus einem Wert vom Typ „Datum“ zu ermitteln. Der Tag des Jahres liegt normalerweise zwischen 1 und 365 (366).

Syntax:
Tag des Jahres (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen der Tag im Jahr bestimmt wird.
Beispiel:
DAYYEAR(ExpenseAccount.Date)

19. Tag– Diese Funktion dient dazu, den Tag des Monats aus einem Wert vom Typ „Datum“ zu ermitteln. Der Tag des Monats liegt normalerweise zwischen 1 und 31.

Syntax:
Tag (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen der Tag des Monats bestimmt wird.
Beispiel:
TAG (Ausgabendatum)

20. Woche – Diese Funktion dient dazu, die Wochennummer des Jahres aus einem Wert vom Typ „Datum“ zu ermitteln. Die Wochen des Jahres werden beginnend mit 1 nummeriert.

Syntax:
Woche (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem die Wochennummern bestimmt werden.
Beispiel:
WOCHE (Ausgabendatum)

21. Wochentag – Diese Funktion dient dazu, den Wochentag aus einem Wert vom Typ „Datum“ zu ermitteln. Der normale Wochentag reicht von 1 (Montag) bis 7 (Sonntag).

Syntax:
Wochentag (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem der Wochentag bestimmt wird.
Beispiel:
TAG DER WOCHE (Rechnungsdatum der Spesen)

22. Stunde– Diese Funktion dient dazu, die Tageszeit aus einem Wert vom Typ „Datum“ zu ermitteln. Die Tageszeit reicht von 0 bis 23.

Syntax:
Stunde (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Stunde des Tages bestimmt wird.
Beispiel:
STUNDE (Ausgabendatum)

23. Minute – Diese Funktion dient dazu, die Minute der Stunde aus einem Wert vom Typ „Datum“ zu ermitteln. Die Minute der Stunde reicht von 0 bis 59.

Syntax:
Minute (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Minute der Stunde bestimmt wird.
Beispiel:
MINUTE(Ausgabendatum)

24. Zweitens – Diese Funktion dient dazu, die Sekunde einer Minute aus einem Wert vom Typ „Datum“ zu ermitteln. Die Sekunde einer Minute reicht von 0 bis 59.

Syntax:
Sekunde (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Sekunden der Minute bestimmt werden.
Beispiel:
SECOND(Ausgabendatum)

25. Besetzung – Diese Funktion dient zum Extrahieren eines Typs aus einem Ausdruck, der möglicherweise einen zusammengesetzten Typ enthält. Wenn der Ausdruck einen anderen Typ als den erforderlichen Typ enthält, wird NULL zurückgegeben.

Syntax:
Express(Expression, TypeIndication)

Optionen :

  • Ausdruck- zu konvertierender Ausdruck;
  • Typangabe(Linie). Enthält eine Typzeichenfolge. Zum Beispiel „Number“, „String“ usw. Zusätzlich zu primitiven Typen kann diese Zeile den Namen der Tabelle enthalten. In diesem Fall wird versucht, einen Verweis auf die angegebene Tabelle auszudrücken.
Beispiel:
Express(Data.Props1, "Number(10,3)")

26. IsNull (IsNull) – Diese Funktion gibt den Wert des zweiten Parameters zurück, wenn der Wert des ersten Parameters NULL ist. Andernfalls wird der Wert des ersten Parameters zurückgegeben.

Syntax:
IsNull(Ausdruck1, Ausdruck2)

Optionen :

  • Ausdruck1- zu prüfender Wert;
  • Ausdruck2– Rückgabewert, wenn Ausdruck1 NULL ist.
Beispiel:
YesNULL(Amount(Sales.AmountTurnover), 0)

27.ACos- Berechnet den Arkuskosinus im Bogenmaß.

Syntax:
ACos(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Kosinuswert (im Bereich -1 ... 1), durch den der Winkel bestimmt wird.
28.ASin- Berechnet den Arkussinus im Bogenmaß.

Syntax:
ASin(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Sinuswert (im Bereich -1 ... 1), durch den der Winkel bestimmt wird.
29. ATan- berechnet den Arkustangens im Bogenmaß.

Syntax:
ATan(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Tangentenwert, durch den der Winkel bestimmt wird.
30.Cos- berechnet den Kosinus.

Syntax:
Cos(Ausdruck)

Parameter:

  • Ausdruck
31. Exp- Potenzierung der Zahl e.

Syntax:
Exp(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Die Bedeutung des Abschlusses.
32.Protokoll- berechnet den natürlichen Logarithmus.

Syntax:
Protokoll (Ausdruck)

Parameter:

  • Ausdruck
33.Log10- berechnet den Logarithmus von X zur Basis 10.

Syntax:
Log10 (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Die ursprüngliche Zahl ist größer als 0.
34. Pow- Potenzierung.

Syntax:
Pow(Basis, Indikator)

Optionen :

  • Base(Nummer). Die Grundlage der Potenzierungsoperation.
  • Index(Nummer). Exponent.
35. Sünde- berechnet den Sinus.

Syntax:
Sünde (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Angabe im Bogenmaß.
36. Quadrat- berechnet die Quadratwurzel.

Syntax:
Sqrt(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Nicht negative Zahl.
37. Bräune- berechnet den Tangens.

Syntax:
Tan (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Sinuswert, durch den der Winkel bestimmt wird.
38. Runde- Rundet die ursprüngliche Zahl auf die erforderliche Bittiefe. Der Rundungsmodus ist Standard (1,5 als 2).

Syntax:
Env(Ausdruck, Bittiefe)

Optionen :

  • Ausdruck(Nummer). Originalnummer;
  • Bittiefe(Nummer). Die Anzahl der Dezimalstellen, auf die gerundet werden soll.
39. Int- schneidet den Bruchteil einer Zahl ab.

Syntax:
Objekt (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Eine Bruchzahl.
40. Funktionen gemeinsamer Module

Ein Datenkompositions-Engine-Ausdruck kann Aufrufe von Funktionen globaler gemeinsamer Konfigurationsmodule enthalten. Für den Aufruf solcher Funktionen ist keine zusätzliche Syntax erforderlich.

Beispiel:
AbbreviatedName(Documents.Link, Documents.Date, Documents.Number)

In diesem Beispiel wird die Funktion „AbbreviatedName“ aus dem allgemeinen Konfigurationsmodul aufgerufen.
Beachten Sie, dass die Verwendung allgemeiner Modulfunktionen nur zulässig ist, wenn der entsprechende Parameter des Datenkompositionsprozessors angegeben ist.
Darüber hinaus können Funktionen allgemeiner Module nicht in benutzerdefinierten Feldausdrücken verwendet werden.

41. Ressentiments – Diese Funktion gibt eine Zeichenfolgendarstellung des übergebenen Werts eines nicht-primitiven Typs zurück. Gibt bei Werten eines primitiven Typs den Wert selbst zurück.

<Пустое значение>".

Beispiel:
Präsentation (Gegenpartei)

42. Zeichenfolge - Diese Funktion wandelt den übergebenen Wert in einen String um.

Wenn ein Array oder eine Wertetabelle als Parameter verwendet wird, gibt die Funktion einen String zurück, der eine String-Darstellung aller Elemente des Arrays enthält, getrennt durch die Zeichen „;“. Wenn ein Element eine leere Zeichenfolgendarstellung hat, dann ist die Zeichenfolge „<Пустое значение>".

Beispiel:
Zeile (Verkaufsdatum)

43. ValueIsFilled

Für NULL-Werte gibt Undefiniert immer False zurück.
Bei booleschen Werten wird immer „True“ zurückgegeben.
Bei anderen Typen wird „True“ zurückgegeben, wenn der Wert vom Standardwert für den angegebenen Typ abweicht.

Beispiel:
ValueFilled(DeliveryDate)

44. LevelInGroup – Diese Funktion ermittelt den aktuellen Aufnahmepegel relativ zur Gruppierung.

Kann verwendet werden, um die Verschachtelungsebene eines Datensatzes in einer hierarchischen Gruppierung zu ermitteln.

Beispiel:
LevelInGroup()

45. Werttyp

Syntax:
ValueType(Ausdruck)

Parameter:

  • Ausdruck(Linie). String-Werttyp.
Gibt einen Wert vom Typ Type zurück, der den Werttyp des Funktionsparameters enthält.

Melden Sie sich als Student auf der Website an

Melden Sie sich als Schüler an, um auf Schulmaterialien zuzugreifen

Datenkompositionssystem 1C 8.3 für Anfänger: Zählen der Ergebnisse (Ressourcen)

Der Zweck dieser Lektion wird sein:

  • Schreiben Sie einen Bericht, der eine Liste der Produkte (Lebensmittelverzeichnis), deren Kaloriengehalt und Geschmack anzeigt.
  • Gruppieren Sie Produkte nach Farbe.
  • Erfahren Sie mehr über das Zusammenfassen von (Ressourcen) und berechneten Feldern.

Erstellen Sie einen neuen Bericht

Wie in den vorherigen Lektionen öffnen wir die Datenbank. Delikatessen„Im Konfigurator und über das Menü einen neuen Bericht erstellen“ Datei"->"Neu...":

Art des Dokuments - Externer Bericht:

Schreiben Sie in das Formular zur Berichtseinrichtung den Namen „ Lektion 3" und drücken Sie die Taste " Öffnen Sie das Datenzusammensetzungsdiagramm":

Behalten Sie den Standardschemanamen bei und klicken Sie auf „ Bereit":

Hinzufügen einer Anfrage über den Konstruktor

Auf der Registerkarte „ Datensatz" klicken Grün Pluszeichen und wählen Sie „ Datensatz hinzufügen – Abfrage":

Anstatt den Anfragetext manuell zu schreiben, führen wir ihn erneut aus Abfragekonstruktor:

Auf der „Registerkarte“ Tische„Ziehe den Tisch“ Essen" von der ersten Spalte zur zweiten:

Wählen Sie aus der Tabelle „ Essen„Felder, die wir anfordern werden. Ziehen Sie dazu die Felder per Drag & Drop“ Name", "Schmecken", "Farbe" Und " Kaloriengehalt" von der zweiten Spalte zur dritten:

Es stellte sich so heraus:

Drücken Sie den Knopf " OK" - der Anfragetext wurde automatisch generiert:

Erstellen von Einstellungen für die Berichtspräsentation

Gehen Sie zur Registerkarte „ Einstellungen" und klicken Sie auf Zauberstab, anrufen Einstellungsdesigner:

Wählen Sie den Berichtstyp „ Aufführen...“ und drücken Sie die Taste „ Weiter":

Ziehen Sie die Felder, die in der Liste angezeigt werden sollen, von der linken Spalte nach rechts und klicken Sie auf „ Weiter":

Von der linken Spalte in das rechte Feld ziehen „ Farbe" - es wird passieren Gruppierung Zeilen im Bericht. Klicken " OK":

Und hier ist das Ergebnis der Arbeit des Designers. Hierarchie unseres Berichts:

  • den Bericht als Ganzes
  • Gruppierung „Farbe“
  • detaillierte Einträge - Zeilen mit Lebensmittelnamen

Speichern Sie den Bericht (Schaltfläche Diskette) Und ohne zu schließen Wir öffnen den Konfigurator sofort im Benutzermodus. Es stellte sich so heraus:

Ändern der Spaltenreihenfolge

Aber lasst uns Lass uns die Reihenfolge ändern Spalten (Pfeile nach oben und unten), sodass es wie in der Abbildung unten aussieht:

Speichern wir den Bericht und öffnen ihn erneut im Benutzermodus:

Großartig, das ist viel besser.

Fassen wir den Kaloriengehalt zusammen

Es wäre schön, den Kaloriengehalt von Lebensmitteln nach Gruppen zusammenzufassen. Um die Summe des Kaloriengehalts aller Produkte anzuzeigen, beispielsweise weiß oder gelb. Oder erfahren Sie den Gesamtkaloriengehalt aller Produkte in der Datenbank.

Zu diesem Zweck gibt es einen Mechanismus zur Ressourcenberechnung.

Gehen Sie zur Registerkarte „ Ressourcen„und das Feld ziehen“ Kaloriengehalt"(wir werden es zusammenfassen) von der linken Spalte nach rechts.

Wählen Sie in diesem Fall im Feld den Ausdruck aus der Dropdown-Liste „ Menge (Kalorien)", da die Summe die Summe aller in der Summe enthaltenen Elemente ist:

Wir speichern und erstellen einen Bericht:

Wir haben jetzt Ergebnisse für jede der Gruppen und für den Bericht als Ganzes.

Fassen wir es (durchschnittlich) in Kalorien zusammen

Jetzt lassen wir es in einer anderen Spalte erscheinen Durchschnitt Kaloriengehalt von Produkten nach Gruppen und im Bericht als Ganzes.

Sie können die vorhandene Spalte „Kalorien“ nicht berühren, da dort bereits die Gesamtsumme angezeigt wird Lass uns ein weiteres Feld erstellen, das eine exakte Kopie des Feldes „Kalorie“ ist.

Um ein solches „virtuelles“ Feld zu erstellen, verwenden wir den Mechanismus berechnete Felder.

Gehen Sie zur Registerkarte „ Berechnete Felder" und drücke Grün Pluszeichen:

In einer Kolumne „ Datenweg„Wir schreiben den Namen des neuen Feldes ( einwandfrei, ohne Zwischenraum). Lass es heißen „ Durchschnittlicher Kaloriengehalt", und in der Spalte " Ausdruck„Wir schreiben den Namen eines bestehenden Feldes, auf dessen Grundlage das neue Feld berechnet wird. Wir schreiben dort“ Kaloriengehalt". Spalte " Überschrift" wird automatisch ausgefüllt.

Wir haben ein neues Feld hinzugefügt (" Durchschnittlicher Kaloriengehalt"), aber es erscheint nicht im Bericht selbst – Sie müssen entweder erneut anrufen Einstellungsdesigner(„Zauberstab“) oder fügen Sie dieses Feld hinzu manuell.

Lass es uns tun zweite Weg. Gehen Sie dazu auf den Reiter „ Einstellungen", wählen " Bericht„(schließlich wollen wir das Feld als Ganzes zum Bericht hinzufügen), wählen Sie die Registerkarte unten“ Ausgewählte Felder„und das Feld ziehen“ Durchschnittlicher Kaloriengehalt„Von der linken Spalte nach rechts:

Es stellte sich so heraus:

Wir speichern und erstellen einen Bericht:

Das Feld ist erschienen und wir sehen, dass seine Werte die Werte des Feldes „Kalorie“ sind. Großartig!

Dazu nutzen wir erneut den uns bereits bekannten Mechanismus Ressourcen(zusammenfassend). Gehen Sie zur Registerkarte „ Ressourcen„und das Feld ziehen“ Durchschnittlicher Kaloriengehalt„Von der linken Spalte nach rechts:

Darüber hinaus in der Spalte „ Ausdruck"wählen" Durchschnitt(AverageCalorie)":

Wir speichern und erstellen einen Bericht:

Wir sehen, dass für die Gruppen, also für jede Farbe, und für den gesamten Bericht der Durchschnittswert absolut korrekt berechnet wurde. Aber sie sind vorhanden zusätzliche Einträge für einzelne Produkte (keine Gruppen), die ich aus dem Bericht entfernen möchte.

Wissen Sie, warum sie erschienen sind (Werte nicht nach Gruppe)? Denn als wir das Feld hinzugefügt haben „ Durchschnittlicher Kaloriengehalt„In den Berichtseinstellungen haben wir im zweiten Schritt ausgewählt den gesamten Bericht und dieses neue Feld endete im Element „ Ausführlich Aufzeichnungen".

Lassen Sie uns den Fehler beheben. Gehen Sie dazu zurück zur Registerkarte „ Einstellungen", wählen " Detaillierte Einträge„Zuerst von oben (Schritt 2) und dann“ Detaillierte Einträge„Von unten (Schritt 3) zum Lesezeichen gehen“ Ausgewählt Felder" und wir werden in seiner rechten Spalte das Element sehen " Auto".

Element " Auto" - Dies ist kein einzelnes Feld. Dies sind mehrere Felder, die aufgrund von Einstellungen auf höherer Ebene automatisch hierher fallen.

Um zu sehen, was diese Felder sind, klicken Sie auf das Element „ Auto" Rechts Taste und wählen Sie „ Expandieren":

Element " Auto" erweitert in die folgenden Felder:

Und hier ist unser Feld“ Durchschnittlicher Kaloriengehalt„was hierher kam von der Stelle“ Bericht" als wir ihn dorthin schleppten. Einfach lass uns entfernen Aktivieren Sie das Kontrollkästchen neben diesem Feld, um dessen Ausgabe zu entfernen.