uemployeecard.pas
来自「说明: 比较简单的人事档案管理程序,包含了人事档案的大部分功能,做人事档案的兄」· PAS 代码 · 共 249 行
PAS
249 行
unit UEmployeeCard;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGridEh, PrnDbgeh, RpDefine, RpRave, RpBase, RpFiler,
RpRender, RpRenderCanvas, RpRenderPreview, RpCon, RpConDS, StdCtrls,
Buttons, RpSystem, RpRenderPrinter, Menus, RpRenderRTF, RpRenderHTML,
RpRenderPDF;
type
TForm_EmployeeCard = class(TForm)
RvProject1:TRvProject;
RvDataSetConnection1:TRvDataSetConnection;
RvRenderPreview1:TRvRenderPreview;
RvNDRWriter1:TRvNDRWriter;
ScrollBox1:TScrollBox;
BTNextPage:TBitBtn;
BTPrvPage:TBitBtn;
BTPinterSet:TBitBtn;
BTPrinting:TBitBtn;
NowPage:TEdit;
LBPage:TLabel;
RvRenderPrinter1:TRvRenderPrinter;
BitBtn1:TBitBtn;
BitBtn2:TBitBtn;
BitBtn4:TBitBtn;
PrinterSetupDialog1:TPrinterSetupDialog;
BBOutToFile:TBitBtn;
Label1:TLabel;
PopupMenu1:TPopupMenu;
N1:TMenuItem;
N2:TMenuItem;
N3:TMenuItem;
N4:TMenuItem;
N5:TMenuItem;
N6:TMenuItem;
N7:TMenuItem;
N8:TMenuItem;
N9:TMenuItem;
N10:TMenuItem;
N11:TMenuItem;
HTML1:TMenuItem;
PDF1:TMenuItem;
RTF1:TMenuItem;
SaveDlg:TSaveDialog;
RvRenderPDF1:TRvRenderPDF;
RvRenderHTML1:TRvRenderHTML;
RvRenderRTF1:TRvRenderRTF;
BitBtn3: TBitBtn;
procedure FormShow(Sender:TObject);
procedure BTNextPageClick(Sender:TObject);
procedure BTPrvPageClick(Sender:TObject);
procedure BitBtn1Click(Sender:TObject);
procedure BitBtn2Click(Sender:TObject);
procedure BitBtn3Click(Sender:TObject);
procedure BTPrintingClick(Sender:TObject);
procedure BitBtn4Click(Sender:TObject);
procedure BTPinterSetClick(Sender:TObject);
procedure N1Click(Sender:TObject);
procedure N2Click(Sender:TObject);
procedure N4Click(Sender:TObject);
procedure N5Click(Sender:TObject);
procedure N6Click(Sender:TObject);
procedure HTML1Click(Sender:TObject);
procedure PDF1Click(Sender:TObject);
procedure RTF1Click(Sender:TObject);
procedure BBOutToFileClick(Sender: TObject);
private
{ Private declarations }
NDRStream:TMemoryStream;
public
{ Public declarations }
end;
var
Form_EmployeeCard:TForm_EmployeeCard;
implementation
uses Umain,UOutputFile;
{$R *.dfm}
procedure TForm_EmployeeCard.FormShow(Sender:TObject);
begin
rvproject1.Engine := RvNDRWriter1;
//设置RAVE文件的路径
RvNDRWriter1.FileName := Form_Main.AppPath + 'data\demo.ndr';
//建立内存流
NDRStream := TMemoryStream.Create;
//输出报表数据
RvProject1.Execute;
//将报表数据调入内存流中供预览
NDRStream.LoadFromFile(Form_main.AppPath + 'data\demo.ndr');
//预览相应的报表,使用的是相应的内存流。
RvRenderPreview1.Render(NDRStream);
rvrenderprinter1.NDRStream := NDRStream;
// ShowButton();
//直接跳转到当前指定的记录
RvRenderPreview1.RenderPage(form_main.ADOQDBGrid.RecNo);
NowPage.Text := inttostr(form_main.ADOQDBGrid.RecNo);
LBPage.Caption := inttostr(form_main.ADOQDBGrid.RecNo) + '/' +
inttostr(form_main.ADOQDBGrid.RecordCount);
end;
procedure TForm_EmployeeCard.BTNextPageClick(Sender:TObject);
begin
RvRenderPreview1.NextPage;
if strtoint(NowPage.Text) >= form_main.ADOQDBGrid.RecordCount then
NowPage.Text := '1'
else
NowPage.Text := inttostr(strtoint(NowPage.Text) + 1);
end;
procedure TForm_EmployeeCard.BTPrvPageClick(Sender:TObject);
begin
RvRenderPreview1.PrevPage;
if strtoint(NowPage.Text) <= 1 then
NowPage.Text := inttostr(form_main.ADOQDBGrid.RecordCount)
else
NowPage.Text := inttostr(strtoint(NowPage.Text) - 1);
end;
procedure TForm_EmployeeCard.BitBtn1Click(Sender:TObject);
begin
RvRenderPreview1.ZoomIn;
end;
procedure TForm_EmployeeCard.BitBtn2Click(Sender:TObject);
begin
RvRenderPreview1.ZoomOut;
end;
procedure TForm_EmployeeCard.BitBtn3Click(Sender:TObject);
begin
{
RvRenderPreview1.ZoomPageWidthFactor:=1;
RvRenderPreview1.ZoomPageFactor:=1;
}
end;
procedure TForm_EmployeeCard.BTPrintingClick(Sender:TObject);
begin
rvrenderprinter1.RenderPage(Form_Main.ADOQDBGrid.RecNo);
end;
procedure TForm_EmployeeCard.BitBtn4Click(Sender:TObject);
begin
rvrenderprinter1.Render(NDRStream);
end;
procedure TForm_EmployeeCard.BTPinterSetClick(Sender:TObject);
begin
PrinterSetupDialog1.Execute;
// RvRenderPreview1.
end;
procedure TForm_EmployeeCard.N1Click(Sender:TObject);
begin
BTPrvPageClick(sender);
end;
procedure TForm_EmployeeCard.N2Click(Sender:TObject);
begin
BTNextPageClick(Sender);
end;
procedure TForm_EmployeeCard.N4Click(Sender:TObject);
begin
BTPinterSetClick(Sender);
end;
procedure TForm_EmployeeCard.N5Click(Sender:TObject);
begin
BTPrintingClick(Sender);
end;
procedure TForm_EmployeeCard.N6Click(Sender:TObject);
begin
BitBtn4Click(Sender);
end;
procedure TForm_EmployeeCard.HTML1Click(Sender:TObject);
begin
try
saveDlg.InitialDir := Form_Main.AppPath;
saveDlg.Filter := '*.HTML|*.html|*.HTML|*.html';
Savedlg.DefaultExt := '.html';
if (savedlg.Execute = true) then
begin
RvRenderHTML1.OutputFileName := savedlg.FileName;
RvRenderHTML1.Render(NDRstream);
showMessage('保存成功!');
end;
except // wrap up
showMessage('保存失败!');
end; // try/finally
end;
procedure TForm_EmployeeCard.PDF1Click(Sender:TObject);
begin
try
saveDlg.InitialDir := Form_Main.AppPath;
saveDlg.Filter := '*.pdf|*.pdf';
Savedlg.DefaultExt := '.pdf';
if (savedlg.Execute = true) then
begin
RvRenderPDF1.OutputFileName := savedlg.FileName;
RvRenderPDF1.Render(NDRstream);
showMessage('保存成功!');
end;
except // wrap up
showMessage('保存失败!');
end; // try/finally
end;
procedure TForm_EmployeeCard.RTF1Click(Sender:TObject);
begin
try
saveDlg.InitialDir := Form_Main.AppPath;
saveDlg.Filter := 'rtf文件|*.rtf';
Savedlg.DefaultExt := '.rtf';
if (savedlg.Execute = true) then
begin
RvRenderrtf1.OutputFileName := savedlg.FileName;
RvRenderrtf1.Render(NDRstream);
showMessage('保存成功!');
end;
except // wrap up
showMessage('保存失败!');
end; // try/finally
end;
procedure TForm_EmployeeCard.BBOutToFileClick(Sender: TObject);
var i:integer;
begin
Form_OutputFile:=TForm_OutputFile.Create(self);
Form_OutputFile.ShowModal;
case strtoint(Form_OutputFile.Edit1.Text) of
1: HTML1Click(Sender);
2: PDF1Click(sender);
3: RTF1Click(sender);
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?