Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Какая таблица\строка\ячейка в позиции курсора


Автор: ZVano 14.1.2010, 14:11
Можно ли как-то определить: 
- к какой таблице относится выделеный фрагмент текста
- какая таблица\строка\ячейка в позиции курсора

Моя задача написать аналог компонента TARWordReport, совместимого с ним по синтаксису.
Есть шаблон отчета. В нем ключи вида <#KeyName> должны быть подменены значениями.
Все ключи я нахожу используя поиск по маске '\<#*\>'. Т.е. уже есть их список с позициями.
С простой подстановкой все просто, но ключ может быть вида <#txttable:DataSet_NameOrAlias>. 
Он должен быть в таблице Word и означает, что вместо всей строки нужно подставить множество строк из источника данных "DataSorceNameOrAlias".
Т.е. шаблон вида:

    Таблица
  ----------------------------------------------------------
1 |Заголовок1           |Заголовок2|ЗаголовокN|
  ----------------------------------------------------------
2 |<#txttable:MyDS>|                   |                   |
   ---------------------------------------------------------
3 |<#Поле1>            |<#Поле2>  |<#ПолеN>  |
   ----------------------------------------------------------
4 |Текст...                 |Текст...        |Текст...       |
  -----------------------------------------------------------

Тут вместо строк 2 и 3 нужно подставить данные всех строк из MyDS:TDataSet.
Шаблон строк и имена полей заданы в строке 3 (след. за ключем "txttable").

Мне нужно определить к какой таблице\строке\ячейке относится выделеный <#txttable:MyDS>, позиция Beg...End которого в документе уже известны.


Автор: ZVano 18.1.2010, 10:09
Можно выделять таблицы\строки\ячейки и по диапазону .Selected.Range определять попадает ли искомая позиция в выделеную таблицу\строку\ячейку.
Другого выхода не нашел. Но это же гемор какой ###.

Другие варианты есть?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)