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

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
B41201sp21, По поводу xRun
 
Есть задача: Как-нибудь "привязать" сканированные сертификаты к бесту. Сертификаты имеют такие же названия, как spr_part->code. Самое просто решение - Ctrl+F5 -> xRun. Нужный вьювер открывает нужный файл если он есть в нужной папке;) Всё это происходит из Товары-Картатека-картатека(или спр.партий, не важно). Трабл такой
Цитата
XRUN(cCommand) – синхронный запуск вешней команды, БЭСТ при этом ждет окончания команды
. Как сказать бесту, что не стоит ждать окончания команды??? Собственно, сертификаты надо "видеть" из накладных (а не из катратеки), Но в накладной же обычно несколько позиций. А вьювер показывает только первую:(
 
А если просто печатную форму нарисовать? в которой и подтягивать картинки.
в свойствах картинки в форме:
Код
begin
cPath:='...';
cFoto:=[TRIM([DialogForm.STROKI."Сорт"])]; // здесь имя файла формируем
picture28.loadfromfile(cPath+cFoto);
end
С уважением,
Ильин Евгений
 
ммм... FR... Замечательно=) Но! Есть несколько проблем:

1)Сертификаты двухсторонние, сканются "мегапрогой" Microsoft Document Scaning (MDS), сканером с автоподачей и автопереворотом листа. Сохраняются одним tiff файлом, неважно при этом сколько страниц отсканено. Они (отсканеные за раз страници, лежавшие в лотке сканера, на момент нажатия на кнопочку "Scan") все складываются в один файл и открываются "мегапрогой №2" MDI (Imaging), или сторонними вьюверами, позволяющими видеть несколько страниц в одном тифе. По мимо того что FR просто не умеет читать (смотреть, подгружать) tif -картинки, тем более не умеет многостраничные tif -ы=(
2)Иногда всё-таки бывают моменты, когда сертификаты сканются вручную. выходит так, что половина сертификата отсканена "портретом", а другая "андшафтом" (полно таких) чё тогда делать?

Хочется использовать готовую базу сертификатов, а не разбивать их на жпегные кусочки специально для бэста=)
Всё-таки Бэст должен подстраиваться под юзеров, а не наоборот :oops:
 
Цитата
NotWar пишет:
Как сказать бесту, что не стоит ждать окончания команды???


Попробуйте RunShell()
 
Цитата
NotWar пишет:
Но в накладной же обычно несколько позиций. А вьювер показывает только первую


Какой вьювер?

Цитата
NotWar пишет:
Сертификаты двухсторонние, сканются "мегапрогой" Microsoft Document Scaning (MDS), сканером с автоподачей и автопереворотом листа. Сохраняются одним tiff файлом


А в каких-то других форматах умеет сохранять?
 
RunShell в цикле создаст окна по количеству позиций, а может и все в одном откроет.
В любом случае - это неудобно.
Речь идет о Б4+ ?
Я думаю, есть смысл еще раз взглянуть на задачу.
Для чего сертификаты нужны на экране монитора? в какой момент? в каком объеме?
Как организовано сканирование. Используется ли система документооборота?
Используется лицензионное ПО?
Возможно ли конвертирование в приемлемый вид для использования FR?
Используются ли WEB технологии?
Из области фантастики - на сохранение плагин - который грузит перечень накладной в мускл, который в свою очередь подхватывает тифы и по ссылке генерируется html (тут runshell) страница с сертификатами как приложение к накладной.
А до кучи - отправку по мылу :)
Шутка, но в каждой шутке доля разума :|

Вопрос, для чего задача?
С уважением,
Ильин Евгений
 
в принципе, я придумал КАК это можно сделать... без RunShell()... заработает - отпишусь;)
 
Цитата
в принципе, я придумал КАК это можно сделать... без RunShell()... заработает - отпишусь


собственно:
Цитата
Function Main()
Private name,a,all,o_O,b,c,cDopCode,X

x:='1'
o_O:=aPars[1]
a:='"C:\Program Files\Common Files\Microsoft Shared\MODI\11.0\MSPVIEW.EXE" '
cDopcode:=(mdocm->vid+mdocm->type+mdocm->sclad+mdocm->codedoc+mdocm->numdoc)
mdocm->(dbcreateindex("C:\temp\mdocm2","upper(vid+type+sclad+codedoc+numdoc+partia)"))
mdocm->(ordsetfocus('mdocm2'))
mdocm->(dbgotop())
mdocm->(dbseek(upper(cDopcode)))
if mdocm->(found())=.t.
do while (mdocm->vid+mdocm->type+mdocm->sclad+mdocm->codedoc+mdocm->numdoc)=cDopcode
_copy()
if X<>C
if file(o_O+C+".tif")=.F.
sayandwait("Сертификата "+C+".tif не существует :-(")
else
if (YesOrNo({"Распечатать серт. "+C+".tif на принтер по умолчанию?"})=.T.)
all:=a+o_O+C
// sayandwait(all+".tif /p")
xRun("cmd"+" /c "+all+".tif /p")
endif
endif
X:=Substr(Alltrim(mdocm->partia),1,4)
endif
mdocm->(dbskip(1))

enddo
endif
mdocm->(dbpop())

a:=' '
all:=' '
o_O:=' '
b:=' '
c:=' '
cDopCode:=' '
X:=' '

return NIL

//-----------------------------------------

Function _copy()

B:=Alltrim(mdocm->partia)
C:=Substr(B,1,4)

return
Правда, иногда всё равно почему-то глючит=( Типа Не может найти... Хз, можно разбираться, а можно забить "до лучших времён" ;)
 
У меня такое замечание
Допустим Вам не понравился индекс mdocm_z
Но тогда почему бы Вам не построить индекс
Код
upper(vid+­type+sclad+codedoc+numdoc+dopcode+partia)

и наложить обычный скоб ? вместо длинного сравнения в WHILE
Ведь фильтр на индекс куда надежнее всяких сравнений и быстрее главное
А во вторых если Вы все равно делаете DBSEEK() то перед этим операция
DBGOTOP() бессмысленная. Пустая операция. Это на заметку.
 
Цитата
Допустим Вам не понравился индекс mdocm_z

такого не нашёл...
Спасибо за замечания=) Опыта ещё не очень хватает :oops:
Страницы: 1
Читают тему (гостей: 1)