03.10.2006, 17:36 | #1 |
Участник
|
Помогите!
Необходимо в пакетном режиме выводить отчет в один и тот же текстовый файл, т.е. обновлять файл. Когда я просто настроил отчет выполняться в пакетном режиме, а в опциях указал вывод в файл ASCII, то при выполнении пакета выскакивает диалог с впросом "Файл существует. Перезаписать?", соответсвенно пакетный сервер стоит и ждет ответа. Когда в отчете в методе print() перед super() поставил WinAPI::deleteFile(_fileName), то при ручном запуске отчета файл удаляется и отчет создает новый файл, а в пакетном режиме все равно задает впрос о перезаписи файла. На форуме были рекмендации запускать отчет из класса и с помощью printJobSettings задавать имя файла. Я сделал класс наследник от RunBaseBatch, который выполняет код: Код: ReportRun report; Args _args; FileName _fileName; ; _fileName = strfmt('%1%2.txt',WinAPI::getTempPath(),timeNow()); // _fileName = 'c:\\temp\\test.txt'; _args = new Args(ReportStr(MyPriceListTXT)); report = ClassFactory.reportRunClass(_args); report.printJobSettings().setTarget(PrintMedium::File); report.printJobSettings().format(PrintFormat::ASCII); report.printJobSettings().fileName(_fileName); report.run(); если файл существует, то в пакетном режиме отчет все равно спрашивает о перезаписи, а если не существует (имя файла формируется автоматически), то в пакетном режиме выдается ошибка "Ошибка открытия файла ... . Файл не найден" ... бред какой-то. Чего я не так делаю? Может кто посоветует как мне решить проблему периодического обновления файла-отчета? (Ax3.0 SP4) |
|
04.10.2006, 13:09 | #2 |
Участник
|
Может быть, это связано с местом выполнения отчета (на клиенте или сервере)?
|
|
04.10.2006, 16:07 | #3 |
Участник
|
При создании класса явно указывается client
А отчет, я думаю, создается там, где находится вызывающий объект, т.е. тоже на клиенте. или я не прав? |
|
09.11.2006, 09:36 | #4 |
Участник
|
можно удалить заранее файл с отчетом, а потом его выгрузить....
|
|