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

📄 cxlt.pas

📁 根据箱号
💻 PAS
字号:
unit Cxlt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Cmodel, Menus, StdCtrls, ExtCtrls, Spin, ComCtrls, ToolWin,
  ImgList, Grids, DBGrids, DB, ADODB, Buttons;

type
  Txlt = class(Tmodel)
    Panel2: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    SpinEdit1: TSpinEdit;
    chws: TSpinEdit;
    chsl: TSpinEdit;
    ToolBar1: TToolBar;
    qrlr: TToolButton;
    jxlr: TToolButton;
    ImageList1: TImageList;
    xzjx: TToolButton;
    qxlr: TToolButton;
    tc: TToolButton;
    ToolButton3: TToolButton;
    ToolButton6: TToolButton;
    zzlr: TToolButton;
    ToolButton9: TToolButton;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOCommand1: TADOCommand;
    DBGrid2: TDBGrid;
    qkxh: TToolButton;
    ADOQuery3: TADOQuery;
    Label7: TLabel;
    Edit3: TEdit;
    chfz: TToolButton;
    RichEdit1: TRichEdit;
    ToolButton1: TToolButton;
    jygl: TCheckBox;
    Edit4: TEdit;
    procedure tcClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure xzjxClick(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure qkxhClick(Sender: TObject);
    procedure qxlrClick(Sender: TObject);
    procedure jxlrClick(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure zzlrClick(Sender: TObject);
    procedure qrlrClick(Sender: TObject);
    procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure chfzClick(Sender: TObject);
  private
    { Private declarations }
    procedure settool(isenabled:bool);
  public
    { Public declarations }
  end;
type
  tdzch=array[1..50] of string;
  tdzchcf=array[1..50] of string;
var
  xlt: Txlt;
  optype,optype1:string;
  xhsl:integer;
  xh:string;
  ws,i,j:integer;
  sum:integer;
  mydzch:tdzch;
  erdzchcf:tdzchcf;

implementation
 uses cdata, Cmain;
{$R *.dfm}
procedure Txlt.settool(isenabled:bool);
begin
  if isenabled=true then
     begin
       qrlr.Enabled:=true;
       qxlr.Enabled:=false;
       xzjx.Enabled:=false;
       jxlr.Enabled:=false;
       chfz.Enabled:=false;
       jygl.Enabled:=true;
     end
  else
     begin
       qrlr.Enabled:=false;
       jxlr.Enabled:=true;
       qxlr.Enabled:=false;
       zzlr.Enabled:=false;
       xzjx.Enabled:=true;
       qkxh.Enabled:=false;
       chfz.Enabled:=true;
       jygl.Enabled:=false;
       tc.Enabled:=true;
       closeicon.Visible:=true;
       edit2.Enabled:=false;
       edit3.Enabled:=false;
     end
end;
procedure Txlt.tcClick(Sender: TObject);
begin
  inherited;
  close;
end;

procedure Txlt.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  action:=cafree;
end;

procedure Txlt.xzjxClick(Sender: TObject);
begin
  inherited;
  settool(true);
  edit2.Clear;
  edit4.Clear;
  edit1.Enabled:=true;
  spinedit1.Enabled:=true;
  spinedit1.Value:=1;
//  xhws.Enabled:=true;
  chws.Enabled:=true;
  chsl.Enabled:=true;
  edit2.Enabled:=true;
  edit3.Enabled:=true;
  optype:='';
  edit1.SetFocus;
  edit1.Clear;
  label5.Visible:=false;
  adoquery2.Close;
  adoquery2.SQL.clear;
  adoquery2.sql.add('select *  from 串号管理 where 机型='''+edit1.Text+''' and 录入者=''cch'' and 录入日期=date() order by 内部编号 desc ');
  adoquery2.open;
  j:=0;
  sum:=0;
end;

procedure Txlt.Edit2Enter(Sender: TObject);

begin
  inherited;
  if trim(edit1.Text)='' then
     begin
       messagedlg('机型代码或名称不能为空',mterror,[mbyes],0);
       edit1.SetFocus;
     end
  else
  if chsl.Value=1 then
     begin
       messagedlg('请设定每箱串号的数量是多少!',mtinformation,[mbyes],0);
       chsl.SetFocus;
     end;
end;

procedure Txlt.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if (trim(edit2.Text)<>'') and (key=#13) then
     begin
       ws:=length(trim(edit2.Text));
       qrlr.Click;
     end;
end;

procedure Txlt.FormShow(Sender: TObject);
begin
  inherited;
 // adocommand1.CommandText:='delete * from 串号管理';
 // adocommand1.Execute;
end;

procedure Txlt.qkxhClick(Sender: TObject);
begin
  inherited;
  optype:='';
  optype1:='1';
  edit2.SetFocus;
end;

procedure Txlt.qxlrClick(Sender: TObject);
begin
  inherited;
  if messagedlg(pchar('箱号为:【'+xh+'】共录入【'+inttostr(i-1)+'】个串号!,是否取消?'),mtWarning,[mbyes,mbno],0)=mryes then
     begin
       adocommand1.CommandText:='delete * from 串号管理 where 箱号='''+xh+'''';
       adocommand1.Execute;
       label5.Caption:='当前已录【'+inttostr(0)+'】个串号,共录【'+inttostr(sum-i+1)+'】个串号';
       adoquery2.Close;
       adoquery2.SQL.clear;
       adoquery2.sql.add('select *  from 串号管理 where 机型='''+edit1.Text+''' and 录入日期=date() order by 内部编号 desc ');
       adoquery2.open;
       settool(false);
       spinedit1.Enabled:=false;
       jxlr.Enabled:=false;
     end;
end;

procedure Txlt.jxlrClick(Sender: TObject);
begin
  inherited;
  settool(true);
  spinedit1.Enabled:=true;
  edit1.Enabled:=false;
 // xhws.Enabled:=false;
  chws.Enabled:=false;
  chsl.Enabled:=false;
  spinedit1.Value:=spinedit1.Value+1;
  spinedit1.SetFocus;
  edit2.Enabled:=true;
  edit3.Enabled:=true;
  optype:='';
end;

procedure Txlt.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  inherited;
  if adoquery2.RecordCount=0 then
     label5.Visible:=true;
end;

procedure Txlt.zzlrClick(Sender: TObject);
begin
  inherited;
  if messagedlg(pchar('你设箱数为:【'+inttostr(spinedit1.Value)+'】,实际录入箱数为:【'+inttostr(j)+'】'+#13#13+'     是否终止录入?'),mtWarning,[mbyes,mbno],0)=mryes then
     begin
       settool(false);
       jxlr.Enabled:=false;
       spinedit1.Enabled:=false;
    end;
end;

procedure Txlt.qrlrClick(Sender: TObject);
var
  maxnum,ss:string;
  ch1:string;
  ch2:integer;
  z,w:integer;
  op1:string;
begin
  inherited;
  adoquery3.Close;
  adoquery3.SQL.Clear;
  adoquery3.SQL.add('select max(箱号) as 最大箱号 from 串号管理 where 箱号有无=''无'' and 录入者='''+main.usermc+''' and 录入期间='''+main.lrqj+'''');
  adoquery3.Open;
  if adoquery3.fieldbyname('最大箱号').asstring='' then
     begin
       xh:=''+main.userdm+''+'-'+''+main.lrqjxh+''+'0001' ;
     end
  else
     begin
       xh:=adoquery3.fieldbyname('最大箱号').asstring;
       adoquery1.Close;
       adoquery1.SQL.Clear;
       adoquery1.SQL.add('select 箱号 from 串号管理 where 箱号='''+adoquery3.fieldbyname('最大箱号').asstring+'''');
       adoquery1.Open;
       if adoquery1.RecordCount=chsl.Value then
          begin
            maxnum:=adoquery3.fieldbyname('最大箱号').asstring;
            maxnum:=copy(maxnum,11,14);
            maxnum:=inttostr(strtoint(maxnum)+1);
            if length(maxnum)=1 then
               xh:=''+main.userdm+''+'-'+''+main.lrqjxh+''+'000'+maxnum;
               if length(maxnum)=2 then
                  xh:=''+main.userdm+''+'-'+''+main.lrqjxh+''+'00'+maxnum;
                  if length(maxnum)=3 then
                     xh:=''+main.userdm+''+'-'+''+main.lrqjxh+''+'0'+maxnum;
           end;
  end;
  if length(trim(edit2.Text))=chws.Value then
     begin
       ch1:=''+edit2.Text+'';
       for i:=1 to chsl.Value do
           begin
             if i=1 then
                 begin
                  mydzch[1]:=''+ch1+'';
                 end
             else
                begin
                  ch2:=strtoint(ch1);
                  ch2:=ch2+1;
                  ch1:=inttostr(ch2);
                  if chws.Value-length(ch1)=1 then
                     ch1:='0'+ch1;
                  if chws.Value-length(ch1)=2 then
                     ch1:='00'+ch1;
                  if chws.Value-length(ch1)=3 then
                     ch1:='000'+ch1;
                  mydzch[i]:=ch1;
                end;
            end;
        //   try
             for i:=1 to chsl.Value do
                 begin
                   adoquery1.Close;
                   adoquery1.SQL.clear;
                   adoquery1.sql.add('select * from 串号管理 where 电子串号='''+mydzch[i]+'''');
                   adoquery1.open;
                   if adoquery1.RecordCount=1 then
                      begin
                        erdzchcf[i]:='不能录入';
                        op1:='error1';
                      //  messagedlg(pchar('第【'+inttostr(i)+'】个串号【'+mydzch[i]+'】已存!'),mtinformation,[mbyes],0);
                       // exit
                      end
                   else
                     begin
                       erdzchcf[i]:='可以录入';
                     end;
                   ss:=ss+'第'+inttostr(i)+'个串号【'+mydzch[i]+'】'+'状态:【'+erdzchcf[i]+'】'+#13;
                 end;
                 if op1='error1' then
                    begin
                      messagedlg(pchar(ss),mtinformation,[mbyes],0);
                      edit2.Clear;
                      edit2.SetFocus;
                      exit;
                    end
                 else
                 begin
                   for i:=1 to chsl.Value do
                       begin
                         adocommand1.CommandText:='insert into 串号管理([机型],[序号],[箱号],[电子串号],[录入者],[录入期间],[录入日期],[箱号有无]) values('''+edit1.Text+''','''+inttostr(i)+''','''+xh+''','''+mydzch[i]+''','''+main.usermc+''','''+main.lrqj+''',date(),''无'')' ;
                         adocommand1.Execute;
                    end;
                 adoquery2.Close;
                 adoquery2.SQL.clear;
                 adoquery2.sql.add('select *  from 串号管理 where 机型='''+edit1.Text+''' and 录入者='''+main.usermc+''' and 录入日期=date() order by 内部编号 desc ');
                 adoquery2.open;
                 sum:=sum+i-1;
                 label5.Caption:='共录【'+inttostr(sum)+'】个串号';
                     begin
                   //    showmessage('当前箱号的串号已录完!');
                       edit2.Clear;
                       edit2.SetFocus;
                       jxlr.Enabled:=false;
                       zzlr.Enabled:=false;
                       j:=j+1;
                       optype:='';
                       i:=0;
                       if jygl.Checked=true then
                          begin
                            edit4.Text:=copy(mydzch[1],0,6);
                            edit2.text:=edit4.text;
                            edit2.SelectAll;      
                          end;
                       if j=spinedit1.Value then
                          begin
                            messagedlg(pchar('【'+spinedit1.Text+'】箱【'+inttostr(spinedit1.value*chsl.Value)+'】个串号已录完!'),mtinformation,[mbyes],0);
                            settool(false);
                            spinedit1.Enabled:=false;
                            i:=0;
                          end
                       else
                          begin
                            jxlr.Enabled:=false;
                            qxlr.Enabled:=false;
                            zzlr.Enabled:=true;
                            xzjx.Enabled:=false;
                            qkxh.Enabled:=false;                            
                          end;
                     end;  
                    end;
             //  except
           // end;
          end
            else
              begin
                messagedlg('串号位数有误,应为【'+inttostr(chws.Value)+'】位!',mterror,[mbyes],0);
                if jygl.Checked=true then
                   begin
                     edit4.Text:=copy(mydzch[1],0,6);
                     edit2.text:=edit4.text;
                     edit2.SelectAll;
                    end
                else
                  edit2.Clear;
                edit2.SetFocus;
              end;
         // end;
    end;

            
procedure Txlt.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  inherited;
   if DBGrid2.DataSource.DataSet.RecNo mod 2 = 1 then
     begin
       DBGrid2.Canvas.Brush.Color :=$00FFFFC2;
       dbgrid2.Canvas.Font.Color:=clwindowtext;
       DBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end
  else
    begin
      DBGrid2.Canvas.Brush.Color :=$00F2F2F2;
      dbgrid2.Canvas.Font.Color:=clwindowtext;
      DBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
end;

procedure Txlt.chfzClick(Sender: TObject);
var
 fhjl:string;
begin
  inherited;  
  begin
  richedit1.Clear;
  adoquery2.First;
  while not adoquery2.Eof do
  begin
     richedit1.Lines.Add(''+adoquery2.fieldbyname('电子串号').asstring+'');
     if trim(adoquery2.fieldbyname('发货机率').AsString)='' then
        fhjl:='1'
     else
        fhjl:=inttostr(strtoint(trim(adoquery2.fieldbyname('发货机率').AsString))+1);
     adocommand1.CommandText:='update 串号管理 set 发货机率='''+fhjl+''' where 电子串号='''+adoquery2.fieldbyname('电子串号').asstring+'''';
     adocommand1.Execute;
     adoquery2.Next;
  end;
  richedit1.SelectAll;
  richedit1.CopyToClipboard;
  application.MessageBox('复制成功,可以进行粘贴!','好消息',64);

  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -