PANTHEON™ Help

 Toc
 PANTHEON Hilfe - Willkommen
[Reduzieren]PANTHEON
 [Reduzieren]Leitfäden für PANTHEON
  [Reduzieren]Leitfaden für PANTHEON
   [Reduzieren] Einstellungen
    [Vergrößern]Fächer
    [Vergrößern]Artikel
    [Vergrößern]POS
    [Vergrößern]Herstellung
    [Vergrößern]Personal
     Kalender
    [Vergrößern]Finanzen
    [Vergrößern]Zoll
    [Reduzieren]Programm
     [Vergrößern]Dokumenttypen
     [Reduzieren]Berichte in PANTHEON
       Einstellungen im Administrationspanel
      [Vergrößern]Berichte registrieren
       Druckvorschau
      [Vergrößern]Bericht Designer
      [Vergrößern]Berichte erstellen
      [Vergrößern]Gruppen und Aggregate
      [Vergrößern]Formatierung und Hervorhebung
       Verschachtelte Berichte (Unterberichte)
      [Vergrößern]Details zu Druckausgaben in PANTHEON
      [Reduzieren]Script
        "Hallo, Welt!" Skript
        Verwendung von Variablen, Datenbankfeldern und Aggregatfunktionen
        Verwendung von Berichtobjekten im Skript
        Veranstaltungen
        Beispiel für die Verwendung des "OnBeforePrint"-Ereignisses
        Gruppensumme im Gruppenheader drucken
        Aktueller Gesamtbetrag
        "OnAfterData" Ereignis
        Service-Objekte
        Verwendung des "Engine" Objekts
       [Reduzieren]PANTHEON-Funktionen für FastReport
         Erklärungen und einfache Beispiele
         Funktion GetFormValue
        [Reduzieren]Funktion EQLExp
          Fortgeschrittene Beispiele
       [Vergrößern]Beispiele mit Tabellen und Abfragen
       Bericht Design Überlegungen
      Dokumenttexte
      Liefermöglichkeiten
     [Vergrößern]Kundenkarten
     [Vergrößern]Administrationspanel
     [Vergrößern]Dashboard-Komponenten
      Dashboard-Berichte
      Ad-hoc-Analyse
     [Vergrößern]ARES
      SQL-Editor
    [Vergrößern]Dokumentation
    [Vergrößern]Benutzer ändern
   [Vergrößern]Bestellungen
   [Vergrößern]Waren
   [Vergrößern]Herstellung
   [Vergrößern]POS
   [Vergrößern]Service
   [Vergrößern]Finanzen
   [Vergrößern]Personal
   [Vergrößern]Analytik
   [Vergrößern]Desktop
   [Vergrößern]Hilfe
   [Vergrößern]Nachrichten und Warnungen
   [Vergrößern]Zusätzliche Programme
   [Vergrößern]Alte Produkte
  [Vergrößern]Leitfaden für PANTHEON Einzelhandel
  [Vergrößern]Leitfaden für PANTHEON Vet
  [Vergrößern]Leitfaden für PANTHEON Farming
 [Reduzieren]Benutzerhandbücher für PANTHEON
  [Vergrößern]Benutzerhandbuch für PANTHEON
  [Vergrößern]Benutzerhandbuch für PANTHEON Einzelhandel
  [Vergrößern]Benutzerhandbuch für PANTHEON Vet
  [Vergrößern]Benutzerhandbuch für PANTHEON Farming
[Reduzieren]PANTHEON Web
 [Reduzieren]Leitfäden für PANTHEON Web
  [Vergrößern]Leitfaden für PANTHEON Web Light
  [Vergrößern]Leitfaden für das PANTHEON Web-Terminal
  [Vergrößern]Leitfaden für PANTHEON Web Rechtliches
  [Vergrößern]Alte Produkte Archiv
 [Reduzieren]Benutzerhandbücher für PANTHEON Web
  [Vergrößern]Erste Schritte PANTHEON Web
  [Vergrößern]Benutzerhandbuch für PANTHEON Web Light
  [Vergrößern]Benutzerhandbuch für das PANTHEON Web-Terminal
  [Vergrößern]Benutzerhandbuch für PANTHEON Web Legal
  [Vergrößern]Alte Produkte Archiv
[Reduzieren]PANTHEON Granulate
 [Reduzieren]Leitfäden für PANTHEON Granulate
  [Vergrößern]Personalgranulat
  [Vergrößern]Reiseaufträge Granulat
  [Vergrößern]Dokumente und Aufgaben Granule
  [Vergrößern]Dashboard Granule
  [Vergrößern]B2B-Bestellungen Granulat
  [Vergrößern]Feldservice-Granulat
  [Vergrößern]Bestandsgranule für Anlagevermögen
  [Vergrößern]Warenlager Inventar Granulat
 [Reduzieren]Benutzerhandbücher für PANTHEON Granulate
  [Vergrößern]Erste Schritte
  [Vergrößern]Personalgranulat
  [Vergrößern]Reiseaufträge Granulat
  [Vergrößern]Dokumente und Aufgaben Granule
  [Vergrößern]B2B-Bestellungen Granulat
  [Vergrößern]Dashboard Granule
  [Vergrößern]Feldservice-Granulat
  [Vergrößern]Bestandsgranulat für Anlagevermögen
  [Vergrößern]Lagereinlagerung Granulat
  [Vergrößern]Archiv
[Vergrößern]Benutzerseite

Load Time: 593,7527 ms
"
  1000220 | 200257 | 491561 | AI translated
Label

Funkcije

Beispiel mit Spaßction dlStringReplace


Im Bericht '10A - Materialbewegungsbericht - Detailliert', der im Programmmenü 'Waren | Materialbewegung' ist, fügen Sie ein "Text"-Objekt im Band mit dem Namen 'Detail' hinzu und schreiben Sie einen Ausdruck, der die Seriennummern anzeigt, die zur ausgewählten Position und zur ausgewählten Rechnung gehören. Die SQLExp-Funktion gibt alle Datensätze zurück, jeder in seiner eigenen Zeile, aber wir möchten die Seriennummern in einer Zeile anzeigen, getrennt durch Kommas.
 
[dlStringReplace(SQLExp('SELECT acSerialNo, FROM tHE_MoveItemSerialNo WHERE acKey = ''' + <qReportIzpis."acKey"> + ''' AND acIdent = ''' + <qReportIzpis."acIdent"> + ''' GROUP BY acSerialNo UNION ALL SELECT acSerialNo FROM tHE_OrderItemSerialNo WHERE acKey = ''' + <qReportIzpis."acKey"> + ''' AND acIdent = ''' + <qReportIzpis."acIdent"> + ''' GROUP BY acSerialNo ORDER BY acSerialNo'), #13#10, ', ', 'rfReplaceAll', '')]
 

Beispiel mit Datumsfeldern


Im Klon des Berichts '241 - Rechnung', der im Programmmenü 'Waren | Ausgabe | Dokument (z.B. 3000 - Verkauf)' ist, fügen Sie den Saldo des Rechnungsempfängers zum Konto 2200 am Tag der Rechnung hinzu. Es ist wichtig, dass das Datum im Format yyyymmddformatiert ist.

[SQLExp('SELECT SUM(anValDebit-anValCredit) from tHE_AcctTransItem where acAcct = 2200 and acSubject=''' + <qReportIzpisD."acReceiver"> + ''' and adDateDoc <= ''' + FormatDateTime('yyyymmdd',<qReportIzpisD."adDateInv">) + '''')]

Beispiel mit Zahlen

In diesem Fall verwenden wir den Bericht '156 - Materialbewegungsbericht - Zusammenfassung nach Artikeln', der im Programmmenü 'Waren | Materialbewegungen' ist und die Menge in der alternativen Maßeinheit anzeigt.

Da wir keinen Faktor für die Umrechnung der Menge in der primären Maßeinheit (U/M) in U/M 2 haben, müssen wir diese aus dem Register der Maßeinheiten mit der SQLExp-Funktion abrufen.

Wir tun dies mit dem folgenden Ausdruck:

[SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent = ' + dlQuotedStr(<qReportIzpis."acIdent">) + '')]

Der obige Ausdruck gibt die Zahl als Text zurück. Jetzt möchten wir die Menge in U/M2 drucken, also müssen wir den mit der dlStrToFloatDef Funktion erhaltenen Wert in eine Zahl umwandeln. Dann teilen wir den Betrag in der EM durch den erhaltenen Faktor und verwenden die dlDiv Funktion, anstatt ihn von Null zu teilen, anstelle der gewöhnlichen Division. Schließlich erhalten wir:


[dlDiv(<qReportIzpis."anBegState">, dlStrToFloatDef(SQLExp('SELECT anUMToUM2 FROM tHE_SetItem WHERE acIdent = ' + dlQuotedStr(<qReportIzpis."acIdent">) + ''), 1))]

Beispiel mit Datenlesung aus dem PANTHEON-Fenster


Wir werden das folgende Beispiel auf einem Klon des Berichts '16B - Ausgestellte Rechnungen - nach Lieferanten und Artikeln' durchführen, der im Programmmenü 'Waren | Ausgestellte Rechnungsberichte | Ausgestellte Rechnungen/Gewinnmargenbericht' ist. Wenn im Fenster ein Lager ausgewählt ist, zeigt der Ausdruck den gesamten Bestand des Artikels an, andernfalls wird nur der Bestand im ausgewählten Lager gedruckt.

Das Fenster im Programm, von dem der Bericht ausgeht, heißt 'PrometObracunIzdRac', das Eingabefeld, in dem wir das Lager auswählen, hat den Namen 'fWarehouse'. Der Begriff, der den Text in diesem Objekt zurückgibt, ist bereits bekannt:

[GetFormValue('PrometObracunIzdRac.fWarehouse')]

Zuerst überprüfen wir, ob ein Lager ausgewählt ist. Wenn nicht, gibt der erste SQLExp-Ausdruck den gesamten Bestand des ausgewählten Artikels in allen Lagern zurück, andernfalls gibt der zweite nur den Bestand des Artikels im ausgewählten Lager zurück.

[IIF (GetFormValue('PrometObracunIzdRac.fWarehouse') = '',
SQLExp('select SUM (anStock) from tHE_Stock where acIdent = ' +
dlQuotedStr(<qReportIzpis."acIdent">) + ''),
SQLExp('select anStock from tHE_Stock where acIdent = ' +
dlQuotedStr(<qReportIzpis."acIdent">) + ' and acWarehouse = ''' +
GetFormValue('PrometObracunIzdRac.fSkladisce') + ''''))]

Beispiel mit komplexer SELECT-Anweisung

Eine besondere Behandlung verdient der Ausdruck im Bericht '3AR - Mitarbeiterakte', der anzeigt, ob der Arbeiter behindert ist oder nicht. Er befindet sich im Programmmenü 'Personal | Mitarbeiterdateien'. Klicken Sie dann auf das 'Drucken'-Symbol.

Diese Information ist nicht direkt im Datensatz geschrieben, sondern enthält die Behinderungsart im Feld "acDisabilityCode" in der Tabelle "tHR_PrsnHealth". Da sich die Behinderungsart eines einzelnen Arbeiters ändern kann, müssen wir die zuletzt eingegebene abrufen. Das Datum der Änderung der Behinderung wird im Feld "adCreationDate" in derselben Tabelle gespeichert. Der folgende Begriff gibt Ihnen das letzte Datum, an dem die Invaliditätskategorie für den ausgewählten Arbeiter geändert wurde.

[SQLExp('select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + '''')]

Dann erhalten wir mit dem folgenden Begriff die Kategorie der Behinderung des Arbeiters

[SQLExp('select acDisabilityCode from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and adCreatonDate = (select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''')')]
 

Wenn wir im obigen Begriff das Feld "acDisabilityCode" durch 'JA' ersetzen, gibt der Ausdruck 'JA' zurück, wenn der Arbeiter behindert ist, andernfalls gibt er einen leeren String zurück. Da der Ausdruck im Fall, dass ein Arbeiter nicht behindert ist, 'NEIN' zurückgibt, geben wir den Begriff in den bedingten Satz IIF und erhalten schließlich

[IIF(SQLExp('select ''YES'' from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and adCreatonDate = (select max(adCreatonDate) from tHR_PrsnHealth where acWorker = ''' + <qryDelavec."acWorker"> + ''' and acDisabilityCode > ''0'')') = 'YES','JA','NEIN')]

Sortierung und Gruppierung nach dem Feld, das nicht im Datensatz ist

Eine sehr ungewöhnliche und nützliche Verwendung der Funktion SQLExp ist die Sortierung und Gruppierung nach einem Feld, das nicht im Datensatz ist.

Als Grundlage nehmen wir den Bericht '164 - Ausgestellte Rechnungen - Detailliert', der im Programmmenü 'Waren | Ausgestellte Rechnungsberichte | Ausgestellte Rechnungen/Gewinnmargenbericht' ist. Zuerst erstellen wir einen Klon, auf dem wir arbeiten werden. Die Daten werden nach dem Rechnungssteller gruppiert und nach dem Aussteller und der Dokumentennummer sortiert.

Wir setzen die Eigenschaft "Bedingung" des "GroupHeader-Bands" auf;

SQLExp('select G.acIssuer from tHE_Move G where G.acKey = ''' + <qReportIzpis."acKey"> + '''')

Dann ersetzen wir die Beschreibung, die die Informationen beschreibt, die wir gruppieren, und für die Daten selbst. Wir geben dasselbe wie oben ein, aber setzen es in eckige Klammern (wie im Bild gezeigt). Um die Sortierung zu ändern, ändern Sie das Feld 'Sort By' im Berichtsregister:
(select G.acIssuer from tHE_Move G where G.acKey = P.acKey), G.acKey


   


 

Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!