Показать сообщение отдельно
Старый 25.02.2009, 11:04   #9  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
DAX 5.0.

В печатной форме подтверждения заказа (Sales confirmation -> AOT/Reports/SalesConfirm), в методе fetch() "забыто" изменение значения переменной hasReportBeenPrinted на true, т.е. выделенная скобками bug-fix строчка.

X++:
boolean  fetch()
{
    QueryRun    tradeLoopTrans;
    boolean     hasReportBeenPrinted = false;

    setprefix(this.design().caption());

    while (custConfirmJour)
    {
        setprefix(strfmt("@SYS70899", custConfirmJour.ConfirmId));

        .....
        while (salesFormLetterReport.moveNextPrintSetting())
        {
            ....
            if (salesFormLetterReport.checkNextPrintSetting())
            {
                element.reset(true);
            }
        }

        // All printing must be done in the context of the fetch() method and not
        // in the print() method. This ensures printing errors are associated with the
        // appropriate documents.
        element.reset(true);
        
        // Bug-fix -->
        hasReportBeenPrinted = true;
        // Bug-fix <--

        // The journalList is used when printing is delayed until after all posting is complete.
        if (!journalList.next(custConfirmJour))
        {
            break;
        }
    }

    // If the report has been printed, return false to indicate the print method should not be run
    return (!hasReportBeenPrinted);
}
Из-за этого при печать данного документа всегда выдается инфолог с сообщение, что отчет не содержит данных. Если посмотреть на код метода fetch в аналогичных документах (напримера накладная, AOT/Reports/SalesInvoice), то понятно как эту ошибку можно исправить.

В SP1 проблема не решена.
За это сообщение автора поблагодарили: gl00mie (2).