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

📄 pfm_cksetup.pas

📁 POS收银系统
💻 PAS
字号:
unit pfm_cksetup;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, DBTables, Grids, DBGrids, Mask, DBCtrls, Buttons,pvar_lib,
  ExtCtrls;

type
  Tfm_cksetup = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Query1: TQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Query1ckmc: TStringField;
    Query1spbm: TStringField;
    Query1sptxm: TStringField;
    Query1spnum: TIntegerField;
    Query1spnummin: TIntegerField;
    Query1spnummax: TIntegerField;
    Query1spmc: TStringField;
    CbBox1: TComboBox;
    Label1: TLabel;
    QryName: TQuery;
    Query1id: TIntegerField;
    Table1: TTable;
    DataSource2: TDataSource;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    Label3: TLabel;
    DBEdit2: TDBEdit;
    Label4: TLabel;
    DBEdit3: TDBEdit;
    BBtnEdit: TBitBtn;
    Panel1: TPanel;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    BBtnLocate: TBitBtn;
    Label5: TLabel;
    Edit1: TEdit;
    Label6: TLabel;
    procedure CbBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure BBtnEditClick(Sender: TObject);
    procedure Table1AfterPost(DataSet: TDataSet);
    procedure DBGrid2DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure BitBtn1Click(Sender: TObject);
    procedure BBtnLocateClick(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Query1AfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fm_cksetup: Tfm_cksetup;

implementation

{$R *.DFM}
const
mysql1='select t_stocksp.* ,t_spxx.spmc from t_stocksp,t_spxx where t_stocksp.spbm=t_spxx.spbm ';
var
gridcolname:Tstringlist;
selckmc:string;
procedure Tfm_cksetup.CbBox1Change(Sender: TObject);
var
i:integer;
wheresql:string;
begin
    if cbbox1.ItemIndex>=0 then
    begin
        if (cbbox1.Text='仓库') or (cbbox1.text='分店') then
        begin
            exit;
        end;
        wheresql:=' and ckmc='''+cbbox1.text+'''';

        query1.Active:=false;
        query1.sql.clear;
        query1.sql.add(mysql1+wheresql);
        query1.active:=true;
        groupbox2.caption:='【'+cbbox1.text+'】'+'库存商品信息';
        selckmc:=cbbox1.Text;
        if not query1.eof then
        begin
            dbedit1.Enabled:=true;
            dbedit2.Enabled:=true;
            dbedit3.Enabled:=true;
        end
        else
        begin
            dbedit1.Enabled:=false;
            dbedit2.Enabled:=false;
            dbedit3.Enabled:=false;
        end;
    end;
end;

procedure Tfm_cksetup.FormCreate(Sender: TObject);
var
i:integer;
begin
//往中加入仓库
    Qryname.close;
    Qryname.SQL.Clear;
    Qryname.SQL.Add('select * from t_ckxx');
    Qryname.Open;

    cbbox1.Items.add('仓库');
    while not Qryname.Eof do
    begin
        cbBox1.items.add(Qryname.fieldbyname('ckmc').asstring);
        Qryname.Next;
    end;
    Qryname.close;
    Qryname.SQL.Clear;
    Qryname.SQL.Add('select * from t_fendianxx');
    Qryname.Open;

    cbbox1.items.add('分店');
    while not Qryname.Eof do
    begin
        cbbox1.items.add(Qryname.fieldbyname('fdmc').asstring);
        Qryname.Next;
    end;
    QryName.Active:=false;
    gridcolname:=tstringlist.create;
    qryname.sql.clear;
    qryname.sql.add('select * from tab_chinesename where tablename=''t_spxx'' or tablename=''t_spstock''');
    qryname.active:=true;
    while not qryname.eof do
    begin
        gridcolname.add(qryname.fieldbyname('englishname').asstring+'='+
               qryname.fieldbyname('chinesename').asstring);
        qryname.next;
    end;
    qryname.active:=false;
    query1.Active:=true;
    table1.Active:=true;
    for i:=0 to dbgrid1.columns.count-1 do
    begin
        dbgrid1.columns[i].Title.caption:=GridColName.values[dbgrid1.columns[i].Title.caption];
    end;
    addoptrecord('库存设置');
end;

procedure Tfm_cksetup.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    gridcolname.free;
    action:=cafree;
end;

procedure Tfm_cksetup.DBGrid1DrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
   if (query1.fieldbyname('spnum').asinteger<query1.fieldbyname('spnummin').asinteger) and (not(gdselected  in state)) then
    begin
        (sender as tdbgrid).Canvas.Brush.Color:=RGB(219,253,253);
        (sender as tdbgrid).Canvas.font.Color:=clred;
    end
    else if (query1.fieldbyname('spnum').asinteger>query1.fieldbyname('spnummax').asinteger) and (not(gdselected in state)) then
    begin
        (sender as tdbgrid).Canvas.Brush.Color:=RGB(229,253,253);
        (sender as tdbgrid).Canvas.font.Color:=clpurple;
    end;
     (sender as tdbgrid).DefaultDrawDataCell(Rect, Field, State);
end;

procedure Tfm_cksetup.BBtnEditClick(Sender: TObject);
begin
    if (table1.State=dsedit) and (not query1.eof) then
    begin
        table1.Post;
        //addoptrecord(query1.FieldByName('ckmc').asstring+'的商品【'+
        //query1.fieldbyname('spbm').asstring+'】' '库存设置');
    end;
end;

procedure Tfm_cksetup.Table1AfterPost(DataSet: TDataSet);
begin
    query1.active:=false;
    query1.active:=true;
end;

procedure Tfm_cksetup.DBGrid2DrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
   if (query1.fieldbyname('spnum').asinteger<query1.fieldbyname('spnummin').asinteger) and (not(gdselected  in state)) then
    begin
        (sender as tdbgrid).Canvas.Brush.Color:=RGB(219,253,253);
        (sender as tdbgrid).Canvas.font.Color:=clred;
    end
    else if (query1.fieldbyname('spnum').asinteger>query1.fieldbyname('spnummax').asinteger) and (not(gdselected in state)) then
    begin
        (sender as tdbgrid).Canvas.Brush.Color:=RGB(229,253,253);
        (sender as tdbgrid).Canvas.font.Color:=clpurple;
    end;
     (sender as tdbgrid).DefaultDrawDataCell(Rect, Field, State);
end;

procedure Tfm_cksetup.BitBtn1Click(Sender: TObject);
begin
    if length(selckmc)=0 then
    begin
        showmessage('请选择仓库或分店名称');
        exit;
    end;
    if application.messagebox(pchar('确定要初始化新的商品信息到仓库或分店【'+
    selckmc+'】中?'),pchar('注意'),MB_OKCANCEL)<>IDOK then
    begin
        exit;
    end;
    qryname.Active:=false;
    qryname.sql.clear;
    qryname.sql.add('insert into t_stocksp (ckmc,spbm,sptxm,spnum) select kk='''+selckmc+''',spbm,sptxm,ss=0 from t_spxx where spbm not in (select spbm from t_stocksp where ckmc='''+selckmc+''')');
    qryname.ExecSQL;
end;

procedure Tfm_cksetup.BBtnLocateClick(Sender: TObject);
begin
    if length(edit1.text)<>6 then
    begin
        showmessage('商品编码为6个数字,请先输入商品编码');
        edit1.setfocus;
        exit;
    end;
    if query1.Eof then
    begin
        showmessage('当前显示的库存商品记录为空,不能查找');
        exit;
    end;
    if query1.Locate('spbm',edit1.text,[]) then
    begin
        label6.Caption:='该商品为【'+query1.fieldbyname('spmc').asstring+'】';
    end
    else
    begin
        label6.Caption:='没有该编码的商品';
    end;
    edit1.SelectAll;
end;

procedure Tfm_cksetup.Edit1KeyPress(Sender: TObject; var Key: Char);
var
mstr:string;
begin
    if key=#13 then
    begin
        mstr:='000000';
        mstr:=mstr+edit1.text;
        edit1.text:=copy(mstr,length(mstr)-5,6);
        bbtnlocate.Click;
    end;
end;

procedure Tfm_cksetup.Query1AfterScroll(DataSet: TDataSet);
begin
    edit1.text:=query1.fieldbyname('spbm').asstring;
    label6.Caption:='该商品为【'+query1.fieldbyname('spmc').asstring+'】';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -