Announcements
Goodmorning everyone,
I'll explain my problem. I'm trying to create a button to insert into a generic Page (suppose for example that of the articles) that I will need to do "massive" operations on them; for example, I would like to select some articles by pre-filtering them, (eg select all articles starting with * 1234) and apply changes on one (or more) fields of them (eg change the description field to all articles starting with * 1234).
I have reached the point where I can select the desired table and the field to modify, but when I try to make changes to the value of the field in question, I receive errors but I do not understand why ["The Item does not exist. Identification fields and value: No. = ']. I adhered to the guides of the Community, even sifting through the web I always found the same procedure to perform, very very similar to the following (the following code is the one that I really implemented!)
Fields.RESET;
Fields.SETRANGE (TableNo, 27);
Fields.SETRANGE (Enabled, TRUE);
IF PAGE.RUNMODAL (PAGE :: "Field List", Fields) = ACTION :: LookupOK THEN BEGIN
SelectedField: = Fields.FieldName;
FieldNumber: = Fields. "No.";
RecRef.OPEN (27);
FldRef: = RecRef.FIELD (FieldNumber);
IF FldRef.ACTIVE THEN
BEGIN
FldRef.VALUE: = 12345678;
RecRef.MODIFY;
END;
END;
SelectedField and FieldNumber are text fields, while RecRef and FldRef are respectively of RecordRef and FieldRef.
Could someone please explain to me politely what error I am committing? Many thanks in advance
*This post is locked for comments
Hi Mark,
You can modify massive values of any tables via our tool Universal Excel Import Export at Mibuso:
Hi,
You must select a record for the RecRef.
In your code, you are trying to modify data of a RecRef which does not link to an existing record.
See below:
Fields.RESET; Fields.SETRANGE (TableNo, 27); Fields.SETRANGE (Enabled, TRUE); IF PAGE.RUNMODAL (PAGE :: "Field List", Fields) = ACTION :: LookupOK THEN BEGIN SelectedField: = Fields.FieldName; FieldNumber: = Fields. "No."; RecRef.OPEN (27); RecRef.SETVIEW(OriginalRecord.GETVIEW); // set your filter here or iterate over all records IF RecRef.FINDSET THEN REPEAT FldRef: = RecRef.FIELD (FieldNumber); IF FldRef.ACTIVE THEN BEGIN FldRef.VALUE: = 12345678; RecRef.MODIFY; END; UNTIL RecRef.NEXT = 0;
André Arnaud de Cal... 291,359 Super User 2024 Season 2
Martin Dráb 230,370 Most Valuable Professional
nmaenpaa 101,156