?? pnewjobb.pas
字號:
EditAmount.Text:='';
EditHeNo.Text:='';
EditStart.Text:='';
EditEnd.Text:='';
CheckBoxUsa.Checked:=False;
EditCode.SetFocus;
end;
procedure TFormNewJobB.EditCodeChange(Sender: TObject);
begin
if EditCode.Text='' then begin
EditProductCode.Text:='';
EditProcessCode.Text:='';
EditCheckCode.Text:='';
EditUnit.Text:='';
EditPartCode.Text:='';
exit;
end;
ADODataSetLot.Close;
ADODataSetLot.CommandText:='Select * from Relation where Code='''+trim(EditCode.Text)+'''';
ADODataSetLot.Open;
if not ADODataSetLot.Eof then
begin
EditProductCode.Text:=ADODataSetLot.FieldByName('ProductCode').AsString;
EditProcessCode.Text:=ADODataSetLot.FieldByName('ProcessCode').AsString;
EditCheckCode.Text:=ADODataSetLot.FieldByName('CheckCode').AsString;
EditUnit.Text:=ADODataSetLot.FieldByName('PackUnit').AsString;
EditPartCode.Text:=ADODataSetLot.FieldByName('PartsCode').AsString;
end
else
begin
EditProductCode.Text:='';
EditProcessCode.Text:='';
EditCheckCode.Text:='';
EditUnit.Text:='';
EditPartCode.Text:='';
end;
ADODataSetLot.Close;
end;
procedure TFormNewJobB.EditAmountChange(Sender: TObject);
var
nA,nU:Integer;
begin
if Trim(EditUnit.Text)='' then exit;
if StrToInt(trim(EditUnit.Text))<=0 then exit;
if trim(EditAmount.Text)='' then exit;
if strToInt(trim(EditAmount.Text))<=0 then Exit;
editStart.Text:='1';
nA:=strToInt(trim(EditAmount.Text));
nU:=StrToInt(trim(EditUnit.Text));
if nA>nU then
begin
Application.MessageBox('數量必須小于等于標準包裝單位!','提示',MB_OK);
EditAmount.Text:='';
exit;
end;
if (StrToInt(trim(EditAmount.Text)) mod StrToInt(trim(EditUnit.Text)))=0 then
editEnd.Text:=IntToStr(nA div nU)
else
editEnd.Text:=IntToStr((nA div nU)+1);
end;
procedure TFormNewJobB.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
SelectNext(ActiveControl,True,True);
Key:=#0;
end
else if Key=#27 then Close;
end;
procedure TFormNewJobB.EditLotNoExit(Sender: TObject);
{var
ADODataSetL:TADODataSet;
sNext:String;
sPoint:String;
AdoDataM:TADODataSet;
sPrefix:String;
}
begin
{ if (EditLotNo.Text='') or (Length(EditLotNo.Text)<8) then
begin
EditHeNo.Text:='';
exit;
end;
ADODataSetL:=TADODataSet.Create(Self);
ADoDataSetL.Connection:=DataModuleMain.ADOConnectionBarCode;
ADODataSetL.CommandText:='Select * from LotHistory where LotNo='''+trim(EditLotNo.Text)+'''';
ADODataSetL.Open;
if not ADODataSetL.Eof then
begin
EditAmount.Text:=IntToStr(ADODataSetL.FieldByName('LotAmount').AsInteger);
EditHeNo.Text:=ADODataSetL.FieldByName('HeNo').AsString;
EditCode.Text:=ADODataSetL.FieldByName('Code').AsString;
end
else
begin
sPrefix:=copy(FormatDatetime('yymm',date),2,3);
AdoDataM:=TADODataSet.Create(Self);
AdoDataM.Connection:=DataModuleMain.ADOConnectionBarCode;
AdoDataM.CommandText:='Select * from system';
AdoDataM.Open;
if (not AdoDataM.Eof) and (copy(EditCode.Text,1,2)<='3L') then
begin
if copy(AdoDataM.FieldByName('HeNo1').AsString,1,3)<>copy(formatdatetime('yymm',date),2,3) then
EditHeNo.Text:=sPrefix+'0001'
else
begin
sNext:=trim(copy(AdoDataM.FieldByName('HeNo1').AsString,4,4));
if strtointdef(sNext,-1)<>-1 then
begin
sNext:=inttostr(strtoint(sNext)+1);
if Length(sNext)<4 then sNext:=stringofchar('0',4-Length(sNext))+sNext;
EditHeNo.Text:=sPrefix+sNext;
end;
end;
end;
if (not AdoDataM.Eof) and (copy(EditCode.Text,1,2)>='3M') then
begin
sPoint:=AdoDataM.FieldByName('Point').AsString;
if copy(AdoDataM.FieldByName('HeNo2').AsString,1,3)<>copy(formatdatetime('yymm',date),2,3) then
EditHeNo.Text:=sPrefix+sPoint
else
begin
sNext:=trim(copy(AdoDataM.FieldByName('HeNo2').AsString,4,4));
if strtointdef(sNext,-1)<>-1 then
begin
sNext:=inttostr(strtoint(sNext)+1);
if Length(sNext)<4 then sNext:=stringofchar('0',4-Length(sNext))+sNext;
EditHeNo.Text:=sPrefix+sNext;
end;
end;
end;
AdoDataM.Close;
AdoDataM.Free;
end;
ADODataSetL.Close;
ADODataSetL.Free;
}
GetHeNo(EditCode.Text);
end;
procedure TFormNewJobB.LotBackup(content:String);
var
sFileName:String;
BackupFile:TextFile;
begin
sFileName:=ExtractFilePath(Application.ExeName)+FormatDatetime('yyyymm',date)+'.txt';
if FileExists(sFileName) then
begin
AssignFile(BackupFile,sFileName);
Reset(BackupFile);
end
else
begin
AssignFile(BackupFile,sFileName);
Rewrite(BackupFile);
end;
append(BackupFile);
WriteLn(BackupFile,content);
Flush(BackupFile);
CloseFile(BackupFile);
end;
procedure TFormNewJobB.EditCodeExit(Sender: TObject);
var
sCheckCode:String;
sUnit:String;
ADODataSetTemp:TADODataSet;
begin
if length(trim(EditCode.Text))=0 then exit;
ADODataSetTemp:=TADODataSet.Create(Self);
sCheckCode:=copy(EditCode.Text,1,4);
sUnit:=copy(EditCode.Text,5,4);
ADODataSetTemp.Connection:=DataModuleMain.ADOConnectionBarCode;
ADODataSetTemp.CommandText:='Select Code from Relation where CheckCode='''+sCheckCode+'''';
ADODataSetTemp.Open;
if not ADODataSetTemp.Eof then
begin
EditCode.Text:=ADODataSetTemp['Code'];
EditUnit.Text:=sUnit;
end;
ADODataSetTemp.Close;
ADODataSetTemp.Free;
end;
function TFormNewJobB.GetHeNO(prd: string): String;
var
ADODataSetL:TADODataSet;
sNext:String;
sPoint:String;
AdoDataM:TADODataSet;
sPrefix:String;
begin
if (EditLotNo.Text='') or (Length(EditLotNo.Text)<8) then
begin
EditHeNo.Text:='';
exit;
end;
ADODataSetL:=TADODataSet.Create(Self);
ADoDataSetL.Connection:=DataModuleMain.ADOConnectionBarCode;
ADODataSetL.CommandText:='Select * from LotHistory where LotNo='''+trim(EditLotNo.Text)+'''';
ADODataSetL.Open;
if not ADODataSetL.Eof then
begin
EditAmount.Text:=IntToStr(ADODataSetL.FieldByName('LotAmount').AsInteger);
EditHeNo.Text:=ADODataSetL.FieldByName('HeNo').AsString;
EditCode.Text:=ADODataSetL.FieldByName('Code').AsString;
end
else
begin
sPrefix:=copy(FormatDatetime('yymm',date),2,3);
AdoDataM:=TADODataSet.Create(Self);
AdoDataM.Connection:=DataModuleMain.ADOConnectionBarCode;
AdoDataM.CommandText:='Select * from point where 標志 like ''%'+copy(prd,1,2)+'%''';
AdoDataM.Open;
if copy(AdoDataM.FieldByName('歷史').AsString,1,3)<>copy(formatdatetime('yymm',date),2,3) then
begin
sPoint:=AdoDataM.FieldByName('下限').AsString;
EditHeNo.Text:=sPrefix+sPoint;
end
else
begin
sNext:=trim(copy(AdoDataM.FieldByName('歷史').AsString,4,4));
if strtointdef(sNext,-1)<>-1 then
begin
sNext:=inttostr(strtoint(sNext)+1);
if Length(sNext)<4 then sNext:=stringofchar('0',4-Length(sNext))+sNext;
EditHeNo.Text:=sPrefix+sNext;
end;
end;
AdoDataM.Close;
AdoDataM.Free;
end;
ADODataSetL.Close;
ADODataSetL.Free;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -