Итак, моя компания поручила мне создать пакетное задание, которое будет распечатывать счета-фактуры Proforma для всех заказов на продажу, которые были отправлены в этот день , но пока еще не выставлены счета-фактуры. Они просят об этом, потому что они хотят просмотреть счета-фактуры через файлы PDF, прежде чем отправлять их. Скорее всего, они могут размещать на всех одобренных счетах в одном процессе.AX 2009: необходимо распечатать счет ProForma перед выставлением счета-фактуры
До сих пор все примеры того, как создать этот пакетный отчет (который я могу найти при поиске в Google), используют записи custInvoiceJour для заказа клиента, чтобы генерировать отчет SalesInvoice, однако, поскольку счета-фактуры не на самом деле еще не опубликовано, нет соответствующей записи CustInvoiceJour для использования в этом случае
Как я могу создать SalesInvoice без публикации (ProForma), так как эти записи журнала не были созданы? Я знаю, что это можно сделать, так как вы можете сделать это через пользовательский интерфейс.
Вот код, который у меня есть до сих пор для метода запуска пакетного задания, и когда он запускает его, возникает ошибка в том, что вы не можете найти запись custInvoiceJour.
public void run()
{
// Arguments for function.
Args args;
ParmId parmId;
ReportRun reportRun;
SalesTable salesTable;
PrintJobSettings printJobSettings;
SalesFormLetter formLetter;
select salesTable where salesTable.DocumentStatus == DocumentStatus::PackingSlip && salesTable.SalesStatus == SalesStatus::Delivered;
printJobSettings = new PrintJobSettings();
printJobSettings.setTarget(PrintMedium::File);
printJobSettings.format(PrintFormat::PDF);
printJobSettings.fileName("C:\temp\proforma_invoice.pdf");
formLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
formLetter.proforma(true);
formLetter.printFormLetter(true);
formLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());
args = new Args(ReportStr(SalesInvoice));
args.caller(formLetter);
args.parmEnum(PrintCopyOriginal::Original);
args.parmEnumType(enumnum(PrintCopyOriginal));
args.record(salesTable);
reportRun = new ReportRun(args);
reportRun.printJobSettings().setTarget(PrintMedium::File);
reportRun.printJobSettings().format(PrintFormat::PDF);
reportRun.printJobSettings().fileName("C:\temp\proforma_invoice.pdf");
reportRun.prompt();
reportRun.run();
}