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

📄 fcprocess.pas

📁 制衣MRP管理系统源码
💻 PAS
字号:
unit FCProcess;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BaseInfoBase, wwDialog, wwidlg, DB, ADODB, ActnList, ComCtrls,
  ToolWin, wwdblook, StdCtrls, Mask, wwdbedit, ExtCtrls, Grids, DBGrids,
  DBCtrls, dxdbtrel, fcTreeView;

type
  TfrmFCProcess = class(TfrmBaseInfoBase)
    Splitter1: TSplitter;
    Panel1: TPanel;
    Panel3: TPanel;
    Label10: TLabel;
    Label4: TLabel;
    Label2: TLabel;
    Label1: TLabel;
    wwDBEditName: TwwDBEdit;
    wwDBLSec: TwwDBLookupCombo;
    QBaseInfofID: TAutoIncField;
    QBaseInfofSecID: TIntegerField;
    QBaseInfofName: TWideStringField;
    QBaseInfofRoleID: TIntegerField;
    QBaseInfofNotes: TWideStringField;
    qSection: TADOQuery;
    dsSection: TDataSource;
    QBaseInfosSectionName: TStringField;
    dxDBLookupTreeView1: TdxDBLookupTreeView;
    DBMemo1: TDBMemo;
    qDep: TADOQuery;
    dsDep: TDataSource;
    QBaseInfosDepName: TStringField;
    qSectionfID: TAutoIncField;
    qSectionfName: TWideStringField;
    QMaster: TADOQuery;
    dsMaster: TDataSource;
    DBGrid1: TDBGrid;
    tvMaster: TfcTreeView;
    qWC: TADOQuery;
    dsWC: TDataSource;
    Label3: TLabel;
    wwDBLWC: TwwDBLookupCombo;
    QBaseInfofWCID: TIntegerField;
    QBaseInfosWCName: TStringField;
    QMasterAID: TAutoIncField;
    QMasterAName: TWideStringField;
    QMasterBID: TAutoIncField;
    QMasterBName: TWideStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure QBaseInfoAfterInsert(DataSet: TDataSet);
    procedure dsBaseInfoStateChange(Sender: TObject);
    procedure dxDBLookupTreeView1DropDown(Sender: TObject);
    procedure tvMasterChange(TreeView: TfcCustomTreeView;
      Node: TfcTreeNode);
    procedure QBaseInfoAfterPost(DataSet: TDataSet);
    procedure acDeleteExecute(Sender: TObject);
    procedure acModifyExecute(Sender: TObject);
    procedure acNewExecute(Sender: TObject);
  private
    iState:TDataSetState;
    iSectionID:integer;
    procedure DrawTree();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmFCProcess: TfrmFCProcess;

implementation

Uses DataModule, Global;
{$R *.dfm}

procedure TfrmFCProcess.DrawTree();
begin
With QMaster do
begin
first;
//写树
tvMaster.items.BeginUpdate;
tvMaster.Items.Clear ;
while not eof do
begin
    GFTreeAddItem(2,False,QMaster,tvMaster);
    next;
end;
tvMaster.items.Endupdate;
if tvMaster.Items.Count >0 then
   tvMaster.Items[0].Selected :=True;
//tvMaster.FullExpand ;
end;
end;

procedure TfrmFCProcess.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  frmFCProcess:=nil;
end;

procedure TfrmFCProcess.FormCreate(Sender: TObject);
begin
  if Not QMaster.Active then QMaster.Open ;
  inherited;
  if not qDep.Active then qDep.open;
  if not qSection.Active then qSection.Open;
  if not qWC.Active then qWC.Open;
  drawTree();
end;

procedure TfrmFCProcess.QBaseInfoAfterInsert(DataSet: TDataSet);
begin
  inherited;
QBaseInfo.FieldByName('fSecID').asInteger:=iSectionID;
end;

procedure TfrmFCProcess.dsBaseInfoStateChange(Sender: TObject);
var
i:Integer;
begin
  inherited;
With Panel3 do
   for i:= 0 to ControlCount-1 do
     if Controls[i] is TDBEdit then
        (Controls[i] as TDBEdit).ReadOnly := Not acSave.Enabled
        else if Controls[i] is TDBMemo then
             (Controls[i] as TDBMemo).ReadOnly := Not acSave.Enabled;
dbGrid1.ReadOnly := Not acSave.Enabled ;
tvMaster.Enabled := Not acSave.Enabled ;
end;

procedure TfrmFCProcess.dxDBLookupTreeView1DropDown(Sender: TObject);
begin
  inherited;
if Not acSave.Enabled then abort;
end;

procedure TfrmFCProcess.tvMasterChange(TreeView: TfcCustomTreeView;
  Node: TfcTreeNode);
{var
  ChildNode:TfcTreeNode; }
begin
  inherited;
acModify.Enabled :=Node.Level =1;
acDelete.Enabled :=Node.Level =1;

Case Node.Level of
0:
  begin
  if (Node.data<>nil) and (iSectionID<>Integer(Node.Data^)) then
     begin
     iSectionID := Integer(Node.Data^);
     With QBaseInfo do
         Begin
         Parameters.ParamValues['fID']:=iSectionID;
         if Active then Requery else Open;
         end;
     end;
  end ;
1:
  begin
  if iSectionID<>Integer(Node.Parent.Data^) then
     begin
     iSectionID:=Integer(Node.Parent.Data^);
     With QBaseInfo do
         Begin
         Parameters.ParamValues['fID']:=iSectionID;
         if Active then Requery else Open;
         end;
     end;
  if Node.data<>nil then
     QBaseInfo.Locate('fID',Integer(Node.Data^),[]);
  end;
end;
end;

procedure TfrmFCProcess.QBaseInfoAfterPost(DataSet: TDataSet);
var
   sName: String;
   pID: ^Integer;
   Node,ParentNode: TfcTreeNode;
begin
  inherited;

if tvMaster.Selected.Level =0 then
   ParentNode:= tvMaster.Selected
   else
   ParentNode:=tvMaster.Selected.Parent;
if iState=dsInsert then
   sName:=QBaseInfo.FieldbyName('fName').asString;
Node:=GFTreeFindItem(ParentNode,tvMaster,QBaseInfo.FieldbyName('fName').asString);
if Node<>Nil then
   Node.Text := sName
   else
   begin
   New(pID);
   pID^:=QBaseInfo.FieldbyName('fID').asInteger;
   tvMaster.Items.AddChildObject(ParentNode,sName,pID);
   end;

iState:=dsBrowse ;
end;

procedure TfrmFCProcess.acDeleteExecute(Sender: TObject);
var
   Node: TfcTreeNode;
begin
if QBaseInfo.RecordCount >0 then
   if messagedlg('您确定要删除当前记录吗?',mtWarning,[mbOk,mbCancel],0)=mrOk then
      begin
      if tvMaster.Selected.Level =0 then
        Node:=GFTreeFindItem(tvMaster.Selected,tvMaster,QBaseInfo.FieldbyName('fName').asString)
        else
        Node:=GFTreeFindItem(tvMaster.Selected.Parent,tvMaster,QBaseInfo.FieldbyName('fName').asString);
      tvMaster.Items.Delete(Node);
      QBaseInfo.Delete ;
      end;
//  inherited;

end;

procedure TfrmFCProcess.acModifyExecute(Sender: TObject);
begin
  inherited;
iState:=QBaseInfo.State ;
end;

procedure TfrmFCProcess.acNewExecute(Sender: TObject);
begin
  inherited;
iState:=QBaseInfo.State ;
end;

end.

⌨️ 快捷键说明

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