FieldIndex return wrong value

joewidojoewido Member Posts: 4
Hallo,

i've a ClearFieldinTable Funktion to empty any Fieldvalue by TableID and Fieldindex. Sometimes the Funktion RecordRef.FIELDINDEX(_FieldIndex) delivers a wrong FieldRef. So the wrong Table Column data is deleted.

It seems to be a Problem of Large Tables with many Fields (>128).

I've no idea whats going wrong.
ClearFieldinTable(_TableID : Integer;_FieldIndex : Integer;_CompanyName : Text[30])
CLEAR("_&RecordRef");
CLEAR("_&NewRecordRef");
CLEAR("_&FieldRef");
CLEAR("_&NewFieldRef");

"_&RecordRef".OPEN(_TableID,FALSE,_CompanyName);

"_&NewRecordRef".OPEN(_TableID,TRUE);

"_&NewFieldRef" := "_&NewRecordRef".FIELDINDEX(_FieldIndex);

REPEAT
  "_&FieldRef" := "_&RecordRef".FIELDINDEX(_FieldIndex);
  "_&FieldRef".VALUE := "_&NewFieldRef".VALUE;
  "_&RecordRef".MODIFY;
UNTIL "_&RecordRef".NEXT = 0;

Thank for any help!

Comments

  • krikikriki Member, Moderator Posts: 9,110
    I think it is better to redefine your function so it takes the number of the field.

    Then you can use
    "_&FieldRef" := "_&RecordRef".FIELD(_FieldNo);
    

    with fieldindex, you have to think about the possibility that there are fields that are not Enabled. In short it is not a sure way to do it.

    You might also use the name of the field. Then you search the ID of the field in the Field-Table.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


Sign In or Register to comment.