hi all,
i have 1 purchase order which had multiple purchase receipt, in a report user will input original purchaser order document, and report will list down all related Purch. Rcpt. Line items and their information. so I tried to get all purchase recipt document no, and filter the documents using PurchRcptNoFilter = item ledger entry.document no.
(eg: PR001 | PR002 | PR005 | PR006 = item ledger entry.document no. )
PROBLEM: I tried to use STRSUBSTNO in following way:PurchRcptHDR.setrange("order no.", POFilter);
IF PurchRcptHDR.FindSET THEN BEGINREPEAT
IF PurchRcptNoFilter = '' THEN PurchRcptNoFilter := PurchRcptHDR."No." + '|' ELSE PurchRcptNoFilter := STRSUBSTNO('%1|%2, PurchRcptHDR."No.");
UNTIL PurchRcptHDR.Next=0;END;
Output :
PR001 || PR002 || PR005 | PR006
Don't really know why you want to use STRSUBSTNO here!
Try:
IF PurchRcptNoFilter = '' THEN PurchRcptNoFilter := PurchRcptHDR."No." ELSE PurchRcptNoFilter += '|' + PurchRcptHDR."No.");
Don't forget to "Verify Solution" the post(s) that solved your problem. This credits the experts who helped, earns you points and marks your thread as Resolved so we all know you have been helped.
or you can get rid of your nested IF statement like:
PurchRcptNoFilter := '';
IF PurchRcptHDR.FindSET THEN BEGIN
REPEAT
PurchRcptNoFilter += PurchRcptHDR."No." + '|';
PurchRcptNoFilter := COPYSTR(PurchRcptNoFilter , 1, STRLEN(PurchRcptNoFilter )-1);
Use:
PurchRcptLine.setrange("Order no.", POFilter);
Directly filter the lines by using the order number.This will solve your problem - even thogh it does not help you to understand how the STRSUBSTNO command works.
Thomas Brodkorb
Dynavics & DynamicSolutions Based on the improved budget situation is light at the end of the tunnel is now permanently switched on.
IF PurchRcptHDR.FindSET THEN BEGINREPEAT IF PurchRcptNoFilter = '' THEN PurchRcptNoFilter := PurchRcptHDR."No." ELSE PurchRcptNoFilter := STRSUBSTNO('%1|%2, PurchRcptNoFilter, PurchRcptHDR."No.");UNTIL PurchRcptHDR.Next=0;END;
You need a parameter for each %-Value in your string. So when using %1|%2 - the system expects 2 additional parameters - not only one.