-
Здравствуйте! Есть программа на Д7, создающая с использованием Ole-технологии отчеты в MS Word 2003. Подскажите, пожалуйста, как можно в отчет (после создания) вставить оглавление? Место, куда вставляется оглавление найдем по имени закладки (bookmark), а как будет выглядеть сама команда - никто не сталкивался?
Посмотрев MSDN и поэкспериментировав с вариациями на тему ...TablesOfContents... , требуемого формата записи пока не подобрал. Конечно, можно записать макрос в шаблонный документ и вызывать его из Дельфи, но этот вариант не подходит. Был еще один вариант - вставка пустого оглавления, а в конце создания документа его обновление, но тоже есть свои ограничения... Если кто сталкивался - подскажите, пожалуйста С уважением, Николай
-
Когдато у меня было написано следующее(выдрано из программы, может не работать, но вдруг поможет...)
var
FBoolFalse,
FBoolTrue,
FEmptyString,
FEncoding: OleVariant;
procedure WAddContents(const App: Variant);
var UpperHeadingLevel, LowerHeadingLevel,
numRange: OleVariant; aRange: Variant;
begin
if App.ActiveDocument.TablesOfContents.Count > 0
then App.ActiveDocument.TablesOfContents.Item(1).Delete;
aRange:= App.Selection.Range;
UpperHeadingLevel:= 1;
LowerHeadingLevel:= 3;
App.ActiveDocument.TablesOfContents.Add(
aRange, FBoolTrue,
UpperHeadingLevel, LowerHeadingLevel,
FBoolTrue, FEmptyString,
FBoolTrue, FBoolTrue,
FEmptyString, FBoolTrue,
FBoolTrue, FBoolTrue);
numRange:= App.ActiveDocument.TablesOfContents.Count;
App.ActiveDocument.TablesOfContents.Item(numRange).Range.Style:=CONTENTS_12;
end;
|