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

📄 usccgxq.pas

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

interface

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

type
  Tfrmsccgxq = class(TForm)
    RzSizePanel1: TRzSizePanel;
    Panel1: TPanel;
    Panel2: TPanel;
    TreeView1: TTreeView;
    Panel3: TPanel;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    RzBitBtn6: TRzBitBtn;
    dtp1: TRzDateTimePicker;
    Label1: TLabel;
    dtp2: TRzDateTimePicker;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    RzBitBtn7: TRzBitBtn;
    RzBitBtn8: TRzBitBtn;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit1: TDBEdit;
    DBMemo1: TDBMemo;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    Label14: TLabel;
    DBEdit12: TDBEdit;
    RzBitBtn9: TRzBitBtn;
    RzBitBtn10: TRzBitBtn;
    Label15: TLabel;
    DBEdit13: TDBEdit;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    Label16: TLabel;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBEdit4: TDBEdit;
    ADOQuery3: TADOQuery;
    ADOQuery4: TADOQuery;
    ADOTable2: TADOTable;
    Label17: TLabel;
    Label18: TLabel;
    Edit1: TEdit;
    Label20: TLabel;
    Label21: TLabel;
    txtykcl: TEdit;
    txtcgsl: TEdit;
    ADOQuery5: TADOQuery;
    Edit2: TEdit;
    Edit3: TEdit;
    Panel4: TPanel;
    RzBitBtn11: TRzBitBtn;
    Panel5: TPanel;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    RzMenuToolbarButton1: TRzToolbarButton;
    Label19: TLabel;
    DBMemo2: TDBMemo;
    N2: TMenuItem;
    ADOQuery6: TADOQuery;
    DataSource3: TDataSource;
    RzDBGrid1: TRzDBGrid;
    Label22: TLabel;
    find: TMenuItem;
    GroupBox2: TGroupBox;
    Edit4: TEdit;
    RzBitBtn12: TRzBitBtn;
    procedure csh();
    procedure brouse();
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    function insertdate():boolean;
    procedure RzBitBtn7Click(Sender: TObject);
    procedure RzBitBtn8Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBEdit2Enter(Sender: TObject);
    procedure DBEdit2Exit(Sender: TObject);
    procedure dtp1Change(Sender: TObject);
    procedure dtp2Change(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure RzBitBtn9Click(Sender: TObject);
    procedure RzBitBtn10Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure TabSheet2Enter(Sender: TObject);
    procedure RzBitBtn6Click(Sender: TObject);
    procedure txtykclChange(Sender: TObject);
    procedure RzMenuToolbarButton1Click(Sender: TObject);
    procedure txtykclKeyPress(Sender: TObject; var Key: Char);
    procedure txtcgslKeyPress(Sender: TObject; var Key: Char);
    procedure RzBitBtn11Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure findClick(Sender: TObject);
    procedure RzBitBtn12Click(Sender: TObject);
    procedure txtykclDblClick(Sender: TObject);
    function iffpkc():boolean;
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
    node:ttreenode;
    chthm:string;
    cgxqdh:string;
    hthm:string;
    ykcl:longint;
    cgsl:longint;
    gdhm:string;
    i:integer;
  public
    { Public declarations }
  end;

var
  frmsccgxq: Tfrmsccgxq;

implementation
uses uconst,ufunction,udm1,uhtlb,Unit3,uwllb;
{$R *.dfm}
function tfrmsccgxq.iffpkc():boolean;
begin
result:=false;
if adoquery5.Recordset.EOF and adoquery5.Recordset.BOF then exit;
strsql:='select cgxqdh from cgwl where dgsl>0 and cgxqdh='+''''+trim(dbedit1.Text)+'''';
adoexect(adoquery3,strsql);
if not(adoquery3.Recordset.EOF and adoquery3.Recordset.BOF) then
   begin
       showmessage('该需求单已经执行,不能再更改');
       result:=true;
       exit;
   end;
end;
procedure tfrmsccgxq.csh();

begin
TreeView1.Items.Clear;
strsql:='select * 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 tfrmsccgxq.brouse();
begin
strsql:='select * from view_cgwl where 采购需求单号='+''''+cgxqdh+''''+
        ' order by 用料部门 desc, 助记码 asc';
if adoquery1.Active then
   begin
   adoquery1.Close;
   end;
if adoquery5.Active then
   adoquery5.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery5.Parameters.ParamByName('cgxqdh').Value:=cgxqdh;
adoquery1.Open;
adoquery5.Open;
end;
procedure Tfrmsccgxq.FormCreate(Sender: TObject);
begin
dtp1.Date:=date-30;
dtp2.Date:=date;
adoquery1.Connection:=dm1.ADOConnection1;
adoquery2.Connection:=dm1.ADOConnection1;
adoquery3.Connection:=dm1.ADOConnection1;
adoquery4.Connection:=dm1.ADOConnection1;
adoquery5.Connection:=dm1.ADOConnection1;
adotable2.Connection:=dm1.ADOConnection1;
adotable2.Open;
adoquery5.Open;
csh;
end;

procedure Tfrmsccgxq.DBGrid1DblClick(Sender: TObject);
begin
RzPageControl1.ActivePageIndex:=1;
end;

procedure Tfrmsccgxq.RzBitBtn1Click(Sender: TObject);

begin
if not qxjc(userid,'xqd_add') then exit;
adoquery5.Append;
DBEDIT4.Text:=DATETOSTR(DATE);
DBEDIT3.Text:=USERNAME;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
TreeView1.Enabled:=false;
end;

procedure Tfrmsccgxq.RzBitBtn2Click(Sender: TObject);
begin
if adoquery5.Recordset.EOF and adoquery5.Recordset.BOF then exit;
if iffpkc then exit;
if not qxjc(userid,'xqd_edit') and (username<>trim(dbedit3.Text)) then exit;
adoquery5.Edit;
DBEDIT4.Text:=DATETOSTR(DATE);
DBEDIT3.Text:=USERNAME;
RzBitBtn1.Enabled:=false;
RzBitBtn2.Enabled:=false;
RzBitBtn3.Enabled:=true;
gdhm:=trim(dbedit2.Text);
TreeView1.Enabled:=false;
end;

procedure Tfrmsccgxq.RzBitBtn3Click(Sender: TObject);
var
qz:string;
i:integer;
cgdhm:string;
begin
if adoquery5.State in[dsinsert] then
   begin
   qz:='CGXQ'+formatdatetime('yy',now)+
   formatdatetime('mm',now)+formatdatetime('dd',date);
   strsql:='select * from cgwl_mail where cgxqdh like'+''''+qz+'%'+''''+'order by cgxqdh asc';
   adoexect(adoquery3,strsql);
   dbedit1.Text:=creatdh(adoquery3,11,qz);
   end;
if trim(dbedit2.Text)='' then
   begin
   showmessage('必须包含工单号,否则不能生成物料需求!');
   exit;
   end;
cgxqdh:=trim(dbedit1.Text);
hthm:=trim(dbedit2.Text);
chthm:='';
cgdhm:='';
{
for i:=1 to length(hthm) do
   begin
        if copy(hthm,i,1)=',' then
        chthm:=chthm+QuotedStr(',')
        else
        chthm:=chthm+copy(hthm,i,1);
   end;
   }
if (gdhm<>trim(dbedit2.Text)) and (adoquery5.State in[dsedit]) then            //如果当前为修改模式,且包含工单发生改变
   begin
   strsql:='select * from cgwl where cgxqdh='+''''+cgxqdh+''''+'and ykcl<>0';
   adoexect(adoquery3,strsql);
   if not(adoquery3.Recordset.EOF and adoquery3.Recordset.bof) then
      begin
      if messagebox(handle,'该采购物料需求单部分物料已分配库存,是否将库存还原并重新生成采购需求?','询问',
      mb_yesno+mb_iconquestion)=idyes then
        begin
             adoquery3.First;
             while not adoquery3.Eof do
              begin
             strsql:='update wldmk set sykc=sykc+'+adoquery3.fieldbyname('ykcl').AsString+
             ',yfpkc=yfpkc-'+adoquery3.fieldbyname('ykcl').AsString+
             ' where wldm='+''''+trim(adoquery3.fieldbyname('wldm').AsString)+'''';
              adodel(adoquery4,strsql);
              adoquery3.Next;
              end;
             strsql:='delete from cgwl where cgxqdh='+''''+cgxqdH+'''';
             adodel(adoquery3,strsql);
             adoquery4.Close;
        end else begin
            adoquery3.Close;
            RzBitBtn7Click(self);
            exit;
        end;

⌨️ 快捷键说明

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