📄 mrp_enter_informalmps_d.pas
字号:
unit Mrp_Enter_InformalMps_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, ExtEdit, Mask;
Type
TFrm_Mrp_Enter_InformalMps_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label9: TLabel;
lbl_ItemName: TLabel;
edt_Mpsqty: TEdit;
cmbx_Mpsstatus: TComboBox;
edt_MpsremArk: TEdit;
Extedt_ItemCode: TExtEdit;
medt_MpsMonth: TMaskEdit;
medt_Mpsdate: TMaskEdit;
Label5: TLabel;
Label7: TLabel;
Edt_Mpsequip2: TEdit;
edt_MouldCode: TExtEdit;
lbl_MouldName: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure edt_MpsqtyExit(Sender: TObject);
procedure edt_MpsremArkExit(Sender: TObject);
procedure ItemCodeCheck(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure Edt_Mpsequip2Exit(Sender: TObject);
private
CurrentUom:string; //记录当前'计量单位'
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveData;Override;
{ Public declarations }
end;
var
Frm_Mrp_Enter_InformalMps_D: TFrm_Mrp_Enter_InformalMps_D;
implementation
uses Sys_Global;
{$R *.DFM}
function checksymbol(Source:string;disptext:string):boolean; //检查输入中是否有单引号
var
i:integer;
s:string;
begin
s:=Trim(Source);
for i:=1 to length(s) do
if s[i]='''' then
begin
DispInfo(disptext+'中不能使用单引号!',1);
Result:=False;
exit;
end;
Result:=True;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.FormActivate(Sender: TObject);
begin
inherited;
setfocus_Control:=medt_MpsMonth;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.FormCreate(Sender: TObject);
begin
inherited;
cmbx_Mpsstatus.clear;
cmbx_Mpsstatus.Items.Add('准备');
cmbx_Mpsstatus.Items.Add('下达');
cmbx_Mpsstatus.Items.Add('关闭');
cmbx_Mpsstatus.ItemIndex:=0;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.InitControls;
begin
inherited;
with AdoQry_Maintain do
begin
medt_MpsMonth.Text:=Trim(fieldbyname('MpsMonth').asstring);
Extedt_ItemCode.Text:=fieldbyname('ItemCode').asstring;
medt_Mpsdate.Text:=formatdatetime('yyyy.mm.dd',fieldbyname('Mpsdate').asdatetime);
edt_Mpsqty.Text:=floattostr(fieldbyname('Mpsqty').asfloat);
cmbx_Mpsstatus.ItemIndex:=fieldbyname('Mpsstatus').asinteger-2;
edt_MpsremArk.Text:=fieldbyname('MpsremArk').asstring;
CurrentUom:=fieldbyname('UomName').asstring;
lbl_ItemName.Caption:=fieldbyname('ItemName').asstring;
end;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.SaveData;
var
SqlText:String;
begin
inherited;
with AdoQry_Tmp do
begin
Close;
SQL.clear;
if(Add)then
begin
SqlText:='Insert Mps '
+ ' (MpsMonth,ItemCode,Mpsdate,Mpsqty,MpsType,Mpsstatus,mouldCode,Mpsequip2,MpsremArk)'
+ ' Values('
+ ''''+medt_MpsMonth.text+''''+','
+''''+Trim(Extedt_ItemCode.text)+''''+','
+''''+Trim(medt_Mpsdate.Text)+''''+','
+''''+Trim(edt_Mpsqty.text)+''''+','
+''''+'1'+''''+','
+''''+inttostr((cmbx_Mpsstatus.Itemindex)+2)+''''+','
+''''+Trim(edt_MouldCode.text)+''''+','
+''''+Trim(edt_Mpsequip2.text)+''''+','
+''''+Trim(edt_MpsremArk.text)+''''+')';
Sql.Text:=SqlText;
execsql;
end
else
begin
SqlText:='Update Mps '
+' set MpsMonth='+''''+Trim(medt_MpsMonth.text)+''''+','
+' ItemCode='''+Trim(Extedt_ItemCode.text)+''''+','
+' Mpsdate='''+Trim(medt_Mpsdate.text)+''''+','
+' Mpsqty='''+Trim(edt_Mpsqty.text)+''''+','
+' Mpsstatus='''+inttostr(cmbx_Mpsstatus.Itemindex+2)+''''+','
+' mouldCode='''+Trim(edt_MouldCode.text)+''''+','
+' Mpsequip2='''+Trim(edt_Mpsequip2.text)+''''+','
+' MpsremArk='''+Trim(edt_MpsremArk.Text)+''''
+' where Mpsid='''+AdoQry_Maintain.fieldbyname('Mpsid').asstring+'''';
Sql.Text:=SqlText;
ExecSQL;
end;
end;
with AdoQry_Maintain do
begin
fieldbyname('MpsMonth').AsString:=Trim(medt_MpsMonth.text);
fieldbyname('ItemCode').AsString:=Trim(Extedt_ItemCode.text);
fieldbyname('Mpsdate').Asdatetime:=strtodate(Trim(medt_Mpsdate.text));
fieldbyname('Mpsqty').Asfloat:=strtofloat(Trim(edt_Mpsqty.text));
fieldbyname('Mpsstatus').asinteger:=cmbx_Mpsstatus.Itemindex+2;
fieldbyname('MpsremArk').asstring:=Trim(edt_MpsremArk.text);
fieldbyname('mouldCode').asstring:=Trim(edt_MouldCode.text);
fieldbyname('Mpsequip2').asstring:=Trim(edt_Mpsequip2.text);
fieldbyname('ItemName').asstring:=lbl_ItemName.Caption;
fieldbyname('UomName').AsString:=CurrentUom;
Post;
end;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.edt_MpsqtyExit(Sender: TObject);
var
s:string;
begin
inherited;
if activecontrol.Name='btn_Cancel' then
exit;
s:=Trim(edt_Mpsqty.Text);
try
strtofloat(s);
except
DispInfo('输入的生产订货量错误,请重新输入!',1);
twincontrol(sender).setfocus;
abort;
end;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.edt_MpsremArkExit(Sender: TObject);
begin
inherited;
if activecontrol.Name='btn_Cancel' then
exit;
if not blankcheck(edt_MpsremArk.Text,'备注') then
begin
twincontrol(sender).setfocus;
abort;
end;
if not checksymbol(edt_MpsremArk.text,'备注') then
begin
twincontrol(sender).setfocus;
abort;
end;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.ItemCodeCheck(Sender: TObject);
var
SqlText:String;
Ado_Temp:TAdoQuery;
begin
inherited;
If Activecontrol.Name='btn_Cancel' Then
Exit;
try
Ado_Temp:=tAdoQuery.Create(nil);
Ado_Temp.Connection:=AdoQry_Maintain.Connection;
SqlText:='select Item.*,Uom.* '
+' from Item Left Outer Join Uom On Item.UomCode=Uom.UomCode '
+' where ItemCode='+''''+Trim(Extedt_ItemCode.Text)+'''';
Ado_Temp.Close;
Ado_Temp.SQL.clear;
Ado_Temp.SQL.Add(SqlText);
Ado_Temp.Open;
if Ado_Temp.Eof then
begin
DispInfo('你输入的物料代码不存在,请重新输入!',1);
TWincontrol(sender).setfocus;
abort;
end
else
CurrentUom:=Ado_Temp.fieldbyname('UomName').asstring;
finally
Ado_Temp:=nil;
end;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.btn_okClick(Sender: TObject);
var
SqlText:String;
Ado_Temp:TAdoQuery;
T1,T2,T3:Boolean;
begin
If Activecontrol.Name='btn_Cancel' Then
Exit;
If Trim(medt_MpsMonth.text)<>Trim(AdoQry_Maintain.fieldbyname('MpsMonth').AsString) then
T1:=True
Else
T1:=False;
If Trim(Extedt_ItemCode.text)<>Trim(AdoQry_Maintain.fieldbyname('ItemCode').AsString) then
T2:=True
Else
T2:=False;
If StrToDateTime(medt_Mpsdate.text)<>AdoQry_Maintain.fieldbyname('MpsDate').asdatetime then
T3:=True
Else
T3:=False;
if (Add) or ((not Add) and (T1 or T2 or T3)) then
begin
Ado_Temp:=TAdoQuery.Create(Nil);
Ado_Temp.Connection:=AdoQry_Tmp.Connection;
SqlText:='select * '
+' from Mps '
+' where MpsMonth='+''''+Trim(medt_MpsMonth.text)+''''
+' And ItemCode='+''''+Trim(Extedt_ItemCode.text)+''''
+' And Mpsdate='+''''+Trim(medt_Mpsdate.text)+'''';
Ado_Temp.Close;
Ado_Temp.SQL.Text:=SqlText;
Ado_Temp.Open;
If not Ado_Temp.Eof then
begin
DispInfo('该记录已经存在,你不能重复输入!',1);
medt_MpsMonth.SetFocus;
Abort;
end;
end;
inherited;
end;
procedure TFrm_Mrp_Enter_InformalMps_D.Edt_Mpsequip2Exit(Sender: TObject);
begin
if activecontrol.Name='btn_Cancel' then
exit;
if not blankcheck(edt_Mpsequip2.Text,'关键设备2') then
begin
twincontrol(sender).setfocus;
abort;
end;
if not checksymbol(edt_Mpsequip2.Text,'关键设备2') then
begin
twincontrol(sender).setfocus;
abort;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -