|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
||||||||||||||||
Ошибка при использовании WordApplication для формирования отчета02.08.2012, 09:13. Показов 3736. Ответов 16
Метки нет (Все метки)
Программа формирует выходной документ Word, используя для этого данные из таблиц BDE. Выходной документ имеет определенный строгий формат, и содержит текст, списки, таблицы и т.д. Формируется таблица в документе, скажем, подобным образом:
Кто может подсказать, существует ли некий надежный способ уйти из таблицы? Пробую даже одновременно
0
|
||||||||||||||||
| 02.08.2012, 09:13 | |
|
Ответы с готовыми решениями:
16
Ошибка формирования стандартного отчета Ошибка формирования отчета excel, ошибка hresult 0xc800A03ec |
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|
| 02.08.2012, 10:58 | |
|
Не вполне уверен, что мой совет пригодится, но я в задачах подобного рада использую заранее приготовленные шаблоны, в которых макеты таблиц расставлены так, как надо. Все, что я делаю с таблицами при формировании отчетов - это вставка значений в определенные ячейки, добавление строк, при необходимости выделение и слияние ячеек и др. В шаблоне там, где это необходимо расставляю закладки. Переходом к закладке всегда легко покинуть таблицу.
Упомянутые шаблоны храню в блоб полях БД. В вашем вопросе насторожило использование таблиц БДЕ. БДЕ само по себе никаких таблиц не имеет. Это только инструмент доступа к таблицам БД. То есть вы используете некоторую СУБД и для доступа к объектам СУБД используете БДЕ. Считаю также нелишним сказать, что являюсь последовательным противником использования БДЕ в проектах. Это устаревший и давно никем не сопровождаемый инструмент!
0
|
|
|
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
|
||
| 02.08.2012, 23:14 | ||
|
1. Пока программа создает Word File 2. Пока программа создает таблицу 3. потом загрузить данных это займет много время Я вам советую или FastReport или QReport
0
|
||
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|
| 03.08.2012, 06:55 | |
|
0
|
|
| 03.08.2012, 07:05 | ||||||||||||||||
|
Ошибка здесь
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
||||
| 06.08.2012, 03:36 [ТС] | ||||
|
2 SAMZ
![]()
2 xxbesoxx
2 Bit_Man Спасибо, но программа написана не на VBA, а на Delphi... В Delphi "WordDocument1" фактически равен "Application.ActiveDocument" (в начале генерации отчета он ему присваивается - виноват, не указал это), механизм вставки таблиц поменять можно, но в Delphi "Application.ActiveDocument.Paragraphs.A dd" превращается в "WordApplication1.ActiveDocument.Paragra phs.Add" и требует одного параметра типа Range... Какой именно Range туда передать? (средствами Delphi) Если передаю Selection.Range - опять же выходит ерунда, но кажется эта идея уже относится к правильному пути
0
|
||||
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
| 06.08.2012, 03:53 | |
|
Попробуй сформировать отчет без таблиц, а в местах где должны быть таблица ставь метки <Tab1>, <Tab2> и т.д, а после как отчет будет сформирован вставляй нужные таблицы по нужным метка и заполняй их.
0
|
|
| 06.08.2012, 06:24 | |||||||||||||
|
Добавлено через 3 минуты я сам в Builder c++ программирую, а если что для ворда надо то лезу в VBA потом переделываю под BuilderТут еще посмотри там так
Примерно так должно быть
1
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
||||||
| 06.08.2012, 07:29 [ТС] | ||||||
|
Спасибо, по первой ссылке есть решение! Процитирую для тех, кто возможно будет решать эту проблему после меня!
0
|
||||||
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
||||||
| 06.08.2012, 11:03 | ||||||
|
Zedus, Скажите, а почему перед перемещением курсора за пределы таблицы не поставить его в последнюю стоку таблицы. Например, так
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
||||||
| 07.08.2012, 02:29 [ТС] | ||||||
|
Потому что, как я уже писал выше, определить, какая именно строка будет последней, не выходит. Ячейки иногда дробятся при переносе страницы и возникает хаос...
Добавлено через 27 минут Вот еще решение, придуманное с утра на свежую голову,для произвольного количества строк в таблице, неизвестного заранее. В общем-то простое, что неудивительно:
0
|
||||||
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
||
| 07.08.2012, 08:22 | ||
|
Tbl.Rows.Count дает вам количество строк с учетом всех дроблений и размножений. В цикле, как в приведенном Вами примере, это делать можно, но на больших таблицах получается долго.
0
|
||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
|
| 07.08.2012, 08:41 [ТС] | |
|
Работает, когда
1. размер таблицы известен. 2. таблица не разделена разрывом страницы. В моем случае проблемы возникали именно тогда, когда таблица занимала не одну страницу документа. Добавлено через 1 минуту Rows.Count, если разрыв пересек ячейку, а не между ячейками прошел, дает неверное значение
0
|
|
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|||||||||||
| 07.08.2012, 09:22 | |||||||||||
|
Проверил на таблице, занимающей 10 страниц с разрывами, пересекающими ячейку.
код
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
|
| 07.08.2012, 09:26 [ТС] | |
|
Проблема в том, что ошибка возникает случайно ) то есть когда в документе из 40 страниц есть 20 таблиц, из которых 6 проходит через разрыв страницы, ошибка случайно может возникнуть в любой из них. А может и не возникнуть ) Причем на одних и тех же входных данных. Я не знаю ее истинных причин...
0
|
|
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|||
| 07.08.2012, 11:08 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 14
|
|
| 08.08.2012, 02:01 [ТС] | |
|
Сам понимаю, что странно ) Но после изменения процедуры выхода из таблицы на ту, которую выше уже описал, ошибка не появляется уже второй день, когда как раньше в среднем возникала раз в час... Мистика
0
|
|
| 08.08.2012, 02:01 | |
|
Помогаю со студенческими работами здесь
17
Ошибка формирования отчета: поле не найдено. 1c8 ошибка формирования отчета, помогите разобраться Таблица для формирования отчета Форма для формирования отчета Хранимая процедура для формирования отчета Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|