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

📄 kc_unit.pas

📁 网上搜索来的进销存源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit kc_unit;

interface

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

type
  Tkc_form = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    SpeedButton1: TSpeedButton;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    StatusBar1: TStatusBar;
    StatusBar2: TStatusBar;
    SpeedButton3: TSpeedButton;
    SpeedButton5: TSpeedButton;
    GroupBox2: TGroupBox;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton6: TSpeedButton;
    Label5: TLabel;
    ComboBox3: TComboBox;
    Label6: TLabel;
    ComboBox4: TComboBox;
    Label7: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Edit1: TEdit;
    Edit2: TEdit;
    rep1: TQuickRep;
    ColumnHeaderBand1: TQRBand;
    DetailBand1: TQRBand;
    TitleBand1: TQRBand;
    PageFooterBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRSysData1: TQRSysData;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    QRDBText3: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRSysData2: TQRSysData;
    QRLabel14: TQRLabel;
    SummaryBand1: TQRBand;
    QRLabel10: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRLabel13: TQRLabel;
    SpeedButton7: TSpeedButton;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  kc_form: Tkc_form;

implementation

uses data_unit, kc_bb_unit;

{$R *.dfm}

procedure Tkc_form.FormCreate(Sender: TObject);
begin
  pagecontrol1.ActivePageIndex := 0;
  self.Top := 74;
  self.Left := 4;
  self.Height := 491;
  self.Width := 790;
  rep1.Visible := false;
end;

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

procedure Tkc_form.SpeedButton1Click(Sender: TObject);
var i: integer;
begin
  with database do
  begin
    adoq1.Connection := adoc;
    adoq2.Connection := adoc;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('delete from kcb');
    adoq1.ExecSQL;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,sum(数量) as 库存数量,sum(金额) as 库存金额 from jhd group by 商品编码,录单日期,类别,商品名称,规格,型号,单位');
    adoq1.ExecSQL;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,-sum(数量) as 库存数量,-sum(金额) as 库存金额 from jhthd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
    adoq1.ExecSQL;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,-sum(数量) as 库存数量,-sum(金额) as 库存金额 from xshd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
    adoq1.ExecSQL;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('insert into kcb select 录单日期,类别,商品编码,商品名称,规格,型号,单位,sum(数量) as 库存数量,sum(金额) as 库存金额 from khthd  group by 录单日期,类别,商品编码,商品名称,规格,型号,单位');
    adoq1.ExecSQL;
    adoq1.SQL.Clear;
    adoq1.SQL.Add('select distinct kcb.商品编码 ,spzl.库存上限,spzl.库存下限 from kcb,spzl where kcb.商品编码 = spzl.商品编码');
    adoq1.Active := true;
    if adoq1.Recordset.RecordCount > 0 then
    begin
      for i := 0 to adoq1.Recordset.RecordCount do
      begin
        edit2.Text := adoq1.Fields.Fields[0].AsString;
        edit3.text := adoq1.Fields.Fields[1].AsVariant;
        edit4.text := adoq1.Fields.Fields[2].AsVariant;
        adoq2.SQL.Clear;
        adoq2.SQL.Add('update kcb set 库存上限=:sx,库存下限=:xx where 商品编码=:bm');
        adoq2.Parameters.ParamByName('bm').Value := edit2.Text;
        adoq2.Parameters.ParamByName('sx').Value := edit3.Text;
        adoq2.Parameters.ParamByName('xx').Value := edit4.Text;
        adoq2.ExecSQL;
        if not adoq1.Recordset.EOF then adoq1.MoveBy(1);
      end;
    end
    else
      showmessage('库存及各个表中可能为空,请输入数据!');
    adoq1.SQL.Clear;
    adoq1.SQL.Add('select 类别,商品编码,商品名称,规格,型号,单位,库存数量,库存金额,库存上限,库存下限 from kcb');
    adoq1.Active := true;
    datas1.DataSet := adoq1;
    dbgrid1.DataSource := 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.RadioButton1Click(Sender: TObject);
begin
  with database do
  begin
//showmessage('为保证数据的最新,请先导入库存信息!');
    adoq1.Connection := adoc;
    adoq4.Connection := adoc;
    adoq1.SQL.Clear;
    adoq1.SQL.Add(' select 类别,商品编码,商品名称,规格,型号,单位,sum(库存数量) as 现有库存数量,sum(库存金额) as 现有库存金额 from kcb group by 类别,商品编码,商品名称,规格,型号,单位');
    adoq1.Active := true;
    if adoq1.Recordset.RecordCount > 0 then
    begin
      adoq4.SQL.Clear;
      adoq4.SQL.Add('select sum(库存数量) as sl,sum(库存金额) as je1 from kcb');
      adoq4.Active := true;
      statusbar1.Panels[1].Text := inttostr(adoq1.Recordset.RecordCount);
      statusbar1.Panels[3].Text := floattostr(adoq4.Fields.Fields[0].AsFloat);
      statusbar1.Panels[5].Text := floattostr(adoq4.Fields.Fields[1].AsFloat);
      datas1.DataSet := adoq1;
      dbgrid1.DataSource := datas1;
      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 := 80;
      dbgrid1.Columns[6].Width := 80;
    end
    else
      showmessage('库中无信息,请先导入!');
  end;
end;

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

end;

procedure Tkc_form.RadioButton3Click(Sender: TObject);
begin
  with database do
  begin
//showmessage('为保证数据的最新,请先导入库存信息!');
    adoq1.Connection := adoc;
    adoq4.Connection := adoc;
    adoq1.SQL.Clear;
    adoq1.SQL.Add(' select 商品名称,商品编码,类别,规格,型号,单位,sum(库存数量) as 现有库存数量,sum(库存金额) as 现有库存金额 from kcb group by 商品名称,商品编码,类别,规格,型号,单位');
    adoq1.Active := true;
    if adoq1.Recordset.RecordCount > 0 then
    begin
      adoq4.SQL.Clear;
      adoq4.SQL.Add('select sum(库存数量) as sl,sum(库存金额) as je1 from kcb');
      adoq4.Active := true;
      statusbar1.Panels[1].Text := inttostr(adoq1.Recordset.RecordCount);
      statusbar1.Panels[3].Text := floattostr(adoq4.Fields.Fields[0].AsFloat);
      statusbar1.Panels[5].Text := floattostr(adoq4.Fields.Fields[1].AsFloat);
      datas1.DataSet := adoq1;
      dbgrid1.DataSource := datas1;
      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 := 80;
      dbgrid1.Columns[6].Width := 80;

⌨️ 快捷键说明

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