FieldRef.value wird bei Optionen u. Boolean nicht zugeweisen

12. September 2012 09:13

Diese Zuweisung funktioniert zwar im Classic Client 5.01, nicht aber im RTC/CC6.02, wenn es sich um Felder vom Typ Boolean oder Option handelt. Mittels der jetzt auskommentierten Message konnte ich feststellen, dass der Wert in der Quelle <> 0 ist, jedoch das Zielfeld immer den Wert 0 annimmt

FldRefContract.VALUE := FldRefMainContract.VALUE;

Hat jemand eine Idee, wie eine Lösung aussehen könnte. Unterschiedliches Verhalten zwischen Versionen und Builds scheint ja auch in anderen Zusammenhängen ein Problem zu sein.


Code:
FOR i := 3 TO RecRefMainContract.FIELDCOUNT() DO BEGIN
  FldRefMainContract := RecRefMainContract.FIELDINDEX(i);
  FldRefContract := RecRefContract.FIELDINDEX(i);

  IF Contract.Status < Contract.Status::valid THEN BEGIN
    CASE FORMAT(FldRefMainContract.TYPE) OF
    'Decimal', 'Option', 'Boolean' :
        BEGIN
          IF (FORMAT(FldRefContract.VALUE) = '0') AND (FORMAT(FldRefMainContract.VALUE) <> '0') THEN BEGIN
            FldRefContract.VALUE := FldRefMainContract.VALUE;
            //MESSAGE('%3-Field Haupt %1 -> %2',FldRefMainContract.VALUE,FldRefContract.VALUE,FldRefMainContract.TYPE);
          END;
        END;
      'Text', 'Code', 'DateFormula' :
        BEGIN
          IF FORMAT(FldRefContract.VALUE) = '' THEN
            FldRefContract.VALUE := FldRefMainContract.VALUE;
        END;

    END;

Re: FieldRef.value wird bei Optionen u. Boolean nicht zugewe

12. September 2012 10:10

Hallo,

welchen Build verwendest du? (unter ?/Info zu Microsoft Dynamics NAV)

Gruß, Fiddi

Re: FieldRef.value wird bei Optionen u. Boolean nicht zugewe

12. September 2012 12:59

Es gbit tatsächlich FieldRef-Unterscheide zwischen CC und RTC:
http://teachmenav.com/blogs/dave/archiv ... ldref.aspx

Probier mal, ob das hier <> 0 liefert:
Code:
NeueTextVar := FldRefMainContract.VALUE; // nur im RTC

Re: FieldRef.value wird bei Optionen u. Boolean nicht zugewe

12. September 2012 13:31

fiddi hat geschrieben:welchen Build verwendest du? (unter ?/Info zu Microsoft Dynamics NAV)

NAV 6.02 R2 (6.00.32539)
In dieser Version funktioniert es weder im Classic- noch im RTC Client

Re: FieldRef.value wird bei Optionen u. Boolean nicht zugewe

12. September 2012 14:56

Natalie hat geschrieben:Probier mal, ob das hier <> 0 liefert:
Code:
NeueTextVar := FldRefMainContract.VALUE; // nur im RTC


Über eine TextVariable mit Evaluierung auf ein Integer und Zuweisung habe ich die Zuweisung im Classic-Clienten hingekriegt. Im RTC funktioniert das immer noch nicht (Sicherheitshalber hatte ich die Services mal runter gefahren)

Ansonsten ist mir beim RTC zum Typ Option noch aufgefallen gegenüber CC
- Format(FldRefMainContract.VALUE) bringt mir nicht den Integer Wert sondern die Option in Deutsch
- TxtVar := FldRefMainContract.VALUE; bringt im RTC keine Fehlermeldung

Code:
      'Option' :
        BEGIN
          IF (FORMAT(FldRefContract.VALUE) = '0') AND (FORMAT(FldRefMainContract.VALUE) <> '0') THEN BEGIN
            //FldRefContract.VALUE := FldRefMainContract.VALUE;
            TxtVar := FORMAT(FldRefMainContract.VALUE);
            EVALUATE(IntegerVar,TxtVar);
            FldRefContract.VALUE := IntegerVar;
          END;
        END;

Re: FieldRef.value wird bei Optionen u. Boolean nicht zugewe

8. November 2012 10:59

hatte das selbe Problem.
Wie hier im Link schon beschrieben,

Natalie hat geschrieben:Es gbit tatsächlich FieldRef-Unterscheide zwischen CC und RTC:
http://teachmenav.com/blogs/dave/archiv ... ldref.aspx

Probier mal, ob das hier <> 0 liefert:
Code:
NeueTextVar := FldRefMainContract.VALUE; // nur im RTC




habe ich es so gelöst:

Code:
Neue Variable: IntOption (Integer)

Code:
Neue Funktion: GetOption aus Codeunit 8611



Code:
Code:
IF ISSERVICETIER THEN
  GetOption(FORMAT(HITBITRecRefP.FIELD(1).VALUE),HITBITRecRefP.FIELD(1).OPTIONCAPTION,IntOption)
ELSE
  EVALUATE(IntOption,FORMAT(HITBITRecRefP.FIELD(1).VALUE));