📄 cyxh.~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 + -