📄 kc_unit.pas
字号:
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 + -