⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pnewjobb.pas

📁 BarCodePrint条码打印机打印管理
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -