|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Не забудь сказать на что защитишься
|