Freitag, 17. April 2015

AvERP Designer: FR2 Reports mit AvERP.exe 6.1

Die aktuelle AvERP.exe unterstützt nicht mehr alle Features aus "alten" FR2-Reports.
Das ist gut so!
Nie wieder Zeit mit dieser vorsindflutlichen Designer-Umgebung verbrennen!!

Aber, wenn man doch schon so wichtige Reports damit erstellt hat, gibt es nicht doch einen Weg, auch mit der aktuellen AvER.exe (bin zur Zeit bei 6.1.0.69) die alten Reports zu nutzen?

Sollen Reports als Beleg zu einem Master-Datensatz gedruckt werden, wie z.B. beim Lieferschein, könnte es unter gewissen Umständen machbar sein. Geht es um das Thema mehre Datensätze markiert im Mehfachauswahl-Tabellen-Fenster gemeinsam in einem Report drucken, verweigert die neue Exe grundsätzlich den Dienst für FR2-Reports.
Dazu mein Beitrag aus dem Februar 2014 sepa-lauf-druck-kontrollzettel-von-fr2.

Was zu ersetzen ist:

1. OnFormShow q_v_bmand q_v_bfirma

Zugriff auf

  • frmData.q_v_bmand
  • frmData.q_v_bfirma

2. OnFormShow Aktuelle Daten zur aufrufenden Maske ermitteln

Das Konstrukt

            b := lbFormname.caption;
            z := Application.FindComponent(b);  // Zugriff auf Maske hier BFA
                                          // damit auch überflüssig
            // Zugriff auf z.q_1.FieldByName mit AvERP.exe 6.1.0.69
            //             in FR2-Report OnFormShow NICHT MEHR möglich
            //lbBFA_ID.caption := AsString(z.q_1.FieldByName('ID')); 

WorkAround zu 1. frmData-q_v_bmand q_v_bfirma 

Daten aus den Tabellen BMAND, BFIRMA direkt einlesen, wenn nötig.


 Quick&Dirty - Konstanten setzen


OnFormShow:
sNein := copy(frmdata.sJaNein,2,1);
sJa := copy(frmdata.sJaNein,1,1);

MitAGB := sNein;//AsString(frmData.q_v_bmand.FieldByName('AGB_JN'));
Logo_jn:= sJa;  //AsString(frmData.q_v_bfirma.FieldByName('FORMULAR_LOGODRUCK'));
MASKEDIT_1.Text := sNein; // kein testausdruck
MASKEDIT_2.Text := sNein;
MASKEDIT_3.Text := sNein;
MASKEDIT_4.Text := Logo_jn;
Maskedit_5.Text := sNein;
MASKEDIT_6.text := sNein;
MASKEDIT_7.text := sNein;
MASKEDIT_8.Text := sNein;
Maskedit_9.Text := MitAGB;


WorkAround zu 2. AsString(z.q_1.FieldByName('ID')); 


Es gibt 2 Wege die Daten-Queries im Report zu versorgen.

1. Der Klassische Weg Sql-Text zu q_rep1...nn

q_rep1 als Master-Querie mit dem aktuellen Datensatz belegen
Alle weiteren Daten über Master-Links falls es sich um Tabellen oder Views handelt oder über MasterParamLinks für Procedures oder sonst zu bindendende Parameter mit übergeordneten Queries verknüpfen.

2. Der dynamische Weg Q_Rep mit Eingaben binden

Vor Druck im Script BtnOKOnKlick die Daten-Queries schließen, Eingabe-Parameter binden und über Open aktualisieren.

Beispiel aus meiner so geretteten Sägeliste FRDBFA_SAEGELISTE_GLOBAL
 
Leider habe ich nicht mehr die BFA.ID im Label lbBFA_ID.caption im OnFormShow aus der Q_1
der aufrufenden Maske - dem Fertigungsauftrag BFA zur Verfügung.
Ist aber gar nicht so schlimm, denn auch die Query q_rep1 steht auf der View V_BFA und kann damit
die Datensatz ID an den Report liefern.

Das dynamische Binden über q_rep3.ParamByName('BFA_ID', lbBFA_ID.caption) kann man einfach auskommentieren und durch die Initalisierung der Queries 
hier q_rep3:
über 
MasterSource = d_rep1  und
MasterParamLinks.Strings  = 'BFA_ID=V_BFA.ID'  setzen.

Auszug aus dem lesbaren Teil der Resource, wie 
inherited q_rep1: TIB_Query
SQL.Strings = (
'SELECT * FROM V_BFA')
end
inherited q_rep2: TIB_Query
SQL.Strings = (
'SELECT * FROM V_BSAST'
'WHERE ID = :BSAST_ID')
end
inherited q_rep3: TIB_Query
SQL.Strings = (
'SELECT * FROM P_BFA_SAEGELISTE_TEMP(:BFA_ID, :BSAST_ID, ' +
':ART)')
MasterSource = d_rep1
MasterParamLinks.Strings = (
'BFA_ID=V_BFA.ID')
ParamValues = (




Nachtrag zum Thema Datenbank-Upgrade und FR2-Reports


Kommt es durch Datenbank-Upgrade zur Struktur-Änderungen in der Datenbank die die benutzten Queries betreffen, es ist hilfreich mit einer 4.2.5er exe zu testen. Die neue 6.1er exe zeigt dann im FR2 freundlich eine leere Seite 1 und bleibt ohne weitere Meldung hängen. Vermutlich wird der DebugModus wie unter F1 Hilfe angezeigt abgefragt und der Anwender wird von aussagekräftigen Fehlermeldungen verschont.
Glücklich zeigt die ältere 4.2.5er exe eher, wo der Hase im Pfeffer liegt...



Nicht das das finden der Struktur-Änderungen nach Datenbank-Upgrade dann ein Vergnügen wäre.

Beim Versuch FRDCMLISMB den klassischen alten Lieferschein zum Laufen zu bringen
bin ich wie folgt gestolpert:

"
Macht das Umstellen des Lieferscheins als Reports FDRCMLISMB Sinn?

Eher nicht:
Datenbankstruktur-Änderungen erfordern zunächst Änderungen in Queries:
Q_REP4
q_rep5
Q_REP28
Q_rep33 statt BRRCP_ID_LINKKEY BRLSP_ID_LINKKEY
betrifft Texte BRLSPA / BRLSPT /V_BRLSPVERPA / V_BRLSPFR
Q_rep26: V_BRLS.BAUFPO_BPROJPO_BPROJ_MASKEBKEY verliert den Präfix BAUFPO
und kann anschließend auch nicht mehr gedruckt werden

Allein BAUFPO_BROJ... kommt an 8 verschiedenen Stellen im FR2-Report vor
(zuletzt in bdDetailDaten wo die Sichtbarkeit gesteuert wird
aber auch bei der Frage Label Projekt und nochmal dabei ob der Doppelpunkt dahinter gedruckt werden soll."


 


 






















Keine Kommentare:

Kommentar veröffentlichen