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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2011, 16:55   #1  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от jopagames2 Посмотреть сообщение
Цитата:
как проверить существует ли какой-либо конкретный файл в конкретной папке
F:File;

IF F.EXISTS('C:\Files\xxx.txt') THEN...
Объявлять переменную не надо. Функция EXISTS доступна сразу.

Цитата:
Сообщение от jopagames2 Посмотреть сообщение
Цитата:
как узнать существуют ли вообще файлы в конкретной папке?
Самый простой способ:

На диске C: делаем файл list.bat, внутри которого лежит команда
"dir /b c:\Files\*.* > c:\out.txt"

далее из Navision выполняем
SHELL('c:\list.bat');

Затем в Nav анализируем только что созданный файл c:\out.txt
Если размер получившегося файла =0, то в папке c:\Files\ нет файлов.
А если не 0, то читаем сам файл (он текстовый) и там каждая строка - есть имя файла из нашей папочки.

Способ простой, хотя и немного идиотский. Только что придумал и ПРОВЕРИЛ - РАБОТАЕТ!
Это для тех, кто не хочет морочиться с automation и виртуальной таблицей File.
Можно и так, но нужно учитывать, что SHELL начиная с 4-ой версии запрашивает подтверждение и под NASом работать не будет. Чтобы не запрашивала нужно 'c:\list.bat' объявить как текстовую константу, но тогда мы жестко привязаны к имени файла.
Старый 16.09.2011, 18:05   #2  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Alterant Посмотреть сообщение
Можно и так, но нужно учитывать, что SHELL начиная с 4-ой версии запрашивает подтверждение и под NASом работать не будет. Чтобы не запрашивала нужно 'c:\list.bat' объявить как текстовую константу, но тогда мы жестко привязаны к имени файла.
Эту константу выводим в настройки и пишем что хотим. За одном в настройках нужно сохранить этот замечательный файл, чтобы, при его отсутствии у конечного пользователя, он выгрузился в нужно нам место (не забудем путь вынести тоже в настройки). Или можно, конечно, не забыть его просто туда положить. <- Это для тех кто не захотел заморачиваться с внешними компонентами или табличкой файл.
Старый 19.09.2011, 10:24   #3  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от InTacto Посмотреть сообщение
Цитата:
Сообщение от Alterant Посмотреть сообщение
Можно и так, но нужно учитывать, что SHELL начиная с 4-ой версии запрашивает подтверждение и под NASом работать не будет. Чтобы не запрашивала нужно 'c:\list.bat' объявить как текстовую константу, но тогда мы жестко привязаны к имени файла.
Эту константу выводим в настройки и пишем что хотим. За одном в настройках нужно сохранить этот замечательный файл, чтобы, при его отсутствии у конечного пользователя, он выгрузился в нужно нам место (не забудем путь вынести тоже в настройки). Или можно, конечно, не забыть его просто туда положить. <- Это для тех кто не захотел заморачиваться с внешними компонентами или табличкой файл.
А как вы константы в настройки выводите? Поля и переменные раньше не прокатывали - все равно спрашивает подтверждение, или сейчас уже работают?
Справка говорит о том, что только константы работают без подтверждения:

Цитата:
The SHELL function has been designed so that each user can create a list of trusted executables. This list is maintained in the user’s .zup file. The way this function works depends on whether the executable is given as a text constant or as a variable.
If the name of the executable is passed to the SHELL function as a text constant then the executable is trusted and the user is not prompted to confirm that they trust the executable. This is also the case when the executable (text constant) is called with a number of other arguments that have been assigned manually.
If the name of the executable is passed to the SHELL function as a variable then the executable is not trusted and the user is prompted to confirm whether they trust the executable the first time it is called. After the user has confirmed that they trust the executable it can be called again at any time without having to confirm that it is trusted.
Старый 20.09.2011, 15:41   #4  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Alterant Посмотреть сообщение
А как вы константы в настройки выводите? Поля и переменные раньше не прокатывали - все равно спрашивает подтверждение, или сейчас уже работают?
Справка говорит о том, что только константы работают без подтверждения:
За это не знал. В 5 требует подтверждения, если не константы.
 


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

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

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