2,507
社区成员




unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB,
Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, frxClass, frxDBSet;
type
TForm1 = class(TForm)
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Edit1: TEdit;
frxReport1: TfrxReport;
frxDBDataset1: TfrxDBDataset;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := Edit1.Text;
ADOQuery1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
frxmd: TfrxMasterData;
frxpage:TfrxReportPage;
i: Integer;
begin
if ADOQuery1.IsSequenced = False then
Exit;
if ADOQuery1.IsEmpty then
Exit;
frxDBDataset1.DataSet := ADOQuery1;
frxDBDataset1.UserName := 'myDb';
frxReport1.Clear;
frxReport1.DataSets.Clear;
frxReport1.DataSets.Add(frxDBDataset1);
Frxpage:=TfrxReportPage.Create(frxReport1);
frxpage.Name:='page1';
Frxpage.PaperWidth:=200;
frxpage.PaperHeight:=300;
frxmd:=TfrxMasterData.Create(Frxpage);
frxmd.Name:='mt1';
frxmd.Height:=30;
frxmd.DataSet := frxDBDataset1;
for i := 0 to ADOQuery1.Fields.Count - 1 do
begin
with TfrxMemoView.Create(frxmd) do
begin
Align:= baLeft;
Width:=80;
Height:=30;
Name := 'Memo' + IntToStr(i);
Memo.Text:=Format('[myDb."%s"]',[ADOQuery1.Fields[i].FieldName]);
Frame.Typ:=[ftTop,ftLeft,ftRight,ftBottom];
end;
end;
frxReport1.ShowReport();
end;
end.