![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Экспортировать отчёт из 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] - это не диплом :)