📄 ydgz.pas
字号:
unit Ydgz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, Grids, DBGrids, ActnList, GzEdit, ADODB,
ComCtrls, GZGLCommon, Menus;
type
TYdgzForm = class(TForm)
dsYdgz: TDataSource;
pnlYdxz: TPanel;
lblSelYear: TLabel;
UpDownYear: TUpDown;
edtYear: TEdit;
btOK: TButton;
cbMonth: TComboBox;
dbYdgz: TDBGrid;
lblSelMonth: TLabel;
pnlToolBar: TPanel;
btDel: TButton;
alYdgz: TActionList;
acOk: TAction;
acAdd: TAction;
acDel: TAction;
btAdd: TButton;
adoqYdgz: TADOQuery;
adoqYdgzZybh: TStringField;
adoqZyxx: TADOQuery;
adoqYdgzXm: TStringField;
adoqYdgzJbgz: TFloatField;
adoqYdgzZwgz: TFloatField;
adoqYdgzBt: TFloatField;
adoqYdgzKq: TFloatField;
adoqYdgzSqgz: TFloatField;
adoqYdgzSj: TFloatField;
adoqYdgzSfgz: TFloatField;
adoqYdgzNd: TIntegerField;
adoqYdgzYd: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure acOkExecute(Sender: TObject);
procedure acAddExecute(Sender: TObject);
procedure acDelExecute(Sender: TObject);
procedure alYdgzUpdate(Action: TBasicAction; var Handled: Boolean);
procedure adoqYdgzCalcFields(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TYdgzForm.FormCreate(Sender: TObject);
var
l_adoq: TADOQuery;
begin
l_adoq := TADOQuery.Create(nil);
with l_adoq do
try
Connection := AdoGzgl;
l_adoq.SQL.Text := 'Select * from GzglField where GridName = ''dbYdgz''';
Open;
InitDBGrid(l_adoq, dbYdgz);
Close;
finally
Free;
end;
with adoqZyxx do
begin
Connection := AdoGzgl;
SQL.Text := 'Select Zybh, Xm From Zyxx';
Open;
end;
end;
procedure TYdgzForm.acOkExecute(Sender: TObject);
begin
if cbMonth.ItemIndex <> -1 then
begin
with adoqYdgz do
begin
Connection := AdoGzgl;
SQL.Text := 'Select * from Ydgz Where ND = ' +
Trim(edtYear.Text) + ' and YD = ' + Trim(cbMonth.Text);
Open;
end;
end
else
ShowMessage('请选择月份!');
end;
procedure TYdgzForm.acAddExecute(Sender: TObject);
begin
with TGzEditForm.Create(self, StrToInt(edtYear.Text), StrToInt(cbMonth.Text)) do
try
ShowModal;
if ModalResult = mrOk then
begin
// 添加到数据库
with adoqYdgz, GzRec do
begin
Append;
FieldByName('Zybh').AsString := Zybh;
FieldByName('Nd').AsInteger := StrToInt(edtYear.Text);
FieldByName('Yd').AsInteger := StrToInt(cbMonth.Text);
FieldByName('Jbgz').AsFloat := Jbgz;
FieldByName('Zwgz').AsFloat := Zwgz;
FieldByName('Bt').AsFloat := Bt;
FieldByName('Kq').AsFloat := Kq;
FieldByName('Sj').AsFloat := Sj;
Post;
end;
end;
finally
Free;
end;
end;
procedure TYdgzForm.acDelExecute(Sender: TObject);
begin
if Application.MessageBox('是否删除此记录?', '确认', 1) = 1 then
adoqYdgz.Delete;
end;
procedure TYdgzForm.FormDestroy(Sender: TObject);
begin
with adoqYdgz do
if Active then Close;
with adoqZyxx do
if Active then Close;
end;
procedure TYdgzForm.alYdgzUpdate(Action: TBasicAction;
var Handled: Boolean);
begin
with adoqYdgz do
begin
acAdd.Enabled := Active;
acDel.Enabled := not (Bof and Eof) and Active;
end;
end;
procedure TYdgzForm.adoqYdgzCalcFields(DataSet: TDataSet);
var
l_Jbgz, l_Zwgz, l_Bt, l_Kq, l_Sj: Double;
begin
with DataSet do
begin
l_Jbgz := FieldByName('Jbgz').AsFloat;
l_Zwgz := FieldByName('Zwgz').AsFloat;
l_Bt := FieldByName('Bt').AsFloat;
l_Kq := FieldByName('Kq').AsFloat;
l_Sj := FieldByName('Sj').AsFloat;
FieldByName('Sqgz').AsFloat := l_Jbgz + l_Zwgz + l_Bt + l_Kq;
FieldByName('Sfgz').AsFloat := l_Jbgz + l_Zwgz + l_Bt + l_Kq - l_Sj;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -