Страница 1 из 1
Как импортировать то - не знаю что ..... ;-)
Добавлено: 18 июн 2008, 10:51
Александр
Вопрос такой
Как используя
только средства Лоции импортировать один/все файлы (не зная их названий) из определённого каталога в электронный архив
Ситуация простая
1. делаю отчёт (Lotsia)
2. после него скриптом формирую файл (WHS Windows Script Host)
3. формирую его название (WHS)
4. укладываю в каталог (каталог всегда один локальный у клиента)(WHS)
теперь то что получилось - нужно в архив
И получается
1. Лоция на этом этапе не знает точного имени файла но может положить в архив
2. Скрипт знает точное имя файла но не может положить в архив
до текущего момента мы формировали идентичные названия в действии и в скрипте - и проблем не было
но в связи с резким увеличением количества и типов документов - в действии формировать название (даже имея все исходные данные) - не получается - неохота просто чего там говорить то

(в действиях же нет до сих пор WHS чьерт побери...)
подкиньте идею а?...
какую нибудь хитрую ...
ps
каталог всегда 'чистый' и в нем всегда лежит 'то что нужно' из имени знаю только расширение файла и пару фрагментов названия
Добавлено: 18 июн 2008, 12:02
Disillusioned
Отчеты выполняются асинхронно относительно выполнения действия над объектами. Т.е. неизвестно когда закончится формирование файла.
И неизвестно что и неизвестно когда...
Единственный известный мне способ решить данную задачу - запустить из отчетного скрипта приложеньице содержащее функцию импорта PartyAPI, где в параметрах командной строки передаются код объекта и имя файла.
Импортировать все подряд из папки возможно, если это папка общедоступного сетевого ресурса. Что-то наподобие в Sybase я делал следующим образом:
1. Кидал файлы в общедоcтупную папку (в имени файла зашивал код объекта и прочее, что нужно для импорта).
2. Периодически запускал процедуру которая при помощи:
Код: Выделить всё
call xp_cmdshell( 'dir \\\\shara\\*.doc > \\\\shara\\kc.dir /B' )
формировала файл содержащий имена файлов.
3. Содержимое файла возвращал при помощи xp_read_file (если в именах есть кириллица, надо конвертить текст с 866 на 1251 кодовую страницу).
4. В цикле действия осуществлял импорт.
Но это все не очень удобная вещь для импорта документов, зато потом здорово пригодилось для загрузки данных из текстовых файлов.
Добавлено: 18 июн 2008, 12:14
Александр
Отчеты выполняются асинхронно относительно выполнения действия над объектами. Т.е. неизвестно когда закончится формирование файла.
известно
1. в действии на шаге N запускаем отчет
2. отчет запускает скрипт заканчивающийся строчкой
Код: Выделить всё
MsgBox "Формирование документа завершено" , 0, "Заказ"
3. в этот момент действие 'висит' скрипт закончен - нажимаем в скрипте Ок и действие
продолжается со следующей строки/шага
т.е. на этот момент готовый файл уже лежит где нужно и в том же действии на следующем шаге его можно импортировать... если бы знать полное имя
ps
папка с файлом локальная и доступная юзеру (файлы формируются на местах по сетевым шаблонам)
Добавлено: 18 июн 2008, 12:21
Александр
не совсем понял на счет
Содержимое файла возвращал при помощи xp_read_file
- файл я именами я бы сформировал уже в скрипте отчета - а передать его в виде строки в переменную Лоции??
можно чуть чуть поподробнее об этом?
Добавлено: 18 июн 2008, 12:23
Disillusioned
MsgBox "Формирование документа завершено" , 0, "Заказ"
А без мессейджбокса никак нельзя?
Мне нужно импортировать множество автоматически сформированных отчетов, всякий раз подтверждать завершение будет неудобно, экспорт в Ворд медленно работает...
Добавлено: 18 июн 2008, 12:27
Disillusioned
файл я именами я бы сформировал уже в скрипте отчета - а передать его в виде строки в переменную Лоции??
В том, то и загвоздка, что из скрипта в Лоцию ничего не передашь без API.
Добавлено: 18 июн 2008, 12:37
Александр
не - можно
SQL'ем точно можно прочесть внешний файл.....
нужно посмотреть - но мысль файл с перечнем файлов - интересная
а MsgBox нам нужен был именно в ситуации с экспортом
Одного файла - и совет СК нам очень тогда помог
Добавлено: 18 июн 2008, 12:41
Disillusioned
SQL'ем точно можно прочесть файл каким то Selectom - по моему
Про то и пишу (Sybase)
Для бинарного файла:
select xp_read_file(@file_name)
Для текстового файла:
select cast(xp_read_file(@file_name)as text)
Добавлено: 18 июн 2008, 12:45
Александр
понял
Спасибо-щас чего нибудь нарисуем
типа
Код: Выделить всё
действие
отчет
скрипт
файлы
файл с перечнем файлов
MsgBox
sql файл - в переменную действия
импорт
Добавлено: 19 июн 2008, 10:38
Александр
> Disillusioned
Слушай придумал
Список фалов для импорта можно хранить в своем ini файле создаваемом в конце скрипта отчета.
допустим в какую нибудь секцию бросить количество файлов а в другую пути
Код: Выделить всё
[Count]
Count=1
[Path]
Path='c:\Program Files\LotsiaSoft\PartY\Template\Temp\'
[File]
File01='CH_XXXX-35 Васенева Елена Заказ № 001-00 НОУ РПК-Наука и Образование.xls'
и работать стандартными функциями Party ProfileInt/ProfileString - другими словами передать в Лоцию значения извне
т.е. вопрос исчерпан!

оказывается действительно
можно импортировать то не знаю что 
и что характерно только средствами Лоции!

Круто
Форум - то что надо
Добавлено: 19 июн 2008, 11:05
Disillusioned
Да теперь и без сетевого ресурса можно обойтись и работать с локальными дисками.
Приятно участвовать в таком обоюдополезном общении!!!
Добавлено: 25 июн 2008, 07:54
Александр
Слушай

все получилось настолько элегантно (файл хранящий пути) что тащусь уже все утро, переписал под это дело все свои процедуры!!!!!
Все стало намного Прозрачней/Проще и Универсальней
