Указание локального пути в операциях
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
German Профи
Вступление в Клуб: 25.06.2007
|
Сб Июн 23, 2007 11:31  Указание локального пути в операциях |
|
Полезность: 3
|
В дистрибутивных операциях при необходимости указать путь на локальной машине пользователя как правило предусматривается
обычное текстовое поле, в которое пользователь может вбивать путь руками или копировать.
Однако есть возможность, позволяющая пользователю указать путь более привычным способом, раскрыв дерево папок.
Для этого можно задействовать дистрибутивный тип "Экспорт-импорт файлов", который в стандартном варианте используется
для передачи файла с локальной машины на сервер (или наоборот).
Сделаем параметр этого типа, например P_FILE, и зададим свойства:
Код: | if p_message = 'DEFAULT' then
P_FILE.[src_type] := false; -- взять с клиента
P_FILE.[src_delete] := false; -- и не удалять
end if; |
Свойства P_FILE.[src_name] (сделаем невидимым), P_FILE.[src_path] (собственно путь) и P_FILE.[src_mask] (кнопка для открытия дерева папок)
выведем на экранную форму. Теперь пользователь сможет удобно выбирать локальный путь.
А чтобы после нажатия ОК и выполнения "Проверки" не происходило никчемной передачи указанного файла от источника к приемнику,
в "Проверке" сохраним нужный нам путь в переменную, например V_PATH, и обратим "Экспорт-импорт файлов" в null:
Код: | if p_message = 'VALIDATE' and P_INFO = 'OK' then
V_PATH := P_FILE.[src_path];
P_FILE := null;
end if; |
Ограничение такого решения - нельзя указать путь к пустой папке (внутри должен быть хотя бы один файл).
Я использовал этот прием также в операции печати в Excel, которая позволяет не только получать файл по стандартному шаблону, хранящемуся
на сетевом диске, но и дописывать файл, имеющийся на машине пользователя (если он его укажет на форме). _________________ Homo homini |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Окт 11, 2007 16:39   |
|
Полезность: 3
|
Чтобы выбирать кнопкой в структуре Экспорт-импорт файлов не только файлы, но и папки, достаточно проинициализировать P_FILE.[SRC_NAME] любым непустым значением, например '0', и наличие файла в выбираемой папке необязательно. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|