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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2010, 15:34   #1  
WhiteSwan is offline
WhiteSwan
Участник
 
26 / 10 (1) +
Регистрация: 29.01.2009
Мне кажется, Nav интерпретирует полученное из Excel значение как число, а не как строку, хотя ItemNo - это Code 40.
В дебаггере можно видеть, что значение ItemNo = 5 409 (отображается с пробелом после цифры 5, как будто это тысячи).

Удаление пробелов с помощью DELCHR не помогло.
Старый 26.04.2010, 16:07   #2  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Цитата:
Сообщение от WhiteSwan Посмотреть сообщение
хотя ItemNo - это Code 40.
Так и есть, ExcelBuffer."Cell Value as Text" уже содержит кривое значеник.
Мой код из предыдущего поста не поможет(Попробуй поменять тип ItemNo на Integer).

Меняй формат ячеек в Excel на текстовый!
Старый 26.04.2010, 16:42   #3  
WhiteSwan is offline
WhiteSwan
Участник
 
26 / 10 (1) +
Регистрация: 29.01.2009
Цитата:
Сообщение от Storkich Посмотреть сообщение
Меняй формат ячеек в Excel на текстовый!
Не помогает и это. Вот уж не думала, что проблема на пустом месте вылезет. Получается, что часть товара, где общий товарный номер - строка из цифр, не будет обработана...
Старый 26.04.2010, 16:48   #4  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Цитата:
Сообщение от WhiteSwan Посмотреть сообщение
Цитата:
Сообщение от Storkich Посмотреть сообщение
Меняй формат ячеек в Excel на текстовый!
Не помогает и это. Вот уж не думала, что проблема на пустом месте вылезет. Получается, что часть товара, где общий товарный номер - строка из цифр, не будет обработана...
Тут хитрость маленькая может помочь: Копировать столбец с кодами в текстовый файлик, затем в экселе ячейки делаем текстом, затем вставляем из текстового файлика.
Можно еще попробовать FORMAT(Value,0,2); в куске кода предложенном выше.
Старый 26.04.2010, 16:52   #5  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Цитата:
Сообщение от WhiteSwan Посмотреть сообщение
Цитата:
Сообщение от Storkich Посмотреть сообщение
Меняй формат ячеек в Excel на текстовый!
Не помогает и это. Вот уж не думала, что проблема на пустом месте вылезет. Получается, что часть товара, где общий товарный номер - строка из цифр, не будет обработана...
Можно попробовать в таблице Excel Buffer (если Вы пользуетесь ей) в функции ReadSheet заменить строчку
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ');
на
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value, 0, 1),'<',' ');
Старый 26.04.2010, 17:24   #6  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Цитата:
Сообщение от Milk Посмотреть сообщение
Можно попробовать в таблице Excel Buffer (если Вы пользуетесь ей) в функции ReadSheet заменить строчку
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ');
на
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value, 0, 1),'<',' ');
Должно помочь!
И так, чтоб легче жилось, в панели управления, в регионалных настройках, в настройке форматов чисел, удали разделитель разрядов и вставь там пробел.
Старый 27.04.2010, 10:13   #7  
WhiteSwan is offline
WhiteSwan
Участник
 
26 / 10 (1) +
Регистрация: 29.01.2009
Цитата:
Сообщение от Milk Посмотреть сообщение
Можно попробовать в таблице Excel Buffer (если Вы пользуетесь ей) в функции ReadSheet заменить строчку
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ');
на
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value, 0, 1),'<',' ');
Да, это как раз то, что нужно! Теперь все работает. Спасибо большое за помощь!

Региональные настройки я бы не стала трогать, т.к. в моем случае функция должны быть универсальной и не зависеть от конкретного ПК.

Всем спасибо за советы.
Старый 26.04.2010, 16:15   #8  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Цитата:
Сообщение от WhiteSwan Посмотреть сообщение
Удаление пробелов с помощью DELCHR не помогло.
Это не пробелы наверное, а другой символ. Возможно он уже в экселе есть, тогда автозаменой его и все будет ок.
Старый 26.04.2010, 16:30   #9  
WhiteSwan is offline
WhiteSwan
Участник
 
26 / 10 (1) +
Регистрация: 29.01.2009
Цитата:
Сообщение от prefreitor Посмотреть сообщение
Цитата:
Сообщение от WhiteSwan Посмотреть сообщение
Удаление пробелов с помощью DELCHR не помогло.
Это не пробелы наверное, а другой символ. Возможно он уже в экселе есть, тогда автозаменой его и все будет ок.
В том то и дело, что в Excel все чисто - четыре последовательных символа '5409'. Это Nav придумывает что-то своё.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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