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

📄 gz_jji.pas

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

interface

uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, Db, Mask, DBCtrls,
  Provider, DBClient, ObeyTable, jpeg, MyGrid, FormStore, AdoCodeEd, ComCtrls,
  StoreForm, ADODB, ADOQry, FormPanel;

type
  TfrmGz_JjI = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TMyGrid;
    Panel1: TPanel;
    cmdSave: TBitBtn;
    cmdExit: TBitBtn;
    Label1: TLabel;
    Image1: TImage;
    qryDept: TADOQry;
    qryDeptCode: TStringField;
    qryDeptLongName: TStringField;
    Label2: TLabel;
    cedDept: TAdoCodeEd;
    Label3: TLabel;
    dpDate: TDateTimePicker;
    Panel2: TPanel;
    rbOrderByID: TRadioButton;
    rbOrderByCode: TRadioButton;
    Label4: TLabel;
    qryGz_Jj: TADOQry;
    qryGz_JjID: TIntegerField;
    qryGz_JjFDate: TDateTimeField;
    qryGz_JjEmpID: TIntegerField;
    qryGz_JjGxID: TIntegerField;
    qryGz_JjPerCost: TFloatField;
    qryGz_JjAmount: TFloatField;
    qryGz_JjCost: TFloatField;
    qryGz_JjGxCode: TStringField;
    qryGz_JjGxName: TStringField;
    qryGz_JjGxCostNum: TIntegerField;
    qryGz_JjCode: TStringField;
    qryGz_JjName: TStringField;
    cdsInput: TClientDataSet;
    cdsInputID: TIntegerField;
    cdsInputFDate: TDateTimeField;
    cdsInputEmpID: TIntegerField;
    cdsInputGxID: TIntegerField;
    cdsInputPerCost: TFloatField;
    cdsInputAmount: TFloatField;
    cdsInputCost: TFloatField;
    cdsInputName: TStringField;
    cdsInputCode: TStringField;
    cdsInputGxCode: TStringField;
    cdsInputGxName: TStringField;
    cdsInputGxCostNum: TIntegerField;
    qrySave: TADOQry;
    qrySaveID: TIntegerField;
    qrySaveFDate: TDateTimeField;
    qrySaveEmpID: TIntegerField;
    qrySaveGxID: TIntegerField;
    qrySavePerCost: TFloatField;
    qrySaveAmount: TFloatField;
    qrySaveCost: TFloatField;
    qryEmp: TADOQuery;
    DataSource2: TDataSource;
    qryEmpCode: TStringField;
    qryEmpName: TStringField;
    panEmp: TFormPanel;
    DBGrid2: TDBGrid;
    panZlGx: TFormPanel;
    DBGrid3: TDBGrid;
    DataSource3: TDataSource;
    qryZlGx: TADOQuery;
    qryZlGxID: TAutoIncField;
    qryZlGxCode: TStringField;
    qryZlGxName: TStringField;
    qryZlGxUnit: TStringField;
    qryZlGxCostNum: TIntegerField;
    qryZlGxPerCost: TBCDField;
    qryEmpID: TAutoIncField;
    panSum: TPanel;
    procedure cmdExitClick(Sender: TObject);
    procedure cmdSaveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cedDeptCodeChange(Sender: TObject);
    procedure rbOrderByIDClick(Sender: TObject);
    procedure dpDateExit(Sender: TObject);
    procedure cedDeptGetDisplayText(Sender: TObject;
      var sDisplayText: String);
    procedure qryGz_JjAfterOpen(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure panZlGxExit(Sender: TObject);
    procedure DBGrid1EditButtonClick(Sender: TObject);
    procedure cdsInputCodeChange(Sender: TField);
    procedure DBGrid2DblClick(Sender: TObject);
    procedure DBGrid3DblClick(Sender: TObject);
    procedure cdsInputGxCodeChange(Sender: TField);
    procedure cdsInputPerCostChange(Sender: TField);
    procedure cdsInputAmountChange(Sender: TField);
    procedure cdsInputBeforePost(DataSet: TDataSet);
    procedure qrySaveNewRecord(DataSet: TDataSet);
    procedure cdsInputNewRecord(DataSet: TDataSet);
    procedure cdsInputAfterDelete(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmGz_JjI: TfrmGz_JjI;

implementation

uses RptExcel, SelfFunc, Main, MainData;

{$R *.DFM}

procedure TfrmGz_JjI.cmdExitClick(Sender: TObject);
begin
	Close;
end;

procedure TfrmGz_JjI.cmdSaveClick(Sender: TObject);
var i,nFields :integer;
begin
	if not cdsInput.Active then Exit;
    if cdsInput.State in [dsInsert,dsEdit] then cdsInput.Post;

 cdsInput.DisableControls;
 	cdsInput.AggregatesActive :=False;
    for i :=cdsInput.Aggregates.Count -1 downto 0 do
    	cdsInput.Aggregates[i].Active :=False;
 try
	cdsInput.IndexFieldNames :='ID';
    nFields :=qrySave.FieldCount;
    //Edit,Delete
    if not qrySave.IsEmpty then qrySave.First;
    while not qrySave.Eof do
    begin
    	if not cdsInput.Locate('ID', qrySaveID.Value, []) then
        begin
        	qrySave.Delete;
            Continue;
        end;
        qrySave.Edit;
        for i :=1 to nFields-1 do
          if qrySave.Fields[i].Value <>cdsInput.Fields[i].Value then
          	qrySave.Fields[i].Value :=cdsInput.Fields[i].Value;
        qrySave.Post;

    	qrySave.Next;
    end;
    //Insert
    if not cdsInput.IsEmpty then cdsInput.First;
    while not cdsInput.Eof do
    begin
      if cdsInputID.Value =0 then
      begin
        qrySave.Append;
        for i :=1 to nFields-1 do
          qrySave.Fields[i].Value :=cdsInput.Fields[i].Value;
        qrySave.Post;
      end;
      cdsInput.Next;
    end;
    qrySave.UpdateBatch();

    cdsInput.Close;
    rbOrderByCode.OnClick(nil);
    qryGz_jj.Close;
    qryGz_jj.Open;
 finally
 	cdsInput.EnableControls;
 end;
end;

procedure TfrmGz_JjI.FormCreate(Sender: TObject);
var ts :string;
	n :integer;
begin
	if frmMain.czyQxDept <>'' then //场

⌨️ 快捷键说明

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