Feldzugriff ĂĽber ID?

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

Feldzugriff ĂĽber ID?

Beitragvon Otschko » 1. November 2005 15:58

Hallo Leudde,

folgendes Problem stellt sich mir:
Bastele gerade an einem dynamischen Dataport (der mit dem langen Datensatz ;-) ) und hab mir nun analog eine Tabelle like "Field" gebaut, in der ich u.a. Position und Feldlänge verändern kann. Jetzt kann ich ja per Schleife über diese Zeilen gehen und mit der zugeordneten FieldNo festlegen, in welches Feld das aktuelle Datum gespeichert wird.

Wie kann ich diese FieldNo (elegant) auswerten?
Mir fällt erstmal nur ein Funktionsaufruf, der die FieldNo und das Datum mit übergibt und dann dort per CASE Auswertung die Zuweisung vornimmt:

zB.

Code: Alles auswählen

AssignValue(FieldNO: Integer, Datum: Text30)

CASE FieldNo OF
  1:  Rec."No.":=Datum;
  2:  Rec."Line No.":=Datum;
  ....
  x:  Rec.Feldx:=Datum
END;


Macht sich halt für eine größere Anzahl von Feldern nicht so gutt.... :roll:

Idee?

Gruss,Otschko
# Heut debugg' ich, morgen browse ich und ĂĽbermorgen caste ich die
Königin nach int!
Benutzeravatar
Otschko
 
Beiträge: 70
Registriert: 17. Juni 2005 14:34
Wohnort: Wittichenau
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4.x,5.x

Beitragvon Timo Lässer » 1. November 2005 16:35

Schonmal mit RecordRef und FieldRef versucht?
Diese Variablen-Typen ermöglichen dir den dynamischen Zugriff auf verschiedene Records und Fields. Sehr empfehlenswert ;-)

Ich programmiere mittlerweile mit Vorliebe mit RecordRef und FieldRef.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Otschko » 1. November 2005 16:59

Hi Timo,

ich hab das hier ab und an mal gelesen, aber mit der Online Hilfe schnall ich das nicht....:-?
Hab auch noch keine Beispiel irgendwo gesehn....

Ich habe mir schon fast gedacht, das das was mit den Refs zu tun haben könnte...

Gruss,Otschko
# Heut debugg' ich, morgen browse ich und ĂĽbermorgen caste ich die
Königin nach int!
Benutzeravatar
Otschko
 
Beiträge: 70
Registriert: 17. Juni 2005 14:34
Wohnort: Wittichenau
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 4.x,5.x

Beitragvon Timo Lässer » 1. November 2005 17:39

Ein ausgiebiges Beispiel fĂĽr die Verwendung von RecordRef, FieldRef und KeyRef ist RecRefManagement aus dem Downloadbereich.

Für dein Beispiel würde das ungefähr so aussehen:
Code: Alles auswählen
AssignValue(FieldNumber: Integer, NewValue: Text30)

RecRef.GETTABLE(Rec);
FldRef := RecRef.Field(FieldNumber);
FldRef.Value := NewValue;
RecRef.SETTABLE(Rec);
Bitte beachten: Der Parameter darf nicht FieldNo lauten, da dies schon durch C/SIDE belegt ist. Stattdessen nenne ihn einfach FieldNumber oder FldNo oder ...

Da es leider nicht möglich ist, EVALUATE(FldRef.Value,NewValue) auszuführen, empfehle ich die Verwendung der oben genannten Codeunit.
Dort ist ein EVALUATE fĂĽr RecRef enthalten.

Würdest du nur lesend zugreifen, dann könnte es z. B. so aussehen:
Code: Alles auswählen
GetValue(FieldNumber: Integer) : Text30

RecRef.GETTABLE(Rec);
EXIT(RecRef.Field(FieldNumber).Value);
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: Unbekannter Robot und 1 Gast