[Gelöst]zwischen Reitern vergl.&Felder auf gleichheit prüfen

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]zwischen Reitern vergl.&Felder auf gleichheit prüfen

Beitragvon MarcBe » 2. Dezember 2016 12:31

Hallo erstmal,

ich bin neu in Navision und habe von meinem Ausbilder denn Auftrag bekommen in eine Codeunit so zu programmieren das sie in der Debitorenkarte den Namen,Adresse und Postleitzahl von zwei Reitern vergleicht.
Wenn diese gleich sind soll ein Haken bei einem Boolischen Feld abgehakt werden und ein Error ausgegeben werden Das die Rechnungsadresse nicht gleich der Lieferadresse sein darf.

Wie geht das ? :?:

Schon mal danke im Voraus.

LG
Marc
Zuletzt geändert von MarcBe am 6. Dezember 2016 15:34, insgesamt 4-mal geändert.
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon fiddi » 2. Dezember 2016 12:46

Hallo Marc,

zunächst einmal herzlich willkommen im Forum.

Zu deiner Frage: Das kommt drauf an. :mrgreen:

Es wäre vielleicht ganz gut, wenn du zu nächst einmal die Aufgabenstellung genau beschreibst, denn ich glaube nicht, dass dein Ausbilder dir nicht mehr gesagt hat. :-?
Dann beschreibst du wo dein Problem genau liegt, du willst dabei doch auch etwas lernen. :lol:
Evtl. fällt dir das schon selbst ein, wie man es lösen kann.

Ich kann mir auch nicht vorstellen, das die Liefer- Verkaufs- und Rechnungsadresse nicht auch mal gleich sein können (hängt natürlich von eurer Branche ab).

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Reiter vergleichen

Beitragvon MarcBe » 2. Dezember 2016 12:50

Danke ,

mir wäre es nur wichtig zu wissen wie ich die Reiter vergleichen kann.

Ich arbeite bei einer Reifen verkauf Firma die international vertreten ist.
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon fiddi » 2. Dezember 2016 12:51

Hallo,

"Reiter" kannst du gar nicht vergleichen, nur Variablen, die auf den Reitern angezeigt werden.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Reiter vergleichen

Beitragvon MarcBe » 2. Dezember 2016 12:52

:oops: das meinte ich eigentlich auch .
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon fiddi » 2. Dezember 2016 13:01

Hallo,

gut, dann vergleich doch einfach die Variablen auf den Reitern, und wenn alle zusammengehörenden Felder gleich sind, schreist du FEHLER :wink:

Wobei ich allerdings glaube, dass es vielleicht doch nicht ganz so einfach ist, weil da noch ein paar kleine Fallstricke verborgen sind. 8-)

Aber grundsätzlich benötigst du erst mal eine Funktion, der du die Variablen übergibst, die die Gleichheit prüft, und ggf. einen Fehler ausgibt.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Reiter vergleichen

Beitragvon MarcBe » 2. Dezember 2016 13:36

Hallo,

Ok Danke :)

LG
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon MarcBe » 2. Dezember 2016 14:07

fiddi hat geschrieben:Aber grundsätzlich benötigst du erst mal eine Funktion, der du die Variablen übergibst, die die Gleichheit prüft, und ggf. einen Fehler ausgibt.

GruĂź Fiddi


Was für eine Funktion könnte man da benutzen ?

LG
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon fiddi » 2. Dezember 2016 14:21

Was für eine Funktion könnte man da benutzen ?


Die, die du noch schreiben solltest. :wink:

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Reiter vergleichen

Beitragvon MarcBe » 6. Dezember 2016 11:19

Hallo,
lCustomer.RESET;
lCustomer.SETRANGE(lCustomer."Immer Fremdversand",TRUE);
lCustomer.SETRANGE(lCustomer."No.",lSalesHeader."Sell-to Customer No.");
IF lCustomer.FINDSET THEN
IF( lSalesHeader."Ship-to Name" = lSalesHeader."Bill-to Name") AND(
lSalesHeader."Ship-to Address" = lSalesHeader."Bill-to Address")AND(
lSalesHeader."Ship-to City" = lSalesHeader."Bill-to City") THEN
ERROR('Rechnungsadresse und Lieferadresse darf nicht gleich sein!')
ELSE

Könnte mir jemand sagen was ich dort oben Falsch gemacht habe? Wenn ich ein Versuch mache gibt der mir den Error aus selbst wenn Immer Fremdversand auf FALSE steht.

GruĂź
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon Ted » 6. Dezember 2016 11:37

mit Rec.FINDSET bekommst du keinen Record.
https://msdn.microsoft.com/en-us/library/dd301434.aspx
Schau dir mal FINDFIRST an
https://msdn.microsoft.com/en-us/library/dd338835.aspx

obwohl ich das eher mit GET machen wĂĽrde
Code: Alles auswählen
lCustomer.GET(lSalesHeader."Sell-to Customer No.");
IF lCustomer."Immer Fremdversand" THEN
GruĂź
Ted
Ted
 
Beiträge: 328
Registriert: 18. September 2014 11:16
Realer Name: Dennis Reinecke
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015+

Re: Reiter vergleichen

Beitragvon MarcBe » 6. Dezember 2016 12:00

hallo,

sehr groĂźen Dank hat alles super funktioniert.
:)

LG
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: Reiter vergleichen

Beitragvon fiddi » 6. Dezember 2016 12:31

Hallo,

Ted hat geschrieben:mit Rec.FINDSET bekommst du keinen Record.


Wie kommst du darauf? :shock: . NatĂĽrlich bekommst du mit FINDSET einen Record, im Zweifel sogar ganz viele.

@Marc:
Obwohl dein Code, zugegeben, etwas merkwĂĽrdig aussieht (Teds Vorschlag solltest du schon berĂĽcksichtigen) mĂĽsste er eigentlich trotzdem funktionieren. Es sei denn du rufst Ihn an de falschen Stelle bzw. zu falschen Zeitpunkt auf.

Dazu musst zunächst einmal prüfen, wann deine Funktion aufgerufen wird/werden muss.
Nach der Eingabe der "Verkauf-An Kundennr." ist sicher die falsche Stelle, da hier die Adressen noch gleich sind, da sie mit den Daten aus dem Verkauf an Debitor (oder gar nicht) gefüllt sind. Die "Liefer-an Adresse" ändert sich erst wenn du manuell einen andere "Liefer-an Adresse" eingegeben hast, aber dann musst du es auch nicht mehr prüfen :wink:.

Jetzt überlege dir eine Stelle, an der du die Überprüfung einbauen könntest. :mrgreen:

EDIT:Ein Grund warum das auch evtl. jetzt schon mal funktioniert ist, wenn der Verkauf-an Debitor ein anderer ist, als der Rechnung-an Debitor.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Reiter vergleichen

Beitragvon Ted » 6. Dezember 2016 13:32

fiddi hat geschrieben:Hallo,

Ted hat geschrieben:mit Rec.FINDSET bekommst du keinen Record.


Wie kommst du darauf?:shock: NatĂĽrlich bekommst du mit FINDSET einen Record, im Zweifel sogar ganz viele.


Hm, wenn ich so richtig darueber nachdenke ... schande auf mein Haupt.
Dachte du bekommst den Datensatz erst wenn du "Next" aufrufst... was aber quatsch ist.
War gedanklich irgendwie bei "mysql_fetch" :D
GruĂź
Ted
Ted
 
Beiträge: 328
Registriert: 18. September 2014 11:16
Realer Name: Dennis Reinecke
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015+

Re: Reiter vergleichen

Beitragvon MarcBe » 6. Dezember 2016 14:54

Hallo,

Obwohl dein Code, zugegeben, etwas merkwĂĽrdig aussieht (Teds Vorschlag solltest du schon berĂĽcksichtigen)

Ja das hab ich mir später dann auch gedacht jetzt funktioniert alles.

PS: Ich bin gerade erst von der Realschule runter und hab aus zufall den Job bekommen :D
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [Gelöst]Reiter vergleichen

Beitragvon MarcBe » 6. Dezember 2016 14:57

Hallo,

meine Funktion sieht jetzt so aus :

Code: Alles auswählen
    lCustomer.RESET;
    lCustomer.GET(lSalesHeader."Sell-to Customer No.");
      IF lCustomer."Immer Fremdversand" = TRUE THEN
        IF( lSalesHeader."Ship-to Name" = lSalesHeader."Bill-to Name") AND(
         lSalesHeader."Ship-to Address" = lSalesHeader."Bill-to Address")AND(
         lSalesHeader."Ship-to City" = lSalesHeader."Bill-to City") THEN
          ERROR('Rechnungsadresse und Lieferadresse darf nicht gleich sein!')
      ELSE


LG
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [Gelöst]Reiter vergleichen

Beitragvon fiddi » 6. Dezember 2016 15:23

Hallo,

so hätte ich es gemacht:

Code: Alles auswählen
lCustomer.GET(lSalesHeader."Sell-to Customer No.");
IF lCustomer."Immer Fremdversand" THEN
  IF (lSalesHeader."Ship-to Name" = lSalesHeader."Bill-to Name") AND
      (lSalesHeader."Ship-to Name 2" = lSalesHeader."Bill-to Name 2") AND
      (lSalesHeader."Ship-to Address" = lSalesHeader."Bill-to Address") AND
      (lSalesHeader."Ship-to Address 2" = lSalesHeader."Bill-to Address 2") AND
      (lSalesHeader."Ship-to City" = lSalesHeader."Bill-to City") THEN
    ERROR('Rechnungsadresse und Lieferadresse darf nicht gleich sein!')
  ELSE


Ein paar kleine Fallstricke sind hier noch drin.
Denke bitte daran, lSalesHeader nicht unbedingt aus der Datenbank zu lesen, das könnte Probleme bereiten, da NAV an manchen Stellen mit temporären Salesheadern arbeitet, die nicht in der Datenbank gespeichert sind.
Und wie schon vorher gesagt, an der falschen Stelle eingebaut, und mit dem falschen Debitor getestet zeigt nur, dass die Funktion manchmal funktioniert.

Ich bin gerade erst von der Realschule runter und hab aus zufall den Job bekommen :D

DafĂĽr ist das schon eine recht anspruchsvolle Aufgabe :wink:
Nur rein aus Interesse, wo hast du die Abfrage eingebaut?

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: [Gelöst]Reiter vergleichen

Beitragvon MarcBe » 6. Dezember 2016 15:29

Hi,

in eine Codeunit die unsere Freigabe regel und nochmal ĂĽberprĂĽft. :)

DafĂĽr ist das schon eine recht anspruchsvolle Aufgabe :wink:


Ja schon werde schon recht hart dran genommen ist auch manchmal echt schwer zu folgen aber
irgendwie funktioniert das schon und man hat ja auch noch die Hilfe von Foren wie diesen. :)
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [Gelöst]zwischen Reitern vergl.&Felder auf gleichheit pr

Beitragvon MarcBe » 6. Dezember 2016 17:29

Hallo nochmal,

Für alle die so eine ähnliche Aufgabe mal haben:

Code: Alles auswählen
  lCustomer.RESET;
  lCustomer.GET(Rec."Sell-to Customer No.");
  IF lCustomer."Immer Fremdversand" THEN BEGIN
    IF(Rec."Ship-to Name" = Rec."Bill-to Name") AND (Rec."Ship-to Address" = Rec."Bill-to Address")
     AND(Rec."Ship-to City" = Rec."Bill-to City") THEN
      ERROR('Rechnungsadresse und Lieferadresse darf nicht gleich sein!');


und Danke fĂĽr eure Hilfe :)

LG
Marc
MarcBe
 
Beiträge: 48
Registriert: 2. Dezember 2016 11:46
Realer Name: Marc
Bezug zu Microsoft Dynamics: SchĂĽler / Student
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009

Re: [Gelöst]zwischen Reitern vergl.&Felder auf gleichheit pr

Beitragvon fiddi » 6. Dezember 2016 17:50

Hallo,

in NAV 2017 gibts diese Funktion schon fertig. :mrgreen:

P.S.: Du hast in deinem Beispiel "Name 2" und "Adresse 2" vergessen, die gehören auch noch zur Adresse, auch wenn Ihr sie normalerweise nicht verwendet.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
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, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7096
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell


ZurĂĽck zu NAV 2009

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron