Files
dyp/pas/uFrame_pingdao.pas
T
2026-05-07 20:25:34 +08:00

301 lines
7.7 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
unit uFrame_pingdao;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
uFrameBase, System.ImageList, FMX.ImgList, FMX.ListBox, uksoap, System.StrUtils,
FMX.Controls.Presentation, FMX.Edit, FMX.Objects,uShowInfo,uTCPDevice,
FMX.ScrollBox, FMX.Memo, FMX.Memo.Types;
type
TFrame_pingdao = class(TFrameBase)
Rectangle88: TRectangle;
Option1: TRectangle;
Glyph9: TGlyph;
OptionLabel1: TText;
Text19: TText;
Edit_KuangJi: TEdit;
Option2: TRectangle;
Glyph2: TGlyph;
OptionLabel3: TText;
Text6: TText;
Edit_ChengShi: TEdit;
TxtError: TText;
ImageList1: TImageList;
Button1: TButton;
Rectangle1: TRectangle;
Glyph1: TGlyph;
Text1: TText;
Text2: TText;
Memo1: TMemo;
Button2: TButton;
Text5: TText;
Text3: TText;
procedure Edit_ChengShiKeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
procedure Edit_ChengShiClick(Sender: TObject);
procedure Edit_KuangJiExit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Memo1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
private
procedure Check_tool_work(Value: string);
{ Private declarations }
public
function F2DCodeCreate():boolean; override; //連接读头
procedure FillDefaultValue(sPartnumValue,sDefaultTxt:string);override; //填写默认值
function DoExec():boolean;override; //判断输入是否有效,执行插入主表,或打开窗体
function CheckValid(var sTxt:string):boolean;override;
function GetFixture_Code():string;override; //返回治具ID
procedure Initialize(); override;//初始化
end;
//var
// Frame_Plasma: TFrame_Plasma;
implementation
{$R *.fmx}
uses uDM, uBlandConent, uPucFun, uCodeConent, uSafeLog;
{
285090
D3007585AG
}
function TFrame_pingdao.F2DCodeCreate():boolean;
begin
Memo1.Lines.Clear;
Error(Memo1,TxtError,'');
if frmCodeConent=nil then
begin
try
frmCodeConent:= TfrmCodeConent.Create(nil);
with frmCodeConent do
try
ShowModal;
WorkLog.Debug('条码:'+F2DCodeValue);
Self.Memo1.Text:= F2DCodeValue;
finally
FreeandNil(frmCodeConent);
end;
if (Self.Memo1.Text<>'') then
Check_tool_work(Self.Memo1.Text);
except
WorkLog.Debug('条码1error');
end;
end;
Result:= True;
end;
function TFrame_pingdao.GetFixture_Code():string; //返回治具ID
begin
Result:=Edit_KuangJi.Text; //烤箱編號
end;
procedure TFrame_pingdao.Check_tool_work(Value: string); //原物料編號
var
sError,sMemo:string;
begin
sMemo:= Trim(Value);
sMemo:= sMemo.Replace('#13','');
//獲取治工具或者設備的狀態
if not Ksoap.Thread_Check_tool_or_equip_status_f(ksoap.P_Lot,ksoap.P_LINE_NUM,sMemo,ksoap.P_WORK_NUM,sError) then
begin
// ShowMainError('',sError,'');
Error(Memo1,TxtError,sError);
Exit;
end;
// TxtShowErrorInfo(TxtError,'原物料編號');
end;
procedure TFrame_pingdao.Memo1KeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
begin
inherited;
if Key=13 then
begin
Check_tool_work(Memo1.Lines.Text);
end;
end;
procedure TFrame_pingdao.Button1Click(Sender: TObject);
begin
inherited;
Edit_KuangJi.Text:= '';
end;
procedure TFrame_pingdao.Button2Click(Sender: TObject);
begin
inherited;
Memo1.Lines.Text:= '';
end;
function TFrame_pingdao.CheckValid(var sTxt:string):boolean; //返回面次数据
var
iP_LINE_SPEED: Currency;
P_BKfile: Currency;
begin
Result:= False;
if Trim(Edit_KuangJi.Text)='' then
begin
Error(Edit_KuangJi,TxtError,'模具編號不能為空');
Exit;
end;
if Trim(Edit_ChengShi.Text)='' then
begin
Error(Edit_ChengShi,TxtError,'拉料尺寸不能為空');
Exit;
end;
try
iP_LINE_SPEED:= StrToFloat(Edit_ChengShi.Text);
if (iP_Line_speed<0) then
begin
Error(Edit_ChengShi,TxtError,'拉料尺寸不能超过范围值');
Exit;
end;
except
Exit;
end;
Result:= True;
end;
procedure TFrame_pingdao.FillDefaultValue(sPartnumValue,sDefaultTxt:string);
begin
with TStringList.Create do
try
// a:= TStringList.Create;
Delimiter:= ',';
DelimitedText:= sDefaultTxt;
if Count>24 then Edit_ChengShi.Text:=Strings[24];
finally
Free;
end;
// Edit_KuangJi.Text:=sDefaultTxt;
// Edit_ChengShi.Text:=sDefaultTxt;
end;
function TFrame_pingdao.DoExec():boolean;
var
LotNoRecord:TLotNoRecord;
vId:Integer;
sTxt:string;
sError:string;
vP_ID:Double;
begin
Result:=False;
if CheckValid(sTxt) then //上传数据
begin
LotNoRecord:=TLotNoRecord.Create('-1'); //初始化记录
LotNoRecord.P_LOT:=ksoap.P_Lot;
LotNoRecord.P_Enable:='Y';
LotNoRecord.P_ID:=0;
LotNoRecord.P_ORG_CODE:=ksoap.P_ORG_CODE; //廠區
LotNoRecord.P_NUM:=ksoap.P_WORK_NUM; //工號
LotNoRecord.P_PC:=ksoap.P_PC; //製程
LotNoRecord.P_LINE:=ksoap.P_LINE; //線別
LotNoRecord.P_LINE_NUM:=ksoap.P_LINE_NUM; //線別編號
LotNoRecord.P_TROLLEY_NUM:=Edit_KuangJi.Text; //模具編號
LotNoRecord.P_BKfile:=Edit_ChengShi.Text; //拉料尺寸
LotNoRecord.P_CREATION_DATE:=FormatDateTime('yyyymmdd hh:mm:ss',Now);
sError:='';
vP_ID:=Ksoap.Thread_cf_traceability_seq_f(ksoap.P_ORG_CODE,sError);
LotNoRecord.P_ID:=vP_ID;
if vP_ID=0 then
BEGIN
dm.InsertMain(vId,LotNoRecord,false);
Result:=true;
END
ELSE
BEGIN
//直接调用API,出错再保存本地
if not Ksoap.Thread_Insert_CM_WIP_PROCESS_LINE_HISTORY_NEW(LotNoRecord,sError) then //提交主表不成功
begin
if sError='連接數據庫服務器失败' then
begin
dm.InsertMain(vId,LotNoRecord,false);
Result:=true;
end
else
ShowError(sError);
end
else
begin
dm.InsertMain(vId,LotNoRecord,false);
dm.UpdateMainId(vId,vP_ID.ToString,True);
Result:=true;
end;
END;
end;
//打开窗体
if Result then
begin
// WorkLog.MessageInfo('frmBlandPrinterConent');
frmBlandConent:=TfrmBlandConent.Create(nil);
try
frmBlandConent.LotNoRecord:=LotNoRecord; //记录
frmBlandConent.vP_ID:=LotNoRecord.P_ID; //ID號,需與主檔的ID號相同
frmBlandConent.vId:=vId; //本地表记录ID
// frmListConent.Text6.Text:='更改烤架編號';
frmBlandConent.ShowModal;
finally
frmBlandConent.Free;
end;
Initialize();
end;
end;
procedure TFrame_pingdao.Edit_ChengShiClick(Sender: TObject);
begin
inherited;
ShowTouchKeyBoard();
end;
procedure TFrame_pingdao.Edit_ChengShiKeyDown(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
begin
inherited;
NumbersOnly(Sender,Key,KeyChar,Shift);
end;
procedure TFrame_pingdao.Edit_KuangJiExit(Sender: TObject);
var
KuangJi:string;
begin
inherited;
KuangJi:= Trim(Edit_KuangJi.Text);
if Pos(' ',KuangJi)>0 then
KuangJi:= LeftStr(KuangJi,Pos(' ',KuangJi));
Edit_KuangJi.Text:= Trim(KuangJi);
end;
procedure TFrame_pingdao.Initialize(); //初始化
begin
inherited;
Edit_KuangJi.Text:= '';
Memo1.Lines.Clear;
end;
end.