Code Feld im Report aus Text Feld füllen

24. Juli 2007 14:59

hallo,

kennt einer den befehl um ein textfeld mit ein codefeld zu verknüpfen?
möchte per get und range zwei datensätze zusammenführen wo eines werte enthält die in der anderen tabelle als code hinterlegt sind. habs mit EVALUATE komme damit aber nicht weiter.

danke schon mal für eure hilfe

24. Juli 2007 15:44

FeldCode := UPPERCASE(FeldText);

Ist es das, was du brauchst?
Ansonsten gib mal bitte ein konkretes Codebeispiel, welchen Fehler du an welcher Stelle bekommst.

24. Juli 2007 15:47

danke dir ich teste das mal morgen in ruhe und sag dir bescheid obs geklappt hat ;)

24. Juli 2007 16:19

habe doch noch zeit gefunden das zu testen

Code:
IF "Time Entry/T"."Task No." <> '' THEN BEGIN
  OrderCode := UPPERCASE("Order No.");
  TaskCode := UPPERCASE("Task No.");
  rec_ProdOrderRoutingLine.GET(OrderCode, TaskCode);
END ELSE BEGIN
  rec_ProdOrderRoutingLine.INIT;
END;


bringt aber die fehlermeldung
"Eine Typkonvertierung des Ausdrucks Code in einen Option Wert ist nicht möglich."

habe ich UPPERCASE falsch angewendet? sorry stecke noch in den kinderschuhen bezüglich navision.


wir arbeiten mit den modul tempras dort wird in der tabelle "Time Entry/T" die arbeitsgangnummer als nicht code feld hinterlegt. ich möchte nun aus der tabelle "Prod. Order Routing Line" die dort hinterlegte arbeitsgangnummer + arbeitsplatzgruppennummer mit der tabelle "Time Entry/T" verbinden.
hintergrund ist das am ende die kostenstelle die im arbeitsplatz hinterlegt wurde mit der soll kostenstelle die am mitarbeiter im tempras modul hinterlegt ist zu vergleichen und damit eine kostenstellenausgleich für die fertigungsmitarbeiter zu verbuchen.

zu den variabeln:
OrderCode und TaskCode ist eine [Code30] variable
rec_ProdOrderRoutingLine --> record auf Prod. Order Routing Line
DataItem --> Time Entry/T

Re: Code Feld im Report aus Text Feld füllen

24. Juli 2007 16:24

Tisi hat geschrieben:kennt einer den befehl um ein textfeld mit ein codefeld zu verknüpfen?
möchte per get und range zwei datensätze zusammenführen wo eines werte enthält die in der anderen tabelle als code hinterlegt sind. habs mit EVALUATE komme damit aber nicht weiter.


?
Sowas wie ein lookup auf eine andere Tabelle (z.B. bei den Deb. die PLZ-Tabelle)?

Markus

24. Juli 2007 16:28

ja genau

24. Juli 2007 16:44

Tisi hat geschrieben:bringt aber die fehlermeldung
"Eine Typkonvertierung des Ausdrucks Code in einen Option Wert ist nicht möglich."


Da stand es doch schon drin: Ein Optionsfeld ist keinesfalls ein Textfeld, sondern entspricht einem Integer, dess Zahlenwerte mit dem OptionString (=Text) nur "übersetzt" werden.

Was du also brauchst, ist ein Code in der Form:
Code:
CASE Optionsfeld OF
  Optionsfeld::Wert1 : Codefeld := Irgendwas;
  Optionsfeld::Wert2 : Codefeld := Irgendwas;
  etc.
END;


bzw. umgekehrt

Code:
CASE Codefeld OF
  Codewert1 : Optionsfeld := Optionsfeld::Wert1;
  Codewert1 : Optionsfeld := Optionsfeld::Wert2;
  etc.
END;

25. Juli 2007 09:01

Ich denke dein Problem ist das "Get".
der Primärkey in der Tabelle "Prod. Order Routing Line" ist bei uns:
Status,Prod. Order No.,Routing Reference No.,Routing No.,Operation No.
Versuche es mal mit "Find"
Code:
IF "Time Entry/T"."Task No." <> '' THEN BEGIN
  rec_ProdOrderRoutingLine.SETRANGE("Prod. Order No.","Order No."); 
  rec_ProdOrderRoutingLine.SETRANGE(?,"Task No.");
  IF NOT rec_ProdOrderRoutingLine.FIND('-') Then CLEAR(rec_ProdOrderRoutingLine);
END ELSE BEGIN
  rec_ProdOrderRoutingLine.INIT;
END


Eventuell noch einen passenden Key aussuchen

mfg Michael