BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Диалог выбора файла
 
Подскажите как в Б4+ из плагина вызвать стандартный виндовый диалог выбора файла
(как например при выборе пункта "О программе" из основного меню)
 
Это пример
Код
cFile:=InputFile(cFile,IF(nRegim==1,".dbf",".txt")


А это описание функции

Код
FUNCTION InputFile(cFile,cExt,lExport,lTemplate,cSpecKey)
 
Спасибо, я это знаю. Но мне нужен вызов стандартного win-диалога открытия файла с возможностью
обращения к сетевым ресурсам и т.д. Как я уже писал, в Б4+ если из основного меню
выбрать пункт "О программе", то появляется такое диалоговое окно.
Это надо для поиска и выбора файлов excel для их дальнейшей обработки в Б4,
а файлы лежат у юзеров локально.
 
Диалоговое окно для выбора файла
 
Денис, это для Б5, а мне надо для Б4+
 
Вы проверяли в БЭСТ4+? Не работает? Какую ошибку выдает?
 
Unknown or unregistered function : POPFILE
 
Извиняюсь. Я не проверял. Почему-то думал, что эта функция и в Б4+ работает ...
 
Цитата
AndrV пишет:
Подскажите как в Б4+ из плагина вызвать стандартный виндовый диалог выбора файла
(как например при выборе пункта "О программе" из основного меню)

Вот пример:
PROCEDURE Info_Best()
LOCAL cFileMask,cDir,cName,cExt
LOCAL cExePath
LOCAL cPath:=hb_oemToAnsi("По_версиям.chm")
LOCAL aFilter:= {;
{hb_oemtoansi("Все файлы"),"*.*"},;
{"DOC (*.doc)","*.doc"},;
{"RTF (*.rtf)","*.rtf"};
WHILE .T.
cFileMask := GetOpenFileName(,@cPath, hb_oemToAnsi("Информация о программе"),aFilter, 1+4+8+256+4096+65536+1048576,"NEWS")
IF !EMPTY(cFileMask)
hb_FNameSplit( cFileMask, @cDir, @cName, @cExt )
RunShell(cName+cExt,,,cDir)
ELSE
EXIT
ENDIF
ENDDO
RETURN
 
Та же ошибка
Unknown or unregistered function : GETOPENFILENAME
 
Цитата
AndrV пишет:
Та же ошибка

Unknown or unregistered function : GETOPENFILENAME

Должно быть. Эта функция тянется из харборовской библотеки what23.lib, которая входит в состав любого модуля. Правда, если он не упоминается в основном тексте, возможно что на него нет ссылки... Откуда плагин вызывается, можете дать пример?
 
Плагин вызывается в модуле товары, готовая продукция.
 
Цитата
AndrV пишет:
Плагин вызывается в модуле товары, готовая продукция.

Попробуйте вот с этим exe
ftp://ftp.bestnet.ru/download/TEMP/B4/sclad.exe
 
Александр, большое спасибо за помощь!
Все работает
 
Странное поведение getopenfilename... Практически в половине случаев функция возвращает
путь с именем файла где первые 8 символов заменены на какой-то мусор.
Причем никакой закономерности не наблюдается, сбой происходит совершенно отфонарно.
Игры с разнами наборами флагов и пр. ничего недают.
Код функции
Код
function openOOCalc(lblank, lzak)
local cfile, ctitle:=hb_oemtoansi(iif(lzak,'Файл заказа поставщику из БЭСТа','Файл прайс-листа поставщика'))
local afilter:= {{hb_oemtoansi('Файлы Excel'),'*.xls'}, {hb_oemtoansi('Файлы OOCalc'),'*.ods'}, {hb_oemtoansi('Все файлы'),'*.*'}}
local cpath:=space(200)
local oapp, odesk, odoc
if lblank
    cfile:='private:factory/scalc'
else
    if lzak
        mysay('...поиск файла заказа из БЭСТа...',5,'r+/n*')
    else
        mysay('...поиск прайс-листа поставщика...',7,'r+/n*')
    endif
    cfile:=getopenfilename(0, @cpath, ctitle, afilter, 1+4+8+2048+4096+65536+524288, '') 
    if empty(cfile)
        mysay('',iif(lzak,5,7))
        return nil
    endif
    if !file(cfile)
        sayandwait({'Сбой программы!','(файл: "'+hb_ansitooem(cfile)+'")'})
        mysay('',iif(lzak,5,7))
        return nil
    endif
    cpath:=hb_ansitooem(cfile)
    if lzak
        mysay('файла заказа из БЭСТа: '+cpath,5)
    else
        mysay('прайс-лист поставщика: '+cpath,7)
    endif
    cfile:=strtran(cfile,'\','/')
    cfile:=strtran(cfile,' ','%20')
    cfile:='file://localhost/'+cfile
endif
oapp:=CreateObject('com.sun.star.ServiceManager')
odesk:=oapp:createInstance('com.sun.star.frame.Desktop')
odoc:=odesk:LoadComponentFromURL(cfile, '_blank', 0, {})
return odoc

Пришлось вставить проверку (if !file(cfile)).
Может уважаемый Александр Титов что-то Подскажет?
 
а без hb_ansitooem cFile как выглядит ?
 
Тоже с кракозябрами. В данном примере путь выглядит P:\Temp\!oc_zak.xls
Страницы: 1
Читают тему (гостей: 1)