Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 22.09.05 14:58. Заголовок: Report from Clipper to Excel
Есть Clipper-ный отчёт с упрощенной (для внутреннего употребления) шапкой, который Clipper автоматом перегоняет в Excel. Но налоговая хочет еметь его с очень навороченной шапкой ( http://webfile.ru/533208 ). На скорую руку склепал генерацию .html файла в стиле Excel. Работает, но прога внутри выглядит жутко, да и неудобно это клепать. Вопрос: как к этой шапке по-эллегантнее подгрузить данные из отчёта ( путём генерации из Clipper-а какого-либо скрипта и его запуска ).
|
|
|
Ответов - 44
, стр:
1
2
3
All
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 22.09.05 15:33. Заголовок: Re:
1. можно написать в excel'е на VBA скрипт (функцию), которая загрузит данные из dbf и расставит их в нужные клетки страницы листа экселя.. или можно этот же скрипт написать vb-script (*.vbs): открыть лист, открыть dbf-таблицу, и в цикле по таблице отобрать нужные записи.. единственная проблема -- в VBA (jet ole db) криво работают индексы (я пример выложил в webfile.ru/533312) 2. можно изпользовать мою халявную прогу rec3p.exe: в программе на клиппере далаешь отчёт в текстовый файл с использованием псевдографики, табуляции, всяких межстрочных интервалов и узких шрифтов -- и вызываешь rec3p с именем файла твоего отчёта. правда, в этом случае отчёт будет распечатан, а не сохранён в эксель..
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 23.09.05 09:08. Заголовок: Re:
_sergey пишет: цитата можно этот же скрипт написать vb-script (*.vbs): открыть лист, открыть dbf-таблицу, и в цикле по таблице отобрать нужные записи..
Спасибо за примеры. Это то что мне и надо. Если не влом - подскажи, где взять нормальное описание объекта "Excel.Application". Просмотрел кучу док - все мура. Т.к. это офтопик - давай в мыло les@azovmash.com или ICQ (149-152-548).
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 23.09.05 17:12. Заголовок: Re:
самое простое -- запускаешь word или excel, жмёшь alt+F11 (редактор VBA), ctrl+r, enter, пишешь название объекта, жмёшь F1. если помощь для VBA установлена (выбирается при установке офиса), то откроется то, что надо. можно ещё в MSDN опискать, или на сайте microsoft.com в разделе MSDN (должен быт такой)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.09.05 10:29. Заголовок: Re:
_sergey пишет: цитата самое простое -- запускаешь word или excel, жмёшь alt+F11 (редактор VBA), ctrl+r, enter, пишешь название объекта, жмёшь F1.
Спасибо. Я ведь спрашивал про НОРМАЛЬНОЕ описание. Вопрос решен. Никому не советую идти путем *.vbs. Clipper это делает примерно в 50 раз быстрее.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.09.05 17:16. Заголовок: Re:
там (в справке VBA в excel) "родное" описание, чего такого в нём ненормального? цитата Вопрос решен. Никому не советую идти путем *.vbs. Clipper это делает примерно в 50 раз быстрее.
VBA (да и вообще OLE) вставляет ячейки в страницу excel'я действительно медленно, хотя есть разные способы для ускорения, например, отключить прорисовку листа.. Интересно, как ты из прогарммы на клиппере создаёшь лист эекселя? я знаю только о создания файлов excel'я формата BIF, обычной записью бинарный данных в файл (хоть из клиппера, хотя пример я видел на паскале), но ведь тебе les пишет: цитата Но налоговая хочет еметь его с очень навороченной шапкой
так что, кроме как открыть лист через OLE (или DDE, или прямой доступ к формату BIF) и изменять его содержимое -- что-то не вижу можно ещё так поступить! заполнить буфер обмена данными (разделитель между элементами в одной строке -- табуляция, разделитель между строками -- перевод строки (chr(13)+chr(10)) ), а затем вставить всё это в нужную ячейку.. данные "правильно" распределятся по ячейкам листа! (только что пробовал). так что можно на VBA, например, считать файл, выгруженный предварительно clipper'ом, скопировать его в буфер обмена, а потом вставить в лист.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 27.09.05 10:09. Заголовок: Re:
_sergey пишет: цитата Интересно, как ты из прогарммы на клиппере создаёшь лист эекселя?
нарисовал шапку руками, довавил строку с данными, отформатировал, сохранил в формате *.html, из Clipper-а по образу и подобию дописываю нужные данные и открываю в Excel. Геморойно, но работает довольно шустро.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 27.09.05 11:06. Заголовок: Re:
здорово, html-файлы сохраняют форматирование! правда, на office-97 не всё форматирование восстановилось при excel xp->html->excel (а именно, границы и раскраска фона ячеек) всякими *.csv и *.txt такого не добиться! (сохранения форматирования)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.05 10:41. Заголовок: Re:
Почему не в Харборе отчет? Харбор прекрасно работает с Excel.Основная программа на Клиппере, а некоторые отчеты делаю в небольшой проге на Харбор.К сожалению консольный Харбор Клиппер еще не догнал, поэтому полностью на Харбор не перехожу.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.05 11:46. Заголовок: чего не хватает в Харборе?
Упомянут именно Харбор? или более продвинутый xХарбор?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.05 11:48. Заголовок: Re:
2 Vlad04: если требуется работать в winapi или ole, то (мне) проще писать программу на с(c++) + winapi или на дельфи или на VBA.. всё равно код harbour транслируется на c++
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.05 13:39. Заголовок: Re:
Vlad04 пишет: цитата Харбор прекрасно работает с Excel
Сам-то проверял? У меня в harbour на P4 2GHz через oExcel := TOleAuto():New( "Excel.Application" ) и т.д. отчет 14 столбцов х 1200 строк грузится в Excel около 2х минут - Clipper-e секуд 5. _sergey пишет: цитата VBA (да и вообще OLE) вставляет ячейки в страницу excel'я действительно медленно
согласен на все 100
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.10.05 06:49. Заголовок: Re:
Сам все проверял. Имеется ввиду xХарбор.Для выгрузки больших отчетов использую библиотеку XlsRep.dll. Она упоминалась здесь на форумах.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.10.05 14:55. Заголовок: Re:
2 Vlad04: а можно посмотреть на эту xlsrep.dll? и есть ли исходники? а то интересно! там файл с отчётом заново создаётся (например, в формате BIF, что меня и интересует), или дописывается в существующий, например, в шаблон? (что с использованием только формата BIF не получится) формат BIF тем удобен, что excel его понимает, он задокументирован, а создавать его можно как обычный двоичный DOS-файл (а не OLE-хранилице, как в случае с обычным xls-файлом)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.10.05 06:04. Заголовок: Re:
Исходников нет.Автор: nik_x@hotbox.ru - обратись к нему.Он писал , что библиотека получила дальнейшее развитие. Так же можешь посмотреть сайт Водоносова : http://vodonosov.nm.ru/develop/develop.htm. Там есть так же программка для прямого доступа к файлам Excel в Клиппере . Для Харбор ее надо немного подправить.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.10.05 08:20. Заголовок: Re:
Кстати использую исходники Водоносова , скорость супер.......ну это и понятно если исходник глянуть.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 04.10.05 16:47. Заголовок: Re:
Dima пишет: цитата Кстати использую исходники Водоносова , скорость супер.......
Я некоторое время использовал этот метод - спасибо Водоносову. Потом отказался - совершенно нет форматирования отчета :(
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.10.05 07:58. Заголовок: Re:
les пишет: цитата нарисовал шапку руками, довавил строку с данными, отформатировал, сохранил в формате *.html, из Clipper-а по образу и подобию дописываю нужные данные и открываю в Excel.
а нужные данные дописываешь в какой кодировке? В виндовой, каким образом?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.10.05 08:47. Заголовок: Re:
deep пишет: цитата а нужные данные дописываешь в какой кодировке? В виндовой, каким образом?
Конечно в cp1251, используя OemToAnsi()
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.10.05 08:53. Заголовок: Re:
А в какой библиотеке эта функция? В поставке клиппер 5.01 она есть?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 17.10.05 16:32. Заголовок: Re:
deep пишет: цитата А в какой библиотеке эта функция? В поставке клиппер 5.01 она есть?
В Clipper-е её нет. Но есть много самописных вариантов
|
|
|
Ответов - 44
, стр:
1
2
3
All
[только новые]
|
|