Ein Fehler bei der Berechnung von Salden in der SKD und dessen Software-Korrektur am Beispiel eines Universalberichts. Falsche Saldenberechnung bei Verwendung von skd 1s skd Anfangs- und Endsalden

Ein weiterer häufiger Fehler beim Erstellen von Berichten über ACS für 1s-Unternehmen besteht darin, dass die Anfangs- und Endsalden in den virtuellen Tabellen der Akkumulationsregister falsch berechnet werden. Lassen Sie uns zum Beispiel einen einfachen Bericht erstellen, der Salden und Bewegungen im Register „Waren im Lager“ anzeigt. Seine Anfrage sieht folgendermaßen aus:

Wir werden auch einfache Varianteneinstellungen erstellen:

Als Ergebnis erhalten wir folgenden Bericht:

Haben Sie eine Frage, benötigen Sie die Hilfe eines Beraters?

Da Wir haben den Beginn und das Ende des Zeitraums nirgendwo angegeben, der Bericht sollte Daten vom Beginn der Datenbank anzeigen. Aber in unseren Gruppierungen nach Lager und Nomenklatur gibt es Anfangssalden ungleich Null. Es ist leicht zu verstehen, dass die Daten falsch angezeigt werden, weil. am Anfang der Datenbank sollten keine Reste vorhanden sein. Obwohl die Anfrage selbst korrekt ist.

Tatsache ist, dass die SKD über einen eigenen Mechanismus zur Berechnung der Salden verfügt. Für seinen korrekten Betrieb ist es erforderlich, die Position der Rekorder auf der Zeitachse eindeutig zu bestimmen. In diesem Fall gibt es nur einen Verweis in der Auswahl, das Verlinkungssystem kann dies also nicht. Um ein solches Verhalten von ACS zu vermeiden, wählen Sie das Feld PeriodSecond in der Anforderung aus. In diesem Fall berechnet das System die Salden korrekt:

Es ist zu beachten, dass die Felder mit der Rolle „Zeitraum“ ein Kontrollkästchen „Zusätzlich“ haben. Und wenn es aus irgendeinem Grund aus dem Feld PeriodSecond gelöscht wird, kehrt der Bericht zur falschen Version zurück. Für die korrekte Saldenberechnung muss in der Rolle entweder das Kennzeichen „Zusätzlich“ angehakt sein, oder das Feld muss in den ausgewählten Feldern des Reports auf Variantenebene vorhanden sein.

Ich weiß nicht, wie viele Leute bereits auf einen Fehler bei der Berechnung der Anfangs- und Endsalden nach Gruppierungen gestoßen sind. Persönlich hatte ich übrigens mehr als einmal "Glück". Der Grund liegt, wie ich herausgefunden habe, in den falschen Einstellungen der ACS-Datenfelder, deren Bedeutung sich viele unerfahrene Programmierer noch nicht ganz bewusst sind.

Wenn ein SKD-Datensatz automatisch basierend auf einer Abfrage erstellt wird, gibt es normalerweise kein Problem, weil die Plattform selbst füllt die Feldeinstellungen basierend auf dem Anfragetext korrekt aus. Es gibt jedoch Situationen, in denen die Datenfeldeinstellungen nicht automatisch ausgefüllt werden (z. B. wenn Sie eine externe Datenquelle verwenden), während die Quelldaten Bewegungen mit Salden und Umsätzen enthalten.

Wenn Sie auf dieses Problem noch nie gestoßen sind, schlage ich vor, es zum besseren Verständnis seines Wesens mithilfe eines universellen Berichts (durch Metadaten) selbst zu reproduzieren. Wir starten den Bericht, wählen ein beliebiges nicht leeres Sammelregister mit Salden und Umsätzen aus, aktivieren das Kontrollkästchen "Detaillierte Aufzeichnungen" in den Berichtseinstellungen (), geben einige Gruppierungen an und fügen den Registrar zu den angezeigten Feldern hinzu. Voila – die Anfangs- und Endsalden werden für jede Gruppierung summiert. Es stellt sich ein Bericht mit absolut falschen Zahlen heraus, die den Benutzern in keiner Weise angezeigt werden können.

Um dieses Problem zu lösen, ist es notwendig, die Einstellungen für die Felder des ACS-Datensatzes korrekt auszufüllen - insbesondere das Feld "Rolle", das von entscheidender Bedeutung ist.

LÖSUNG interaktiv ( nicht geeignet für Universal Report):

Öffnen Sie das Datenlayoutschema Ihres Berichts und sehen Sie sich die Datensatzfeldeinstellungen an.

Für die Felder der Anfangs- und Endsalden für jede der Ressourcen müssen Sie die Rolle ausfüllen: Wählen Sie die Rollengruppe „Rest“ und geben Sie darin den Wert „Startsaldo“ bzw. „Endsaldo“ an. So ( ) erfolgt dies im SKD-Konstruktor.

Ebenso müssen Sie die Rolle „Dimension“ für alle Dimensionen Ihres Datensatzes festlegen.

Dies reicht jedoch nicht aus, damit die Berichte korrekt funktionieren. Um die Restfelder richtig zu berechnen, ist es notwendig, die Periode jeder Bewegung zu kennen, um sie in der richtigen chronologischen Reihenfolge anzuordnen. Wenn Ihre ursprüngliche Datenquelle kein Periodenfeld hat, müssen Sie es dort hinzufügen. Wenn im Datensatz bereits ein Periodenfeld vorhanden ist, müssen Sie die Rolle "Periode" und die entsprechende Periodennummer angeben (weitere Details zur Nummerierung der Perioden finden Sie in der Hilfe).

Solche Einstellungen der ACS-Datenfelder ermöglichen es in den meisten Fällen, die korrekte Berechnung von Residuen durch Gruppierungen zu erreichen, wenn mit Standardeinstellungen Sie werden falsch berechnet.

Software LÖSUNG (am Beispiel des Universal Metadata Report):

Sehen wir uns nun an, wie derselbe Fehler im Generic Metadata Report behoben werden kann. Ein universeller Bericht unterscheidet sich von den meisten anderen Berichten darin, dass das Datenzusammensetzungsschema vollständig programmgesteuert generiert wird, sodass Sie auch programmgesteuert Rollen für ACS-Datenfelder konfigurieren müssen.

Für Rollen Anfangs- und Endsalden für jede der Ressourcen Der einfachste Weg ist, das Rad nicht neu zu erfinden (es wurde bereits alles vor uns geschrieben) und das Standardverfahren zu verwenden FillDataSetFieldRemainder() aus gemeinsames Modul GenericReports. Dort übergeben Sie das Datensatzfeld und den Ressourcennamen als Parameter und als Ergebnis wird das Restfeld mit der korrekt gefüllten Rolle im Datensatz angelegt.

Ebenso müssen Sie beim Erstellen von Datensatzfeldern für Dimensionen ihnen die Dimension-Rolle zuweisen. Der Code wird in etwa so aussehen:

NewDimension = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Synonym); NeueDimension.Rolle.Dimension = true;

Die oben beschriebenen Manipulationen mit den Ressourcen- und Messfeldern sind notwendig, aber nicht ausreichend, um das Problem zu lösen - das Hauptproblem des universellen Berichts ist die fehlende Periodennummerierung. Periodenfelder sind im Dataset vorhanden, aber ihre Rollen werden nicht ausgefüllt.

Die Periodenfelder werden dem Bericht durch die Prozedur des generischen Moduls GenericReports.AddPeriodFieldsToDataSet() hinzugefügt, das von der Objektmodulprozedur AddDataSetFields() aufgerufen wird. Leider werden bei diesem Verfahren die Periodennummern nicht eingetragen.

Außerdem werden die Felder „Zeilennummer“ und „Registrar“ nirgendwo programmatisch zum Bericht hinzugefügt. Es kam mir seltsam vor, weil. sie sind im endgültigen Datensatz vorhanden.

Wie sich herausstellte, Felder "Liniennummer" und "Registrar"(Recorder) wird von der Plattform selbst automatisch hinzugefügt, wenn der Settings Builder initialisiert wird. Darüber hinaus füllt die Plattform die Rollen für die von ihr erstellten Felder nicht aus, und es ist unmöglich, sie programmgesteuert zu füllen, was zu Problemen bei der weiteren Arbeit mit ihnen führt. Wenn diese Felder jedoch „manuell“ erstellt und ihnen programmgesteuert die richtigen Rollen zugewiesen werden, versucht die Plattform nicht, sie erneut zu erstellen.

Nachfolgend biete ich ein Rezept an, das mir geholfen hat, dieses Problem der Plattform und des Universal Metadata Report fast vollständig zu lösen:

Hier ist das Code-Snippet des Objektmoduls:

// Periodenfelder hinzufügen If TableName = "RemaindersAnd Turnovers" OR TableName = "Umsätze" Then GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); EndIf; sollte durch Folgendes ersetzt werden: // Periodenfelder hinzufügen If TableName = "RemaindersAnd Turnovers" OR TableName = "Umsätze" Then ListPeriods = GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); //Füllen Sie die Servicefelder aus und stellen Sie die Zeiträume manuell ein, weil die Plattform füllt sie nicht aus Field = GenericReports.AddDataSetField(DataCompositionScheme.DataSets, "LineNumber", "LineNumber"); Field.Role.PeriodNumber = 1; Field = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, "Recorder", "Recorder"); Field.Role.PeriodNumber = 2; sc = 3; For Each FieldPeriodFromListPeriods Loop FieldPeriod.Value.Role.PeriodNumber = cn; Wenn Anzahl > 3 dann FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Optional; EndIf; sc = sc + 1; EndCycle; EndIf;

Ich konnte eine Einschränkung im Zusammenhang mit dieser Lösung finden. Für die korrekte Berechnung von und con. Residuen, ist es erforderlich, dass bei der Verwendung von Details des Registrierstellendokuments im Bericht auch die Registrierstelle selbst ausgewählt wird. Ansonsten löst der Universalbericht nach solchen Verbesserungen keine Allergien mehr bei Anwendern aus.

UPDATE: Mir wurde in den Kommentaren mitgeteilt, dass zu diesem Thema einmal ein Artikel auf der ITS-Diskette veröffentlicht wurde. Leider ist dieser Artikel an mir vorbei gegangen, aber er konnte mir nur teilweise helfen, Probleme mit einem universellen Bericht zu lösen. Ach, die Probleme der Plattform mit dem Service SKD-Felder, wie "Recorder", sind dort ebenfalls nicht beschrieben.

Ich hoffe jedenfalls, dass mein Artikel allen hilft, die ähnliche Probleme haben. Ich habe lange nach dieser Lösung gesucht...

Guten Tag, liebe Leser der Blog-Site! Letztes Mal haben wir das Thema bereits angesprochen, in dem es um die Verwendung der Funktion ging. Und heute, im ersten dieser Artikelserie, werden wir lernen Wofür sind Feldrollen für die Datenzusammensetzung?, und betrachten Sie auch Beispiele für die Besetzung dieser Rollen.

Die Rolle des SKD-Feldes zeigt an was ist das für ein feld. Jede Feldrolle kann ihre eigene Eigenschaft enthalten. Zum Beispiel hat numerischer Wert und enthält die Periodennummer, wenn das Feld eine Periode ist. Wenn der Wert der Eigenschaft "Period" 0 (Null) ist, bedeutet dies, dass dieses Feld kein Punkt ist. Oder die Eigenschaft "Dimension" - enthält ein Zeichen, dass das Feld eine Dimension ist. Wenn es sich bei dem Feld um eine Dimension handelt, werden diese Informationen beim Berechnen der Summen für die restlichen Felder verwendet.

Sie können für jedes Datenzusammensetzungsschemafeld eine Rolle angeben. Rollen die Korrektheit der Berechnung der Residuen beeinflussen. Insbesondere die Anfangs- und Endbilanz für einige Tabellen. Wird in der Abfrage die virtuelle Tabelle „Salden und Umsätze“ ausgewählt, dann werden die Anfangs- und Endsalden nach einem komplexen Algorithmus berechnet, insbesondere wenn wir zusätzliche Stornos nach Periode verwenden.

Aber wenn das alles in Abfragen entsprechend der Menge der Ausgabefelder richtig funktioniert, dann sieht es bei der Datenkomposition etwas schlechter aus. Schließlich wissen wir nicht, welche Felder der Benutzer tatsächlich auswählen wird. Alles hängt von der Konfiguration seiner Berichtsversion ab, die er jederzeit ändern kann. Daher verfügt das Datenzusammensetzungssystem über einen eigenen Mechanismus zur Berechnung der anfänglichen und endgültigen Residuen für einen bestimmten Datensatz, und dafür werden entsprechende Rollen verwendet. Lassen Sie uns es öffnen und sehen, dass Sie für jedes Feld Rollen festlegen können.

Lassen Sie uns ein Abfrage-Dataset hinzufügen. Dazu müssen wir das Root-Element „Query Builder“ aktiv machen. Kommen wir zur virtuellen Tabelle „Salden und Umsätze“ des Kumulregisters. Was sehen wir?

Wie Sie der Abbildung oben entnehmen können, ist bei einigen Feldern die Rolle bereits besetzt. Dies geschah, weil wir das "AutoComplete"-Flag gesetzt haben. Dies ist jedoch nicht immer möglich, sodass Sie die Rolle manchmal manuell festlegen müssen. Sehen wir uns ein paar Beispiele an.

Nehmen wir an, dass wir in der von uns verwendeten Abfrage beispielsweise den Abfragesprachenoperator "SELECT" verwenden. Lassen Sie uns diesen Zustand beschreiben:

WAHL WANN Warenreste Reste und Umsätze.Nomenklatur = Wert(Katalog.Nomenklatur.EmptyReference) DANN Wert(Verzeichnis.Nomenklatur.Shampoo) ELSE WarenresteResteUnd Umsätze.Nomenklatur ENDE

Dieser Eintrag bedeutet, dass, wenn die Nomenklatur einer Nullreferenz entspricht (wir beziehen uns auf die Funktionswertreferenz "Nomenklatur", eine Nullreferenz), dann der Wert des vordefinierten Elements zurückgegeben wird. Nehmen wir an, dass es in unserer Konfiguration ein solches vordefiniertes Element gibt und es „Shampoo“ heißt. Andernfalls erstatten wir den Wert des Artikels selbst zurück. Wir erhalten Folgendes:

Wie Sie sehen, wurde für das Feld „Nomenklatur“ die Rolle nicht besetzt. Aber wie Sie im Bild sehen können, haben wir tatsächlich keine Rolle für das Feld „Field1“ festgelegt, und in diesem Fall wird der Rest nicht korrekt berechnet.

Es gibt andere Beispiele, bei denen die Rolle nicht alleine festgelegt werden kann. Dies ist beispielsweise die Verwendung, das heißt, eine bestimmte Wertetabelle wird in die Eingabe eingespeist, beispielsweise aus einer anderen Datenbank geladen, und die Reste müssen daraus berechnet werden. In diesem Fall müssen wir selbst Rollen zuweisen. Wie das geht, werden wir in betrachten.

Am Ende des Artikels möchte ich Sie kostenlos von Anatoly Sotnikov beraten. Dies ist ein Kurs von einem erfahrenen Programmierer. Er wird Ihnen separat zeigen, wie Sie Berichte im ACS erstellen. Sie müssen nur genau zuhören und sich erinnern! Sie erhalten Antworten auf Fragen wie:
  • Wie erstelle ich einen einfachen Listenbericht?
  • Wozu dienen die Spalten „Feld“, „Pfad“ und „Titel“ auf der Registerkarte „Felder“?
  • Welche Einschränkungen gelten für Layoutfelder?
  • Wie richte ich Rollen richtig ein?
  • Welche Rollen haben Layoutfelder?
  • Wo finde ich die Registerkarte „Datenlayout“ in einer Abfrage?
  • Wie konfiguriere ich Parameter in SKD?
  • Weiter interessant...
Vielleicht sollten Sie nicht versuchen, selbst im Internet zu surfen, um die notwendigen Informationen zu finden? Außerdem ist alles einsatzbereit. Fangen Sie einfach an! Alle Details dazu in den kostenlosen Video-Tutorials

Ich weiß nicht, wie viele Leute bereits auf einen Fehler bei der Berechnung der Anfangs- und Endsalden nach Gruppierungen gestoßen sind. Persönlich hatte ich übrigens mehr als einmal "Glück". Der Grund liegt, wie ich herausgefunden habe, in den falschen Einstellungen der ACS-Datenfelder, deren Bedeutung sich viele unerfahrene Programmierer noch nicht ganz bewusst sind.

Wenn ein SKD-Datensatz automatisch basierend auf einer Abfrage erstellt wird, gibt es normalerweise kein Problem, weil die Plattform selbst füllt die Feldeinstellungen basierend auf dem Anfragetext korrekt aus. Es gibt jedoch Situationen, in denen die Datenfeldeinstellungen nicht automatisch ausgefüllt werden (z. B. wenn Sie eine externe Datenquelle verwenden), während die Quelldaten Bewegungen mit Salden und Umsätzen enthalten.

Wenn Sie auf dieses Problem noch nie gestoßen sind, schlage ich vor, es zum besseren Verständnis seines Wesens mithilfe eines universellen Berichts (durch Metadaten) selbst zu reproduzieren. Wir starten den Bericht, wählen ein beliebiges nicht leeres Sammelregister mit Salden und Umsätzen aus, aktivieren das Kontrollkästchen "Detaillierte Aufzeichnungen" in den Berichtseinstellungen (), geben einige Gruppierungen an und fügen den Registrar zu den angezeigten Feldern hinzu. Voila – die Anfangs- und Endsalden werden für jede Gruppierung summiert. Es stellt sich ein Bericht mit absolut falschen Zahlen heraus, die den Benutzern in keiner Weise angezeigt werden können.

Um dieses Problem zu lösen, ist es notwendig, die Einstellungen für die Felder des ACS-Datensatzes korrekt auszufüllen - insbesondere das Feld "Rolle", das von entscheidender Bedeutung ist.

LÖSUNG interaktiv ( nicht geeignet für Universal Report):

Öffnen Sie das Datenlayoutschema Ihres Berichts und sehen Sie sich die Datensatzfeldeinstellungen an.

Für die Felder der Anfangs- und Endsalden für jede der Ressourcen müssen Sie die Rolle ausfüllen: Wählen Sie die Rollengruppe „Rest“ und geben Sie darin den Wert „Startsaldo“ bzw. „Endsaldo“ an. So ( ) erfolgt dies im SKD-Konstruktor.

Ebenso müssen Sie die Rolle „Dimension“ für alle Dimensionen Ihres Datensatzes festlegen.

Dies reicht jedoch nicht aus, damit die Berichte korrekt funktionieren. Um die Restfelder richtig zu berechnen, ist es notwendig, die Periode jeder Bewegung zu kennen, um sie in der richtigen chronologischen Reihenfolge anzuordnen. Wenn Ihre ursprüngliche Datenquelle kein Periodenfeld hat, müssen Sie es dort hinzufügen. Wenn im Datensatz bereits ein Periodenfeld vorhanden ist, müssen Sie die Rolle "Periode" und die entsprechende Periodennummer angeben (weitere Details zur Nummerierung der Perioden finden Sie in der Hilfe).

Solche Einstellungen der ACS-Datenfelder ermöglichen es in den meisten Fällen, die korrekte Berechnung von Residuen durch Gruppierungen zu erreichen, wenn mit Standardeinstellungen Sie werden falsch berechnet.

Software LÖSUNG (am Beispiel des Universal Metadata Report):

Sehen wir uns nun an, wie derselbe Fehler im Generic Metadata Report behoben werden kann. Ein universeller Bericht unterscheidet sich von den meisten anderen Berichten darin, dass das Datenzusammensetzungsschema vollständig programmgesteuert generiert wird, sodass Sie auch programmgesteuert Rollen für ACS-Datenfelder konfigurieren müssen.

Für Rollen Anfangs- und Endsalden für jede der Ressourcen Der einfachste Weg ist, das Rad nicht neu zu erfinden (es wurde bereits alles vor uns geschrieben) und das Standardverfahren zu verwenden FillDataSetFieldRemainder() aus gemeinsames Modul GenericReports. Dort übergeben Sie das Datensatzfeld und den Ressourcennamen als Parameter und als Ergebnis wird das Restfeld mit der korrekt gefüllten Rolle im Datensatz angelegt.

Ebenso müssen Sie beim Erstellen von Datensatzfeldern für Dimensionen ihnen die Dimension-Rolle zuweisen. Der Code wird in etwa so aussehen:

NewDimension = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Synonym); NeueDimension.Rolle.Dimension = true;

Die oben beschriebenen Manipulationen mit den Ressourcen- und Messfeldern sind notwendig, aber nicht ausreichend, um das Problem zu lösen - das Hauptproblem des universellen Berichts ist die fehlende Periodennummerierung. Periodenfelder sind im Dataset vorhanden, aber ihre Rollen werden nicht ausgefüllt.

Die Periodenfelder werden dem Bericht durch die Prozedur des generischen Moduls GenericReports.AddPeriodFieldsToDataSet() hinzugefügt, das von der Objektmodulprozedur AddDataSetFields() aufgerufen wird. Leider werden bei diesem Verfahren die Periodennummern nicht eingetragen.

Außerdem werden die Felder „Zeilennummer“ und „Registrar“ nirgendwo programmatisch zum Bericht hinzugefügt. Es kam mir seltsam vor, weil. sie sind im endgültigen Datensatz vorhanden.

Wie sich herausstellte, Felder "Liniennummer" und "Registrar"(Recorder) wird von der Plattform selbst automatisch hinzugefügt, wenn der Settings Builder initialisiert wird. Darüber hinaus füllt die Plattform die Rollen für die von ihr erstellten Felder nicht aus, und es ist unmöglich, sie programmgesteuert zu füllen, was zu Problemen bei der weiteren Arbeit mit ihnen führt. Wenn diese Felder jedoch „manuell“ erstellt und ihnen programmgesteuert die richtigen Rollen zugewiesen werden, versucht die Plattform nicht, sie erneut zu erstellen.

Nachfolgend biete ich ein Rezept an, das mir geholfen hat, dieses Problem der Plattform und des Universal Metadata Report fast vollständig zu lösen:

Hier ist das Code-Snippet des Objektmoduls:

// Periodenfelder hinzufügen If TableName = "RemaindersAnd Turnovers" OR TableName = "Umsätze" Then GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); EndIf; sollte durch Folgendes ersetzt werden: // Periodenfelder hinzufügen If TableName = "RemaindersAnd Turnovers" OR TableName = "Umsätze" Then ListPeriods = GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); //Füllen Sie die Servicefelder aus und stellen Sie die Zeiträume manuell ein, weil die Plattform füllt sie nicht aus Field = GenericReports.AddDataSetField(DataCompositionScheme.DataSets, "LineNumber", "LineNumber"); Field.Role.PeriodNumber = 1; Field = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, "Recorder", "Recorder"); Field.Role.PeriodNumber = 2; sc = 3; For Each FieldPeriodFromListPeriods Loop FieldPeriod.Value.Role.PeriodNumber = cn; Wenn Anzahl > 3 dann FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Optional; EndIf; sc = sc + 1; EndCycle; EndIf;

Ich konnte eine Einschränkung im Zusammenhang mit dieser Lösung finden. Für die korrekte Berechnung von und con. Residuen, ist es erforderlich, dass bei der Verwendung von Details des Registrierstellendokuments im Bericht auch die Registrierstelle selbst ausgewählt wird. Ansonsten löst der Universalbericht nach solchen Verbesserungen keine Allergien mehr bei Anwendern aus.

UPDATE: Mir wurde in den Kommentaren mitgeteilt, dass ein Artikel zu diesem Thema einmal auf der ITS-Diskette veröffentlicht wurde. Leider ist dieser Artikel an mir vorbei gegangen, aber er konnte mir nur teilweise helfen, Probleme mit einem universellen Bericht zu lösen. Plattformprobleme mit ACS-Dienstfeldern wie "Recorder" werden dort leider auch nicht beschrieben.

Ich hoffe jedenfalls, dass mein Artikel allen hilft, die ähnliche Probleme haben. Ich habe lange nach dieser Lösung gesucht...

41
Ich habe kürzlich einen Bericht mit einer unbestimmten Anzahl von Spalten erstellt. Ich zögerte, mit dem Code herumzuspielen, ich beschloss, es auf dem ACS zu tun. Dies war kein Problem, es war notwendig, das Ergebnis auf ein beliebiges Layout zu strecken (eigener Titel + ... 27
Auch wenn SKD-Lernende am ersten oder zweiten Tag darauf stoßen, sollte es im FAQ-Bereich stehen. Ein einfaches Beispiel für die programmgesteuerte Ausgabe eines Berichts auf einem Layout unter Verwendung der Standardeinstellungen. //Schema abrufen von... 18
Beim Generieren von Berichten auf dem ACS werden standardmäßig alle Gruppierungen erweitert, aber es kommt vor, dass es notwendig ist, einen Bericht mit reduzierten Gruppierungen sofort nach der Generierung anzuzeigen! Mit diesem Code im Berichtsmodul können Sie... 10
Auf dieser Registerkarte können Sie festlegen, welche Art von Verbindungen zwischen zwei oder mehreren Datensätzen hergestellt werden, gemäß welchen Parametern und Bedingungen..png 1. "Link-Quelle" - der erste Datensatz wird angezeigt, von ... 9
Dass bei der Entwicklung von Berichten gefordert wird, dass ein Benutzer mit eingeschränkten Rechten einen Bericht komplett ohne Rechteprüfung erstellt! Insbesondere wenn RLS konfiguriert ist, gibt es mehrere Möglichkeiten, dies zu tun: 1. Installieren Sie ...