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

📄 uxqwcjs.pas

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

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
  Tfrmxqwcjs = class(TForm)
    RzSizePanel1: TRzSizePanel;
    Panel1: TPanel;
    RzBitBtn6: TRzBitBtn;
    dtp1: TRzDateTimePicker;
    dtp2: TRzDateTimePicker;
    Label1: TLabel;
    DBNavigator1: TDBNavigator;
    TreeView1: TTreeView;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    DataSource1: TDataSource;
    RzBitBtn7: TRzBitBtn;
    frReport1: TfrReport;
    frDBDataSet1: TfrDBDataSet;
    DBGrid1: TDBGrid;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: 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 DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure RzBitBtn7Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
    rq1:string;
    rq2:string;
    js:boolean;
  public
    { Public declarations }
  end;

var
  frmxqwcjs: Tfrmxqwcjs;

implementation
uses uconst,ufunction,udm1,ucx;
{$R *.dfm}
procedure tfrmxqwcjs.csh();
var
node:ttreenode;
begin
TreeView1.Items.Clear;
strsql:='select distinct cgxqdh from cgwl_mail where '+
'srrq>=:rq1 and srrq<=:rq2  order by cgxqdh 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('cgxqdh').AsString));
                  adoquery2.Next;
            end;
       end;
adoquery2.Close;
end;
procedure Tfrmxqwcjs.FormCreate(Sender: TObject);
begin
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
dtp1.Date:=date-30;
dtp2.Date:=date;
csh;
js:=false;
end;

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

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

procedure Tfrmxqwcjs.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if node.Level=1 then
     begin
          strsql:='select * from view_cgwl_js where 需求单号='+''''+trim(node.text)+''''+
          ' order by 助记码 asc';
          adoexect(adoquery1,strsql);
     end;

end;

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

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

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

procedure Tfrmxqwcjs.RzBitBtn7Click(Sender: TObject);
var
cgdhm:string;
dgdhm:string;
i:integer;
begin
if adoquery1.Recordset.eof and adoquery1.Recordset.bof then exit;
strsql:='select * from cgwl_mail where cgxqdh='+''''+trim(adoquery1.fieldbyname('需求单号').asstring)+''''+
' and yfpwl=1';
adoexect(adoquery2,strsql);
if adoquery2.Recordset.eof and adoquery1.Bof then
   begin
   showmessage('该需求单还未分配好物料,不能进行物料结算');
   exit;
   end;
cgdhm:=trim(adoquery1.fieldbyname('用料工单').asstring);
dgdhm:='';
for i:=1 to length(cgdhm) do
   begin
        if copy(cgdhm,i,1)=',' then
        dgdhm:=dgdhm+QuotedStr(',')
        else
        dgdhm:=dgdhm+copy(cgdhm,i,1);
   end;
if dgdhm<>'' then
  begin
      strsql:='select gdhm from ddk where yscwb<>1 and gdhm in ('+''''+dgdhm+''''+')';
      adoexect(adoquery2,strsql);
      if not(adoquery2.Recordset.EOF and adoquery2.Recordset.BOF) then
      begin
           showmessage('此需求单上的用料工单尚未结算,'+#10#13+'请先结算工单'+cgdhm);
           exit;
      end;
  end;
      strsql:='update cgwl set sysl=ykcl+yssl-yfpsl where cgxqdh='+''''+trim(adoquery1.fieldbyname('需求单号').asstring)+'''';
      adodel(adoquery2,strsql);
      strsql:='insert into gonggao(id,title,djr,pubdate) values('+''''+trim(adoquery1.fieldbyname('需求单号').asstring)+''''+
      ','+''''+'需求单号:'+trim(adoquery1.fieldbyname('需求单号').asstring)+',已经完成结算'+''''+','+''''+
      username+''''+','+''''+datetostr(date)+''''+')';
      adodel(adoquery2,strsql);
      adoquery2.Close;
      adoquery1.Close;
      adoquery1.Open;
      js:=true;
messagebox(handle,'需求结算成功!','信息',mb_iconinformation+mb_ok);
end;

procedure Tfrmxqwcjs.RzBitBtn2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery2.Close;
close;
end;

procedure Tfrmxqwcjs.RzBitBtn1Click(Sender: TObject);
begin
if not js then
   begin
       showmessage('盈余返回前,必须先结算!');
       exit;
   end;
strsql:='select cgxqdh from cgwl_mail where cgxqdh='+''''+
trim(adoquery1.fieldbyname('需求单号').asstring)+''''+' and xqwcjs=1';
adoexect(adoquery2,strsql);
if not(adoquery2.Recordset.EOF and adoquery2.Recordset.BOF) then
   begin
        showmessage('该需求单已经完成结算,不能重复返回盈余');
        exit;
   end;
if adoquery1.Recordset.eof and adoquery1.Recordset.bof then exit;
      strsql:='update wldmk set yfpkc=yfpkc-cgwl.sysl'+
      ',sykc=sykc+sysl from cgwl where wldmk.wldm=cgwl.wldm'+
      ' and cgwl.cgxqdh='+''''+trim(adoquery1.fieldbyname('需求单号').asstring)+'''';
      adodel(adoquery2,strsql);
      adoquery1.Close;
      adoquery1.Open;
messagebox(handle,'盈余返回成功!','信息',mb_iconinformation+mb_ok);
      strsql:='update cgwl_mail set xqwcjs=1 where cgxqdh='+''''+trim(adoquery1.fieldbyname('需求单号').asstring)+'''';
      adodel(adoquery2,strsql);
end;

procedure Tfrmxqwcjs.RzBitBtn4Click(Sender: TObject);
begin
if adoquery1.Recordset.eof and adoquery1.Recordset.BOF then exit;
frReport1.DoublePass := True;
frReport1.Clear;
frReport1.LoadFromFile(strpath+'/report/xqwcjs.frf');
frVariables['username']:=username;
frreport1.ShowReport;
end;

procedure Tfrmxqwcjs.RzBitBtn3Click(Sender: TObject);
begin
if adoquery1.Recordset.eof and adoquery1.Recordset.BOF then exit;
frReport1.DoublePass := True;
frReport1.Clear;
frReport1.LoadFromFile(strpath+'/report/xqwcjs.frf');
frVariables['username']:=username;
frreport1.DesignReport;
end;

procedure Tfrmxqwcjs.DBGrid1TitleClick(Column: TColumn);
begin
dgridpx(adoquery1,DBGrid1,Column);
end;

end.

⌨️ 快捷键说明

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