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

📄 kc_unit.~pas

📁 单机进销存管理程序 Delphi+Acce
💻 ~PAS
字号:
unit kc_unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, Buttons,data;

type
  Tkc_form = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton5: TSpeedButton;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    DBGrid1: TDBGrid;
    StatusBar1: TStatusBar;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit2: TEdit;
    TabSheet2: TTabSheet;
    DBGrid2: TDBGrid;
    StatusBar2: TStatusBar;
    GroupBox2: TGroupBox;
    SpeedButton2: TSpeedButton;
    SpeedButton6: TSpeedButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    SpeedButton7: TSpeedButton;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    Edit1: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  kc_form: Tkc_form;

implementation

{$R *.dfm}

procedure Tkc_form.RadioButton1Click(Sender: TObject);
begin
with data.database do
begin
data.database.adoq1.Connection :=data.database.adoc;
data.database.adoq4.Connection :=data.database.adoc;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add(' select 类别,商品编码,商品名称,规格,型号,单位,sum(库存数量) as 现有库存数量,sum(库存金额) as 现有库存金额 from kcb group by 类别,商品编码,商品名称,规格,型号,单位');
data.database.adoq1.Active :=true;
if data.database.adoq1.Recordset.RecordCount >0 then
begin
data.database.adoq4.SQL.Clear ;
data.database.adoq4.SQL.Add('select sum(库存数量) as sl,sum(库存金额) as je1 from kcb');
data.database.adoq4.Active :=true;
statusbar1.Panels[1].Text :=inttostr(data.database.adoq1.Recordset.RecordCount);
statusbar1.Panels[3].Text :=floattostr(adoq4.Fields.Fields[0].AsFloat);
statusbar1.Panels[5].Text :=floattostr(adoq4.Fields.Fields[1].AsFloat);
data.database.datas1.DataSet :=data.database.adoq1;
dbgrid1.DataSource :=data.database.datas1;
dbgrid1.Columns[0].Width :=80;
dbgrid1.Columns[1].Width :=80;
dbgrid1.Columns[2].Width :=80;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=80;
dbgrid1.Columns[6].Width :=80;
end
else
showmessage('库中无信息,请先导入!');
end;
end;

procedure Tkc_form.RadioButton2Click(Sender: TObject);
begin
with data.database do
begin
data.database.adoq1.Connection :=data.database.adoc;
data.database.adoq4.Connection :=data.database.adoc;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add(' select 商品编码,商品名称,类别,规格,型号,单位,sum(库存数量) as 现有库存数量,sum(库存金额) as 现有库存金额 from kcb group by 商品编码,商品名称,类别,规格,型号,单位');
data.database.adoq1.Active :=true;
if data.database.adoq1.Recordset.RecordCount >0 then
begin
data.database.adoq4.SQL.Clear ;
data.database.adoq4.SQL.Add('select sum(库存数量) as sl,sum(库存金额) as je1 from kcb');
data.database.adoq4.Active :=true;
statusbar1.Panels[1].Text :=inttostr(data.database.adoq1.Recordset.RecordCount);
statusbar1.Panels[3].Text :=floattostr(data.database.adoq4.Fields.Fields[0].AsFloat);
statusbar1.Panels[5].Text :=floattostr(data.database.adoq4.Fields.Fields[1].AsFloat);
data.database.datas1.DataSet :=data.database.adoq1;
dbgrid1.DataSource :=data.database.datas1;
dbgrid1.Columns[0].Width :=80;
dbgrid1.Columns[1].Width :=80;
dbgrid1.Columns[2].Width :=80;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=80;
dbgrid1.Columns[6].Width :=80;
end
else
showmessage('库中无信息,请先导入!');
end;
end;

procedure Tkc_form.RadioButton3Click(Sender: TObject);
begin
with data.Database do
begin
data.Database.adoq1.Connection :=data.Database.adoc;
data.Database.adoq4.Connection :=data.Database.adoc;
data.Database.adoq1.SQL.Clear ;
data.Database.adoq1.SQL.Add(' select 商品名称,商品编码,类别,规格,型号,单位,sum(库存数量) as 现有库存数量,sum(库存金额) as 现有库存金额 from kcb group by 商品名称,商品编码,类别,规格,型号,单位');
data.Database.adoq1.Active :=true;
if data.Database.adoq1.Recordset.RecordCount >0 then
begin
data.Database.adoq4.SQL.Clear ;
data.Database.adoq4.SQL.Add('select sum(库存数量) as sl,sum(库存金额) as je1 from kcb');
data.Database.adoq4.Active :=true;
statusbar1.Panels[1].Text :=inttostr(data.Database.adoq1.Recordset.RecordCount);
statusbar1.Panels[3].Text :=floattostr(data.Database.adoq4.Fields.Fields[0].AsFloat);
statusbar1.Panels[5].Text :=floattostr(data.Database.adoq4.Fields.Fields[1].AsFloat);
data.Database.datas1.DataSet :=data.Database.adoq1;
dbgrid1.DataSource :=data.Database.datas1;
dbgrid1.Columns[0].Width :=80;
dbgrid1.Columns[1].Width :=80;
dbgrid1.Columns[2].Width :=80;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=80;
dbgrid1.Columns[6].Width :=80;
end
else
showmessage('库中无信息,请先导入!');
end;
end;

procedure Tkc_form.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
with data.database do
begin
data.database.adoq1.Connection :=data.database.adoc;
data.database.adoq2.Connection :=data.database.adoc;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('delete from kcb');
data.database.adoq1.ExecSQL ;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,sum(数量) as 库存数量,sum(金额) as 库存金额 from jhd group by 商品编码,录单日期,类别,商品名称,规格,型号,单位');
data.database.adoq1.ExecSQL ;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,-sum(数量) as 库存数量,-sum(金额) as 库存金额 from jhthd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
data.database.adoq1.ExecSQL ;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,-sum(数量) as 库存数量,-sum(金额) as 库存金额 from xshd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
data.database.adoq1.ExecSQL ;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,sum(数量) as 库存数量,sum(金额) as 库存金额 from khthd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
data.database.adoq1.ExecSQL ;
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('select distinct kcb.商品编码 ,spzl.库存上限,spzl.库存下限 from kcb,spzl where kcb.商品编码 = spzl.商品编码');
data.database.adoq1.Active :=true;
if data.database.adoq1.Recordset.RecordCount >0 then
begin
for i:=0 to data.database.adoq1.Recordset.RecordCount  do
begin
edit2.Text :=data.database.adoq1.Fields.Fields[0].AsString ;
edit3.text :=data.database.adoq1.Fields.Fields[1].AsVariant ;
edit4.text :=data.database.adoq1.Fields.Fields[2].AsVariant ;
data.database.adoq2.SQL.Clear ;
data.database.adoq2.SQL.Add('update kcb set 库存上限=:sx,库存下限=:xx where 商品编码=:bm');
data.database.adoq2.Parameters.ParamByName('bm').Value :=edit2.Text ;
data.database.adoq2.Parameters.ParamByName('sx').Value :=edit3.Text ;
data.database.adoq2.Parameters.ParamByName('xx').Value :=edit4.Text ;
data.database.adoq2.ExecSQL ;
if not data.database.adoq1.Recordset.EOF then data.database.adoq1.MoveBy(1);
end;
end
else
showmessage('库存及各个表中可能为空,请输入数据!');
data.database.adoq1.SQL.Clear ;
data.database.adoq1.SQL.Add('select 类别,商品编码,商品名称,规格,型号,单位,库存数量,库存金额,库存上限,库存下限 from kcb');
data.database.adoq1.Active :=true;
data.database.datas1.DataSet :=adoq1;
dbgrid1.DataSource :=data.database.datas1;
radiobutton1.Checked :=false;
radiobutton2.Checked :=false;
radiobutton3.Checked :=false;
dbgrid1.Columns[0].Width :=70;
dbgrid1.Columns[1].Width :=70;
dbgrid1.Columns[2].Width :=70;
dbgrid1.Columns[3].Width :=70;
dbgrid1.Columns[4].Width :=70;
dbgrid1.Columns[5].Width :=70;
dbgrid1.Columns[6].Width :=70;

end;
end;

procedure Tkc_form.SpeedButton5Click(Sender: TObject);
begin
close;
end;

procedure Tkc_form.SpeedButton6Click(Sender: TObject);
begin
close;
end;

procedure Tkc_form.SpeedButton2Click(Sender: TObject);
begin

with data.database do
begin
data.database.adoq1.Connection :=data.database.adoc;
data.database.adoq1.SQL.Clear ;
case combobox3.ItemIndex of  //combobox3开始
0: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 商品编码=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 商品编码>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 商品编码<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 商品编码 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end;  //combobox3(0)结束
1: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 商品名称=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 商品名称>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 商品名称<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 商品名称 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end;  //combobox3(1)结束
2: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 规格=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 规格>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 规格<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 规格 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end;  //combobox3(2)结束
3: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 型号=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 型号>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 型号<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 型号 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end;  //combobox3(3)结束
4: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 单位=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 单位>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 单位<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 单位 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end;  //combobox3(4)结束
5: begin
case combobox4.ItemIndex of   //combobox4开始
  0:begin data.database.adoq1.SQL.Add('select * from kcb where 类别=:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  1:begin data.database.adoq1.SQL.Add('select * from kcb where 类别>:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  2:begin data.database.adoq1.SQL.Add('select * from kcb where 类别<:bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text end;
  3:begin data.database.adoq1.SQL.Add('select * from kcb where 类别 like :bm'); data.database.adoq1.Parameters.ParamByName('bm').Value :=edit1.Text+'%' end;
end;  //combobox4结束
end  //combobox3(5)结束
else data.database.adoq1.SQL.Add('select * from kcb');
end; //combobox3结束
data.database.adoq1.Active :=true;
if data.database.adoq1.Recordset.RecordCount >0 then
begin
statusbar2.Panels[1].Text :=inttostr(data.database.adoq1.Recordset.RecordCount);
//statusbar1.Panels[3].Text :=floattostr(adoq1.Fields.Fields[0].AsFloat);
//statusbar1.Panels[5].Text :=floattostr(adoq1.Fields.Fields[1].AsFloat);
data.database.datas1.DataSet :=data.database.adoq1;
dbgrid2.DataSource :=data.database.datas1;
dbgrid2.Columns[0].Width :=70;
dbgrid2.Columns[1].Width :=70;
dbgrid2.Columns[2].Width :=70;
dbgrid2.Columns[3].Width :=70;
dbgrid2.Columns[4].Width :=70;
dbgrid2.Columns[5].Width :=70;
dbgrid2.Columns[6].Width :=70;
dbgrid2.Columns[7].Width :=80;
dbgrid2.Columns[8].Width :=80;
dbgrid2.Columns[9].Width :=80;
end
else showmessage('没有此数据,尝试先导入数据或用别的方法查找!');
end;







end;

end.

⌨️ 快捷键说明

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