Conditional printing of an extra invoice supplement

gazpacho
Member Posts: 48
Hi there
I would like to be able to print a kind of invoice supplement for certain customers. The supplement contains additional information on historic invoices for that customer, so it's also based on the sales invoice header table.
Depending on a boolean field on the customer card, I can choose whether a supplement (just a form with some ) must be printed or not. I want it to be printed right after the invoice.
I can't use the report selection table because the printing is conditional.
My solution: putting some code in the printrecords-function in the sales invoice header table:
WITH SalesInvoiceHeader DO BEGIN
COPY(Rec);
ReportSelection.SETRANGE(Usage,ReportSelection.Usage::"S.Invoice");
ReportSelection.SETFILTER("Report ID",'<>0');
ReportSelection.FIND('-');
REPEAT
REPORT.RUNMODAL(ReportSelection."Report ID",ShowRequestForm,FALSE,SalesInvoiceHeader);
//start mycode: i left out the retrieval of the customer boolean
//that determines whether the supplement has to be printed
IF BoolPrintSupplement THEN
REPORT.RUN(59999,TRUE,FALSE,SalesInvoiceHeader); UNTIL ReportSelection.NEXT = 0;
END;
The problem is that SalesInvoiceHeader seems to be empty when report 1234567 is called. The first Dataitem of that report is Sales Invoice Header, but the filter on invoice no. in that report is empty !
What am I missing here? I think it's something simple...
Thanks
Josh
I would like to be able to print a kind of invoice supplement for certain customers. The supplement contains additional information on historic invoices for that customer, so it's also based on the sales invoice header table.
Depending on a boolean field on the customer card, I can choose whether a supplement (just a form with some ) must be printed or not. I want it to be printed right after the invoice.
I can't use the report selection table because the printing is conditional.
My solution: putting some code in the printrecords-function in the sales invoice header table:
WITH SalesInvoiceHeader DO BEGIN
COPY(Rec);
ReportSelection.SETRANGE(Usage,ReportSelection.Usage::"S.Invoice");
ReportSelection.SETFILTER("Report ID",'<>0');
ReportSelection.FIND('-');
REPEAT
REPORT.RUNMODAL(ReportSelection."Report ID",ShowRequestForm,FALSE,SalesInvoiceHeader);
//start mycode: i left out the retrieval of the customer boolean
//that determines whether the supplement has to be printed
IF BoolPrintSupplement THEN
REPORT.RUN(59999,TRUE,FALSE,SalesInvoiceHeader); UNTIL ReportSelection.NEXT = 0;
END;
The problem is that SalesInvoiceHeader seems to be empty when report 1234567 is called. The first Dataitem of that report is Sales Invoice Header, but the filter on invoice no. in that report is empty !
What am I missing here? I think it's something simple...
Thanks
Josh
0
Comments
-
What happens if you just put this report in the report selections?
Does it print OK?
Try put in Report.RUNMODAL instead of Report.RUN
You can also add an extra field to the report selection table and put an extra filter on that field, instead of hard coding this report.0 -
SalesInvoiceHeader IS empty (there is no GET or FIND) - it contains only filters which are passed to the report... :-)0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions