📄 gz_jji.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 + -