Страница 1 из 2
Как сформировать название файла экземпляра отчета по шаблону
Добавлено: 27 фев 2007, 13:24
Александр
Два вопроса по автоматизации
1й Как
автоматически сформировать полное имя файла получаемого в результате экспорта по шаблону, основываясь на атрибутивной информации объекта (число, номер, исполнитель и т.д. + полный путь)
2й Как файл полученный(открытый) после экспорта по шаблону и уже имеющий 'нормальное' имя
автоматически приложить в документы архива текущего объекта
или
как автоматически создать файл по шаблону, сохранить, приложить его к объекту и только после этого открыть его на редактирование
Поделитесь опытом

Добавлено: 28 фев 2007, 22:06
Старик Крупский
Экспорт можно запустить скриптом. Потом этим же скриптом для Ворда в конце выполнить команду сохранения. Произойдет перехват команды и появится окошко импорта. Что делать дальше не знаю, но это уже половина пути...
Соврешенно так же скриптом можно сформировать имя файла из данных отчета и подсунуть его в параметр. Но тогда я не знаю как импортировать файл, если только отдать в скрипте команду save as. Юзеру придется выбирать способ сохранения и объект.
Как сформировать название файла экземпляра отчета по шаблону
Добавлено: 01 мар 2007, 10:11
Shurik
Могу предложить только идею - сам не реализовал из-за отсутствия требуемой сборки.
Отчет запускается из действия. Сразу выполняется скрипт по импорту данных отчета в файл (в котором указывается имя конечного файла - FileName). В это время отрывается форма этого же действия с текстом типа "Дождитесь окончания формирования файла. Нажмите Далее". На следующем шаге определяю объект, в который надо импортировать (ObjForImp). Затем функцией DocImport выполняю импорт (предварительно описав остальные параметры).
Код: Выделить всё
DocImport ( ObjForImp , FileName , OpisanieDoc , libr , s_Copy , Word , WordDoc )
Примерно так. Повторюсь, на практике это не реализовано. Так что не бейте сильно

Добавлено: 01 мар 2007, 21:04
Старик Крупский
А shurik дело грит

Добавлено: 05 мар 2007, 13:53
Александр
to Shurik
В это время отрывается форма
Наверно не пойдет
1. Действие запускает отчет
2. Отчет пишет файл
iRc = LsRpt.OleExport ( ...,..., P или S)
открывая его при этом в приложении
3. Импортируем файл в Лоцию
Но...
Файл то уже открыт и человек начинает работать с ним, а не с тем файлом который мы в фоне привязали к объекту.
а вообщето наверно с тем же, что-то тут не то
- создали - открыли (или - открыли -создали) (или - открыли а сохранили потом) тут не ясно
- привязали - отредактировали (но что) - сохранили (но что и куда???)
Ладно попробуем, потом скажу что получилось.
Добавлено: 06 мар 2007, 08:38
Старик Крупский
А что? Экспортировали, закрыли (скрипт это может), импортировали и открыли вновь как документ архива
Добавлено: 12 мар 2007, 13:51
Александр
Вопрос по ходу дела
Проблема такая:
Нужно из отчета сразу получить трехстраничный документ *.xls, желательно в одном файле. (причем информация на листах на 50% дублируется (исходные данные) и на 50% пересчитывается по формулам Excel для того или иного листа)
(и конечно сразу привязать к объекту ... с этим еще в процессе)
Но шаблон настраивается только для ОДНОГО листа *.xls
Как можно решить данную задачу средствами Лоции?
- создать один шаблон (один файл) с тремя листами и три раза вызвать функцию OleExport для каждого из листов? но тогда файл три раза перепишется и мы увидим только последнюю редакцию с отчетом по третьему листу шаблона (первые два будут пустыми)
- создать три шаблона по одному листу, заполнить их через OleExport и далее своим собственным скриптом объединить полученные три файла в один разбросав их по листам и удалив затем исходные файлы?
Не подскажите как поступить?

Добавлено: 12 мар 2007, 22:31
Старик Крупский
Да, ладно... Для каждого листа замечательно настраивается шаблон. Относительно недавно (год или побольше) эта возможность появилась. Лист выбирается ДО сохранения настройки соответствия полей. Потом снова добавляем тот же шаблон и ДО сохранения выбираем другой лист.
Добавлено: 13 мар 2007, 07:13
Александр
Ну настраивается на листы, а что толку то - когда одновременно можно работать только с одним листом, а мне нужно с тремя?
Вот если бы была связь с любым количеством листов
сразу
(один отчет - один шаблон - в результате один файл с данными (в том числе и с группировкой) разбросанными по n листам), или возможность
дополнительного экспорта в существующий файл-тогда другое дело, а так....
Хотя в сущности...
мне бы хватило данных на одном листе, а на остальные (листы) я бы наполнял через формулы Excel данными с первого - но ничего не получилось поскольку все ссылки на первый лист настроенные в файле шаблона становятся недействительными в файле экспорта
и как защитить эти ссылки чтобы они не улетали после экспорта - непонятно

, и как сослаться на сгруппированные ячейки тоже не понятно
да и вообще одни проблемы

с этим экспортом

(нервный смех)
Добавлено: 13 мар 2007, 07:55
Старик Крупский
Делайте все скриптом. Экспорт - это простой инструмент для создания экселевских документов, доступный по простоте основной массе. А если делать надо что-то с "выкрутасами", то это решается скриптом. Регистрируете приложение Excel, новый документ, лист и грузите в него все, что надо, вплоть до формул или чего там еще...
Добавлено: 13 мар 2007, 07:59
Александр
сразу вопрос...
один...
как скриптом заполнять сгруппированные поля? в смысле нужно ли отслеживать (вносить) табличные данные самому или можно все их бросать по адресу сгруппированной ячейки (как в шаблоне для Лоции) и Excel их сам растащит в таблицу?
Добавлено: 13 мар 2007, 13:31
Александр
полный облом

все придется писать на своих скриптах, и что самое неприятное таблицу с данными также придется рисовать скриптами, поскольку данную функцию (вставка таблицы в сгруппированную строку файла шаблона) техподдержка не отдает, говорит что это функция Excel? хотя как ни пробовал с разных сторон все-таки это функция Лоции

Добавлено: 13 мар 2007, 17:37
Старик Крупский
Да ну... Зачем зацикливаться на сгруппированных строках? В цикле по кол-ву строк отчета выбрасывайте построчно весь отчет в Excel.
Интересно, а как Вы себе представяете одновременную запись в три листа книги? Вы хотя бы функцию такую в Excel'е найдите. Все поочередно! И здесь то же самое, это не функции Лоции, "хотелка" под конкретную задачу и, я так понимаю, скрипты для того и сделаны, чтобы не приставали по своим заморочкам. А умеете ли Вы писать скрипты для Excel - это уже другой вопрос.
Добавлено: 14 мар 2007, 07:15
Александр
не хотел, но скажу,
Лоция использует в файле шаблона *.xls группировку для вывода в нее таблицы т.е. строка в шаблоне одна а строк в отчете много и в результирующем файле тоже получается не строка а таблица
- именно про эту функцию я и говорил, что это делает не сам Excel (как говорит техподдержка)
проверено опытным путем-скрипт создает новый файл на основе шаблона и пишет все данные в сгруппированную строку в результате получаем не таблицу а одну строку с последним значением (и зачем я все это пишу

)
Ладно, Закрываем тему, все понятно, скрипты так скрипты.
PS Просто зачем писать свои функции, когда логичнее было бы воспользоваться готовыми?
Добавлено: 14 мар 2007, 21:41
Старик Крупский
Ничего не понимаю... Как одну строку?!! Коллеги, отзовитесь. Получается самая натуральная таблица: сколько строк в отчете, столько и в таблице. Александр, может быть Вы неверно настроили шаблон?
Группировку требует Лоция для вывода, это да. Любой шаблон требует чего-нибудь за что можно зацепиться. А функция всего лишь автоматизирует действия пользователя.