Страница 1 из 1

Отображение ProgressWindow при печати из очереди

Добавлено: 18 Октябрь 2017, 15:04
kreator
Стандартный репорт. Из большой очереди. Заметили, что на ProgressWindow обновляется только ProgressBar. Оказалось, что при печати из очереди используется обход методов класса банальной вставкой из шаблона. Ну и ребята кое-что забыли добавить, на мой взгляд. Кому интересно, в файл ABREPORT.TPW нужно добавить вызов метода UpdateDisplay():

Код: Выделить всё

#AT (%WindowManagerMethodCodeSection,'Next', '(),BYTE'),Priority(1000),WHERE(%ReportDataSource='Queue')
    %ProcessObjectName.RecordsProcessed+=1
    GET(%ReportDataSourceQueueName,%ProcessObjectName.RecordsProcessed)
    IF ERRORCODE() THEN
       ReturnValue = Level:Notify
    ELSE
       ReturnValue = Level:Benign
    END
    IF ReturnValue = Level:Notify
        IF %ProcessObjectName.RecordsProcessed>RECORDS(%ReportDataSourceQueueName)
           SELF.Response = RequestCompleted
           POST(EVENT:CloseWindow)
           RETURN Level:Notify
        ELSE
           SELF.Response = RequestCancelled
           POST(EVENT:CloseWindow)
           RETURN Level:Fatal
        END
    #IF(%ThermometerUseVariable)
    ELSE
       Progress = %ProcessObjectName.RecordsProcessed / %ProcessObjectName.RecordsToProcess*100
       IF Progress > 100 THEN Progress = 100.
       IF Progress <> Progress:Thermometer
         %ThermometerUseVariable = Progress
         DISPLAY()
         %ProcessObjectName.UpdateDisplay()                                                                           ! *** KreatoR ***         
       END
    #ENDIF
    END
    RETURN Level:Benign
#ENDAT