⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gz_daye.pas

📁 感应IC卡电脑考勤、门禁、售饭一卡通管理系统是基于我公司开发生产的ESW型智能卡记录器所具有的对持卡人刷卡卡号、时间、次数进行读取贮存等功能
💻 PAS
字号:
unit Gz_DayE;

interface

uses Gz_DayE2,
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, DBCtrls, ExtCtrls, Db, ObeyTable, Buttons,
  CodeEd, OleCtnrs, Grids, DBGrids, ADODB, ADOQry, AdoCodeEd;

type
  TfrmGz_DayE = class(TForm)
    DBGrid1: TDBGrid;
    qryGz_Jj: TADOQry;
    DataSource2: TDataSource;
    qryGz_JjID: TIntegerField;
    qryGz_JjFDate: TDateTimeField;
    qryGz_JjEmpID: TIntegerField;
    qryGz_JjGxID: TIntegerField;
    qryGz_JjPerCost: TFloatField;
    qryGz_JjAmount: TFloatField;
    qryGz_JjCost: TFloatField;
    qryGz_JjCode: TStringField;
    qryGz_JjName: TStringField;
    panFooter: TPanel;
    panGz_Day: TPanel;
    qryEdit: TADOQry;
    qryEditID: TIntegerField;
    qryEditFDate: TDateTimeField;
    qryEditEmpID: TIntegerField;
    qryEditG_jj: TFloatField;
    DataSource1: TDataSource;
    qryG_Hsxm: TADOQry;
    qryG_HsxmCode: TStringField;
    qryG_HsxmName: TStringField;
    qryG_HsxmFDataType: TSmallintField;
    qryG_HsxmFDataLen: TSmallintField;
    qryEmp: TADOQry;
    qryEmpID: TIntegerField;
    qryEmpCode: TStringField;
    qryEmpName: TStringField;
    Label11: TLabel;
    Label12: TLabel;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    Label13: TLabel;
    Label14: TLabel;
    DBEdit13: TDBEdit;
    DBEdit14: TDBEdit;
    Label15: TLabel;
    Label16: TLabel;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    Label17: TLabel;
    Label18: TLabel;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    Label19: TLabel;
    Label20: TLabel;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    Label21: TLabel;
    Label22: TLabel;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    Label23: TLabel;
    Label24: TLabel;
    DBEdit23: TDBEdit;
    DBEdit24: TDBEdit;
    Label25: TLabel;
    Label26: TLabel;
    DBEdit25: TDBEdit;
    DBEdit26: TDBEdit;
    cmdJjDel: TBitBtn;
    cmdJjEdit: TBitBtn;
    cmdJjAdd: TBitBtn;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    panHeader: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    cmdOK: TBitBtn;
    cmdCancel: TBitBtn;
    cedEmpCode: TAdoCodeEd;
    edEmpName: TEdit;
    cmdAdd: TBitBtn;
    Bevel1: TBevel;
    qryGz_JjCostNum: TIntegerField;
    qrySysSet: TADOQry;
    qrySysSetIfGzjjSys: TBooleanField;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure qryEditNewRecord(DataSet: TDataSet);
    procedure cmdJjAddClick(Sender: TObject);
    procedure cmdJjEditClick(Sender: TObject);
    procedure cmdJjDelClick(Sender: TObject);
    procedure cedEmpCodeCodeChange(Sender: TObject);
    procedure qryGz_JjNewRecord(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure cmdAddClick(Sender: TObject);
    procedure cmdOKClick(Sender: TObject);
    procedure qryGz_JjAfterDelete(DataSet: TDataSet);
    procedure qryGz_JjAfterPost(DataSet: TDataSet);
    procedure qryGz_JjAmountChange(Sender: TField);
  private
    { Private declarations }
  	lIsNew :Boolean;
    nEmpID :integer;
    dDate :TDate;
    dlgGz_DayE2 :TfrmGz_DayE2;
    procedure FModify();
	procedure SetHsxmEdit(oDataSet:TDataSet; nCompID:integer; oHsxmDs:TDataSet);
  public
	{ Public declarations }
	Function Add():Boolean;
	Function Edit():Boolean;
  end;

var
  frmGz_DayE: TfrmGz_DayE;

implementation

uses SelfFunc, Gz_Day;

{$R *.DFM}

procedure TfrmGz_DayE.SetHsxmEdit(oDataSet:TDataSet; nCompID:integer; oHsxmDs:TDataSet);
var ts :string;
	oLabel :TLabel;
    oDBEdit :TDBEdit;
    oField :TField;
begin
	//oHsxmDs.First;
	while not oHsxmDs.Eof do
	begin
		with oDataSet.FieldDefs.AddFieldDef do
		begin
			Name := oHsxmDs.FieldByName('Code').AsString;
            if oHsxmDs.FieldByName('FDataType').AsInteger =1 then
            	DataType := ftFloat
            else if oHsxmDs.FieldByName('FDataType').AsInteger =2 then
            begin
				DataType := ftString;
                Size := oHsxmDs.FieldByName('FDataLen').AsInteger;
            end
            else if oHsxmDs.FieldByName('FDataType').AsInteger =3 then
            	DataType := ftDateTime;
			oField :=CreateField(oDataSet);
		end;

		ts :=IntToStr(nCompID);
		oLabel :=(FindComponent('Label' +ts) AS TLabel);
		oLabel.Caption := oHsxmDs.FieldByName('Name').AsString;
		oLabel.Visible :=True;
		oDBEdit :=(FindComponent('DBEdit' +ts) AS TDBEdit);
		oDBEdit.DataField := oHsxmDs.FieldByName('Code').AsString;
		oDBEdit.Visible :=True;

        if oField is TDateTimeField then
        	oDBEdit.MaxLength :=10;

		nCompID :=nCompID +1;
		oHsxmDs.Next;
	end;
end;

procedure TfrmGz_DayE.FModify();
begin
    with qryEdit do
    begin
    	Close;
        Parameters[0].Value :=nEmpID;
        Parameters[1].Value :=dDate;
        Open;
	end;
    with qryGz_Jj do
    begin
    	Close;
        Parameters[0].Value :=nEmpID;
        Parameters[1].Value :=dDate;
        Open;
	end;
end;

Function TfrmGz_DayE.Add():Boolean;
begin
	lIsNew :=True;

    dDate :=TfrmGz_Day(Owner).dpDate.Date;

    qryEdit.Close;
    qryGz_Jj.Close;

    cedEmpCode.CodeText :='';
    
    Self.ActiveControl :=cedEmpCode;
    Self.ShowModal();
    Result :=(cmdOK.Tag >0);
end;

Function TfrmGz_DayE.Edit():Boolean;
begin
	lIsNew :=False;

    with TfrmGz_Day(Owner) do
    begin
    	cedEmpCode.Text :=qryBrowseCode.Value;
        edEmpName.Text :=qryBrowseName.Value;

    	nEmpID :=qryBrowseEmpID.Value;
    	dDate :=dpDate.Date;
    end;
    FModify();

    cmdAdd.Visible :=False;
    cedEmpCode.Enabled :=False;

    Self.ActiveControl :=cmdCancel;
    Result :=(Self.ShowModal() =mrOK);
    
    cmdAdd.Visible :=True;
    cedEmpCode.Enabled :=True;
end;

procedure TfrmGz_DayE.FormKeyPress(Sender: TObject; var Key: Char);
begin
	if Key =#13 then
    begin
    	Key :=#0;
        Self.SelectNext(Self.ActiveControl, True,True);
    end;
end;

procedure TfrmGz_DayE.qryEditNewRecord(DataSet: TDataSet);
begin
	NewRecDefa(qryEdit, ['EmpID', nEmpID,  'FDate', dDate]);
end;

procedure TfrmGz_DayE.cmdJjAddClick(Sender: TObject);
begin
	if not qryGz_Jj.Active then Exit;

	qryGz_Jj.Append;
	if dlgGz_DayE2.Edit() then
    begin
    	{if lIsNew then cmdAdd.SetFocus
    	else cmdOK.SetFocus;}
    end;
end;

procedure TfrmGz_DayE.cmdJjEditClick(Sender: TObject);
begin
	if qryGz_Jj.IsEmpty then MessageBeep(0)
    else dlgGz_DayE2.Edit();
end;

procedure TfrmGz_DayE.cmdJjDelClick(Sender: TObject);
begin
	if qryGz_Jj.IsEmpty then MessageBeep(0)
	else qryGz_Jj.Delete;
end;

procedure TfrmGz_DayE.cedEmpCodeCodeChange(Sender: TObject);
begin
	nEmpID :=qryEmpID.Value;
    edEmpName.Text :=qryEmpName.Value;
    FModify();
end;

procedure TfrmGz_DayE.qryGz_JjNewRecord(DataSet: TDataSet);
begin
	NewRecDefa(qryGz_Jj, ['EmpID', nEmpID,  'FDate', dDate]);
end;

procedure TfrmGz_DayE.FormCreate(Sender: TObject);
begin
	dlgGz_DayE2 :=TfrmGz_DayE2.Create(Self);

    if not qrySysSetIfGzjjSys.Value then //礚璸ン
    begin
    	DBGrid1.Visible :=False;
        panFooter.Visible :=False;
    end;
	if qryG_Hsxm.IsEmpty then panGz_Day.Visible :=False
	else SetHsxmEdit(qryEdit, 11, qryG_Hsxm); //砞竚

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -