Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 7

Заполнение закладок в документе Word - ограничение на число посылаемых команд?

25.07.2014, 17:36. Показов 2490. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Среди прочих других команд в одном посыле из Delphi
в документ Microsoft Word'а
есть последовательность команд, заполняющая таблицу:
...
[TableInsertRowBelow]
[NextCell][Insert "4"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "222"]
...
("111" вставляются в тестовых целях).

Документ создаётся прекрасно, если задано повторение этого блока команд 6 раз.
И не создаётся, если задано повторение этого блока 7 раз. Никакой ошибки. Просто открывается белый чистый лист.

Если в вышеуказанной последовательности команд убрать последнюю команду
[NextCell][Insert "222"]

то теперь 7 строк таблицы создаётся в документе!
Но не создаётся 8 и больше.

Это что? Есть ограничение на количество команд, за один раз посылаемых в Microsoft Word?
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2014, 17:36
Ответы с готовыми решениями:

Программное создание закладок в документе Word
Всем здравствуйте. Подскажите пожалуйста как можно программно добавлять в документ word закладки. С ручным вводом все понятно но при...

Ограничение количества страниц в документе word
Добрый день. Есть документ word с текстовыми полями. Редактирование ограничено так, чтобы пользователи могли заполнять только формы. Как...

Заполнение таблицы в Word -документе через UserForm
Доброго времени суток! Нужна Ваша помощь! Есть таблица, которую надо заполнить через UserForm. Вопрос: каким образом реализуется...

5
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
27.07.2014, 04:15
А размерность самой таблицы в документе какая?
0
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 7
27.07.2014, 14:13  [ТС]
Вот эта таблица в документе Word создаётся автоматически с помощью этих команд:

4, 5, 6 столбцов создаётся и плюс много другой информации ещё с помощью закладок вставляется в этот документ.

Но если поставить 7 столбцов - то выходит чистый лист.

Общая длина передаваемых данных через DDE - около 2,5 тыс. знаков.
0
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 7
27.07.2014, 14:23  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
iNumber := 1;
          sCommandTourists := '[EditBookmark .Name = "clientsTableAnchor", .Goto]';
          for i := iFirst to lsbTouristIDs.Items.Count - 1 do
            begin
             ...
                      sCommandTourists := sCommandTourists +
                        '[TableInsertRowBelow]' +
                        '[NextCell][Insert "' + IntToStr(iNumber) + '"]' +
                        '[NextCell][Insert "' + arrSelectedClients[j].Pass2Name + '"]' +
                        '[NextCell][Insert "' + arrSelectedClients[j].Pass2Sex + '"]' +
                        '[NextCell][Insert "' + arrSelectedClients[j].Pass2Birth + '"]' +
                        '[NextCell][Insert "' + arrSelectedClients[j].Pass2Series + ' № ' + arrSelectedClients[j].Pass2Number + '"]' +
                        '[NextCell][Insert "' + arrSelectedClients[j].Pass2End + '"]';                        
                      Break;
               ...
              Inc(iNumber);
            end;
        end
Такая команда создаёт в цикле строки таблицы, sCommandTourists потом отправляется в Word
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
28.07.2014, 16:13
mFrance, а почему именно такой способ выбран? Вот, например, как можно записать данные таблицы в документ MS Word:
1. Экспорт данных таблицы БД в документ MS Word: Создание отчета в Word
2. Экспорт данных из таблицы типа TStringGrid в документ MS Word: stringrid в готовую таблицу word

Добавлено через 3 минуты
С использованием закладок MS Word (Word.Bookmarks): Как записать данные в файл MS Word
0
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 7
28.07.2014, 17:51  [ТС]
2 Mawrat
Спасибо за ответ и за участие!
Вы правы, способ был выбран больше по историческим причинам. Менять всё на метод с вариантами - очень много.
Не стала разбираться, почему этот Word не принимает большой текст макроса на Visual Basic...
После заполнения документа старым способом в нём же заполняю таблицу новым способом :-)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
      wdApplication := GetActiveOleObject('Word.Application');
                  wdApplication.Visible := true;
                  wdBookmarks := wdApplication.ActiveDocument.Bookmarks;
 
                  wdBookmarks.Item('clientsTableAnchor').Select;
                  for i := iFirst to lsbTouristIDs.Items.Count - 1 do
                    begin
                              ...
                              wdApplication.Selection.InsertRowsBelow();
 
                              wdApplication.Selection.TypeText(IntToStr(iNumber));
                              wdApplication.Selection.MoveRight(Unit:=wdCharacter, Count:=1);
 
                              wdApplication.Selection.TypeText(arrSelectedClients[j].Pass2Name);
                              wdApplication.Selection.MoveRight(Unit:=wdCharacter, Count:=1);
 
                              wdApplication.Selection.TypeText(arrSelectedClients[j].Pass2Sex);
                              wdApplication.Selection.MoveRight(Unit:=wdCharacter, Count:=1);
 
                              wdApplication.Selection.TypeText(arrSelectedClients[j].Pass2Birth);
                              wdApplication.Selection.MoveRight(Unit:=wdCharacter, Count:=1);
 
                              wdApplication.Selection.TypeText(arrSelectedClients[j].Pass2Series + ' № ' + arrSelectedClients[j].Pass2Number);
                              wdApplication.Selection.MoveRight(Unit:=wdCharacter, Count:=1);
 
                              wdApplication.Selection.TypeText(arrSelectedClients[j].Pass2End);
                       ....
                    end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.07.2014, 17:51
Помогаю со студенческими работами здесь

Заполнение полей в документе word данными из документа excel
Имеется типовой документ word, назовем его АКТ, в котором вся информация остается неизменной, за исключением нескольких полей (см. рисунок...

Выборочное заполнение данными из Windows Form нужных полей в документе Word
Подскажите, пожалуйста, как сделать так, чтобы нужные поля в документе Word заполнялись данными выборочно из Windows Form? Заранее спасибо

Отображать на странице Word'а число страниц в документе
1) Есть документ Word, в котором постоянно меняется количество страниц. Нужно чтобы в одном месте в документе отображалось текущее...

Цикл отображающий названия закладок в документе
Добрый день! Подскажите вот такой момент. Есть документ Wорд, в нем есть закладки. Как пройтись циклом по документу и отобразить например в...

Форматирование закладок в Word
Здравствуйте! Подскажите, как реализовать такую задачу. Есть документ, в нем есть много повторяющихся элементов. Реализовал ввод в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru