|
20.11.2008, 13:05 | #1 |
Участник
|
DAX EP 4 и ComExcelDocument_RU
Приветствую!
Есть проблема с ComExcelDocument_RU в портале. Что хочу получить: ввод данных в WebForm, нажатие на гиперссылку «Генерация документов», открытие шаблона, заполнение, вложение в документооборот. Пробовал код в методе WebForm, а также в классе, вызываемом через Web\WebMenuItems\Action. В результате Web перестает реагировать, на компьютере с WSS поднимается процесс Excel и висит, EventLog пуст. Может подскажете, что я делаю не так? X++: comExcel = new ComExcelDocument_RU(); comExcel.open("c:\\test\\template-test.xls", false); comExcel.closeDocument(false); //До этой команды не дошли |
|
20.11.2008, 13:22 | #2 |
Member
|
Цитата:
Сообщение от MKhaziev
...
Может подскажете, что я делаю не так? ... Вы очень ненадежное с моей т.з. решение пытаетесь строить. Возможно, у вас в Эксельке открывается диалог какой-нибудь. Например, отсутствие доступа к файлу или еще чего. А вы так этого никогда не увидите.
__________________
С уважением, glibs® |
|
20.11.2008, 17:56 | #3 |
MCTS
|
|
|
20.11.2008, 19:30 | #4 |
Member
|
Цитата:
Сообщение от alex55
...
А если так попробовать: ... Я попробовал такой код static client void main(Args _args) { SysExcelApplication sysExcelApplication; ; sysExcelApplication = SysExcelApplication::construct(); sysExcelApplication.visible(true); sysExcelApplication.workbooks().open("E:\\q1.xls"); } в 4.0. В трешке я уже давно в портале не ковырялся. В 4.0, конечно, ВС на .NET... Но где мне нужно искать открывшийся Эксель, если его дергает ВС, который запущен от имени сервиса IIS? Я вообще в системном программировании не разбираюсь, к моему большому сожалению. Может сориентируете? У меня процесс EXCEL.EXE запустился. Ресурсы процессора не жрет. Но и не визуализировался. Впрочем, я туго себе представляю как может процесс, запущенный под одним пользователем (да еще и сервисом), визуализироваться в консоли другого пользователя.
__________________
С уважением, glibs® |
|
20.11.2008, 20:46 | #5 |
MCTS
|
Цитата:
PHP код:
При работе через терминал, имя пользователя для процесса в Диспетчере задач тоже самое, но сам процесс фильтруется как "чужой", соответственно визуалиации не происходит. Глубже пока не копал. |
|
|
За это сообщение автора поблагодарили: glibs (1). |
20.11.2008, 13:27 | #6 |
Участник
|
Спасибо за ответ, Glibs!
Я тоже продумывал решение с пакетной обработкой, но это я отложил на крайний случай. Не очень красиво получится, если Клиент введет необходимые данные, пойдет за документами, а вместо этого увидет сообщение "Извините, ваш запрос еще не обработан, зайдите попожже". Если не получится формировать на лету, то да, пакетная обработка будет приемлимым вариантом. |
|
20.11.2008, 14:37 | #7 |
Member
|
А вы отправляйте документы по электронной почте.
А что у вас за документы такие, что вы их в Эксельке рисуете?
__________________
С уважением, glibs® |
|
21.11.2008, 09:00 | #8 |
Участник
|
Это ярлыки для этикирования поставки. Содержит штрих-код. Первоначально была задумка использовать класс EPSendDocument для формирования PDF из AX, но в классе PDFViewer есть 2 огромных недостатка, шрифт штрих-кода нормально не внедряется и невозможно внедрить картинку из-за проблемы в классе Image. После исследования PDFViewer оставил эту идею и теперь продумываю другие варианты.
К сожалению с ComExcelDocument_RU до сих пор ничего не получилось, так что походе перехожу к варианту с пакетной обработкой. Всем спасибо за участие. |
|
20.11.2008, 18:50 | #9 |
Moderator
|
Еще можно попробовать визуализировать зависший процесс как бы "сбоку" : Как проинициализировать COM уже запущенным приложением (Excel)?
|
|
21.11.2008, 09:26 | #10 |
Member
|
Сделайте обычный ax32.exe-шный отчет с баркодом. Организуйте так, чтобы при обработке в пакете он отправлялся по почте. Избавитесь от геморроя с Экселькой (можете поверить, будет предостаточно).
__________________
С уважением, glibs® |
|