📄 cf0xh.~pas
字号:
unit Cf0xh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Cmodel, Menus, StdCtrls, ExtCtrls, Buttons, ToolWin, ComCtrls,
ImgList, Grids, DBGrids, DB, ADODB,ComObj, Gauges;
type
Tf0xh = class(Tmodel)
ToolBar1: TToolBar;
ImageList1: TImageList;
find: TToolButton;
clear: TToolButton;
copy: TToolButton;
excel: TToolButton;
output: TToolButton;
exit: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
Panel1: TPanel;
Edit1: TEdit;
CheckBox2: TCheckBox;
Label1: TLabel;
Label3: TLabel;
ProgressBar1: TProgressBar;
DBGrid1: TDBGrid;
RichEdit1: TRichEdit;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
DataSource1: TDataSource;
ADOQuery4: TADOQuery;
ADOCommand1: TADOCommand;
Label4: TLabel;
Gauge_process: TGauge;
procedure exitClick(Sender: TObject);
procedure findClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure clearClick(Sender: TObject);
procedure copyClick(Sender: TObject);
procedure excelClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
type
ttable=array[1..50,1..2] of string;
var
f0xh: Tf0xh;
mytable:ttable;
implementation
uses cdata, Cmain;
{$R *.dfm}
procedure Tf0xh.exitClick(Sender: TObject);
begin
inherited;
close;
end;
procedure Tf0xh.findClick(Sender: TObject);
var
i,j,stepcount,stepcount1:integer;
begin
inherited;
if checkbox2.Checked then
begin
if trim(edit1.Text)<>'' then
begin
adoquery2.Close;
adoquery2.SQL.clear;
adoquery2.sql.add('select * from 串号管理 where 电子串号='''+edit1.text+'''');
adoquery2.open;
if adoquery2.RecordCount=0 then
begin
application.MessageBox(pchar('系统中没有串号为:【'+edit1.Text+'】的手机!'),'注意',64);
edit1.SetFocus;
end
else
begin
adoquery4.Close;
adoquery4.SQL.clear;
adoquery4.sql.add('select * from 串号管理 where 电子串号='''+adoquery2.fieldbyname('电子串号').AsString+'''');
adoquery4.open;
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.sql.add('select * from '+main.usermc+' where 箱号='''+adoquery4.fieldbyname('箱号').AsString+'''');
adoquery1.open;
if (adoquery1.RecordCount=5) or (adoquery1.RecordCount=10) or (adoquery1.RecordCount=15) or (adoquery1.RecordCount=20) then
begin
application.MessageBox(pchar('箱号为:【'+edit1.Text+'】的串号已经在查询数据库中!'),'注意',64);
edit1.SetFocus;
end
else
begin
adoquery2.Close;
adoquery2.SQL.clear;
adoquery2.sql.add('select * from 串号管理 where 箱号='''+adoquery4.fieldbyname('箱号').AsString+'''');
adoquery2.open;
progressBar1.Visible:=true;
progressBar1.Position:=0;
stepcount:=adoquery2.RecordCount;
with progressBar1 do
begin
Min:=0;
Max:=stepcount;
Step:=1;
for i:=1 to StepCount do
begin
while not adoquery2.Eof do
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.sql.add('select * from '+main.usermc+' where 电子串号='''+adoquery2.fieldbyname('电子串号').asstring+'''');
adoquery1.open;
if adoquery1.RecordCount=0 then
begin
adocommand1.CommandText:='insert into '+main.usermc+'([机型],[序号],[箱号],[电子串号],[录入者],[录入日期],[发货机率]) values('''+adoquery2.fieldbyname('机型').asstring+''','''+adoquery2.fieldbyname('序号').asstring+''','''+adoquery2.fieldbyname('箱号').asstring+''','''+adoquery2.fieldbyname('电子串号').asstring+''','''+adoquery2.fieldbyname('录入者').asstring+''','''+adoquery2.fieldbyname('录入日期').asstring+''','''+adoquery2.fieldbyname('发货机率').asstring+''')';
adocommand1.Execute;
end;
Stepit;
adoquery2.Next;
end;
end;
end;
end;
progressBar1.Visible:=false;
end;
edit1.Clear;
end
else
begin
messagedlg('请输入查询条件,然后进行查询!',mterror,[mbyes],0);
edit1.SetFocus;
end;
// showmessage('通过串号反查号');
end
else
begin
if trim(edit1.Text)<>'' then
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.sql.add('select * from '+main.usermc+' where 箱号='''+edit1.Text+'''');
adoquery1.open;
if (adoquery1.RecordCount=5) or (adoquery1.RecordCount=10) or (adoquery1.RecordCount=15) or (adoquery1.RecordCount=20) then
begin
application.MessageBox(pchar('箱号为:【'+edit1.Text+'】的串号已经在查询数据库中!'),'注意',64);
edit1.SetFocus;
end
else
begin
adoquery2.Close;
adoquery2.SQL.clear;
adoquery2.sql.add('select * from 串号管理 where 箱号='''+edit1.text+'''');
adoquery2.open;
if adoquery2.RecordCount=0 then
begin
application.MessageBox(pchar('系统中没有箱号为:【'+edit1.Text+'】的串号!'),'注意',64);
edit1.SetFocus;
end
else
begin
progressBar1.Visible:=true;
progressBar1.Position:=0;
stepcount:=adoquery2.RecordCount;
with progressBar1 do
begin
Min:=0;
Max:=stepcount;
Step:=1;
for i:=1 to StepCount do
begin
while not adoquery2.Eof do
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.sql.add('select * from '+main.usermc+' where 电子串号='''+adoquery2.fieldbyname('电子串号').asstring+'''');
adoquery1.open;
if adoquery1.RecordCount=0 then
begin
adocommand1.CommandText:='insert into '+main.usermc+'([机型],[序号],[箱号],[电子串号],[录入者],[录入期间],[录入日期],[发货机率]) values('''+adoquery2.fieldbyname('机型').asstring+''','''+adoquery2.fieldbyname('序号').asstring+''','''+adoquery2.fieldbyname('箱号').asstring+''','''+adoquery2.fieldbyname('电子串号').asstring+''','''+adoquery2.fieldbyname('录入者').asstring+''','''+adoquery2.fieldbyname('录入期间').asstring+''','''+adoquery2.fieldbyname('录入日期').asstring+''','''+adoquery2.fieldbyname('发货机率').asstring+''')';
adocommand1.Execute;
end;
Stepit;
adoquery2.Next;
end;
end;
end;
end;
progressBar1.Visible:=false;
end;
edit1.Clear;
end
else
begin
messagedlg('请输入查询条件,然后进行查询!',mterror,[mbyes],0);
edit1.SetFocus;
end;
end;
adoquery3.Close;
adoquery3.SQL.clear;
adoquery3.sql.add('select * from '+main.usermc+' order by 内部编号 desc');
adoquery3.open;
end;
procedure Tf0xh.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
action:=cafree;
end;
procedure Tf0xh.FormShow(Sender: TObject);
begin
inherited;
clear.Click;
end;
procedure Tf0xh.DataSource1DataChange(Sender: TObject; Field: TField);
begin
inherited;
label4.Caption:='共计查询到:【'+inttostr(adoquery3.RecordCount)+'】个电子串号 ';
if adoquery3.RecordCount<>0 then
begin
excel.Enabled:=true;
clear.Enabled:=true;
end
else
begin
excel.Enabled:=false;
clear.Enabled:=false;
end;
if adoquery3.RecordCount=0 then
copy.Enabled:=false
else
copy.Enabled:=true;
end;
procedure Tf0xh.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then
find.Click;
end;
procedure Tf0xh.clearClick(Sender: TObject);
begin
inherited;
adocommand1.CommandText:='delete from '+main.usermc+'' ;
adocommand1.Execute;
adoquery3.Close;
adoquery3.SQL.clear;
adoquery3.sql.add('select * from '+main.usermc+' order by 内部编号 desc');
adoquery3.open;
end;
procedure Tf0xh.copyClick(Sender: TObject);
var
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -