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

📄 updwlap.pas

📁 工廠採購管理系統
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit updwlap;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, RzPanel, RzSplit, RzButton, DBCtrls, StdCtrls,
  ComCtrls, RzDTP, RzTabs, Grids, DBGrids, DB, ADODB, Mask, FR_DSet,
  FR_DBSet, FR_Class, Menus, RzDBGrid, DBGridEh, GridsEh;

type
  Tfrmpdwlap = class(TForm)
    RzSizePanel1: TRzSizePanel;
    Panel1: TPanel;
    Panel2: TPanel;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    dtp1: TRzDateTimePicker;
    dtp2: TRzDateTimePicker;
    Label1: TLabel;
    DBNavigator1: TDBNavigator;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    TreeView1: TTreeView;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    DataSource1: TDataSource;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    RzBitBtn7: TRzBitBtn;
    frReport1: TfrReport;
    frDBDataSet1: TfrDBDataSet;
    Edit1: TEdit;
    Label7: TLabel;
    Edit2: TEdit;
    RzBitBtn8: TRzBitBtn;
    RzBitBtn9: TRzBitBtn;
    Panel3: TPanel;
    CheckBox1: TCheckBox;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    ADOQuery4: TADOQuery;
    DataSource2: TDataSource;
    editwldm: TEdit;
    editwlmc: TEdit;
    editwlys: TEdit;
    editwlsh: TEdit;
    ADOQuery5: TADOQuery;
    DataSource3: TDataSource;
    N3: TMenuItem;
    GroupBox2: TGroupBox;
    Edit3: TEdit;
    ADOQuery6: TADOQuery;
    Panel4: TPanel;
    Panel5: TPanel;
    RzDBGrid1: TRzDBGrid;
    DBGridEh1: TDBGridEh;
    procedure FormCreate(Sender: TObject);
    procedure csh();
    procedure dtp1Exit(Sender: TObject);
    procedure dtp2Exit(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RzBitBtn7Click(Sender: TObject);
    procedure RzBitBtn6Click(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure TabSheet2Enter(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure RzBitBtn8Click(Sender: TObject);
    procedure RzBitBtn9Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure RzDBGrid2CellClick(Column: TColumn);
    procedure TabSheet1Enter(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure N3Click(Sender: TObject);
    procedure DBGridEh1CellClick(Column: TColumnEh);
    procedure Edit2DblClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  private
    { Private declarations }
    gcdh:string;
    gcdh1:string;
    gdhm:string;
    chang:string;
    strsql1:string;
    rq1:string;
    rq2:string;
    n:integer;
  public
    { Public declarations }
    num1:longint;
    num2:longint;
  end;

var
  frmpdwlap: Tfrmpdwlap;

implementation
uses uconst,ufunction,udm1,ucx,uwllb;
{$R *.dfm}
procedure tfrmpdwlap.csh();
var
node:ttreenode;
node1:ttreenode;
node2:ttreenode;
begin
TreeView1.Items.Clear;
strsql:='select distinct gdhm from ddk where'+
' ldrq>='+''''+datetostr(dtp1.Date)+''''+' and ldrq<='+''''+datetostr(dtp2.Date)+''''+
' and yclwl=1 and yscwb<>1 order by'+
' gdhm asc';
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add(strsql);
adoquery2.Open;
if not(adoquery2.Recordset.EOF and adoquery2.Recordset.BOF) then
      begin
            adoquery2.First;
            node:=treeview1.Items.AddFirst(nil,'排单安排列表');
            while not adoquery2.Eof do
            begin
                  node1:=treeview1.Items.AddChild(node,trim(adoquery2.fieldbyname('gdhm').AsString));
                  strsql:='select distinct chang from llqk_detail where hthm='+''''+
                  trim(adoquery2.fieldbyname('gdhm').AsString)+
                  ''''+' order by chang asc';
                  adoexect(adoquery6,strsql);
                  adoquery6.First;
                  while not adoquery6.Eof do
                        begin
                        node2:=treeview1.Items.AddChild(node1,trim(adoquery6.fieldbyname('chang').AsString));
                        strsql:='select distinct gdhm from llqk_detail where chang='+''''+trim(adoquery6.fieldbyname('chang').asstring)+
                        ''''+ ' and hthm='+''''+
                        trim(adoquery2.fieldbyname('gdhm').AsString)+
                        ''''+' order by gdhm asc';
                        adoexect(adoquery3,strsql);
                        adoquery3.First;
                        while not adoquery3.Eof do
                              begin
                              treeview1.Items.AddChild(node2,trim(adoquery3.fieldbyname('gdhm').AsString));
                              adoquery3.Next;
                              end;
                              adoquery6.Next;
                        end;
                  adoquery2.Next;
            end;
       end;
adoquery6.Close;
adoquery2.Close;
adoquery3.Close;
end;
procedure Tfrmpdwlap.FormCreate(Sender: TObject);
begin
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
adoquery5.Connection:=dm1.ADOConnection1;
gcdh:='';
gcdh:='';
dtp1.Date:=date;
dtp2.Date:=date+30;
csh;
end;

procedure Tfrmpdwlap.dtp1Exit(Sender: TObject);
begin
csh;
end;

procedure Tfrmpdwlap.dtp2Exit(Sender: TObject);
begin
csh;
end;

procedure Tfrmpdwlap.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
i:integer;
begin
adoquery1.Filtered:=false;
case node.Level of
   0:
     begin
     if CheckBox1.Checked then
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) 需求量,sum(yfpsl) 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm '+
          ' and ldrq>='+''''+datetostr(dtp1.Date)+''''+
          ' and ldrq<='+''''+datetostr(dtp2.Date)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym having sum(llqk_detail.xql)>sum(yfpsl) order by wldmk.pym asc'
     else
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm and'+
          ' ldrq>='+''''+datetostr(dtp1.Date)+''''+
          ' and ldrq<='+''''+datetostr(dtp2.Date)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,pym order by wldmk.pym asc';
          gcdh:='';
          gcdh1:='';
          chang:='';
          n:=1;
          rq1:=datetostr(dtp1.Date);
          rq2:=datetostr(dtp2.Date);
     end;
   1:
     begin
     if CheckBox1.Checked then
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm and'+
          ' hthm='+''''+trim(node.text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym having sum(llqk_detail.xql)>sum(yfpsl) order by wldmk.pym asc'
     else
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm and'+
          ' hthm='+''''+trim(node.text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym order by wldmk.pym asc';
          gdhm:=trim(node.text);
          gcdh:='';
          gcdh1:='';
          n:=2;
     end;
   2:
     begin
          if CheckBox1.Checked then
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm '+' and hthm='+''''+trim(gdhm)+''''+
          ' and chang='+''''+trim(node.Text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym having sum(llqk_detail.xql)>sum(yfpsl) order by wldmk.pym asc'
     else
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm '+' and hthm='+''''+trim(gdhm)+''''+
          ' and chang='+''''+trim(node.Text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym order by wldmk.pym asc';
          chang:=trim(node.Text);
          gdhm:=trim(node.Parent.text);
          gcdh:='';
          gcdh1:='';
          n:=3;
     end;
     
   3:
     begin
     if CheckBox1.Checked then
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm and'+
          ' gdhm='+''''+trim(node.text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym having sum(llqk_detail.xql)>sum(yfpsl) order by wldmk.pym asc'
     else
          strsql:='select llqk_detail.wldm as 物料代码,pym as 拼音码,wlmc as 物料名称,wlys as 颜色,wlsh as 色号,'+
          'dw as 单位,gysdm as 供应商,sum(llqk_detail.xql) as 需求量,sum(yfpsl) as 已分配量,ldrq,pym'+
          ' from llqk_detail,wldmk where llqk_detail.wldm=wldmk.wldm and'+
          ' gdhm='+''''+trim(node.text)+''''+
          ' group by llqk_detail.wldm,wlmc,wlys,wlsh,dw,pym,gysdm,ldrq,pym order by wldmk.pym asc';
          gcdh:=trim(node.Text);
          gcdh1:=gcdh;
          chang:=trim(node.Parent.text);
          gdhm:=trim(node.Parent.Parent.Text);
          n:=3;
     end;
end;

adoexect(adoquery1,strsql);
if (gdhm='') and (gcdh='') then
   begin
       gcdh:='';
       gdhm:=''
   end;
//showmessage(gcdh+','+gdhm+','+hthm);
end;

procedure Tfrmpdwlap.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;

procedure Tfrmpdwlap.RzBitBtn7Click(Sender: TObject);
begin
close;
end;

procedure Tfrmpdwlap.RzBitBtn6Click(Sender: TObject);
begin
frmcx:=tfrmcx.Create(self);
frmcx.adocx:=adoquery1;
frmcx.ShowModal;
adoquery1:=frmcx.adocx;
ADOquery1.Requery();
dbgrid1.Refresh;
end;

procedure Tfrmpdwlap.RzBitBtn5Click(Sender: TObject);
begin
frReport1.DoublePass := True;
frReport1.Clear;
case n of
     1:
     begin
     frReport1.LoadFromFile(strpath+'/report/pdwlap_3.frf');
     frVariables['rq1']:=rq1;
     frVariables['rq2']:=rq2;
     end;
     2:
     begin
     frReport1.LoadFromFile(strpath+'/report/pdwlap_2.frf');
     frVariables['hthm']:=gdhm;
     end;
     3:
     begin
     frReport1.LoadFromFile(strpath+'/report/pdwlap.frf');
     frVariables['gcdh']:=gcdh;
     end;
end;

frVariables['username']:=username;
frreport1.ShowReport;

⌨️ 快捷键说明

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