?? peditjobb.pas
字號:
unit pEditJobB;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, Mask, Db, ADODB,comctrls;
type
TFormEditJobB = class(TForm)
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
StaticText6: TStaticText;
StaticText7: TStaticText;
StaticText8: TStaticText;
StaticText9: TStaticText;
StaticText10: TStaticText;
ButtonCancle: TButton;
ButtonOK: TButton;
EditLotNo: TEdit;
EditCode: TEdit;
EditProductCode: TEdit;
EditProcessCode: TEdit;
EditCheckCode: TEdit;
EditPartCode: TEdit;
EditHeNo: TEdit;
Button2: TButton;
Button4: TButton;
Button7: TButton;
StaticText11: TStaticText;
StaticText18: TStaticText;
EditAmount: TMaskEdit;
EditUnit: TMaskEdit;
ADODataSetLot: TADODataSet;
EditStart: TMaskEdit;
EditEnd: TMaskEdit;
CheckBoxUsa: TCheckBox;
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ButtonOKClick(Sender: TObject);
procedure ButtonCancleClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure EditCodeChange(Sender: TObject);
procedure EditLotNoChange(Sender: TObject);
procedure EditAmountChange(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
sOrgLotNo:String;
public
procedure GetString2(sT,sF,sC:String;sAdoC:String);
end;
var
FormEditJobB: TFormEditJobB;
implementation
uses pSelect, PDataModuleMain, PRelation, PBarCodePrinter, PPublic;
{$R *.DFM}
procedure TFormEditJobB.GetString2(sT,sF,sC:String;sAdoC:String);
begin
if not assigned(FormSelect) then FormSelect:=TFormSelect.Create(Self);
FormSelect.sTableName:=sT;
FormSelect.sFieldName:=sF;
FormSelect.sCaption:=sC;
FormSelect.sADOConnectionM:=SAdoC;
FormSelect.ShowModal;
end;
procedure TFormEditJobB.Button4Click(Sender: TObject);
begin
GetString2('Relation','Code','品名代碼',DataModuleMain.ADOConnectionBarCode.ConnectionString);
if FormSelect.sResult<>'' then
EditCode.Text:=FormSelect.sResult;
end;
procedure TFormEditJobB.Button7Click(Sender: TObject);
begin
GetString2('PartsCode','PartsCode','部件代碼',DataModuleMain.ADOConnectionBarCode.ConnectionString);
if FormSelect.sResult<>'' then
EditPartCode.Text:=FormSelect.sResult;
end;
procedure TFormEditJobB.Button2Click(Sender: TObject);
begin
GetString2('LotHistory','LotNo','生產批號',DataModuleMain.ADOConnectionBarCode.ConnectionString);
if FormSelect.sResult<>'' then
EditLotNo.Text:=FormSelect.sResult;
end;
procedure TFormEditJobB.ButtonOKClick(Sender: TObject);
var
ListItem:TListItem;
begin
if EditCode.Text='' then
begin
Application.MessageBox('綜合代碼不能為空!','提示',MB_OK);
exit;
end;
if (trim(EditUnit.Text)='') or (StrToInt(trim(EditUnit.Text))<=0) then
begin
Application.MessageBox('包裝單位錯誤!','提示',MB_OK);
exit;
end;
if EditLotNo.Text='' then
begin
Application.MessageBox('生產批號不能為空!','提示',MB_OK);
exit;
end;
if EditHeNo.Text='' then
begin
Application.MessageBox('出荷編號不能為空!','提示',MB_OK);
exit;
end;
if (trim(EditAmount.Text)='') or (StrToInt(trim(EditAmount.Text))<=0) then
begin
Application.MessageBox('生產數量錯誤!','提示',MB_OK);
exit;
end;
if (trim(EditStart.Text)='') or (StrToInt(trim(EditStart.Text))<=0) then
begin
Application.MessageBox('起始標簽號錯誤!','提示',MB_OK);
exit;
end;
if (trim(EditEnd.Text)='') or (StrToInt(trim(EditEnd.Text))<=0) or(StrToInt(trim(EditEnd.Text))>99) then
begin
Application.MessageBox('結束標簽號錯誤!','提示',MB_OK);
exit;
end;
EditHeNo.Text:=trim(EditHeNo.text);
if Length(EditHeNo.text)<>7 then
begin
Application.MessageBox('出荷編號必須為七位!','提示',MB_OK);
exit;
end;
if StrToIntDef(EditHeNo.Text,-1)=-1 then
begin
Application.MessageBox('出荷編號錯誤!','提示',MB_OK);
exit;
end;
ADODataSetLot.Close;
ADODataSetLot.CommandText:='Select * from LotHistory where LotNo='''+sOrgLotNo+'''';
ADODataSetLot.Open;
if ADODataSetLot.Eof then
begin
ADODataSetLot.Insert;
ADODataSetLot.FieldByName('LotNo').AsString:=(EditLotNo.Text);
ADODataSetLot.FieldByName('HeNo').AsString:=UpperCase(EditHeNo.Text);
ADODataSetLot.FieldByName('Code').AsString:=UpperCase(EditCode.Text);
ADODataSetLot.FieldByName('ProductCode').AsString:=UpperCase(EditProductCode.Text);
ADODataSetLot.FieldByName('ProcessCode').AsString:=UpperCase(EditProcessCode.Text);
ADODataSetLot.FieldByName('LotAmount').AsInteger:=StrToInt(trim(EditAmount.Text));
ADODataSetLot.FieldByName('PrintDate').Value:=Date;
ADODataSetLot.FieldByName('PrintTime').Value:=Time;
ADODataSetLot.FieldByName('UserCode').AsString:=UserCode;
ADODataSetLot.Post;
end
else begin
ADODataSetLot.Edit;
ADODataSetLot.FieldByName('LotNo').AsString:=(EditLotNo.Text);
ADODataSetLot.FieldByName('HeNo').AsString:=UpperCase(EditHeNo.Text);
ADODataSetLot.FieldByName('Code').AsString:=UpperCase(EditCode.Text);
ADODataSetLot.FieldByName('ProductCode').AsString:=UpperCase(EditProductCode.Text);
ADODataSetLot.FieldByName('ProcessCode').AsString:=UpperCase(EditProcessCode.Text);
ADODataSetLot.FieldByName('LotAmount').AsInteger:=StrToInt(trim(EditAmount.Text));
ADODataSetLot.FieldByName('PrintDate').Value:=Date;
ADODataSetLot.FieldByName('PrintTime').Value:=Time;
ADODataSetLot.FieldByName('UserCode').AsString:=UserCode;
ADODataSetLot.Post;
end;
ADODataSetLot.Close;
BarCodePrinter.lvwPrintQueue.Items.Delete(BarCodePrinter.lvwPrintQueue.Selected.Index);
ListItem:=BarCodePrinter.lvwPrintQueue.Items.Add;
ListItem.ImageIndex:=14;
ListItem.Caption:=(EditLotNo.Text);
ListItem.SubItems.Add(UpperCase(EditHeNo.Text));
ListItem.SubItems.Add(UpperCase(EditProductCode.Text));
ListItem.SubItems.Add(UpperCase(EditProcessCode.Text));
ListItem.SubItems.Add(UpperCase(EditCheckCode.Text));
ListItem.SubItems.Add(trim(EditAmount.Text));
ListItem.SubItems.Add(trim(EditAmount.Text));
ListItem.SubItems.Add(trim(EditStart.Text));
ListItem.SubItems.Add(trim(EditEnd.Text));
if CheckBoxUsa.Checked then
ListItem.SubItems.Add(UpperCase(EditPartCode.Text))
else
ListItem.SubItems.Add('');
{ if (StrToInt(trim(EditAmount.Text)) mod StrToInt(trim(EditUnit.Text)))<>0 then
begin
ListItem:=BarCodePrinter.lvwPrintQueue.Items.Add;
ListItem.ImageIndex:=14;
ListItem.Caption:=EditLotNo.Text;
ListItem.SubItems.Add(EditHeNo.Text);
ListItem.SubItems.Add(EditProductCode.Text);
ListItem.SubItems.Add(EditProcessCode.Text);
ListItem.SubItems.Add(EditCheckCode.Text);
ListItem.SubItems.Add(trim(EditAmount.Text));
ListItem.SubItems.Add(IntToStr((StrToInt(trim(EditAmount.Text)) mod StrToInt(trim(EditUnit.Text)))));
ListItem.SubItems.Add(IntToStr((StrToInt(trim(EditAmount.Text)) div StrToInt(trim(EditUnit.Text)))+1));
ListItem.SubItems.Add(IntTostr((StrToInt(trim(EditAmount.Text)) div StrToInt(trim(EditUnit.Text)))+1));
ListItem.SubItems.Add(EditPartCode.Text);
end;}
Close;
end;
procedure TFormEditJobB.ButtonCancleClick(Sender: TObject);
begin
Close;
end;
procedure TFormEditJobB.FormCreate(Sender: TObject);
begin
ADODataSetLot.Connection:=DataModuleMain.ADOConnectionBarCode;
end;
procedure TFormEditJobB.FormShow(Sender: TObject);
begin
CheckBoxUsa.Checked:=False;
sOrgLotNo:=trim(EditLotNo.Text);
end;
procedure TFormEditJobB.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 TFormEditJobB.EditLotNoChange(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;
end;
procedure TFormEditJobB.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 TFormEditJobB.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
SelectNext(ActiveControl,True,True);
Key:=#0;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -