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

📄 untmsggoods.pas

📁 适合行业为眼镜业
💻 PAS
字号:
unit UntMsgGoods;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, fm_Base, StdCtrls, Buttons, Grids, ExtCtrls;

type
  Tdlgmsggoods = class(TfmBase)
    Panel1: TPanel;
    Gridbase: TStringGrid;
    btnOk: TBitBtn;
    btnCancel: TBitBtn;
    procedure btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure GridbaseSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure btnOkClick(Sender: TObject);
    procedure GridbaseDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private declarations }
    prow:integer;
    procedure frominit;
    procedure readdata;
    function binddata():boolean;
    function YdRead():boolean;
  public
    { Public declarations }
    model:integer;//(0:商品需求;1:陪送申请;2:预定申请)
  end;

var
  dlgmsggoods: Tdlgmsggoods;

implementation

uses untdatadm, func, Untgoodcodedetail, UntgoodscodeRe;

{$R *.dfm}
/////////////
procedure tdlgmsggoods.frominit;
begin
  if model=1 then
  begin
  Gridbase.ColCount:=5;
  Gridbase.Cells[0,0]:='序号';
  Gridbase.Cells[1,0]:='商品类别';
  Gridbase.Cells[2,0]:='申请数量';
  Gridbase.Cells[3,0]:='已配送数量';
  Gridbase.Cells[4,0]:='差额数量';
  Gridbase.ColWidths[0]:=30;
  Gridbase.ColWidths[1]:=70;
  Gridbase.ColWidths[2]:=70;
  Gridbase.ColWidths[3]:=70;
  Gridbase.ColWidths[4]:=70;
  readdata;
  end ;
  if model=0 then
  begin
    caption:='部门需求商品';
    Gridbase.ColCount:=3;
    Gridbase.Cells[0,0]:='序号';
    Gridbase.Cells[1,0]:='商品类别';
    Gridbase.Cells[2,0]:='需求数量';
    Gridbase.ColWidths[0]:=30;
    Gridbase.ColWidths[1]:=70;
    Gridbase.ColWidths[2]:=70;
    binddata();
  end;
  if model=2 then
  begin
    caption:='部门预定商品';
    Gridbase.ColCount:=4;
    Gridbase.Cells[0,0]:='序号';
    Gridbase.Cells[1,0]:='商品类别';
    Gridbase.Cells[2,0]:='商品品种';
    Gridbase.Cells[3,0]:='预定数量';
    Gridbase.ColWidths[0]:=30;
    Gridbase.ColWidths[1]:=70;
    Gridbase.ColWidths[2]:=70;
    Gridbase.ColWidths[3]:=70;
    YdRead();
  end;
end;

procedure tdlgmsggoods.readdata;
var
  sqlpub:widestring;
  i:integer;
begin
  sqlpub:='select sum(nqty) as sqnum,sum(nsendqty) as psnum,sum(totalamount) as totalnum ,type from vpssq where vcofficeid='+''''+trim(officeid)+''''+'group by type';
  dmmain.CDSquery2.Close;
  dmmain.CDSquery2.Data:=null;
  try
    dmmain.CDSquery2.Data:=adisp.GetRecord(sqlpub);
    dmmain.CDSquery2.Open;
    gridbase.RowCount:=dmmain.CDSquery2.RecordCount +1;
    i:=1;
    while not dmmain.CDSquery2.Eof do
    begin
      gridbase.Cells[0,i]:=inttostr(i);
      gridbase.Cells[1,i]:=trim(dmmain.CDSquery2.fieldbyname('type').AsString);
      gridbase.Cells[2,i]:=trim(dmmain.CDSquery2.fieldbyname('sqnum').AsString);
      gridbase.Cells[3,i]:=trim(dmmain.CDSquery2.fieldbyname('psnum').AsString);
      gridbase.Cells[4,i]:=trim(dmmain.CDSquery2.fieldbyname('totalnum').AsString);
      inc(i);
      dmmain.CDSquery2.Next;
    end;
    dmmain.CDSquery2.Close;
    dmmain.CDSquery2.Data:=null;
  except
  end;
end;

function  Tdlgmsggoods.binddata() :boolean;
var
  sqlpub:widestring;
  i:integer;
begin
  result:=false;
  sqlpub:='select sum(amount) as amount ,type from [VRequirement] group by type';
  dmmain.CDSquery2.Close;
  dmmain.CDSquery2.Data:=null;
  try
    dmmain.CDSquery2.Data:=adisp.GetRecord(sqlpub);
    dmmain.CDSquery2.Open;
    gridbase.RowCount:=dmmain.CDSquery2.RecordCount +1;
    i:=1;
    while not dmmain.CDSquery2.Eof do
    begin
      gridbase.Cells[0,i]:=inttostr(i);
      gridbase.Cells[1,i]:=trim(dmmain.CDSquery2.fieldbyname('type').AsString);
      gridbase.Cells[2,i]:=trim(dmmain.CDSquery2.fieldbyname('amount').AsString);
      inc(i);
      dmmain.CDSquery2.Next;
    end;
    dmmain.CDSquery2.Close;
    dmmain.CDSquery2.Data:=null;
  except
  end;

end;

function  Tdlgmsggoods.YdRead() :boolean;
var
  sqlpub:widestring;
  i:integer;
begin
  result:=false;
  sqlpub:='select sum(amount) as amount ,type,breed from [VYdgoods] group by type,breed';
  dmmain.CDSquery2.Close;
  dmmain.CDSquery2.Data:=null;
  try
    dmmain.CDSquery2.Data:=adisp.GetRecord(sqlpub);
    dmmain.CDSquery2.Open;
    gridbase.RowCount:=dmmain.CDSquery2.RecordCount +1;
    i:=1;
    while not dmmain.CDSquery2.Eof do
    begin
      gridbase.Cells[0,i]:=inttostr(i);
      gridbase.Cells[1,i]:=trim(dmmain.CDSquery2.fieldbyname('type').AsString);
      gridbase.Cells[2,i]:=trim(dmmain.CDSquery2.fieldbyname('breed').AsString);
      gridbase.Cells[3,i]:=trim(dmmain.CDSquery2.fieldbyname('amount').AsString);
      inc(i);
      dmmain.CDSquery2.Next;
    end;
    dmmain.CDSquery2.Close;
    dmmain.CDSquery2.Data:=null;
  except
    dmmain.CDSquery2.Close;
    dmmain.CDSquery2.Data:=null;
  end;

end;
///////////////
procedure Tdlgmsggoods.btnCancelClick(Sender: TObject);
begin
  inherited;
  close;
end;

procedure Tdlgmsggoods.FormShow(Sender: TObject);
begin
  inherited;
  frominit;
end;

procedure Tdlgmsggoods.GridbaseSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  inherited;
  prow:=arow;
end;

procedure Tdlgmsggoods.btnOkClick(Sender: TObject);
begin
  inherited;
  if (prow>0)  then
  begin
    if model=1 then
    begin
    fmgoodCodedetail:= TfmgoodCodedetail.Create(nil);
     try
    fmgoodCodedetail.show_mode := '配送收货单';
    fmgoodCodedetail.CBType.Text:=trim(gridbase.Cells[1,prow]);
    fmgoodCodedetail.billtyped:='501';//申请;
     fmgoodCodedetail.ShowModal;
    finally
     fmgoodCodedetail.Free;
     self.SetFocus;
    end;
    end else
    begin
      fmgoodCodeRE:=tfmgoodCodeRE.Create(self);
      fmgoodCodeRE.cbType.Text:=trim(gridbase.Cells[1,prow]);
      fmgoodCodeRE.ShowMode:=model;
      fmgoodCodeRE.ShowModal;
      self.SetFocus;
      fmgoodCodeRE.Free;
    end;
  end;
end;

procedure Tdlgmsggoods.GridbaseDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  s:string;
  r:TRect;
begin

 with Sender as Tstringgrid do
  begin
  if gdSelected in State then
  Canvas.Brush.Color:= clTeal;
  Canvas.TextRect(Rect,Rect.Left,Rect.Top,' '+Cells[ACol,ARow]);
  if gdFocused in State then
  Canvas.DrawFocusRect(Rect);
  end;
 with Sender as Tstringgrid do
  begin
    Canvas.FillRect(Rect);
    s:=Cells[ACol,ARow];
    r:=Rect;
    DrawText(Canvas.Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER);
  end;

end;

end.

⌨️ 快捷键说明

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