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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.02.2005, 12:54   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
WINAPI
Добрый день.
Столкнулся с такой ситуацией.
Обычный диалог, в котором выбриается папка. При попытке закрыть его после выбора папки нажатием ОК, вызывается метод validate, в котором я хотел бы проверить, есть такая папка или нет.
Пробовал использовать метод
PHP код:
winapi::folderExists(_folderName
, но он работает только в двухуровневой конфигурации.
Если же работаю через AOS, говорит, что папки нет. Проблема в том, что такой папки нет на сервере. (если ввести банальное С:\, к примеру), все ОК, так как на сервере она есть.

Посмотрел методы в классе winapi - для проверки сущестовавания файлов есть методы fileExists2, fileExistsClient, fileExistsServer - предположительно (не проверял), последний проверяет существование файла на сервере.

Есть ли что-то подобное для папок?

Спасибо
Старый 03.02.2005, 13:06   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Видимо код используется в классе, котрый отрабатывает на сервере. Нужно просто использовать его на клиенте (например сделать статический клиентский метод в классе и вызывать его):

PHP код:
static client boolean folderExists(str _folderName)
{
   return 
winapi::folderExists(_folderName);

а можно и наоборот (проверить папку на сервере)
PHP код:
static server boolean folderExists(str _folderName)
{
   return 
winapi::folderExists(_folderName);

Старый 03.02.2005, 13:17   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
да, действительно, я что-то про явное определение того, где функция будет вызываться не подумал.
Спасибо, raz, проверка существования на клиенте помогла.

А просто уже в той же теме тогда вопрос.
А как же выбрать папку на сервере?
Есть ли для нее стандартный EDT, к примеру, и соответствующая форма?
Старый 03.02.2005, 13:45   #4  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Если надо нарисовать интерфейс для выбора файла, то
1) на форму вставляем StringEdit Control
2) Свойство ExtendedDataType этого контрола = FilenameOpen
3) Перекрываем метод lookup() у этого контрола
PHP код:
public void lookup()
{
   
str s;
   
container conFilter = ["Файлы Excel (*.xls)""*.xls"];
    ;
   
Winapi::getOpenFileName(
                     
element.hWnd(),
                      
conFilter,
                     
""//initialPath,
                     
"Укажите файл, который нужно открыть",
                     
"",
                     
""
                     
);
    
StringEdit.text(s);

Добавка:
Но наверное я неправильно понял вопрос.
Старый 03.02.2005, 14:16   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
2 Ase of Database:
Пункт три уже в том что вы написали даже и не нужен, так как на EDT FileNameOpen в параметре FormHelp стоит SysOpenFileName.

! Но мне нужно открыть файл или папку именно на сервере. А то, что вы написали, будет на клиенте.
Старый 03.02.2005, 14:25   #6  
ALES is offline
ALES
Участник
Злыдни
 
220 / 45 (2) +++
Регистрация: 11.08.2004
защиту ломаете ?
kashperuk почему бы вам не выбрать именно папку на сервере указав сетевой путь к ней ?!?
Старый 03.02.2005, 14:30   #7  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
А Вам надо иметь визуальный интерфейс для выбора файла илт папок на сервере? Т.е. чтобы клиент видел стандартный диалог Windows для открытия файла и при этом там отображалась файловая система сервера?

Если визуальный интерфейс не нужен, известен точный путь к файлу на сервере, который нужно открыть, то можно обойтись и без WinAPI
1) binData.loadFile();
2) textBuffer.fromFile();
3) IO io = new io(fileName);
и т.д.

Нужно только чтобы все это выполнялось на сервере.
Старый 03.02.2005, 15:22   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Снимаю вообще этот вопрос.
В стандартном диалоге выбора папки или файла тоже можно выбрать что-то на сервере через NetWork Places - я просто как-то вниз не глянул.
Виноват.
Старый 03.02.2005, 16:27   #9  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
А я думал, что Вам надо не расшаренные папки на сервере смотреть - с полными путями, типа "C:\Program Files\.."
Не знал, что все оказалось так прозаично.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta WinAPI::SewWindow... кто знает как? UNRW DAX: Программирование 2 26.09.2008 15:28
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 0 28.10.2006 16:40
WinAPI. Ссылка (POINT) третьего уровня вложенности Владимир Максимов DAX: Программирование 2 06.02.2006 16:28
WinAPI::getLastError() DreamCreator DAX: Программирование 4 20.06.2005 10:03
WinApi. Удаление файлов глючит. NJD DAX: Программирование 10 05.12.2003 13:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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