📄 kccx1.pas
字号:
unit kccx1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExcelXP, OleServer, StdCtrls, Grids, DBGrids, Buttons, DB, ADODB,
TFlatButtonUnit, TFlatEditUnit, TFlatComboBoxUnit, RzButton,
scExcelExport, bsSkinShellCtrls, DBGridEh, FR_Class, FR_DSet, FR_DBSet,
RzCmboBx, Mask, RzEdit, RzStatus, ExtCtrls, RzPanel;
type
Tkccx = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
Label1: TLabel;
Label2: TLabel;
ADOQuery1: TADOQuery;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
RzBitBtn4: TRzBitBtn;
bsSkinSaveDialog1: TbsSkinSaveDialog;
scExcelExport1: TscExcelExport;
DBGridEh1: TDBGridEh;
frDBDataSet1: TfrDBDataSet;
frReport1: TfrReport;
FlatComboBox1: TRzComboBox;
FlatEdit1: TRzEdit;
RzStatusBar1: TRzStatusBar;
RzStatusPane1: TRzStatusPane;
RzStatusPane2: TRzStatusPane;
procedure FlatButton4Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FlatComboBox1DropDown(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
procedure RzBitBtn4Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure RzComboBox1DropDown(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
kccx: Tkccx;
implementation
uses adodm;
{$R *.dfm}
procedure Tkccx.FlatButton4Click(Sender: TObject);
begin
close
end;
procedure Tkccx.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdselected in state then//如果当前区域是被选区域
begin
//设置被选区域颜色
tdbgrid(sender).Canvas.Brush.Color:=clinfobk;
//设置被选区域字体颜色
tdbgrid(sender).Canvas.Font.Color:=clfuchsia;
end
else //如果是当前区域不是被选择区域
begin
//如果是偶数行,则背景颜色为 clskyblue
if tdbgrid(sender).DataSource.DataSet.RecNo mod 2 =0 then
tdbgrid(sender).Canvas.Brush.Color:=clskyblue
else
//如果是奇数行,则背景颜色为 clinactivecaptiontext
tdbgrid(sender).Canvas.Brush.Color:=clWhite;
end;
//调用默认的绘图函数
tdbgrid(sender).DefaultDrawColumnCell(rect,datacol,column,state);
end;
procedure Tkccx.FlatComboBox1DropDown(Sender: TObject);
var
i:integer;
begin
flatcombobox1.clear;
adoquery1.Open;
if (adoquery1.RecordCount>0) then
adoquery1.First;
for i:=0 to adoquery1.RecordCount - 1 do
begin
flatcombobox1.Items.add(adoquery1.Fieldbyname('仓库名称').AsString);
adoquery1.Next;
end;
end;
procedure Tkccx.RzBitBtn1Click(Sender: TObject);
begin
dm.adoconnection1.Connected;
adodataset1.Active:=false;
dm.adock.SQL.Clear;
dm.adock.SQL.Add('update kcdata inner join wldata on kcdata.物料代码=wldata.物料代码 set kcdata.金额=kcdata.数量*wldata.单价');
dm.adock.ExecSQL;
if flatcombobox1.Text='' then
begin
adodataset1.CommandText:='select 物料代码,品名,sum(数量) as 库存数量,sum(金额) as 库存金额,库别 from kcdata group by 物料代码,品名,库别 order by 物料代码';
adodataset1.Active:=true;
DBGridEh1.Columns[0].Width :=150;
DBGridEh1.Columns[1].Width :=120;
DBGridEh1.Columns[2].Width :=80;
DBGridEh1.Columns[3].Width :=80;
DBGridEh1.Columns[4].Width :=120;
RzStatusPane1.Caption:='查询共有:'+inttostr(adodataset1.Recordset.RecordCount)+' 条记录';
end
else
begin
if (flatedit1.Text='') then
begin
adodataset1.CommandText:='select 物料代码,品名,sum(数量) as 库存数量,sum(金额) as 库存金额,库别 from kcdata group by 物料代码,品名,库别 order by 物料代码';
adodataset1.Active:=true;
DBGridEh1.Columns[0].Width :=150;
DBGridEh1.Columns[1].Width :=120;
DBGridEh1.Columns[2].Width :=80;
DBGridEh1.Columns[3].Width :=80;
DBGridEh1.Columns[4].Width :=120;
RzStatusPane1.Caption:='查询共有:'+inttostr(adodataset1.Recordset.RecordCount)+' 条记录';
end
else
begin
adodataset1.CommandText:='select 物料代码,品名,sum(数量) as 库存数量,sum(金额) as 库存金额,库别 from kcdata where 物料代码 like ''%'+trim(flatedit1.Text)+'%'' group by 物料代码,品名,库别';
adodataset1.Active:=true;
DBGridEh1.Columns[0].Width :=150;
DBGridEh1.Columns[1].Width :=120;
DBGridEh1.Columns[2].Width :=80;
DBGridEh1.Columns[3].Width :=80;
DBGridEh1.Columns[4].Width :=120;
RzStatusPane1.Caption:='查询共有:'+inttostr(adodataset1.Recordset.RecordCount)+' 条记录';
end;
end;
if flatcombobox1.Text<>'' then
begin
adodataset1.active:=false;
adodataset1.CommandText:='select 物料代码,品名,sum(数量) as 库存数量,sum(金额) as 库存金额,库别 from kcdata where 库别='''+trim(flatcombobox1.Text)+''' group by 物料代码,品名,库别 order by 物料代码';
adodataset1.Active:=true;
DBGridEh1.Columns[0].Width :=150;
DBGridEh1.Columns[1].Width :=120;
DBGridEh1.Columns[2].Width :=80;
DBGridEh1.Columns[3].Width :=80;
DBGridEh1.Columns[4].Width :=120;
RzStatusPane1.Caption:='查询共有:'+inttostr(adodataset1.Recordset.RecordCount)+' 条记录';
end
end;
procedure Tkccx.RzBitBtn3Click(Sender: TObject);
begin
close
end;
procedure Tkccx.RzBitBtn4Click(Sender: TObject);
begin
if adodataset1.IsEmpty=true then
showmessage('请先查询相应的数据')
else
begin
bsskinSaveDialog1 := TbsskinSaveDialog.Create(nil);
bsskinSaveDialog1.Filter := 'Execl 文件(*.XLS)|*.XLS|Word 文件(*.doc)|*.doc|HTML 文件(*.HTM)|*.HTM|TXT 文件 (*.txt)|*.TXT';
if bsskinSaveDialog1.Execute then
begin
if fileexists(bsskinSaveDialog1.FileName) then
if application.MessageBox('目标文件已经存在,要覆盖吗?',pchar(application.Title),mb_yesno+mb_iconquestion) <> 6 then exit;
try
scExcelExport1.LoadDefaultProperties;
scExcelExport1.ExcelVisible:=False;
scExcelExport1.WorksheetName := 'sheet1';
scExcelExport1.ExportDataset;
scExcelExport1.SaveAs(bsskinSaveDialog1.FileName,ffXLS);
finally
scExcelExport1.Disconnect;
showmessage('数据导出成功!'+bsskinSaveDialog1.FileName);
end;
end;
end;
end;
procedure Tkccx.RzBitBtn2Click(Sender: TObject);
begin
if adodataset1.Recordset.RecordCount>0 then
begin
frreport1.LoadFromFile('report\kccx.frf');
//打印当前数据库
frreport1.ShowReport;
end
else
showmessage('请先执行查询')
end;
procedure Tkccx.RzComboBox1DropDown(Sender: TObject);
var
i:integer;
begin
flatcombobox1.clear;
adoquery1.Open;
if (adoquery1.RecordCount>0) then
adoquery1.First;
for i:=0 to adoquery1.RecordCount - 1 do
begin
flatcombobox1.Items.add(adoquery1.Fieldbyname('仓库名称').AsString);
adoquery1.Next;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -