Gelöst: Werte auslesen und zurückschreiben

Bild Microsoft Dynamics NAV 2016

Gelöst: Werte auslesen und zurückschreiben

Beitragvon fframbach » 18. Dezember 2018 19:15

Hallo zusammen,

eine Frage zum obigen Thema.
Folgende Situation. Ich habe in der Kontakttabelle verschiedene weitere Records wie auch Boolean Werte.
Nun ist es so das ich die Records im System an weiteren Stellen auslesen möchte und den neuen Wert zurück an den Kontakt schreiben möchte.

Konkret kann man sich folgendes Beipiel vorstellen. Ich habe einen Booleanwert am Kontakt, den möchte ich im Rahmen einer Bearbeitung (Berichtspage für den Aussendienst) auslesen (Boolean > Booelean) und wenn Bericht durch Aussendienst bearbeitet wird dann den neuen Booleanwert (Boolean < Boolean) zurück an den Kontakt schreiben.

WĂĽrde mich freuen UnterstĂĽtzung zu bekommen.

Viele GrĂĽĂźe Frank
Zuletzt geändert von fframbach am 2. Januar 2019 16:55, insgesamt 1-mal geändert.
Viele GrĂĽĂźe,
Frank Frambach
fframbach
 
Beiträge: 15
Registriert: 2. Mai 2017 09:08
Realer Name: Frank Frambach
Arbeitsort: Bad Honnef
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2018

Re: Werte auslesen und zurĂĽckschreiben

Beitragvon ERP-Berater » 20. Dezember 2018 15:33

fframbach hat geschrieben:(1) Ich habe in der Kontakttabelle verschiedene weitere Records wie auch Boolean Werte.
(2) ich die Records im System an weiteren Stellen auslesen möchte und den neuen Wert zurück an den Kontakt schreiben möchte.
(3) Ich habe einen Booleanwert am Kontakt, den möchte ich im Rahmen einer Bearbeitung (Berichtspage für den Aussendienst) auslesen (Boolean > Booelean) und wenn Bericht durch Aussendienst bearbeitet wird dann den neuen Booleanwert (Boolean < Boolean) zurück an den Kontakt schreiben.


Hallo Frank

ich bin mir nicht sicher, ob du Programming 1 und 2 in NAV schon besucht hast? Ich habe deine Sätze enumeriert, mal sehen ob ich dich korrekt verstanden habe?

(1) Record ist ein Datensatz einer Tabelle oder auch Variablendefinition (Verweis) unter den C/AL Globals oder Locals auf Tabelle.
Boolean ist eine boolsche Variable. Diese boolsche Variable kann ein Teil eines Records (Datensatzes) sein. Bsp Artikel Tabelle, Feld gesperrt ist vom Typ boolean. Du kannst dort einen Haken setzen.

(2) Unter www.navision24.de steht wie man Records ausliest. Dazu definierst du eine globale oder locale Variable vom Typ Rec und filterst darauf. Bsp. von mir frei erfunden, filtern auf alle Kontakte mit Nachnamen Meyer, Ländercode CH und segmentieren = Nein (boolsche Variable im Standard NAV), von denen du die Telefonnumer ausliest und in deine benutzerdefinierte 50000er Zieltabelle schreibst:
Code: Alles auswählen
global_Contact.SETRANGE(Name,'Meyer');
global_Contact.SETRANGE("Country/Region Code",'CH');
global_Contact.SETRANGE("Exclude From Segment",FALSE);
IF global_Contact.FINDSET THEN
         REPEAT
            deineTabellenRecordVariable.SETRANGE(KundenNummer,global_Contact."No.");
            deineTabellenRecordVariable.SETRANGE(KundenName,global_Contact.Name);
            deineTabellenRecordVariable.SETRANGE(TelefonNr,global_Contact."Phone No.")
            IF NOT deineTabellenRecordVariable.FINSET THEN BEGIN
                        deineTabellenRecordVariable.INIT;
                        deineTabellenRecordVariable.INSERT;
                        deineTabellenRecordVariable.TelefonFeld := global_Contact."Phone No.";
                        deineTabellenRecordVariable.MODIFY;
             END;
         UNTIL global_Contact.NEXT = 0


(3) das mit dem Report oder Berichtspage für den Aussendienst und Boolean > Booelean musst du bitte näher erläutern, ich verstehe dich leider nicht.
ERP-Berater
 
Beiträge: 146
Registriert: 27. September 2017 17:06
Arbeitsort: D-A-CH
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009,2013,2016

Re: Werte auslesen und zurĂĽckschreiben

Beitragvon fframbach » 21. Dezember 2018 09:22

Hallo,

vielen Dank fĂĽr deine Nachricht. Eventuell habe ich mich etwas befremdlich ausgedrĂĽckt.

(1) steht ausser Frage

(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

(3) siehe (2)

Hoffe das es nun in der kurzen Version einfacher zu verstehen ist und ja ich habe Programming 1 in NAV besucht ist aber schon ein paar Jahre her.

Viele GrĂĽĂźe
fframbach
 
Beiträge: 15
Registriert: 2. Mai 2017 09:08
Realer Name: Frank Frambach
Arbeitsort: Bad Honnef
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2018

Re: Werte auslesen und zurĂĽckschreiben

Beitragvon ERP-Berater » 21. Dezember 2018 17:38

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!
ERP-Berater
 
Beiträge: 146
Registriert: 27. September 2017 17:06
Arbeitsort: D-A-CH
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009,2013,2016

Gelöst: Werte auslesen und zurückschreiben

Beitragvon fframbach » 2. Januar 2019 16:53

Frohes neues Jahr und vielen Dank fĂĽr Deine BemĂĽhungen.
Viele GrĂĽĂźe,
Frank Frambach
fframbach
 
Beiträge: 15
Registriert: 2. Mai 2017 09:08
Realer Name: Frank Frambach
Arbeitsort: Bad Honnef
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2018


ZurĂĽck zu NAV 2016

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron