Форум программистов CodeGuru
17 Январь 2018, 21:55:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Экспортировать отчёт из Delphi в MsWord,дублировать результат запроса в Label  (Прочитано 13647 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Первокурсница
Интересующийся
**
Офлайн Офлайн

Сообщений: 14



Просмотр профиля
« : 01 Октябрь 2010, 18:38:31 »

Добрый день, уважаемые программисты! Пеффко !
У меня клиентское приложение "Телефонный справочник". С помощью запросов я должна выводить информацию об абонентах и их номера телефонов на экран с помощью DBGrid (с этим проблем не возникло) и записывать эту же информацию в отчёты (RvProject). На защиту преподаватель дал следующее задание:
1) результат запроса ADOQuery1 (а результатом является номер телефона абонента) должен дублироваться в Label.
2) все отчёты сделанные в среде Delphi нужно импортировать в MSWord, а ещё лучше сделать так чтобы они и открывались сразу же в MSWord.
Никаких указаний и подсказок он не дал! Шпион
Помогите пожалуйста! Плачу
Вот текст программы:
Код:
unit LAB5Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RpCon, RpConDS, RpDefine, RpRave, StdCtrls, RpRender,
  RpRenderHTML, Grids, DBGrids, DB, ADODB;

type
  TForm1 = class(TForm)
    RvProject1: TRvProject;
    RvDataSetConnection1: TRvDataSetConnection;
    Button1: TButton;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    Button2: TButton;
    Button3: TButton;
    Label3: TLabel;
    RvRenderHTML1: TRvRenderHTML;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button4: TButton;
    Button5: TButton;
    Label8: TLabel;
    Label9: TLabel;
    RvProject2: TRvProject;
    RvDataSetConnection2: TRvDataSetConnection;
    Label10: TLabel;
    Label11: TLabel;
    Edit5: TEdit;
    Label12: TLabel;
    Edit6: TEdit;
    Label13: TLabel;
    Edit7: TEdit;
    Button6: TButton;
    Button7: TButton;
    Label14: TLabel;
    Label15: TLabel;
    RvProject3: TRvProject;
    RvDataSetConnection3: TRvDataSetConnection;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Edit8: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);   {Показать все записи}
begin
ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT*From Таблица1');
ADOQuery1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);  {Запрос 2}
begin
ADOQuery1.Active:=False;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT FName,LName,PhName,City,Street,House,Kv,PhoneNum');
ADOQuery1.SQL.Add('FROM Таблица1');
ADOQuery1.SQL.Add('WHERE PhoneNum='+' "'+ Edit8.Text+'"');
ADOQuery1.Open;
ADOQuery1.Active:=true;
end;

procedure TForm1.Button4Click(Sender: TObject);  {Запрос 3}
begin
ADOQuery1.Active:=False;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT PhoneNum');
ADOQuery1.SQL.Add('FROM Таблица1');
ADOQuery1.SQL.Add('WHERE City='+' "'+Edit1.Text+'"');
ADOQuery1.SQL.Add('AND Street='+' "'+Edit2.Text+'"');
ADOQuery1.SQL.Add('AND House='+' "'+Edit3.Text+'"');
ADOQuery1.SQL.Add('AND Kv='+' "'+Edit4.Text+'"');
ADOQuery1.Open;
ADOQuery1.Active:=true;
//Label9.Caption:=IntToStr
end;

procedure TForm1.Button6Click(Sender: TObject);   {Запрос 4}
begin
ADOQuery1.Active:=False;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT PhoneNum');
ADOQuery1.SQL.Add('FROM Таблица1');
ADOQuery1.SQL.Add('WHERE FName='+' "'+Edit5.Text+'"');
ADOQuery1.SQL.Add('AND LName='+' "'+Edit6.Text+'"');
ADOQuery1.SQL.Add('AND PhName='+' "'+Edit7.Text+'"');
ADOQuery1.Open;
ADOQuery1.Active:=true;
//Label15.Caption:=IntToStr
end;

procedure TForm1.Button3Click(Sender: TObject);  {Отчёт 2}
begin
RvProject1.Execute;
end;

procedure TForm1.Button5Click(Sender: TObject);  {Отчёт 3}
begin
RvProject2.Execute;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
RvProject3.Execute;
end;

end.
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 03 Октябрь 2010, 00:05:09 »

А Word должен открываться отдельным приложением ?
В ворде отчет должен быть в виде таблицы ?

Просто можно, например, генерировать текстовый файл с "псевдотаблицами" и открывать его в Word, просто запуская его через ShellExecute. Или же можно генерировать RTF-файл с таблицей и открывать его также в Word.

Устанавливать текст в Label, насколько я знаю, можно при помощи изменения его свойства Caption (в представленном коде почему-то строки эти закомментированы). В него надо занести значение из поля PhoneNum результата, так ? Т.е. это будет что-то типа:
Код:
Label9.Caption:=ADOQuery1.FieldByName('PhoneNum').Value;

насколько я понимаю.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!