AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.08.2008, 12:32   #1  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
? диалоговое окно при закрытии файла Excel
Уважаемы посетители форума. Подскажите, пожалуйста, как бороться со следующей проблемой.
Работаю с докуметом Excel из AXAPTA. Открываю его, беру небходимые данные, а потом закрываю.

X++:
SysExcelApplication sysExcelApplication;
Filename                  fileName;
;

sysExcelApplication = SysExcelApplication::construct();
sysExcelApplication.workbooks().open(fileName, 0, false);
...
sysExcelApplication.quit();
И здесь AXAPTA спрашивает сохранять ли изменения в файле, что совсем некстати. Как сделать так, чтоб не спрашивала?

P.S.
AX 3.0.
Старый 26.08.2008, 12:48   #2  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
А если открыть файл просто на чтение? может параметр какой есть в Open ?

попробывать метод Visible(false) ?

sysExcelApplication.workbooks().close() ?

Последний раз редактировалось Poleax; 26.08.2008 в 12:54.
Старый 26.08.2008, 12:49   #3  
crazysolntse is offline
crazysolntse
Участник
Аватар для crazysolntse
 
21 / 11 (1) +
Регистрация: 24.07.2006
Адрес: Москва
можно попробовать программно перед этим сохранить.
Старый 26.08.2008, 12:57   #4  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Попробуйте sysExcelApplication.displayAlerts(false). Если не поможет смотрите метод closeDocument в ComExcelDocument_RU. Там есть параметр save. Или переходите на использование ComExcelDocument_RU или реализуйте подобное в sysExcelApplication.

Последний раз редактировалось _scorp_; 26.08.2008 в 13:01.
Старый 26.08.2008, 12:59   #5  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
из Excell в Акспату через COM есть пример кода.. может что то там интересно для себя найдешь.
Старый 26.08.2008, 12:59   #6  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от Poleax Посмотреть сообщение
А если открыть файл просто на чтение? может параметр какой есть в Open ?

попробывать метод Visible(false) ?

sysExcelApplication.workbooks().close() ?
Только на чтение открывать пробовала. Собственно, третий параметр метода open() в приведенном коде за это и отвечает. В этом случае запускает SaveAs и все равно получаю диалоговое окно.

Метод visible(false) тоже пробовала не помогает.
Старый 26.08.2008, 13:02   #7  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
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)
{
}
}


}
взято из http://joyofax.blogspot.com/

Посмотрите совет _scorp_
sysExcelApplicatioN.displayAlerts(FALSE);
sysExcelApplication.visible(FALSE);
Старый 26.08.2008, 13:06   #8  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от _scorp_ Посмотреть сообщение
Попробуйте sysExcelApplication.displayAlerts(false). Если не поможет смотрите метод closeDocument в ComExcelDocument_RU. Там есть параметр save. Или переходите на использование ComExcelDocument_RU или реализуйте подобное в sysExcelApplication.
Ага. Помогло. Огромное спасибо
Также спасибо всем ответившим за советы и полезные ссылки Обязательно пригодится!
Старый 26.08.2008, 13:27   #9  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Думаю, в первоначальную версию достаточно было добавить перед quit такой оператор:
X++:
sysExcelWorkbook.comObject().Saved(true);
Или, если объект sysExcelWorkbook в коде отдельно не выделен, то через длинные танцы от sysExcelApplication:
X++:
sysExcelApplication.workbooks().item(1).comObject().Saved(true);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Диалоговое окно с запросом Poleax DAX: Программирование 3 21.05.2008 10:40
как считать значение из Excel - файла Miktel DAX: Программирование 5 01.10.2004 10:24
Диалоговое окно lexa DAX: Программирование 2 25.03.2004 09:25
Диалоговое окно с Lookup полями Julietta DAX: Программирование 1 15.12.2003 13:00
диалоговое окно в init (e) Report (a) Natasha DAX: Программирование 8 05.03.2003 16:42
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:18.