fframbach hat geschrieben:Hallo,
vielen Dank für deine Nachricht. Eventuell habe ich mich etwas befremdlich ausgedrückt.
(2) Am Kontakt habe ich ein Boolean das ich in einer anderen Page bearbeiten (JA/NEIN) und dann wieder zurück an den Kontakt zurückschreiben möchte
Das wird eine sehr lange Antwort, bitte anschnallen, ich hab ein paar Std. investiert, da ich normalerweise nur als Projektleiter und Business Analyst in NAV tätig bin und sehr selten programmiere.
1. Auf Kontakt Form 5050 ein Button mit dem Namen BoolVarButton eingefügt, HorzGlue Left, VertGlue Botton.
Im OnPush ( ) Trigger steht: //ContactBool ist ein 50000er Report, SetContactHeader ist eine Funktion darin:
- Code:
ContactBool.SetContactHeader(Rec);
ContactBool.RUNMODAL;
CLEAR(ContactBool);
2. Auf der Tabelle 5050 Contact habe ich ein Extrafeld hinzugefügt:
BoolField Typ Boolean
Dieses habe ich in die Kontakt Form eingefügt, damit es anklickbar ist
3. 50000er Report ContactBool erstellt mit Variablen und folgendem Code:
Variablen und Funktion:
Name DataType Subtype Length
ReportBoolVariable Boolean
ReportContactHeader Record Contact
ContactHeader Record Contact
ReportContactBool Report ContactBool
CodeNo Code 20
Functions:
SetContactHeader //sie hat als Parameters: [x] VAR: ReportNewContactHeader von Typ Record Contact
SetContactHeader(VAR ReportNewContactHeader : Record Contact) Trigger:
- Code:
ReportNewContactHeader.TESTFIELD("No.");
ReportContactHeader := ReportNewContactHeader;
4. Auf dem Report noch Code hinzugefügt im Trigger:
Report - OnPostReport()
- Code:
IF ReportBoolVariable THEN BEGIN
MESSAGE ('WAHR');
ContactHeader.GET(ReportContactHeader."No.");
ContactHeader.BoolField := TRUE;
ContactHeader.MODIFY;
END;
IF NOT ReportBoolVariable THEN BEGIN
MESSAGE ('FALSCH');
ContactHeader.GET(ReportContactHeader."No.");
ContactHeader.BoolField := FALSE;
ContactHeader.MODIFY;
END;
Die Globalen Variablen im Report sind:
Name DataType Subtype Length
ReportBoolVariable Boolean
ReportContactHeader Record Contact
ContactHeader Record Contact
ReportContactBool Report ContactBool
CodeNo Code 20
Und die einzige Funktion:
SetContactHeader
Diese Funktion hat als Variable
ReportNewContactHeader von Typ [x] Var
Nach dem Kompilieren klappt alles 100%:
ich klicke auf den Button auf der Form Kontakt, es wird der Report aufgerufen und in der Request Form setze ich das Boolsche Feld bzw. checke es aus und sobald ich auf Seitenansicht klicke und der Report ausgeführt wird, wird in die Form Kontakt zurückgeschrieben in das Boolsche Feld, welches entsprechend gesetzt wird.
Alles unter NAV 2009 Classic Client umgesetzt. Für 2016 RTC Client musst du nur das mit RUNMODAL umbasteln, da es in dieser Version nicht mehr existiert, soweit ich mich erinnere? Die C/AL Experten im Forum wissen sicherlich mehr.
Für Fragen stehe ich dir gern per Privater Message zur Verfügung.
Gerne kann ich von der C/AL Programmierung und von der Form bzw. Report Request Form ein Video drehen und auf Youtube hochladen, wenn du mit der Erklärung hier nicht weiterkommst...
Viele Grüsse und schönes Weihnachtsfest!