Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно создать форму (таблицу из WORD). [D7, WinXP]


@tom ©   (2007-02-05 13:48:00) 

Нужно создать форму (таблицу из WORD). Потом программно изменить в ней часть текста и вывести на печать на А4.
Если кто знает, как это сделать, напишите пожалуйста. И вопрос номер два, можно эту форму преобразовать в HTML страницу, но как с помощью программы ее открыть и вывести на печать, для меня загадка. Может кто подскажет. Зарание благодарю, если что пишите прямо в мыло!


Fredy314   (2007-02-05 16:17:00) [1]

кусок из моей проги работает.

Procedure TMainForm.doExportToWord2(SG1, SG2: TStringGrid; TextBefore1, TextAfter1, TextBefore2, TextAfter2: String);
Var
 Word              : Variant;
Begin
 {  Try
     Word := GetActiveOleObject('Word.Application');
   Except
     Word := CreateOleObject('Word.Application');
   End;
    }
 Word := CreateOleObject('Word.Application');
 Word.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
 Word.Visible := true;
 Word.Selection.TypeText(TextBefore1);
 doExportToWord1(Word, SG1);
 Word.Selection.TypeText(TextAfter1);
 Word.Selection.TypeParagraph;
 Word.Selection.TypeText(TextBefore2);
 doExportToWord1(Word, SG2);
 Word.Selection.TypeText(TextAfter2);
 Word.Selection.TypeParagraph;
 Word.ActiveDocument.saved := true;
 Word := null;
End;

Procedure TMainForm.doExportToWord1(Word: Variant; SG: TStringGrid);
Var
 s                 : String;
 i, j, k           : Integer;
 Table             : OleVariant;
Begin

 Table := Word.Selection.Range.Tables.Add(Range := Word.Selection.Range, NumRows := SG.RowCount, NumColumns := SG.ColCount,
   DefaultTableBehavior := 0, AutoFitBehavior := true);
 For i := 0 To SG.RowCount - 1 Do
   Begin
     For j := 0 To SG.ColCount - 1 Do
       Begin
         s := SG.Cells[j, i];
         If i = 0 Then
           Begin
             If Length(s) > 0 Then
               If s[1] = '-' Then
                 Begin
                   s := copy(s, 2, 250);
                 End;
             k := FieldsDef.IndexOf(s);
             If k > -1 Then s := FieldsNames[k];
             Table.cell(i + 1, j + 1).Range.Shading.BackgroundPatternColor := $D0D0D0;
           End;
         If (j = 0) And (i <> 0) Then s := Inttostr(i);
         Table.cell(i + 1, j + 1).Range := s;
         Application.ProcessMessages;
       End;
   End;
 Table.Columns.AutoFit;
 Word.Selection.EndKey(6 {wdStory});
End;


Johnmen   (2007-02-05 14:44:00) [2]


> Нужно создать форму (таблицу из WORD)

Так форму или таблицу? Где создать? Ты уж определись как-нибудь. Заодно объясни, что есть "форма" и "таблица".


Наверх

Титульная страница Поиск, карта сайта Написать письмо