Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Экспортировать отчёт из Delphi в MsWord,дублировать запрос в Lbl


Первокурсница ©   (2010-10-01 18:40:00) 

Добрый день, уважаемые программисты! =)
У меня клиентское приложение "Телефонный справочник". С помощью запросов я должна выводить информацию об абонентах и их номера телефонов на экран с помощью 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.


Плохиш   (2010-10-02 14:22:00) [1]


> Германн ©   (02.10.10 02:03) [9]
>
>
> > Конечно, во всех обработчиках дублирует
>
> Привычка - вторая натура.

Вот это наркотик, с первой понюшки подсела...


Германн   (2010-10-02 02:03:00) [2]


> Конечно, во всех обработчиках дублирует

Привычка - вторая натура.


Плохиш   (2010-10-01 20:38:00) [3]


> Anatoly Podgoretsky ©   (01.10.10 20:33) [7]
>
> > Плохиш  (01.10.2010 20:26:05)  [5]
>
> То есть обязательно два?

Конечно, во всех обработчиках дублирует, а в одном открывалку не продублировала. Непорядок, вдруг не сработает.


Anatoly Podgoretsky   (2010-10-01 20:33:00) [4]

> Плохиш  (01.10.2010 20:26:05)  [5]

То есть обязательно два?

> ADOQuery1.Active := True;
> ADOQuery1.Open;


Anatoly Podgoretsky   (2010-10-01 20:31:00) [5]

> Плохиш  (01.10.2010 20:26:05)  [5]

Асtive за отмазку не тянет?


Плохиш   (2010-10-01 20:26:00) [6]


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

Что?!!! Как вы посмели пропустить метод Open? Лаба не принята!


Anatoly Podgoretsky   (2010-10-01 19:49:00) [7]

> И. Павел  (01.10.2010 19:01:01)  [1]

Вместо TLabel TDbText и связать с полем, вряд ли предодавателя интересует
вывод из одной записи, произвольной.


Anatoly Podgoretsky   (2010-10-01 19:49:00) [8]

> Первокурсница  (01.10.2010 19:14:02)  [2]

А мы надеялись, что это уже диплом.


Первокурсница   (2010-10-01 19:14:00) [9]

Большое спасибо =)
Нет, это всего лишь лаба, причем всего лишь 4ая из 8ми, с каждым разом будет все сложнее и сложнее (ну это для меня разумеется сложнее)  =(


И. Павел   (2010-10-01 19:01:00) [10]

Работа с word из delphi:
1. Кратко, основы: http://www.codeguru.com.ua/article/a-177.html
2. Подробнее: http://www.kornjakov.ru/stat.htm#s4

Чтобы отобразить результат запроса в label, пишите так:

label1.caption := ADOQuery1.FieldByName('имя нужного поля').AsString;
Значение будет взято из текущей записи выборки.
В вашем случае 'имя нужного поля' = PhoneNum


> На защиту преподаватель дал следующее задание:

Надеюсь, [0] - это не диплом :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо