📄 printcard.pas
字号:
unit PrintCard;
interface
uses
Windows, Messages, SysUtils,Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,printers,Grids, ComCtrls, Buttons, RXCtrls,
DB, ADODB, XPMenu;
type
TPrintC = class(Tform)
Image2: TImage;
Label1: TLabel;
Label18: TLabel;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
GroupBox1: TGroupBox;
Label2: TLabel;
ComboBox1: TComboBox;
Label4: TLabel;
ComboBox2: TComboBox;
Label3: TLabel;
Edit1: TEdit;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
BitBtn3: TBitBtn;
Bevel1: TBevel;
BitBtn4: TBitBtn;
Label5: TLabel;
Label6: TLabel;
GetTitle: TADOTable;
XPMenu1: TXPMenu;
ADOQuery1: TADOQuery;
PreviewTable: TADOTable;
GetFieldsNameTable: TADOTable;
procedure onclose(Sender: TObject; var Action: TCloseAction);
procedure onclick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure onchange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PrintC: TPrintC;
implementation
uses printView, MainFormUnit, MainDataModule;
{$R *.dfm}
procedure TPrintC.onclose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TPrintC.onclick(Sender: TObject);
begin
groupbox1.Enabled:=radiobutton2.Checked;
label2.Enabled:=radiobutton2.Checked;
label3.Enabled:=radiobutton2.Checked;
label4.Enabled:=radiobutton2.Checked;
edit1.Enabled:=radiobutton2.Checked;
combobox1.Enabled:=radiobutton2.Checked;
combobox2.Enabled:=radiobutton2.Checked;
bitbtn1.Enabled:=radiobutton1.Checked;
bitbtn2.Enabled:=radiobutton1.Checked;
if radiobutton2.Checked then edit1.text:='';
end;
procedure TPrintC.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure TPrintC.BitBtn4Click(Sender: TObject);
begin
gethelp;
end;
procedure TPrintC.FormCreate(Sender: TObject);
var
ListFields:string;
TitleName:string;
TitleCount:integer;
begin
try
ComboBox1.Clear;
ListFields:=ListFieldsSelect+','; //不改变原初始值
GetTitle.Active:=false;
Gettitle.TableName:='FieldsNewName';
GetTitle.Active:=true;
while pos(',',ListFields)>0 do
begin
TitleCount:=pos(',',ListFields);
TitleName:=copy(ListFields,1,titlecount-1);
TitleName:=GetTitle.Fieldbyname(Titlename).asstring;
combobox1.Items.Add(TitleName);
ListFields:=copy(ListFields,titlecount+1,length(listfields));
end;
ComboBox1.ItemIndex:=0;
ComboBox2.ItemIndex:=0;
Edit1.Text:='';
except
MessageBox(Handle,'数据库占用或非法操作!','系统信息',MB_OK+MB_ICONWARNING);
exit;
end;
GetTitle.Active:=false;
//初始化查询及报表
with Printv do
begin
try
previewtable.Active:=false;
previewtable.TableName:='FieldsNewName';
previewtable.Active:=true;
with PreviewTable do
begin
previewBh.Caption:=fields[0].asstring;
PreviewName.Caption:=fields[2].asstring;
previewId.Caption:=fields[1].asstring;
previewSex.Caption:=fields[3].asstring;
previewHome.Caption:=fields[5].asstring;
previewCompany.Caption:=fields[6].asstring;
previewAddress.Caption:=fields[8].asstring;
previewTime.Caption:=fields[9].asstring;
PrintBh.DataField:='编号';
PrintName.DataField:='姓名';
PrintId.DataField:='身份证号';
printHome.DataField:='户籍地址';
PrintAddress.DataField:='暂住地址';
PrintCompany.DataField:='工作单位';
PrintSex.DataField:='性别';
PrintTime.DataField:='暂住时间';
PrintBh.DataSet:=ADOquery1;
PrintName.DataSet:=ADOquery1;
PrintId.DataSet:=ADOquery1;
printHome.DataSet:=ADOquery1;
PrintAddress.DataSet:=ADOquery1;
PrintCompany.DataSet:=ADOquery1;
PrintSex.DataSet:=ADOquery1;
PrintTime.DataSet:=ADOquery1;
end;
except;
end;
TitleName.Caption:=MainAppPrintTitle;
Quickrep1.ReportTitle:=MainAppPrintTitle;
MemoString.Caption:=MainAppPrintMemo;
QuickRep1.DataSet:=ADOquery1;
end;
end;
procedure TPrintC.BitBtn2Click(Sender: TObject);
var
fstr,OldFieldsTitle:string;
i:integer;
begin
if radiobutton1.Checked then
begin
try
with ADOQuery1 do
begin
close;
sql.clear;
sql.Add('select');
sql.Add(ListFieldsSelect);
sql.Add('from MainDataTable order by 编号');
open;
end;
except
messageBox(Handle,'打开数据库失败!','系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
exit;
end;
end else
begin
try
//回朔标题
GetFieldsNameTable.Active:=false;
GetFieldsNameTable.TableName:='FieldsNewName';
GetFieldsNameTable.Active:=true;
for i:=0 to GetFieldsNameTable.FieldCount-1 do
begin
if GetFieldsNameTable.Fields[i].asstring=combobox1.Text then
begin
OldFieldsTitle:=GetFieldsNameTable.Fields[i].FieldName;
end;
end;
if combobox1.ItemIndex<>0 then
begin
case ComboBox2.ItemIndex of
0: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'='''+edit1.text+''' order by '+OldFieldsTitle;
1: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+' like ''%'+edit1.text+'%'' order by '+OldFieldsTitle;
2: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'>'''+edit1.text+''' order by '+OldFieldsTitle;
3: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<'''+edit1.text+''' order by '+OldFieldsTitle;
4: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<>'''+edit1.text+''' order by '+OldFieldsTitle;
end;
end else
begin
case ComboBox2.ItemIndex of
0: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'='+edit1.text+' order by '+OldFieldsTitle;
1: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+' like ''%'+edit1.text+'%'' order by '+OldFieldsTitle;
2: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'>'+edit1.text+' order by '+OldFieldsTitle;
3: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<'+edit1.text+' order by '+OldFieldsTitle;
4: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<>'+edit1.text+' order by '+OldFieldsTitle;
end;
end;
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add(fstr);
Prepared;
Open;
mainform.StatusBar1.Panels[3].Text:='查询记录数:'+inttostr(RecordCount);
end;
except
messageBox(Handle,'打开数据库失败!','系统提示',MB_ok+MB_ICONWARNING+MB_DEFBUTTON1+MB_SYSTEMmodal);
exit;
end;
end;
if sender = bitbtn2 then
printv.QuickRep1.preview
else
printv.QuickRep1.Print;
end;
procedure TPrintC.onchange(Sender: TObject);
begin
if (edit1.Text='') and (combobox1.ItemIndex=0) then
begin
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
end else
begin
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -