[Gelöst] Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Bild Microsoft Dynamics NAV 2009 (aka "NAV 6")
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt angeben, ob sich eure Frage auf den RoleTailored-Client (RTC) oder den Classic-Client (CC) bezieht!

[Gelöst] Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 10:48

Hallo liebe Community,
ich habe vor 2 Wochen nach dem Studium einen Job in der Navision Programmierung angenommen. Ich habe einen neuen Report angelegt und die Sections werden auch alle korrekt als Rechnung angezeigt. Nun möchte ich aber einen ausgelesenen Wert so umwandeln, dass er, wenn er 0 ist eine 1 anzeigt. Lässt sich das bewerkstelligen? Vielen Dank :?:
(Ich arbeite im Classic-Client (CC).
Zuletzt geändert von Semirhage am 3. August 2017 16:12, insgesamt 1-mal geändert.
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Natalie » 3. August 2017 10:57

Semirhage hat geschrieben:ich habe vor 2 Wochen nach dem Studium einen Job in der Navision Programmierung angenommen.

Herzlichen GlĂĽckwĂĽnsch und herzlich Willkommen!

... Report .... Nun möchte ich aber einen ausgelesenen Wert so umwandeln, dass er, wenn er 0 ist eine 1 anzeigt.

Grundsätzlich druckt der Report nur Variablenwerte statt physischer Daten, wobei jedes Feld der durchlaufenden Tabelle eine Variable darstellt. Das heißt: Du kannst im OnAfterGetRecord-Trigger einen (Feld-)Wert manipulieren, OHNE ihn zu speichern, und er wird dann trotzdem geändert angedruckt.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 11:07

Und wie mache ich das? Ich habe in dem Feld im Section Designer unter Source Expression den direkten link auf die Datenbank. Kann ich das in dem OnAfterRecord Teil im Code in eine Variable schreiben und die dann statt dem link auf den Table ausgeben?
Vielen Dank
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon m_schneider » 3. August 2017 11:14

Ja, oder du änderst den Wert direkt mit ":=". Dann solltest du dir nur sicher sein, das nirgendwo ein MODIFY steht.
MfG Michael
Benutzeravatar
m_schneider
 
Beiträge: 2141
Registriert: 20. Januar 2009 14:36
Realer Name: Michael Schneider
Arbeitsort: Treuen
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 13:17

Hmm, muss zugeben, dass ich das leider nicht verstehe. An der TH sind wir nicht so tief in Navision eingestiegen. Also, die SourceExpr. in der Textbox - Properties liest die Daten aus der betreffenden Tabelle aus. Diesen Wert wĂĽrde ich gerne ungefiltert ausgeben, wenn er jedoch ='' (leer) ist, dann soll er eine 1 ausgeben^^. Ich nenne die Tabelle jetzt einfach mal A, in der steht dann der Datensatz A.a. In dem OnPostSection mĂĽsste ich da jetzt was schreiben? :X
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Kowa » 3. August 2017 15:00

Semirhage hat geschrieben: In dem OnPostSection mĂĽsste ich da jetzt was schreiben? :X

Im OnAfterGetRecordTrigger (wie Natalie schon schrieb), nicht OnPostSection.
Code: Alles auswählen
IF A.a = '' THEN
  A.a := '1';

Sicherer ist allerdings, den Wert in eine Puffervariable vom gleichen Typ abzulegen und diese dann als SourceExpr anzudrucken.
Code: Alles auswählen
MyVar := A.a;
IF MyVar = '' THEN
  Myvar := '1';

Dann braucht man sich über ein mögliches MODIFY keine Sorgen zu machen. Selbst wenn aktuell keins vorhanden ist, kann das später irgendwann jemand darunter aus anderem Anlass dazuschreiben, der diese Codestelle übersieht.
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 15:41

Hmmm, ich scheine auf dem Schlauch zu stehen.

Code: Alles auswählen
ExchangeRate := "Sales Invoice Header"."Currency Factor"
If ExchangeRate = '' Then Begin
  ExchangeRate := '1';
End;


Bricht jedenfalls mit einem Syntaxfehler ab :(
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon shove » 3. August 2017 15:44

Das sieht mir sehr nach einem Datentyp-Konflikt aus.

Mach aus der ExchangeRate mal eine Decimal Variable und ändere den Code entsprechend:

Code: Alles auswählen
ExchangeRate := "Sales Invoice Header"."Currency Factor";
IF ExchangeRate = 0.0 THEN
  ExchangeRate := 1.0;
GruĂź
Stefan
shove
 
Beiträge: 41
Registriert: 2. März 2017 09:11
Realer Name: Stefan
Arbeitsort: Bonn
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Seit 2013

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 15:51

Ändert leider gar nichts, bricht mit einem Syntaxfehler ab. Habe auch die verschiedenen "" und '' durchprobiert, wenn ich die Variable als Text definiere ändert das auch nichts.
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon shove » 3. August 2017 15:57

Hast du meinen Code kopiert?
Ich habe in der ersten Zeile auch am Ende noch ein Semicolon hinzugefĂĽgt.
GruĂź
Stefan
shove
 
Beiträge: 41
Registriert: 2. März 2017 09:11
Realer Name: Stefan
Arbeitsort: Bonn
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Seit 2013

Re: Wert aus Tabelle auslesen und wenn 0 soll er 1 sein

Beitragvon Semirhage » 3. August 2017 16:12

Stimmt, sorry, das Semiklon habe ich total ĂĽbersehen... Vielen Dank. Bin halt neu *hust*^^
Semirhage
 
Beiträge: 18
Registriert: 20. Juli 2017 19:55
Realer Name: Robert
Arbeitsort: MĂĽnchberg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 9


ZurĂĽck zu NAV 2009

Wer ist online?

Mitglieder in diesem Forum: Unbekannter Spider und 1 Gast