[gelöst] Records vergleichen

17. März 2009 17:23

Hallo,

gibt es eine Navision eigene Funktion zum vergleichen von Records?

MfG
Zuletzt geändert von m_schneider am 23. März 2009 08:46, insgesamt 1-mal geändert.

Re: Records vergleichen

17. März 2009 17:53

Könnte man evtl. so lösen: rec1.GetPosition=rec2.GetPosition

Re: Records vergleichen

17. März 2009 19:35

Was genau meinst du mit vergleichen?

Wenn du z.B. nur herausfinden möchtest, ob sich der Inhalt eines Records irgendwo geändert hat, reicht dies hier:
Code:
Geändert := FORMAT(Record1) <> FORMAT(Record2);

Re: Records vergleichen

17. März 2009 23:27

m_schneider hat geschrieben:gibt es eine Navision eigene Funktion zum vergleichen von Records?

Könntest du bitte die Aufgabenstellung ein bisschen erläutern?

Gruß, Michael

Re: Records vergleichen

18. März 2009 11:39

ich habe zwei Records einer Tabelle und möchte überprüfen ob diese den gleichen Inhalt haben!

Die Antwort von Natalie sieht schon ganz gut aus! Muss ich mal probieren. Danke

Re: Records vergleichen

18. März 2009 12:22

Aber das macht ja nur Sinn, wenn eines der Records temporär ist ... außer, es sind zwei verschiedene, aber identische Tabellen :-?

Re: Records vergleichen

22. März 2009 10:23

Ehrlich gesagt, kann ich Sinn und Zweck auch nicht verstehen. Und mit dem FORMAT kann nur bedingt das richtige (d.h. unzuverlässige) Ergebnis erzielt werden. Dabei sollte berücksichtigt werden, dass eine Record Variable auch die BLOB Felder beinhalten kann. Aber das wäre das kleinste Problem. Und was mit den FlowFields? Hier muss gewährleistet werden, dass keiner der FlowFields berechnet wurde, bzw. dass in beiden Records diese unter gleichen Bedingungen berechnet wurden.
Obwohl ich die Aufgabenstellung nicht richtig kenne, sagt mir mein Gefühl, dass für die Problematik über eine andere Lösung nachgedacht werden sollte.

Gruß, Michael

Re: Records vergleichen

23. März 2009 08:46

Sicherlich, mittlerweile habe ich auch eine Andere Lösung gefunden. Aber ich wollte auch nur mal grundsätzlich wissen ob und wie man zwei Records vergleichen kann.
Über die Problematik der BLOBs und der Flowfields habe ich nicht nachgedacht, sind aber sowieso keine in dieser Tabelle vorhanden.

MfG

Re: [gelöst] Records vergleichen

24. März 2009 00:21

Es wäre natürlich unheimlich nett, wenn du uns an dieser anderen Lösung teilhaben ließest :wink:

Re: [gelöst] Records vergleichen

24. März 2009 09:07

Entschuldigung, ich habe für mein Problem eine andere Lösung gefunden!

Für das Vergleichen von zwei Records ist diese FormatVariante sinnvoll, denke ich!

Meine Idee wäre gewesen, mir eine Funktion zu schreiben, der man zwei Records übergibt und dann einen Bool-Wert zurückgibt welcher zeigt,ob zwei Records gleich sind! Aber da wüsste ich nicht wie beiden Variablen in der Funktion definieren sollte.

MfG

Re: [gelöst] Records vergleichen

8. September 2016 13:03

Da die FORMAT-Variante bei großen Datensätzen über 1000 Bytes u.U. versagt, hier noch eine Alternative mit FieldRefs:

How to compare Records in Dynamics NAV?

Code:
CompareRecords(Rec1 : RecordRef;Rec2 : RecordRef) : Boolean
FOR i := 1 TO Rec1.FIELDCOUNT DO BEGIN
  FldRef1 := Rec1.FIELDINDEX(i);
  FldRef2 := Rec2.FIELDINDEX(i);
  IF FldRef1.VALUE <> FldRef2.VALUE THEN
    EXIT(FALSE);
END;
EXIT(TRUE);