Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.06.2006, 13:05
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию Выдать текс документа

А вот опять я
С базой разобралась... УРА!
Теперь вопрос другой возник: Надо чтобы при нажатии кнопки выскакивало новое окно (ну это понятно как сделать) и на этом окне были условия договора...естественно набивать мне их ну совсем не хочется, да и неправильно это...условия договора есть в Ворде...как бы мне их в окно вывести?
А еще бы было здорово, если бы у меня туда ( в документ) автоматически вставлялись данные о клиенте из БД...ну там ФИО, паспорт и т.д.
Всем заранее спасибо.
Ответить с цитированием
  #2  
Старый 08.06.2006, 20:01
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

По поводу вставки данных в 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  
Старый 09.06.2006, 06:43
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Дополнительно предлагаю хранить шаблоны документов в базе, и обновлять удобней, если программа сетевая, и лишних файлов нет
Ответить с цитированием
  #4  
Старый 09.06.2006, 11:10
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию УРА

ОГРОМНОЕ СПАСИБО ВСЕМ!!!!
ДИПЛОМ ГОТОВ
Ответить с цитированием
  #5  
Старый 09.06.2006, 11:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Не забудь сказать на что защитишься
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter