【delphi开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了delphi开源代码-ArchMain.pas的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
//用于管理员工档案的代码,其中包括添加,删除,修改,查询,打印
//主要操作的数据库为StuffTable。
unit ArchMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, Menus, StdCtrls, Buttons, ExtCtrls, Grids,
DBGrids, DBCtrls, Mask;
type
TStuffMain = class(TForm)
PageControl1: TPageControl;
tsInputArch: TTabSheet;
tsMemo: TTabSheet;
tsAdvancedSearch: TTabSheet;
Splitter1: TSplitter;
Splitter2: TSplitter;
Label1: TLabel;
edArchNo: TEdit;
Label2: TLabel;
edName: TEdit;
Label3: TLabel;
Label4: TLabel;
Label7: TLabel;
edDgree: TEdit;
Label8: TLabel;
edPosistion: TEdit;
Label9: TLabel;
Label10: TLabel;
edAdress: TEdit;
Label6: TLabel;
edTelNo: TEdit;
Label11: TLabel;
Label5: TLabel;
gbGender: TComboBox;
gbDepName: TComboBox;
edMemo: TMemo;
Label12: TLabel;
Label13: TLabel;
edCompName: TEdit;
edCompDep: TEdit;
Label16: TLabel;
cbCompOp: TComboBox;
edCompArch: TEdit;
Label14: TLabel;
cbCompGender: TComboBox;
Label17: TLabel;
cbCompBirthday: TComboBox;
Label15: TLabel;
edCompDegree: TEdit;
Label20: TLabel;
cbCompCT: TComboBox;
Label18: TLabel;
Label19: TLabel;
edCompBirthday: TMaskEdit;
edCompJST: TMaskEdit;
edCompJET: TMaskEdit;
edCompCreateTime: TMaskEdit;
edBirthday: TMaskEdit;
edJobStartDate: TMaskEdit;
edJobEndDate: TMaskEdit;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
btNewArch: TBitBtn;
btModifyArch: TBitBtn;
btDelArch: TBitBtn;
btPrintArch: TBitBtn;
btResetArch: TBitBtn;
btSearchArch: TBitBtn;
procedure FormShow(Sender: TObject);
procedure btNewArchClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure btModifyArchClick(Sender: TObject);
procedure btResetArchClick(Sender: TObject);
procedure btDelArchClick(Sender: TObject);
procedure btSearchArchClick(Sender: TObject);
procedure btPrintArchClick(Sender: TObject);
procedure tsAdvancedSearchShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
printPage :String; //指明当前处于哪个页面,根据不同的页面,打印的内容不同
//在形成输入和选择界面时,首先加载可供选择的部门信息
procedure LoadDepName();
//根据情况选择各个按钮的活动状态
procedure SetControlEnable(const nStuff,mStuff,dStuff,rStuff,sStuff,pStuff :Boolean);
end;
var
StuffMain: TStuffMain;
implementation
uses ArchDataClass,ArchDataModule,PrintSetup,printMemo,MainForm;
{$R *.dfm}
//从部门数据库中加载部门信息
procedure TStuffMain.LoadDepName();
var
recordNumber , i: integer;
depName : string;
begin
recordNumber :=MainDataModule.DepTable.RecordCount;
MainDataModule.DepTable.First;
for i :=1 to recordNumber do
begin
depName :=MainDataModule.DepTable.FieldByName('DepName').AsString;
gbDepName.Items.Add(depName);
MainDataModule.DepTable.Next;
end;
end;
procedure TStuffMain.FormShow(Sender: TObject);
begin
//------------------------------------------------
//根据当前最后一条记录的档案号自动生成档案号
MainDataModule.DepTable.Filtered :=false;
LoadDepName;
MainDataModule.StuffTable.Last;
edArchNo.Text :=IntToStr(MainDataModule.StuffTable.FieldByName('ArchiveNo').AsInteger+1);
//----------------------------------------------------------
SetControlEnable(true,false,false,true,false,false);
end;
//----------------------------
//添加一条新的档案记录
//------------------------------
procedure TStuffMain.btNewArchClick(Sender: TObject);
var
StuffInfo :InputStuffInfo;
stuffManager :StuffDBManager;
begin
//创建一个用于管理输入信息的类StuffInfo,
//该类定义于ArchDataClass单元中
StuffInfo :=InputStuffInfo.Create;
//创建一个用于实现数据库操作的类StuffManager,
//该类定义于ArchDataClass单元中
StuffManager :=StuffDBManager.Create;
//合法性检查
if StuffInfo.ValidCheck <> 1 then
begin
if StuffInfo.ValidCheck=2 then
begin
Application.MessageBox('输入的数据类型错误,请重新输入','输入错误',MB_OK);
exit;
end
else
if Application.MessageBox('确认要添加该记录吗','确认操作',MB_OKCANCEL)=1 then
begin
StuffInfo.SetStuffInfo;
StuffManager.AddModifyStuffInfo(1,StuffInfo);
end
end
el