26.08.2008, 12:32 | #1 |
Участник
|
диалоговое окно при закрытии файла Excel
Уважаемы посетители форума. Подскажите, пожалуйста, как бороться со следующей проблемой.
Работаю с докуметом Excel из AXAPTA. Открываю его, беру небходимые данные, а потом закрываю. X++: SysExcelApplication sysExcelApplication;
Filename fileName;
;
sysExcelApplication = SysExcelApplication::construct();
sysExcelApplication.workbooks().open(fileName, 0, false);
...
sysExcelApplication.quit(); P.S. AX 3.0. |
|
26.08.2008, 12:48 | #2 |
Модератор
|
А если открыть файл просто на чтение? может параметр какой есть в Open ?
попробывать метод Visible(false) ? sysExcelApplication.workbooks().close() ? Последний раз редактировалось Poleax; 26.08.2008 в 12:54. |
|
26.08.2008, 12:49 | #3 |
Участник
|
можно попробовать программно перед этим сохранить.
|
|
26.08.2008, 12:57 | #4 |
Участник
|
Попробуйте sysExcelApplication.displayAlerts(false). Если не поможет смотрите метод closeDocument в ComExcelDocument_RU. Там есть параметр save. Или переходите на использование ComExcelDocument_RU или реализуйте подобное в sysExcelApplication.
Последний раз редактировалось _scorp_; 26.08.2008 в 13:01. |
|
26.08.2008, 12:59 | #5 |
Модератор
|
из Excell в Акспату через COM есть пример кода.. может что то там интересно для себя найдешь.
|
|
26.08.2008, 12:59 | #6 |
Участник
|
Цитата:
Метод visible(false) тоже пробовала не помогает. |
|
26.08.2008, 13:02 | #7 |
Модератор
|
Цитата:
Excel Export
static void exportVendorToExcelTEST1(Args _args) { SysExcelApplication SysExcelApplication; SysExcelWorksheet SysExcelWorksheet; SysExcelWorksheets SysExcelWorksheets; SysExcelWorkbooks SysExcelWorkbooks; SysExcelWorkbook SysExcelWorkbook; SysExcelRange SysExcelRange; SysExcelCell SysExcelCell; SysExcelCells SysExcelCells; COMVariant COMVariant1; Kriterler kriterler; VendTable vtab; Dialog dialog = new Dialog(); DialogField dflItem = dialog.addField(typeid(VendAccount)); #excel ; while select vtab where vtab.AccountNum like "S0000*" { try { sysExcelApplication = SysExcelApplication::construct(); sysExcelApplicatioN.displayAlerts(FALSE); sysExcelApplication.visible(FALSE); sysExcelWorkbooks = sysExcelApplication.workbooks(); // for filename sysExcelApplication.workbooks().open("C:\\"+vtab.AccountNum+".XLS"); sysExcelWorkbook = sysExcelApplication.workbooks().item(1); SysExcelWorksheets = sysExcelWorkbook.worksheets(); SysExcelWorksheet = SysExcelWorksheets.itemFromNum(1); SysExcelRange = SysExcelWorksheet.cells().range(#ExcelTotalRange); SysExcelCell = SysExcelWorksheet.cells().item(1,1); SysExcelCell.value(systemdateget()); SysExcelCell = SysExcelWorksheet.cells().item(2,2); SysExcelCell.value(vtab.AccountNum); sysExcelApplication.save(); sysExcelApplication.quit(); } catch (exception::Error) { } } } Посмотрите совет _scorp_ sysExcelApplicatioN.displayAlerts(FALSE); sysExcelApplication.visible(FALSE); |
|
26.08.2008, 13:06 | #8 |
Участник
|
Цитата:
Также спасибо всем ответившим за советы и полезные ссылки Обязательно пригодится! |
|
26.08.2008, 13:27 | #9 |
Moderator
|
Думаю, в первоначальную версию достаточно было добавить перед quit такой оператор:
X++: sysExcelWorkbook.comObject().Saved(true); X++: sysExcelApplication.workbooks().item(1).comObject().Saved(true); |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Диалоговое окно с запросом | 3 | |||
как считать значение из Excel - файла | 5 | |||
Диалоговое окно | 2 | |||
Диалоговое окно с Lookup полями | 1 | |||
диалоговое окно в init (e) Report (a) | 8 |
|