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: Alles auswählen
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: Alles auswählen
ReportNewContactHeader.TESTFIELD("No.");
ReportContactHeader := ReportNewContactHeader;
4. Auf dem Report noch Code hinzugefĂĽgt im Trigger:
Report - OnPostReport()
- Code: Alles auswählen
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!