📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, MYDBGrids, DBCtrls, SmartQry, Buttons,
Mask, UserCtrl,ExtCtrls;
const
cdVerify='1'; {校验代码}
cdProduce='0';{自动生成代码}
type
TForm1 = class(TForm)
Database1: TDatabase;
Query1: TQuery;
Button1: TButton;
Query2: TQuery;
DataSource1: TDataSource;
SmartQuery1: TSmartQuery;
DataSource2: TDataSource;
Table1: TTable;
DataSource3: TDataSource;
Button2: TButton;
Edit1: TEdit;
SpeedButton1: TSpeedButton;
Panel1: TPanel;
Edit2: TEdit;
SpeedButton2: TSpeedButton;
LeeDBLookup1: TLeeDBLookup;
DBEdit1: TDBEdit;
LeeDBLookup21: TLeeDBLookup2;
LeeLookupEdit1: TLeeLookupEdit;
LeeLookupEdit21: TLeeLookupEdit2;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure LeeDBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
function dmverify(var codestr:string; mode:char):boolean;
function GetNextGoodsCode(GoodsCode:string):string;
var
Form1: TForm1;
implementation
{$R *.DFM}
function GetNextGoodsCode(GoodsCode:string):string;
var
i:integer;
begin
result:=GoodsCode;
// result[0]:=#12;
SetLength(Result,12);
for i:=12 downto 1 do
begin
result[i]:=chr(ord(result[i])+1);
if result[i]>'9' then
result[i]:='0'
else
break;
end;
dmverify(result,cdProduce);
end;
function dmverify(var codestr:string; mode:char):boolean;
var
len,n1,n2,i:integer;
str:string[2];
begin
len:=length(codestr);
result:=false;
if len=0 then exit;
if mode=cdVerify then len:=len-1;
for i:=1 to len do
if (codestr[i]<'0') or (codestr[i]>'9') then exit;
i:=len; n1:=0; n2:=0;
while i>=1 do
begin
n1:=n1+ord(codestr[i])-ord('0');
i:=i-2;
end;
n1:=n1*3;
i:=len-1;
while i>=1 do
begin
n2:=n2+ord(codestr[i])-ord('0');
i:=i-2;
end;
str:=inttostr(((n1+n2-1) div 10 + 1)*10-(n1+n2));
if mode=cdVerify then
begin
if str[1]=codestr[len+1] then result:=true
else result:=false;
end
else
begin
result:=true;
codestr:=codestr+str;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
GoodsCode:string;
begin
GoodsCode:='2000000000000';
query1.open;
query1.first;
while not query1.eof do begin
GoodsCode:=GetNextGoodsCode(GoodsCode);
query2.parambyname('goodsno').asstring:= GoodsCode;
query2.parambyname('barcode').asstring:=
query1.fieldbyname('barcode').asstring;
query2.execsql;
query1.next;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Edit;
end;
procedure TForm1.LeeDBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
{ if not (gdSelected in State) then begin
if (Field.FieldName='classno') and (Field.Asstring=LeeDBLookup1.Text) then
LeeDBGrid1.Canvas.Brush.Color:=clRed
else
LeeDBGrid1.Canvas.Brush.Color:=clWhite;
LeeDBGrid1.DefaultDrawDataCell(Rect, Field, State)
end; }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -