📄 frmdsqc00_detalp.~pas
字号:
unit FrmDsQc00_DetalP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FrmBaseFormP, DB, ADODB, StdCtrls, ExtCtrls, Menus;
type
TFrmDsQc00_Detal = class(TFrmBaseForm)
Img1: TImage;
Label1: TLabel;
Label2: TLabel;
Shape1: TShape;
Shape2: TShape;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label5: TLabel;
Label6: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit7: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit11: TEdit;
Edit13: TEdit;
Edit12: TEdit;
ADOQ_DsQc01: TADOQuery;
ADOQ_DsEl00: TADOQuery;
Label13: TLabel;
ADOQ_DsCh03: TADOQuery;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit3DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit12Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit4Exit(Sender: TObject);
procedure Edit11Exit(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDsQc00_Detal: TFrmDsQc00_Detal;
FailFlag:Boolean;
implementation
uses FrmMainP,SysPub, DataM1P, FrmDsQc00P ;
{$R *.dfm}
procedure TFrmDsQc00_Detal.FormShow(Sender: TObject);
begin
inherited;
FrmMain.TlB1.Enabled :=False;
Img1.Picture.LoadFromFile(_AppPath+'Bmp\Tao.Bmp');
FrmMain.TQuit.Enabled :=True;
If DetalFlag=1 then
Begin
Edit1.Text :=ADOQ_DsQc01.FieldByName('QC_ID').AsString ;
Edit2.Text :=ADOQ_DsQc01.FieldByName('QC_SID').AsString ;
Edit3.Text :=ADOQ_DsQc01.FieldByName('CH_ID').AsString ;
Edit4.Text :=ADOQ_DsQc01.FieldByName('CH_SID').AsString ;
Edit5.Text :=ADOQ_DsQc01.FieldByName('EL_NO').AsString ;
IF ADOQ_DsEl00.Locate('EL_No',Edit5.Text,[]) Then
Edit7.Text :=ADOQ_DsEl00.FieldByName('El_Name').AsString
Else
Edit7.Text :='';
Edit11.Text :=FloatToStr(ADOQ_DsQc01.FieldByName('QC_QTY').AsFloat ) ;
Edit12.Text :=FloatToStr(ADOQ_DsQc01.FieldByName('QC_AQty').AsFloat );
Edit13.Text :=ADOQ_DsQc01.FieldByName('QC_NOTE').AsString ;
End
Else
Begin
Edit1.Text :=StrFNo ;
Edit2.Text :=StrSno;
End;
end;
procedure TFrmDsQc00_Detal.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// inherited;
FrmMain.TlB1.Enabled :=True;
IF Edit12.Text ='' Then
Edit12.Text :='0.0';
Try
DataM1.Adoc.BeginTrans ;
With ADOQ_DsQc01 Do
IF DetalFlag=0 then
Begin
Edit ;
FieldByName('QC_ID').AsString :=StrFNo ;
FieldByName('QC_SID').AsString :=StrSno;
FieldByName('CH_ID').AsString :=Edit3.Text ;
FieldByName('CH_SID').AsString :=Edit4.Text ;
FieldByName('EL_NO').AsString :=Edit5.Text ;
FieldByName('QC_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
FieldByName('QC_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('QC_NOTE').AsString :=Edit13.Text ;
post;
End
Else
Begin
Edit;
FieldByName('CH_ID').AsString :=Edit3.Text ;
FieldByName('CH_SID').AsString :=Edit4.Text ;
FieldByName('EL_NO').AsString :=Edit5.Text ;
FieldByName('QC_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
FieldByName('QC_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('QC_NOTE').AsString :=Edit13.Text ;
post;
End;
DataM1.Adoc.CommitTrans ;
Except
Begin
Showmessage('数据保存出错');
DataM1.Adoc.RollbackTrans ;
abort;
End;
end;
ADOQ_DsQc01.Active :=False;
ADOQ_DsEL00.Active :=False;
ADOQ_DsCh03.Active :=False;
action:=cafree;
End;
procedure TFrmDsQc00_Detal.FormCreate(Sender: TObject);
var Sqltext:String ;
begin
//inherited;
SqlText:='Select * From DsQC01 Where QC_ID='+''''+StrFno+''''+' And QC_SID='+''''+StrSno+'''' ;
ADOQ_DsQc01.SQL.Clear ;
ADOQ_DsQc01.SQL.Text:=SqlText;
IF ADOQ_DsQc01.Active =False Then
ADOQ_DsQc01.Active :=True;
ADOQ_DsQc01.Open ;
ADOQ_DsEl00.Active :=True;
ADOQ_DsCh03.Active :=True;
FailFlag:=False;
end;
procedure TFrmDsQc00_Detal.Edit3DblClick(Sender: TObject);
var SqlStr:String;
begin
inherited;
IF Edit3.ReadOnly <>True Then
Begin
SqlStr:='Select Ch_ID as 采购单号,Ch_SID as 采购项次,EL_NO as 料品名称,Ch_Qty As 采购数量,Ch_AQty As 验收数量,Ch_BQty As 退货数量,Ch_Dqty As 待交数量 From DsCh03 Where Ch_ID Like '+''''+Edit3.Text+'%'+''''+' Order By Ch_ID,CH_SID';
Edit3.Text :=SetFindForm(Self.Caption,SqlStr);
End;
end;
procedure TFrmDsQc00_Detal.Edit12Exit(Sender: TObject);
begin
inherited;
IF Edit12.Text ='' Then
Begin
Edit12.Text :='0.0';
PD_Sure:='N';
End
Else
PD_Sure:='Y';
Try
IF StrToFloat(Edit12.Text)<0 Then
Begin
ShowMessage('验收数量不能小于0!');
Edit12.SetFocus ;
FailFlag:=True;
exit;
End;
IF StrToFloat(Edit12.Text) >StrToFloat(Edit11.Text) Then
Begin
ShowMessage('验收数不能大于送货数!');
Edit12.SetFocus ;
FailFlag:=True;
Exit;
End;
Except
Begin
ShowMessage('非法数据');
Edit12.SetFocus ;
FailFlag:=True;
Exit;
End;
End;
FailFlag:=False;
end;
procedure TFrmDsQc00_Detal.Edit3Exit(Sender: TObject);
begin
inherited;
IF Edit3.Text='' Then
ShowMessage('无采购订单');
end;
procedure TFrmDsQc00_Detal.Edit4Exit(Sender: TObject);
begin
inherited;
IF (Edit3.Text<>'') Then
IF ADOQ_DsCh03.Locate('Ch_ID;Ch_SID',VarArrayOf([Edit3.Text,Edit4.Text]),[loCaseInsensitive]) Then
Begin
IF (ADOQ_DsCh03.FieldByName('CH_Sure').AsString<>'Y') Then
Begin
ShowMessage('采购单号'+Edit3.Text+'项次'+Edit4.Text+'未确认');
Edit4.SetFocus ;
FailFlag:=True;
Exit;
End;
Edit5.Text :=ADOQ_DsCh03.fieldByName('EL_NO').AsString ;
IF ADOQ_DsEL00.Locate('EL_No',Edit5.Text,[]) Then
Edit7.Text :=ADOQ_DsEl00.FieldByName('EL_Name').AsString
Else
Edit7.Text :='';
Edit8.Text :=FloatToStr(ADOQ_DsCh03.FieldByName('CH_QTY').AsFloat) ;
Edit9.Text :=FloatToStr(ADOQ_DsCh03.FieldByName('Ch_Dqty').AsFloat );
End;
FailFlag:=False;
end;
procedure TFrmDsQc00_Detal.Edit11Exit(Sender: TObject);
begin
inherited;
IF Edit11.Text='0' Then
Begin
ShowMessage('送货数量为0');
Edit11.SetFocus ;
// FailFlag:=True;
Exit;
End
Else
FailFlag:=False;
Try
IF StrToFloat(Edit11.Text)<0 Then
Begin
ShowMessage('送货数量不能小于0!');
Edit11.SetFocus ;
FailFlag:=True;
exit;
End;
Except
Begin
ShowMessage('非法数据');
Edit11.SetFocus ;
FailFlag:=True;
Exit;
End;
End;
IF StrToFloat(Edit11.Text)>StrToFloat(Edit9.Text) Then
Begin
ShowMessage('送货数量不能大于可采量!');
Edit11.SetFocus ;
FailFlag:=True;
Exit;
End;
FailFlag:=False;
end;
procedure TFrmDsQc00_Detal.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
IF FailFlag=True Then
Begin
ShowMessage('一个或多个栏位有异常,请先确认数据正确再退出!');
CanClose:=False;
End;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -