📄 pfm_cksetup.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 + -