0

item() Funktion fehlerhaft ??

Ich möchte per Abfrage auf den 2. Eintrag eines Arrays mittels der item()-Funktion zugreifen. Diese Funktion scheint Fehlerhaft zu sein: In der Beschreibung steht, dass sie 0-basiert ist, d.h. item(xxx,0) zeigt auf den 1. Eintrag und item(xxx,1) auf den 2. Eintrag usw.

Nun funktioniert das aber nur so (s. Script)! Und hier muss ich einmal 0 und einmal 1 nehmen um den 2. Eintrag anzusprechen.... das ist seltsam

if 'Invoice address' = 4 then
adr := item(Client.'Own Companies'.Name, 1) + "
";
if 'Name on invoice' = 1 then
adr := adr + anr + " " + Client.'First Name' + " " + Client.'Last Name' + "
"
end;
adr := adr + item(Client.'Own Companies'.'Company street', 0) + " " + item(Client.'Own Companies'.'Company house no.', 0) + "
" + item(Client.'Own Companies'.'Company postcode', 0) + " " + item(Client.'Own Companies'.'Company city', 0) + "

";
if item(Client.'Own Companies'.VAT, 1) = 1 then
adr := adr + item(Client.'Own Companies'.'VAT No.', 0)
end
end;
adr

2 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Dirk,

    ich würde item auf die untertabelle Own Companies anwenden und nicht auf end-Array. Wenn du in diesem Code immer auf den zweiten Eintrag zugreifen möchtest:

    ---

    let mySecond:=item(Client.'Own Companies',1);
    if 'Invoice address' = 4 then
    adr := mySecond.Name + "
    ";
    if 'Name on invoice' = 1 then
    adr := adr + anr + " " + Client.'First Name' + " " + Client.'Last Name' + "
    "
    end;
    adr := adr + mySecond.('Company street' + " " + 'Company house no.'+ "
    " + 'Company postcode'+ " " +'Company city'+ "

    ";
    if mySecond.VAT = 1 then
    adr := adr + mySecond.'VAT No.'
    end
    end;
    adr

    ---

     

    Leo

    • Dirk_Pulver_2020
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Cool - funktioniert und der Code ist übersichtlicher :-) Thanks