Конференция "Corba" » Вставка оглавления в Word, OLE [Delphi, Windows]
 
  • SuperNick (07.03.08 14:25) [0]
    Здравствуйте!
    Есть программа на Д7, создающая с использованием Ole-технологии отчеты в MS Word 2003.
    Подскажите, пожалуйста, как можно  в отчет (после создания) вставить оглавление?
    Место, куда вставляется оглавление найдем по имени закладки (bookmark), а как будет выглядеть сама команда - никто не сталкивался?

    Посмотрев MSDN и поэкспериментировав с вариациями на тему ...TablesOfContents... , требуемого формата записи пока не подобрал. Конечно, можно записать макрос в шаблонный документ и вызывать его из Дельфи, но этот вариант не подходит. Был еще один вариант - вставка пустого оглавления, а в конце создания документа его обновление, но тоже есть свои ограничения...
    Если кто сталкивался - подскажите, пожалуйста
    С уважением, Николай
  • Сашик (18.03.08 00:05) [1]
    Когдато у меня было написано следующее(выдрано из программы, может не работать, но вдруг поможет...)

    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{Range}, FBoolTrue{UseHeadingStyles},
     UpperHeadingLevel{UpperHeadingLevel}, LowerHeadingLevel{LowerHeadingLevel},
     FBoolTrue{UseFields}, FEmptyString{TableID},
     FBoolTrue{RightAlignPageNumbers}, FBoolTrue{IncludePageNumbers},
     FEmptyString{AddedStyles}, FBoolTrue{UseHyperlinks},
     FBoolTrue{HidePageNumbersInWeb}, FBoolTrue{UseOutlineLevels});
     numRange:= App.ActiveDocument.TablesOfContents.Count;
    //присваиваем диапазону оглавления формат, например CONTENTS_12:
     App.ActiveDocument.TablesOfContents.Item(numRange).Range.Style:=CONTENTS_12;
    end;

 
Конференция "Corba" » Вставка оглавления в Word, OLE [Delphi, Windows]
Есть новые Нет новых   [134430   +4][b:0][p:0.001]