Hallo,
Ik heb een temp table die ik opvul a.d.h.v. een REPEAT UNTIL.
Tot zover geen vuiltje aan de lucht.
Als ik nu die temp table teurg wil overlopen dan heb ik iets 'raar' voor...
Ik wil die table als volgt overlopen:
IF tempTable.FINDSET(FALSE,FALSE) THEN
REPEAT
//bewerkingen
UNTIL tempTable.NEXT = 0;
of
IF tempTable.FINDFIRST THEN
REPEAT
//bewerkingen
UNTIL tempTable.NEXT = 0;
Bovenstaande code werkt niet, dit omdat hij los over die FINDSET/FINDFIRST gaat en
dus nooit in zijn REPEAT UNTIL komt.
Als ik nu echter het volgende doe:
REPEAT
//bewerkingen
UNTIL tempTable.NEXT = 0;
Dan werkt dit wel naar behoren... op het eerste zicht althans.
Maar is dit wel erg correct? Omdat ik mij nu niet echt expliciet positioneer
op het eerste record in mijn temp table. ](*,)
Answers
Jazeker, ik heb zelfs al eens geprobeerd met er een filter op te plaatsen
maar andermaal helaas...
of laat alle code even zien
De temptable wordt opgevuld in form, als er daar op een button wordt gedrukt. Deze wordt vandaar dan doorgegeven aan een code unit waar alle records van deze temptable worden overlopen.
Wel merk ik in debug dat de temptable reeds een waarde bevat vooraleer men aan de FINDSET komt... Niet zo heel uitzonderlijk want meestal gaat men een findset gebruiken in combinatie met filters, om na filteren zich te positioneren op het eerste record na filtering. Filters zijn echter niet van toepassing op deze temptable.
Ik heb reeds geprobeerd om domweg er een filter op te plaatsen, maar dit lukt ook niet.
Codeunit
fctCreateTransactionsAUTLine2
Als ik echter dit plaats dan werkt het wel...
maar dan ik natuurlijk wel niet filteren.
[/b]
Are the "prec" defined as a VAR? in fctCreateTransactionsAUTLine2. And I don't think it needs to be a temp too.
precTmpTransportLine LOCAL TEMP
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
Ah... ik dacht dat dit enkel diende als men die variabele/parameter - pass-by refference of pass-by value, ik haal ze telkens door elkaar - wou bewerken in de functie.
Als je weet wat er achter de schermen gebeurt, dan is het wel logisch dat het zo werkt met temptables: VAR wil zeggen dat er een POINTER naar de waarde wordt doorgegeven en NIET de waarde zelf => een POINTER naar de temptable en NIET de huidige waarde van het record in de temptable.
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
En dat de parameter VAR dan vervolgens een "pass-by reference" deed, de table doorgeven met een pointer die verwijst naar de oorspronkelijke tabel, zodanig dat alle bewerkingen in de functie dan ook meteen gedaan worden op de brontabel.
Aangezien ik slechts de tabel wou doorgeven (de waarden) zonder de brontabel te wijzigen dacht ik dat dit kon zonder de parameter VAR te activeren.
Natuurlijk als ik mijn eigen logica volg moest ik dit toch eens geprobeerd hebben met de parameter VAR :oops:
Ik heb dit blijkbaar over het hoofd gezien.
Alvast bedankt voor uw verhelderende uitleg! =D>
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
Dus je hebt gelijk, NAV gebruikt als norm By Value, alleen betekent dat precies het andere dan wat je dacht
RIS Plus, LLC