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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2006, 16:24   #1  
ksandr is offline
ksandr
Участник
 
23 / 10 (1) +
Регистрация: 27.01.2006
Народ доброго времени суток. Помогите в одной проблеме, всю голову сломал. Проблема простая, но почему то не хочет решаться. Есть такой код

Код:
IF NOT CREATE(xlApp,TRUE) 
 THEN
  ERROR(Text000);

FileName := CommonDialogMgt.OpenFile(Text001,FileName,2,'',0);
IF NOT EXISTS(FileName) 
 THEN
  ERROR(Text002);

xlApp.Application.Workbooks.Open(FileName);
xlWorkBook := xlApp.Application.ActiveWorkbook;

xlWorkSheet := xlWorkBook.Worksheets.Item('----');
XlRange := xlWorkSheet.Cells().Item(2,1);
.....


  xlWorkBook.Close(TRUE);
  xlApp.Application.Quit;
   
   
   CLEAR(xlWorkSheet);
   CLEAR(xlWorkBook);
   CLEAR(xlApp);
Так вот если код по выгрузке Excel поставить до xlRange то сессия закрывается нормально, но если в коде стоит строчка с xlRange, то сессия Excel остаётся висеть в диспетчере задач. В чём засада понять не могу
Старый 02.11.2006, 12:22   #2  
ksandr is offline
ksandr
Участник
 
23 / 10 (1) +
Регистрация: 27.01.2006
2 helga
Всё равно сеанс оостаётся
В чём засада пока не нашёл. Народ неужели никто не работал с Automation объектом Range ?
Старый 02.11.2006, 12:29   #3  
LNatalie is offline
LNatalie
Участник
 
20 / 10 (1) +
Регистрация: 14.09.2006
А добавить CLEAR(xlRange) не пробовали?
Старый 02.11.2006, 13:25   #4  
ksandr is offline
ksandr
Участник
 
23 / 10 (1) +
Регистрация: 27.01.2006
Пробовал, увы clear(xlrange) очищает лишь переменную Nav, сессия Excel остаётся
Старый 02.11.2006, 15:25   #5  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
А изменения то сами вносятся ли нет?
Старый 02.11.2006, 15:32   #6  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Сделайте так:

XlApp.Visible(TRUE);
XlApp.UserControl(TRUE);
CLEAR(XlApp);

и посмотрите, что осталось висеть в Екселе.
Возможно использование Range связано с настройками использования ClipBoard.
Старый 02.11.2006, 16:04   #7  
ksandr is offline
ksandr
Участник
 
23 / 10 (1) +
Регистрация: 27.01.2006
2 Fordewind
Нет данные только считываются

2 Dzemon
Пробовал остётся висеть Excel

Народ уже устал биться с этой проблемой, подскажите хотя бы синтаксис кода обращение к значению конкретной ячейки, причём в синтаксисе ряд и столбец желательны в виде переменных, в которые можно подставлять числовые значения. Спасиб.
Старый 02.11.2006, 16:40   #8  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от ksandr Посмотреть сообщение
2 Fordewind
Нет данные только считываются

Народ уже устал биться с этой проблемой, подскажите хотя бы синтаксис кода обращение к значению конкретной ячейки, причём в синтаксисе ряд и столбец желательны в виде переменных, в которые можно подставлять числовые значения. Спасиб.
тогда почему xlWorkBook.Close(TRUE) , а не xlWorkBook.Close(FALSE) ? Зачем сохранять, если только считываем?

А синтаксис посмотрите в 370-й таблице. Функция ReadSheet. Кстати, ей можно пользоваться
Старый 02.11.2006, 18:46   #9  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
подскажите хотя бы синтаксис кода обращение к значению конкретной ячейки
CellValue := xlWorkSheet.Range('A1').Value;

'A1' можете складывать программно из переменных.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.