📄 untwldwstaff.pas
字号:
//往来单位决策分析
//5-26;
unit UntWldwStaff;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fm_Base, StdCtrls, Buttons, Grids, ExtCtrls, DB, DBClient,
DBGrids, Menus, ComCtrls, ImgList, Edit1;
type
TfmWldwStaff = class(TfmBase)
PageC1: TPageControl;
TabGoods: TTabSheet;
PopupMenu2: TPopupMenu;
N3: TMenuItem;
N4: TMenuItem;
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
btnpagedown: TBitBtn;
BitBtn7: TBitBtn;
Panel2: TPanel;
Gridbase: TStringGrid;
DBGrid1: TDBGrid;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
cmbtop: TComboBox;
Panel4: TPanel;
CBType: TComboBox;
cbBrand: TComboBox;
CbBreed: TComboBox;
ckbtype: TCheckBox;
ckbbreed: TCheckBox;
ckbbrand: TCheckBox;
cbwldw: TCheckBox;
edtwldw: TEdit;
Cbmstorage: TCheckBox;
cmbmstorage: TComboBox;
cbstorages: TCheckBox;
cmbstorages: TComboBox;
dsview: TDataSource;
cdssoft: TClientDataSet;
cdspart: TClientDataSet;
TabBackGoods: TTabSheet;
TabFinace: TTabSheet;
Panel5: TPanel;
Label4: TLabel;
Label5: TLabel;
Panel6: TPanel;
Cmbtype: TComboBox;
Cmbbrand: TComboBox;
Cmbbreed: TComboBox;
Chbtype: TCheckBox;
ChBbreed: TCheckBox;
Chbbrand: TCheckBox;
Chbwldw: TCheckBox;
Edtgeher: TEdit;
ChbMstorage: TCheckBox;
CmbBmstorage: TComboBox;
Chbstorage: TCheckBox;
CmbbStorage: TComboBox;
Panel7: TPanel;
GridBack: TStringGrid;
DBGrid2: TDBGrid;
Panel8: TPanel;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
ImageList1: TImageList;
TabSheet1: TTabSheet;
Panel9: TPanel;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
BitBtn12: TBitBtn;
BitBtn13: TBitBtn;
Panel10: TPanel;
StringGrid1: TStringGrid;
DBGrid3: TDBGrid;
Panel11: TPanel;
Label6: TLabel;
Label7: TLabel;
Panel12: TPanel;
Chbcode: TCheckBox;
Edtcode: TEdit;
ChbName: TCheckBox;
Edtname: TEdit;
ChbtotalYs: TCheckBox;
ChbTotalYf: TCheckBox;
ChBXY: TCheckBox;
EdtTotalYS: TEdit1;
EdTTotalYf: TEdit1;
Edtxy: TEdit1;
Panel13: TPanel;
Panel14: TPanel;
BitBtn14: TBitBtn;
BitBtn15: TBitBtn;
BitBtn16: TBitBtn;
BitBtn17: TBitBtn;
Panel15: TPanel;
Label8: TLabel;
Panel16: TPanel;
Cbname: TCheckBox;
EdTSup_no: TEdit;
SpeedButton1: TSpeedButton;
Label9: TLabel;
Label10: TLabel;
ckbnewDate: TCheckBox;
dtpBegin: TDateTimePicker;
dtpEnd: TDateTimePicker;
RB1: TRadioButton;
RB2: TRadioButton;
DBGrid4: TDBGrid;
btnprint: TBitBtn;
BitBtn18: TBitBtn;
Label11: TLabel;
Label12: TLabel;
CBinput: TCheckBox;
dtpinputB: TDateTimePicker;
dtpinputE: TDateTimePicker;
Label13: TLabel;
Label14: TLabel;
cbcancel: TCheckBox;
dtpcancelB: TDateTimePicker;
dtpcancelE: TDateTimePicker;
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn5Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure GridbaseDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure BitBtn1Click(Sender: TObject);
procedure cbwldwClick(Sender: TObject);
procedure ckbtypeClick(Sender: TObject);
procedure CBTypeChange(Sender: TObject);
procedure ckbbrandClick(Sender: TObject);
procedure cbBrandChange(Sender: TObject);
procedure ckbbreedClick(Sender: TObject);
procedure CbmstorageClick(Sender: TObject);
procedure cbstoragesClick(Sender: TObject);
procedure cmbmstorageChange(Sender: TObject);
procedure btnpagedownClick(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure ChbtypeClick(Sender: TObject);
procedure ChbbrandClick(Sender: TObject);
procedure ChBbreedClick(Sender: TObject);
procedure ChbMstorageClick(Sender: TObject);
procedure ChbstorageClick(Sender: TObject);
procedure ChbwldwClick(Sender: TObject);
procedure CmbtypeChange(Sender: TObject);
procedure CmbbrandChange(Sender: TObject);
procedure CmbBmstorageChange(Sender: TObject);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid2DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid2TitleClick(Column: TColumn);
procedure BitBtn10Click(Sender: TObject);
procedure ChbcodeClick(Sender: TObject);
procedure ChbNameClick(Sender: TObject);
procedure ChbtotalYsClick(Sender: TObject);
procedure ChbTotalYfClick(Sender: TObject);
procedure ChBXYClick(Sender: TObject);
procedure DBGrid3TitleClick(Column: TColumn);
procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid3DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure PageC1Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure ckbnewDateClick(Sender: TObject);
procedure CbnameClick(Sender: TObject);
procedure BitBtn14Click(Sender: TObject);
procedure DBGrid4TitleClick(Column: TColumn);
procedure DBGrid4DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure DBGrid4DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure btnprintClick(Sender: TObject);
procedure CBinputClick(Sender: TObject);
procedure cbcancelClick(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
private
{ Private declarations }
vbegin,vend,Iflag:string;
NO:STRING;
ps:boolean;
LocalCount:integer;
procedure inistringgrid(Gridbases: TStringGrid;db:TDBGrid;visible:boolean);
procedure readdata(gridbases:tstringgrid;dbgrids:tdbgrid);//库存分布;
procedure cleardata(gridbases:tstringgrid);
procedure PrintGrid(Sgrid:tstringgrid);
//procedure redata; //销售分布
public
{ Public declarations }
tj:string;
tempsql,tables:string;
end;
var
fmWldwStaff: TfmWldwStaff;
implementation
uses func, untdatadm,fm_SetColumn, Supply_Monad, Unitreportxf;
{$R *.dfm}
/////////////////自定义函数
procedure TfmWldwStaff.readdata(gridbases:tstringgrid;dbgrids:tdbgrid);
var
i,p,t,m,j,d,c:integer;
f:boolean;
begin
m:=gridbases.RowCount-1;
gridbases.RowCount:=cdssoft.RecordCount+1;
t:=gridbases.RowCount-1;
i:=1;
cdssoft.First;
while not cdssoft.Eof do
begin
f:=true;
if trim(gridbases.Cells[1,m-1])=trim(cdssoft.fieldbyname('goods_no').AsString) then
begin
c:=0;
j:= gridbases.ColCount;
for d:=1 to j do
begin
if trim(gridbases.Cells[d,0])=trim(cdssoft.fieldbyname('storage_no').AsString+'仓库') then
begin
c:=d;
end;
end;
if c=0 then
begin
gridbases.ColCount:=gridbase.ColCount+1;
gridbases.ColWidths[gridbase.ColCount-1]:=60;
gridbases.Cols[gridbase.ColCount-1].Add(trim(cdssoft.fieldbyname('storage_no').AsString+'仓库'));
gridbases.Cells[gridbase.ColCount-1,m-1]:=trim(cdssoft.fieldbyname('countamount').AsString );
end else
begin
gridbases.Cells[c,m-1]:=trim(cdssoft.fieldbyname('stock_amount').AsString );
end;
f:=false;
end;
if f then
begin
for p:=1 to dbgrids.FieldCount-1 do
begin
j:=gridbases.ColCount-1;
c:=0;
if (trim(Gridbases.Cells[1,m])<>'') and (trim(Gridbases.Cells[2,m])<>'') and (trim(Gridbases.Cells[3,m])<>'') and (trim(gridbases.Cells[4,m])<>'') then
begin
for d:=1 to j do
begin
if trim(Gridbases.Cells[d,0])=trim(cdssoft.fieldbyname('storage_no').AsString+'仓库') then
begin
c:=d;
end;
end;
end;
if c=0 then
begin
c:=p;
end ;
Gridbases.Cells[c,m]:=trim(dbgrids.Fields[p].AsString);
end;
inc(m);
end;
cdssoft.Next;
end;
//////////////////////////////
m:=0; //清除空白项
for i:=1 to gridbases.RowCount-1 do
begin
if trim(gridbases.Cells[1,i])='' then inc(m);
end;
gridbases.RowCount:=gridbases.RowCount-m;
end;
procedure tfmWldwStaff.inistringgrid(Gridbases: TStringGrid;db:tdbgrid;visible:boolean);
var
i:integer;
begin
if visible then
begin
cleardata(Gridbases);
end;
Gridbase.Visible:=visible;
if gridbases.ColCount<= db.Columns.Count then
begin
gridbases.ColCount:=db.Columns.Count;
end;
gridbases.ColWidths[0]:=-1;
for i:=1 to db.Columns.Count-1 do
begin
if dbgrid1.Columns[i].Visible then
begin
gridbases.ColWidths[i]:=db.Columns[i].Width;
end else
begin
gridbases.ColWidths[i]:=-1;
end;
if trim(db.Columns.Items[i].Title.Caption)<>'商品数量' then
begin
gridbases.cells[i,0]:=trim(db.Columns[i].Title.Caption);
end else
begin
gridbases.cells[i,0]:=trim(cdssoft.fieldbyname('storage_no').AsString)+'仓库';
end;
end;
readdata(Gridbases,db);
end;
procedure TfmWldwStaff.cleardata(gridbases:tstringgrid);
var
i:integer;
begin
for i:=1 to Gridbases.RowCount-1 do
begin
Gridbases.Rows[i].Clear;
end;
Gridbases.RowCount:=2;
for i:=0 to Gridbases.ColCount-1 do
begin
Gridbases.cols[i].Clear;
end;
Gridbases.ColCount:=2;
end;
procedure TfmWldwStaff.PrintGrid(Sgrid:tstringgrid);
begin
if trim(Sgrid.Cells[1,Sgrid.RowCount-1])<>'' then
begin
fastrepxf:=tfastrepxf.Create(self);
fastrepxf.filenames:='GeherGoods.ini';
//fastrepxf.RepSGrid.RangeEnd := reCount;
GetCopyGrid(fastrepxf.SGridData,Sgrid);
fastrepxf.SGridData.Enabled:=true;
fastrepxf.ShowModal;
fastrepxf.Free;
end;
end;
/////////////////////////////////
procedure TfmWldwStaff.BitBtn7Click(Sender: TObject);
begin
inherited;
close;
end;
procedure TfmWldwStaff.BitBtn2Click(Sender: TObject);
begin
inherited;
with TfmSetColumn.Create(Self) do
try
showmodal;
finally
free;
end;
if pagec1.ActivePageIndex=0 then
begin
if gridbase.Visible then
begin
inistringgrid(gridbase,dbgrid1,true);
end;
end;
if pagec1.ActivePageIndex=1 then
begin
if gridback.Visible then
begin
inistringgrid(gridback,dbgrid2,true);
end;
end;
end;
procedure TfmWldwStaff.BitBtn3Click(Sender: TObject);
var
p:Tpoint;
begin
inherited;
GetCursorPos(P);
BitBtn3MouseDown(sender,mbLeft,[ssLeft],p.X,p.Y);
end;
procedure TfmWldwStaff.BitBtn3MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
p:Tpoint;
begin
inherited;
GetCursorPos(P);
PopupMenu2.Popup(P.x,P.y);
end;
procedure TfmWldwStaff.BitBtn5Click(Sender: TObject);
begin
inherited;
label2.Caption:='---销售分布';
end;
procedure TfmWldwStaff.N3Click(Sender: TObject);
var
sql:widestring;
datas:olevariant;
begin
inherited;
IF PAGEC1.ActivePageIndex =0 THEN
BEGIN
dbgCur:=dbgrid1;
if gridbase.Visible then
begin
gridbase.Visible:=false;
dbgrid1.Visible:=true;
end else
begin
gridbase.Visible:=false;
dbgrid1.Visible:=true;
end;
END;
IF PAGEC1.ActivePageIndex =1 THEN
BEGIN
dbgCur:=dbgrid2;
if gridbaCK.Visible then
begin
gridbACK.Visible:=false;
dbgrid2.Visible:=true;
end else
begin
gridbaCK.Visible:=false;
dbgrid2.Visible:=true;
end;
END;
end;
procedure TfmWldwStaff.FormShow(Sender: TObject);
var
t_sql:string;
datas:olevariant;
begin
inherited;
t_sql:='select * from [goods_type]';
GetDataToComBoX(cbtype,t_sql,'type');
cmbtype.Items:=cbtype.Items;//
cbtype.ItemIndex := -1;
cmbtop.ItemIndex:=0;
if TabGoods.TabVisible then
begin
pagec1.ActivePageIndex:=0;
end else
begin
dbgCur:=dbgrid3;
end;
dtpbegin.Date:=date-30;
dtpend.Date:=date;
dtpinputb.Date:= dtpbegin.Date;
dtpinpute.Date:= dtpend.Date;
dtpcancelb.Date:= dtpbegin.Date;
dtpcancele.Date:= dtpend.Date;
tempsql:=' select top '+trim(cmbtop.Text);
///////////////////////////////
cmbmstorage.Items.Add('本仓库'+shopid);
////////////////是否为总仓库
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -