📄 uprint.pas
字号:
unit uPrint;
interface
uses
{ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ADOdb, Db, DBTables, printers, qrextra, QRExport,
qrprntr, Buttons ;}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, quickrpt, Db, DBTables, printers, qrextra, QRExport,
qrprntr, Buttons;
type
TfrmPrint = class(TForm)
GroupBoxRepSel: TGroupBox;
Description: TMemo;
Image2: TImage;
btnPrint: TBitBtn;
btnPreview: TBitBtn;
BitBtnClose: TBitBtn;
rbStudent: TRadioButton;
rbCourse: TRadioButton;
rbAcountGr: TRadioButton;
rbDetailGr: TRadioButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtnCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnPreviewClick(Sender: TObject);
procedure rbStudentClick(Sender: TObject);
procedure rbDetailGrClick(Sender: TObject);
procedure rbCourseClick(Sender: TObject);
procedure rbAcountGrClick(Sender: TObject);
private
{ Private declarations }
procedure AppException(Sender: TObject; E: Exception);
public
{ Public declarations }
Report : TCustomQuickRep ;
end;
var
frmPrint: TfrmPrint;
implementation
uses uDm, uStuGrRep ;
{$R *.dfm}
procedure TfrmPrint.AppException(Sender: TObject; E: Exception);
begin
if DMSchool.ADOConn.InTransaction then
DMSchool.ADOConn.RollbackTrans ; // 事务回退
if Copy(E.Message,1,3) = 'ORA' then
begin
Application.MessageBox(PChar('数据库错误,重试!' + #13
+ '出错信息:' + Copy(E.Message,11, Length(E.Message)-10)),
'校验信息', MB_OK+MB_ICONInformation);
Exit;
end;
Application.MessageBox(PChar('运行错误!' + #13
+ '出错信息:' + E.Message), '出错信息', MB_ICONSTOP);
end;
procedure TfrmPrint.FormCreate(Sender: TObject);
begin
Application.OnException := AppException;
end;
procedure TfrmPrint.BitBtnCloseClick(Sender: TObject);
begin
Close ;
end;
procedure TfrmPrint.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmPrint.btnPreviewClick(Sender: TObject);
begin
// This code is more complicated than what you would
// typically need to run a report. Most of this code
// is to handle the selection of the various types of
// reports.
if Report = nil then
begin
Application.MessageBox('未指定报表,请选择!',
'出错信息',MB_ICONSTOP);
Abort;
end ;
if Sender = btnPreview then
Report.Preview
else
if Sender = btnPrint then
Report.Print;
end;
procedure TfrmPrint.rbStudentClick(Sender: TObject);
begin
Application.MessageBox('此报表尚未开发!',
'提示信息',MB_ICONINFORMATION);
btnPrint.Enabled := false ;
btnPreview.Enabled := false ;
Abort;
end;
procedure TfrmPrint.rbCourseClick(Sender: TObject);
begin
Application.MessageBox('此报表尚未开发!',
'提示信息',MB_ICONINFORMATION);
btnPrint.Enabled := false ;
btnPreview.Enabled := false ;
Abort;
end;
procedure TfrmPrint.rbDetailGrClick(Sender: TObject);
begin
btnPrint.Enabled := true ;
btnPreview.Enabled := true ;
Application.CreateForm(TfrmStuGrRep, frmStuGrRep);
Report := frmStuGrRep.QuickRep1;
end;
procedure TfrmPrint.rbAcountGrClick(Sender: TObject);
begin
Application.MessageBox('此报表尚未开发!',
'提示信息',MB_ICONINFORMATION);
btnPrint.Enabled := false ;
btnPreview.Enabled := false ;
Abort;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -