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

📄 unit1.pas

📁 这是用PB6开发的一个POS管理系统
💻 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 + -