Показать сообщение отдельно
  #7  
Старый 10.12.2008, 14:45
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Самый простой способ экспорта в Word. Используемые модули: ComObj, WordXP
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  WApp : Variant;
  S : string;

  procedure Replace(Lab, Txt : string);
  begin
    WApp.Selection.End:=0;
    WApp.Selection.Start:=0;
    WApp.Selection.Find.Forward := True;
    WApp.Selection.Find.Replacement.Text := Txt;
    WApp.Selection.Find.Text := Lab;
    WApp.Selection.Find.Execute(Replace:=wdReplaceAll);
  end;

begin
  try
    WApp:= CreateOleObject('Word.Application');
  except
    on E : EOleError do begin
      MessageDlg('MS Word отсутствует на компьютере!', mtError, [mbOk], 0);
      Exit;
    end;
  end;

  try
    WApp.DisplayAlerts := false;
    WApp.Documents.Open('<путь до шаблона>\Шаблон.dot'); //не обязательно шаблон делать как "dot"

    DateTimeToString(S, 'dd mmm yyyy', DateTimePicker1.DateTime);
    Replace('[Day1]', S);
    Replace('[N1]', Combobox1.Text);
    Replace('[FIO1]', Edit1.Text);
    //......

    WApp.Visible := True;
    WApp.Selection.End:=0;
    WApp.Selection.Start:=0;
  finally
    WApp := Unassigned;
  end;
end;
У Михалыча очень простой шаблон, поэтому нет необходимости городить раннее связывание и прочую чепуху. Одна страничка с менее чем тремя десятками меток, которые ищутся и заменяются за доли секунды.
С датами ему разобраться и все дела (число, месяц и год он пытается делать в три метки).
__________________
Не забывайте делать резервные копии
Ответить с цитированием