Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];
ВнизНужно создать форму (таблицу из WORD). Найти похожие ветки
← →
@tom © (2007-02-05 13:48) [0]Нужно создать форму (таблицу из WORD). Потом программно изменить в ней часть текста и вывести на печать на А4.
Если кто знает, как это сделать, напишите пожалуйста. И вопрос номер два, можно эту форму преобразовать в HTML страницу, но как с помощью программы ее открыть и вывести на печать, для меня загадка. Может кто подскажет. Зарание благодарю, если что пишите прямо в мыло!
← →
Johnmen © (2007-02-05 14:44) [1]
> Нужно создать форму (таблицу из WORD)
Так форму или таблицу? Где создать? Ты уж определись как-нибудь. Заодно объясни, что есть "форма" и "таблица".
← →
Fredy314 © (2007-02-05 16:17) [2]кусок из моей проги работает.
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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c