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

📄 uscwcjs.pas

📁 工廠採購管理系統
💻 PAS
字号:
unit uscwcjs;

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;

type
  Tfrmscwcjs = class(TForm)
    RzSizePanel1: TRzSizePanel;
    Panel1: TPanel;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    dtp1: TRzDateTimePicker;
    dtp2: TRzDateTimePicker;
    Label1: TLabel;
    DBNavigator1: TDBNavigator;
    TreeView1: TTreeView;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    DataSource1: TDataSource;
    RzBitBtn7: TRzBitBtn;
    frReport1: TfrReport;
    frDBDataSet1: TfrDBDataSet;
    DBGrid1: TDBGrid;
    RzBitBtn1: TRzBitBtn;
    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 RzBitBtn6Click(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn7Click(Sender: TObject);
  private
    { Private declarations }
    gdhm:string;
    rq1:string;
    rq2:string;
    n:integer;                    //用来标记报表选用那种
  public
    { Public declarations }
  end;

var
  frmscwcjs: Tfrmscwcjs;

implementation
uses uconst,ufunction,udm1,ucx;
{$R *.dfm}
procedure tfrmscwcjs.csh();
var
node:ttreenode;
begin
TreeView1.Items.Clear;
strsql:='select distinct gdhm from ddk where ldrq>=:rq1'+
' and ldrq<=:rq2 and ylwl=1 order by gdhm asc';
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add(strsql);
adoquery2.Parameters.ParamByName('rq1').Value:=dtp1.Date;
adoquery2.Parameters.ParamByName('rq2').Value:=dtp2.Date;
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
                  treeview1.Items.AddChild(node,trim(adoquery2.fieldbyname('gdhm').AsString));
                  adoquery2.Next;
            end;
       end;
adoquery2.Close;
end;
procedure Tfrmscwcjs.FormCreate(Sender: TObject);
begin
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
dtp1.Date:=date-30;
dtp2.Date:=date;
csh;
end;

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

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

procedure Tfrmscwcjs.TreeView1Change(Sender: TObject; Node: TTreeNode);

begin
case node.Level of
   0:
     begin
          strsql:='SELECT order_wlfp.ylbm AS 用料部门, wldmk.pym,'+
      'order_wlfp.wldm AS 物料代码, wldmk.wlmc AS 物料名称,'+
      'wldmk.wlys AS 颜色, wldmk.wlsh AS 色号, wldmk.dw AS 单位,'+
      'wldmk.gysdm AS 供应商, SUM(order_wlfp.xql) AS 需求量, '+
      'SUM(order_wlfp.good_xql) AS B需求, SUM(order_wlfp.let_xql) AS A需求,'+
      'SUM(order_wlfp.yfpsl) AS 分配数量, SUM(order_wlfp.let_yfpsl) AS A分配,'+
      'SUM(order_wlfp.good_yfpsl) AS B分配, SUM(order_wlfp.ylsl) AS 已领数量,'+
      'SUM(order_wlfp.let_ylsl) AS A已领, SUM(order_wlfp.good_ylsl) AS B已领, '+
      'SUM(order_wlfp.wlsl) AS 未领数量, SUM(order_wlfp.let_wlsl) AS A未领,'+
      'SUM(order_wlfp.good_wlsl) AS B未领, SUM(order_wlfp.sysl) AS 剩余数量,'+
      'SUM(order_wlfp.let_sysl) AS A剩余, SUM(order_wlfp.good_sysl)'+
      'AS B剩余'+
      ' FROM order_wlfp,wldmk '+
      'where order_wlfp.wldm =wldmk.wldm and ldrq>='+''''+
      datetostr(dtp1.date)+''''+' and ldrq<='+''''+datetostr(dtp2.date)+''''+
      'GROUP BY order_wlfp.wldm, wldmk.wlmc, wldmk.wlys, wldmk.wlsh,'+
      'wldmk.dw, wldmk.gysdm, order_wlfp.ylbm, wldmk.pym '+
      'ORDER BY wldmk.pym';
          rq1:=datetostr(dtp1.Date);
          rq2:=datetostr(dtp2.Date);
          n:=0;
          gdhm:='';
     end;
   1:
     begin
          strsql:='select * from view_order_wlfp where 工单号码='+''''+trim(node.Text)+'''';
          n:=1;
          gdhm:=trim(node.Text);
     end;
end;
adoexect(adoquery1,strsql);
end;

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

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

procedure Tfrmscwcjs.RzBitBtn5Click(Sender: TObject);
begin
if n<1 then exit;
frReport1.DoublePass := True;
frReport1.Clear;
if n<>1 then exit;
   frReport1.LoadFromFile(strpath+'/report/scjsyy.frf');
   frVariables['gdhm']:=gdhm;
frVariables['username']:=username;
frreport1.ShowReport;
end;

procedure Tfrmscwcjs.RzBitBtn4Click(Sender: TObject);
begin
frReport1.DoublePass := True;
frReport1.Clear;
if n<>1 then exit;
   frReport1.LoadFromFile(strpath+'/report/scjsyy.frf');
   frVariables['gdhm']:=gdhm;
frVariables['username']:=username;
frreport1.DesignReport;
end;

procedure Tfrmscwcjs.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
if adoquery1.FieldByName('分配数量').Value-adoquery1.FieldByName('已领数量').Value-adoquery1.FieldByName('剩余数量').Value > 0 then
   begin
   dbgrid1.Canvas.Brush.Color:=clYellow;
   dbgrid1.DefaultDrawColumnCell(rect,datacol,column,[gdfixed,gdfocused,gdselected]);
   end;
end;

procedure Tfrmscwcjs.RzBitBtn1Click(Sender: TObject);
begin
close;
end;

procedure Tfrmscwcjs.RzBitBtn7Click(Sender: TObject);
begin
if gdhm='' then
   begin
   showmessage('没有选择工单');
   exit;
   end;
if adoquery1.Recordset.eof and adoquery1.Recordset.bof then exit;
strsql:='alter table order_wlfp disable trigger all';
adodel(adoquery3,strsql);
adoquery1.First;
while not adoquery1.Recordset.EOF do
      begin
      strsql:='update wldmk set yfpkc=yfpkc-'+
      inttostr(adoquery1.FieldByName('分配数量').Value-adoquery1.fieldbyname('已领数量').Value-adoquery1.fieldbyname('剩余数量').Value)+
      ',sykc=sykc+'+
      inttostr(adoquery1.FieldByName('分配数量').Value-adoquery1.fieldbyname('已领数量').Value-adoquery1.fieldbyname('剩余数量').Value)+
      ' where wldm='+
      ''''+trim(adoquery1.fieldbyname('物料代码').AsString)+'''';
      adodel(adoquery3,strsql);
      adoquery1.Next;
      end;
strsql:='update order_wlfp set sysl=yfpsl-ylsl,good_sysl=good_yfpsl-good_ylsl,'+
'let_sysl=let_yfpsl-let_ylsl where order_wlfp.gdhm='+''''+gdhm+'''';
adodel(adoquery3,strsql);

strsql:='alter table llqk_detail enable trigger all';
adodel(adoquery3,strsql);
strsql:='update ddk set yscwb=1 where gdhm='+''''+trim(gdhm)+'''';
adodel(adoquery3,strsql);
strsql:='insert into gonggao(id,title,djr,pubdate) values('+''''+gdhm+''''+','+''''+'工单号码:'+
gdhm+'已经生产完毕,当前已经结算'+''''+','+''''+username+''''+','+''''+datetostr(date)+''''+')';
adodel(adoquery3,strsql);
adoquery1.Close;
adoquery1.Open;
end;

end.

⌨️ 快捷键说明

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