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

📄 cyxh.~pas

📁 根据箱号
💻 ~PAS
字号:
unit Cyxh;

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
  Tyxh = class(Tmodel)
    Panel2: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    SpinEdit1: TSpinEdit;
    xhws: 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;
    chfz: TToolButton;
    ToolButton2: TToolButton;
    RichEdit1: TRichEdit;
    Edit3: TEdit;
    procedure tcClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure xzjxClick(Sender: TObject);
    procedure qrlrClick(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure qkxhClick(Sender: TObject);
    procedure qxlrClick(Sender: TObject);
    procedure jxlrClick(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure zzlrClick(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;

var
  yxh: Tyxh;
  optype,optype1:string;
  xhsl:integer;
  xh:string;
  ws,i,j:integer;
  sum:integer;

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

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

procedure Tyxh.xzjxClick(Sender: TObject);
begin
  inherited;
  settool(true);
  edit1.Enabled:=true;
  spinedit1.Enabled:=true;
  spinedit1.Value:=1;
  xhws.Enabled:=true;
  chws.Enabled:=true;
  chsl.Enabled:=true;
  edit2.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 Tyxh.qrlrClick(Sender: TObject);
begin
  inherited;
  if optype='' then
     begin
       if ws=xhws.Value then
         begin
          xh:=trim(edit2.Text);
          adoquery1.Close;
          adoquery1.SQL.clear;
          adoquery1.sql.add('select * from 串号管理 where 箱号='''+xh+'''');
          adoquery1.open;
          if adoquery1.RecordCount=chsl.Value then
             begin
               messagedlg(pchar('箱号为:【'+xh+'】的串号已经在系统中存在!'),mtinformation,[mbyes],0);
               edit2.Clear;
             end
          else
          begin
          optype:='1';
          if optype1='1' then
             begin
               i:=i;
               optype1:='';
             end
          else
             begin
               i:=1;
             end;
          if trim(edit1.Text)<>'' then
             begin
               edit1.Enabled:=false;
             end;
          edit2.Clear;
          edit2.SetFocus;
          zzlr.Enabled:=false;
          qkxh.Enabled:=true;  
          end;
         end
       else
         begin
           messagedlg('箱号有误,位数应为【'+inttostr(xhws.Value)+'】位!请重新输入!',mterror,[mbyes],0);
           edit2.Clear;
           edit2.SetFocus;
         end;
      end
      else
      begin
        if i<=chsl.Value  then
           begin
             if length(trim(edit2.Text))=chws.Value then
                begin
                  adoquery1.Close;
                  adoquery1.SQL.clear;
                  adoquery1.sql.add('select * from 串号管理 where 电子串号='''+edit2.text+'''');
                  adoquery1.open;
                  if adoquery1.RecordCount>0 then
                     begin
                       edit2.Clear;
                     end
                  else
                    begin
                       adocommand1.CommandText:='insert into 串号管理([机型],[序号],[箱号],[电子串号],[录入者],[录入期间],[录入日期],[箱号有无]) values('''+edit1.Text+''','''+inttostr(i)+''','''+xh+''','''+edit2.Text+''','''+main.usermc+''','''+main.lrqj+''',date(),''有'')' ;
                       adocommand1.Execute;  
                  adoquery2.Close;
                  adoquery2.SQL.clear;
                  adoquery2.sql.add('select *  from 串号管理 where 机型='''+edit1.Text+''' and 录入者='''+main.usermc+''' and 录入日期=date() order by 内部编号 desc ');
                  adoquery2.open;
                  if i=1 then
                     begin
                       xhws.Enabled:=false;
                       chws.Enabled:=false;
                       chsl.Enabled:=false;
                       qxlr.Enabled:=true;
                       tc.Enabled:=false; 
                       closeicon.Visible:=false;
                     end;
                  sum:=sum+1;
                  label5.Caption:='当前已录【'+inttostr(i)+'】个串号,共录【'+inttostr(sum)+'】个串号';
                  edit2.Clear;
                  edit2.SetFocus;
                  i:=i+1;
                  if i=chsl.Value+1 then
                     begin
                    // showmessage('当前箱号的串号已录完!');
                       edit2.Clear;
                       edit2.SetFocus;
                       jxlr.Enabled:=false;
                       zzlr.Enabled:=false;
                       j:=j+1;
                       optype:='';
                       i:=0;
                       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;
                 end
                 else
                   begin   
                     messagedlg('串号位数有误,应为【'+inttostr(chws.Value)+'】位!',mterror,[mbyes],0);
                     edit2.Clear;
                     edit2.SetFocus;
                   end;
            end;
            end;
       end;

procedure Tyxh.Edit2Enter(Sender: TObject);

var
  maxnum:string;
  z,w:integer;
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 Tyxh.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 Tyxh.qkxhClick(Sender: TObject);
begin
  inherited;
  optype:='';
  optype1:='1';
  edit2.SetFocus;
end;

procedure Tyxh.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 Tyxh.jxlrClick(Sender: TObject);
begin
  inherited;
  settool(true);
  edit1.Enabled:=false;
  xhws.Enabled:=false;
  chws.Enabled:=false;
  chsl.Enabled:=false;
  spinedit1.Enabled:=true;
  spinedit1.Value:=spinedit1.Value+1;
  spinedit1.SetFocus;
  edit2.Enabled:=true;
  optype:='';
end;

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

procedure Tyxh.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;
    end;
end;

procedure Tyxh.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 Tyxh.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 + -