【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了Ddxx.pas提供大家参考,希望对大家有所帮助!
unit Ddxx;
interface
uses
Windows, SysUtils, Variants, Classes, Controls, Forms, Dialogs, ExtCtrls,
Grids, DBGrids, StdCtrls, dmXsgl, XSGLCommon, DB, DdAdd, DdmxAdd;
type
TDdxxForm = class(TForm)
pnlDd: TPanel;
pnlMx: TPanel;
Splitter: TSplitter;
pnlDdxx: TPanel;
btAddDdxx: TButton;
btDelDdxx: TButton;
dbDdxx: TDBGrid;
pnlDdmx: TPanel;
btAddDdmx: TButton;
btDelDdmx: TButton;
dbDdmx: TDBGrid;
btDdmx: TButton;
dsDdxx: TDataSource;
dsDdmx: TDataSource;
procedure btDdmxClick(Sender: TObject);
procedure dsDdxxDataChange(Sender: TObject; Field: TField);
procedure btAddDdxxClick(Sender: TObject);
procedure btDelDdxxClick(Sender: TObject);
procedure btAddDdmxClick(Sender: TObject);
procedure btDelDdmxClick(Sender: TObject);
procedure dsDdmxDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
FdmXSGL: TdmXsgl;
FDdh: string;
public
{ Public declarations }
constructor Create(AOwner: TComponent; AdmXSGL: TdmXsgl); reintroduce;
end;
implementation
{$R *.dfm}
procedure TDdxxForm.btDdmxClick(Sender: TObject);
begin
pnlMX.Visible := not pnlMX.Visible;
if pnlMX.Visible then
btDdmx.Caption := '隐藏订单明细'
else
btDdmx.Caption := '显示订单明细'
end;
constructor TDdxxForm.Create(AOwner: TComponent; AdmXSGL: TdmXsgl);
begin
inherited Create(AOwner);
FdmXSGL := AdmXSGL;
with FdmXSGL.adoqDdxx do
begin
Close;
SQL.Text := 'Select a.*, b.XM From DDXX a, KHXX b Where a.KHBH = b.KHBH';
Open;
end;
with FdmXSGL, adotXSGLFields do
begin
Filtered := False;
Filter := 'GridName = ''Ddxx''';
Filtered := True;
InitDBGrid(adotXSGLFields, dbDdxx);
dsDdxx.DataSet := adoqDdxx;
Filtered := False;
Filter := 'GridName = ''Ddmx''';
Filtered := True;
InitDBGrid(adotXSGLFields, dbDdmx);
dsDdmx.DataSet := adoqDdmx;
end;
end;
procedure TDdxxForm.dsDdxxDataChange(Sender: TObject; Field: TField);
const
conSQL = 'select a.ID, a.DDH, a.CPBM, a.SL, a.ZK, b.PM, b.XH, b.DW, b.DJ, ' +
'(a.SL * a.ZK * b.DJ) as HJ from DDMX a, CPXX b ' +
'where a.CPBM = b.CPBM and a.DDH = ''%S''';
begin
with FdmXsgl.adoqDdxx do
begin
if RecordCount <> 0 then
begin
btDelDdxx.Enabled := True;
with FdmXSGL, adoqDdmx do
begin
if FDdh <> adoqDdxx.FieldByName('DDH').AsString then
FDdh := adoqDdxx.FieldByName('DDH').AsString;
Close;
SQL.Text := Format(conSQL, [FDdh]);
Open;
end;
end
else
btDelDdxx.Enabled := False
end;
end;
procedure TDdxxForm.btAddDdxxClick(Sender: TObject);
begin
with TDdAddForm.Create(nil, FdmXSGL) do
try
ShowModal;
finally
Free;
end;
end;
procedure TDdxxForm.btDelDdxxClick(Sender: TObject);
begin
if Application.MessageBox('是否删除此记录及明细?', '确认', 1) = 1 then
begin
with FdmXsgl.adoqCommon do
begin
Close;
Sql.Text := Format('DELETE FROM DDMX WHERE DDH = ''%S''', [FDdh]);
ExecSQL;
end;
FdmXsgl.adoqDdxx.Delete;
end;
end;
procedure TDdxxForm.btAddDdmxClick(Sender: TObject);
begin
with TDdmxAddForm.Create(nil, FdmXSGL, FDdh) do
try
ShowModal;
finally
free;
end;
end;
procedure TDdxxForm.btDelDdmxClick(Sender: TObject);
const
conSQL = 'DELETE FROM DDMX WHERE DDH = ''%S'' and CPBM = ''%S''';
begin
if Application.MessageBox('是否删除此记录?', '确认', 1) = 1 then
begin
with FdmXSGL.adoqCommon do
begin
SQL.Text := Format(conSQL, [FDdh, FieldByName('CPBM').AsString]);
ExecSQL;
end;
FdmXsgl.adoqDdmx.Requery;
end;
end;
procedure TDdxxForm.dsDdmxDataChange(Sender: TObject; Field: TField);
begin
with FdmXsgl.adoqDdmx do
begin
if RecordCount <> 0 then
btDelDdmx.Enabled := True
else
btDelDdmx.Enabled := False
end;
end;
end.