![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
А вот опять я
![]() С базой разобралась... УРА! Теперь вопрос другой возник: Надо чтобы при нажатии кнопки выскакивало новое окно (ну это понятно как сделать) и на этом окне были условия договора...естественно набивать мне их ну совсем не хочется, да и неправильно это...условия договора есть в Ворде...как бы мне их в окно вывести? А еще бы было здорово, если бы у меня туда ( в документ) автоматически вставлялись данные о клиенте из БД...ну там ФИО, паспорт и т.д. Всем заранее спасибо. |
|
#2
|
||||
|
||||
|
По поводу вставки данных в Word. Вот примерный алгоритм работы:
1) Брось на форму компоненты WordApplication1 и WordDocument1 (вкладка Servers), а в класс TForm добавь процедуру для вставки текста в документ. Пример: Код:
type
TForm1 = class(TForm)
Button1: TButton;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure InsertTextToDoc(CompText, DocName: string);
end;2) Процедура InsertTextToDoc выглядит так: Код:
procedure TForm1.InsertTextToDoc(CompText, DocText: string);
begin
WordApplication1.Selection.Start := 0;
WordApplication1.Selection.End_ := 0;
WordApplication1.Selection.Find.Forward := true;
WordApplication1.Selection.Find.Text := DocText;
if WordApplication1.Selection.Find.Execute( EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam ) then
begin
WordApplication1.Selection.Delete( EmptyParam, EmptyParam );
WordApplication1.Selection.InsertAfter( CompText );
end;
end;3) Теперь немного о структуре документа. Допустим, тебе нужно вставить в документ ФИО и дату. В документе (который будет играть роль шаблона) нужно расставить ключевые слова, которые потом будут заменены нужной информацией. Например, для ФИО это будет ###FIO, а для даты ###DATA. Далее открываем шаблон (пусть, для примера, файл называется 1.doc), делаем необходимые замены, и сохраняем его в другом месте или под другим именем. Пример: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
OpenFileName, SaveFileName: OleVariant;
begin
OpenFileName := ExtractFilePath( Application.ExeName ) + '1.doc';
SaveFileName := ExtractFilePath( Application.ExeName ) + '2.doc';
WordApplication1.Connect;
WordApplication1.Documents.Open( OpenFileName, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam );
InsertTextToDoc( 'Петров', '###FIO' );
InsertTextToDoc( DateTimeToStr( Now ), '###DATA' );
WordApplication1.Visible := true;
WordDocument1.ConnectTo( WordApplication1.ActiveDocument );
WordDocument1.SaveAs( SaveFileName );
WordDocument1.Disconnect;
WordApplication1.Disconnect;
end;Вот пример: primer_word.zip. |
|
#3
|
||||
|
||||
|
Дополнительно предлагаю хранить шаблоны документов в базе, и обновлять удобней, если программа сетевая, и лишних файлов нет
|
|
#4
|
|||
|
|||
|
ОГРОМНОЕ СПАСИБО ВСЕМ!!!!
ДИПЛОМ ГОТОВ ![]() |
|
#5
|
||||
|
||||
|
Не забудь сказать на что защитишься
|