📄 lcrkdm_unit.~pas
字号:
unit LCRKDM_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ToolWin, ComCtrls, Grids, DBGridEh, ExtCtrls,
DB, ADODB;
type
TLCRKDM_Form = class(TForm)
Splitter1: TSplitter;
ScrollBox1: TScrollBox;
Panel1: TPanel;
DBGridEh2: TDBGridEh;
ScrollBox2: TScrollBox;
Panel2: TPanel;
DBGridEh3: TDBGridEh;
CoolBar1: TCoolBar;
ScrollBox3: TScrollBox;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
BitBtn10: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
ADOQdtl: TADOQuery;
INSADOQ: TADOQuery;
Panel3: TPanel;
BitBtn1: TBitBtn;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LCRKDM_Form: TLCRKDM_Form;
implementation
uses DMUnit, U_CheckRights;
{$R *.dfm}
procedure TLCRKDM_Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TLCRKDM_Form.FormDestroy(Sender: TObject);
begin
LCRKDM_Form:=nil;
end;
procedure TLCRKDM_Form.BitBtn10Click(Sender: TObject);
begin
Close;
end;
procedure TLCRKDM_Form.FormCreate(Sender: TObject);
begin
with DM.LCRKDM_ADOQ do
begin
Close;
OPen;
end;
with DM.LCRKDP_ADOT do
begin
Close;
Open;
end;
end;
procedure TLCRKDM_Form.BitBtn6Click(Sender: TObject);
begin
DM.LCRKDM_ADOQ.First;
end;
procedure TLCRKDM_Form.BitBtn7Click(Sender: TObject);
begin
DM.LCRKDM_ADOQ.Prior;
end;
procedure TLCRKDM_Form.BitBtn8Click(Sender: TObject);
begin
DM.LCRKDM_ADOQ.Next;
end;
procedure TLCRKDM_Form.BitBtn9Click(Sender: TObject);
begin
DM.LCRKDM_ADOQ.Last;
end;
procedure TLCRKDM_Form.BitBtn3Click(Sender: TObject);
begin
with DM.LCRKDM_ADOQ do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM LCRKD_M ');
OPen;
end;
with DM.LCRKDP_ADOT do
begin
Close;
Open;
end;
end;
procedure TLCRKDM_Form.BitBtn5Click(Sender: TObject);
var
HZ: string; //汇总编号
LCNO:String; //入库单号
CARNO:String; //车号
BZ:string;
ITEMNO,ISORT,IUNIT:String;//品名,类别,单位
INUM,IMON:real;//数量 金额
begin
HZ:= InputBox('请输入汇总编号', '编号99', '');
if Trim(HZ)='' Then
begin
Showmessage('汇总编号不能为空');
Exit;
end;
Try
if DM.Adoc.InTransaction then DM.Adoc.RollbackTrans;
DM.Adoc.BeginTrans;
DM.LCRKDM_ADOQ.First;
while not DM.LCRKDM_ADOQ.Eof do
if DM.LCRKDM_ADOQ.FieldByName('LCRKD_CHECX').AsBoolean then
begin
LCNO:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_NO').AsString;
CARNO:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_CARNO').AsString;
BZ:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_BZ').AsString;
with ADOQdtl do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM LCRKD_P WHERE LCRKD_NO='''+LCNO+'''');
OPEN;
end;
ADOQdtl.First;
while not ADOQdtl.Eof do
begin
ITEMNO:= ADOQdtl.Fieldbyname('LCRKD_ITEMNO').AsString;
ISORT:= ADOQdtl.Fieldbyname('LCRKD_SORT').AsString;
IUNIT:= ADOQdtl.Fieldbyname('LCRKD_UNIT').AsString;
INUM:= ADOQdtl.Fieldbyname('LCRKD_NUM').AsFloat;
IMON:= ADOQdtl.Fieldbyname('LCRKD_MON').AsFloat;
with INSADOQ DO
BEGIN
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM LCRKD_HZ WHERE LC_ITEMNO='''+ITEMNO+''' AND LC_HZ='''+HZ+'''');
OPEN;
END;
if INSADOQ.RecordCount>0 THEN
with INSADOQ do //更新数据
begin
Close;
SQl.Clear;
SQL.Add('UPDATE LCRKD_HZ SET LC_NUM=LC_NUM+'+floattostr(INUM)+' , LC_MON=LC_MON+'+floattostr(IMON)+' WHERE LC_ITEMNO='''+ITEMNO+''' and LC_HZ='''+HZ+'''');
// showmessage(sql.Text);
INSADOQ.ExecSQL;
end
else
with INSADOQ do //插入数据
begin
Close;
SQL.Clear;
SQL.Add('INSERT LCRKD_HZ (LC_CARNO,LC_BZ,LC_HZ,LC_ITEMNO,LC_ITEMSORT,LC_ITEMUNIT,LC_NUM,LC_MON) VALUES(:LC_CARNO,:LC_BZ,:LC_HZ,:LC_ITEMNO,:LC_ITEMSORT,:LC_ITEMUNIT,:LC_NUM,:LC_MON)');
INSADOQ.Parameters.ParamByName('LC_CARNO').Value:=CARNO;
INSADOQ.Parameters.ParamByName('LC_BZ').Value:=BZ;
INSADOQ.Parameters.ParamByName('LC_HZ').Value:=HZ;
INSADOQ.Parameters.ParamByName('LC_ITEMNO').Value:=ITEMNO;
INSADOQ.Parameters.ParamByName('LC_ITEMSORT').Value:=ISORT;
INSADOQ.Parameters.ParamByName('LC_ITEMUNIT').Value:=IUNIT;
INSADOQ.Parameters.ParamByName('LC_NUM').Value:=INUM;
INSADOQ.Parameters.ParamByName('LC_MON').Value:=IMON;
INSADOQ.ExecSQL;
end;
ADOQdtl.Next;
end;
with INSADOQ do
begin
Close;
SQl.Clear;
SQL.Add('UPDATE LCRKD_M SET LCRKD_HXBS=1 WHERE LCRKD_NO='''+LCNO+'''');
INSADOQ.ExecSQL;
end;
DM.LCRKDM_ADOQ.Next;
end;
DM.Adoc.CommitTrans;
ShowMessage('该列车的入库数据已汇总完毕');
Except
DM.Adoc.RollbackTrans;
end;
end;
procedure TLCRKDM_Form.BitBtn1Click(Sender: TObject);
begin
with DM.LCRKDM_ADOQ do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM LCRKD_M where LCRKD_CHECX=0');
OPen;
end;
end;
procedure TLCRKDM_Form.FormShow(Sender: TObject);
begin
BitBtn6.Enabled:=CheckRights('列车入库单管理','最前');
BitBtn7.Enabled:=CheckRights('列车入库单管理','向前');
BitBtn8.Enabled:=CheckRights('列车入库单管理','向后');
BitBtn9.Enabled:=CheckRights('列车入库单管理','最后');
BitBtn3.Enabled:=CheckRights('列车入库单管理','刷新');
BitBtn5.Enabled:=CheckRights('列车入库单管理','汇总');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -