bmzypas.pas

来自「本软件是一套功能完整成熟的固定资产管理系统,具有固定资产管理系统的相应全部功能」· PAS 代码 · 共 358 行

PAS
358
字号
unit bmzypas;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, Menus, ImgList, Grids, DBGrids, ComCtrls, ExtCtrls, ADODB;

type
  Tzycxform = class(TForm)
    Splitter1: TSplitter;
    TreeView1: TTreeView;
    DBGrid1: TDBGrid;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    DataSource1: TDataSource;
    PopupMenu2: TPopupMenu;
    N14: TMenuItem;
    N15: TMenuItem;
    yhxxquery: TADOQuery;
    yhxxqueryDSDesigner: TWideStringField;
    yhxxqueryDSDesigner2: TSmallintField;
    yhxxqueryDSDesigner3: TWideStringField;
    yhxxqueryDSDesigner4: TWideStringField;
    yhxxqueryDSDesigner5: TWideStringField;
    yhxxqueryDSDesigner6: TWideStringField;
    yhxxqueryDSDesigner7: TWideStringField;
    yhxxqueryDSDesigner8: TSmallintField;
    procedure FormShow(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N3Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure yhxxqueryDSDesigner2GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
procedure shownode;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zycxform: Tzycxform;

implementation

uses zjbmpas, zyxxbpas, datapas;


{$R *.DFM}

procedure tzycxform.shownode;
var
    lscx,lscx1:tadoquery;
  i,sjjd:integer;
  MyTreeNode1: TTreeNode;
  dz,lsdz,jdbm:string;
begin
  lscx:=tadoquery.create(self);
  with lscx do
  begin
  close;
  connection:=hjzcdata.hjzcdatabase;
  sql.clear;
  sql.add('select * from 部门编码表 order by 部门编码,上级部门编码');
  prepared;
  open;
  end;
  lscx1:=tadoquery.create(self);
  with lscx1 do
  begin
  close;
  connection:=hjzcdata.hjzcdatabase;
  end;
  with TreeView1.Items do
  begin
  Clear; { remove any existing nodes }
 MyTreeNode1 := Add(nil, '组织结构'); { 增加根结点 }
 end;
  while not lscx.eof do
 begin
//  jd:=lscx.fieldbyname('jdbh').asinteger;
  sjjd:=lscx.fieldbyname('上级部门编码').asinteger;
  dz:=lscx.fieldbyname('部门名称').asstring;;
  jdbm:=inttostr(lscx.fieldbyname('部门编码').asinteger);
  if sjjd=0 then
   begin
  with TreeView1.Items do
  //   增加第一排结点
  AddChild(MyTreeNode1,dz+' '+'('+jdbm+')');
    end else
    begin
   //增加其它结点
  with lscx1 do
  begin
  close;
  sql.clear;
 sql.add('select 部门名称 from 部门编码表 where 部门编码=:bmbm');
  parameters.parambyname('bmbm').value:=sjjd;
  prepared;
  open;
  end;
  lsdz:=lscx1.fields[0].asstring;
  if  lsdz<>'' then  //存在上级结点则增加子结点
  begin
  lsdz:=lsdz+' '+'('+inttostr(sjjd)+')';
  for i:=0 to treeview1.Items.Count-1 do
  if treeview1.Items[i].Text=lsdz then
  treeview1.Items.AddChild(TreeView1.Items[i],dz+' '+'('+jdbm+')');
  end;
  end;
      lscx.next;
      end;
  lscx.close;
  lscx.free;
  lscx1.close;
  lscx1.free;
  treeview1.Items[0].ImageIndex:=2;
  for i:=1 to treeview1.Items.Count-1 do
  if not treeview1.Items[i].HasChildren then
  treeview1.Items[i].ImageIndex:=3 else
   treeview1.Items[i].ImageIndex:=1;
end;

procedure Tzycxform.FormShow(Sender: TObject);
begin
shownode;
end;

procedure Tzycxform.N1Click(Sender: TObject);
var i:integer;
jdstr,lsstr:string;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
jdstr:=treeview1.items[i].Text;
break;
end;
//showmessage(jdstr);
if Pos(' ', jdstr) > 0 then
begin
//showmessage(inttostr(Pos(' ', jdstr)));
lsstr:=copy(jdstr,Pos(' ', jdstr)+2,length(jdstr)-Pos(' ', jdstr)-2);
zjbmform.sjjdbh:=strtoint(lsstr);
end else
zjbmform.sjjdbh:=0;
zjbmform.bz:=true;
if zjbmform.showmodal=1 then
begin
treeview1.Items.AddChild(treeview1.items[i],zjbmform.DBEdit2.text+' '+'('+zjbmform.DBEdit1.text+')');
  for i:=1 to treeview1.Items.Count-1 do
  if not treeview1.Items[i].HasChildren then
  treeview1.Items[i].ImageIndex:=3 else
   treeview1.Items[i].ImageIndex:=1;
end;

end;

procedure Tzycxform.TreeView1Click(Sender: TObject);
var i:integer;
jdstr,lsstr:string;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
jdstr:=treeview1.items[i].Text;
break;
end;
if Pos(' ', jdstr) > 0 then
begin
lsstr:=copy(jdstr,Pos(' ', jdstr)+2,length(jdstr)-Pos(' ', jdstr)-2);
with yhxxquery do
begin
close;
parameters.parambyname('bmbm').value:=strtoint(lsstr);
prepared;
open;
end;
end;

end;

procedure Tzycxform.N2Click(Sender: TObject);
var i:integer;
jdstr,lsstr:string;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
jdstr:=treeview1.items[i].Text;
break;
end;
if Pos(' ', jdstr) > 0 then
lsstr:=copy(jdstr,Pos(' ', jdstr)+2,length(jdstr)-Pos(' ', jdstr)-2) else
begin
messagedlg('该结点是根结点,不能删除!',mterror,[mbok],0);
exit;
end;
if treeview1.items[i].HasChildren then
begin
messagedlg('该结点不是末端结点,不能删除!',mtwarning,[mbok],0);
exit;
end;
if messagedlg('确认删除该部门吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin  //删除该结点
hjzcdata.bmbmb.close;
hjzcdata.bmbmb.open;
if hjzcdata.bmbmb.locate('部门编码',strtoint(lsstr),[lopartialkey]) then
begin
hjzcdata.bmbmb.delete;
end;
treeview1.items[i].Delete;
end;

end;

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

procedure Tzycxform.N3Click(Sender: TObject);
var i:integer;
jdstr,lsstr:string;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
jdstr:=treeview1.items[i].Text;
break;
end;
if Pos(' ', jdstr) > 0 then
begin
lsstr:=copy(jdstr,Pos(' ', jdstr)+2,length(jdstr)-Pos(' ', jdstr)-2);
zjbmform.bz:=false;
zjbmform.jdbhz:=strtoint(lsstr);
end else
exit;
zjbmform.DBLookupComboBox1.ReadOnly:=false;
if zjbmform.showmodal=1 then
//treeview1.Items[i].text:=zjbmform.DBEdit2.text+' '+'('+zjbmform.dbedit1.text+')';
shownode;
end;

procedure Tzycxform.N15Click(Sender: TObject);
var zybm:integer;
lscx:tadoquery;
begin
try
if messagedlg('确认删除该职员吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
zybm:=yhxxquery.fieldbyname('职员编码').asinteger;
lscx:=tadoquery.create(self);
lscx.connection:=hjzcdata.hjzcdatabase;
with lscx do
begin
close;
sql.clear;
sql.add('delete from 职员编码表 where 职员编码=:zy');
parameters.parambyname('zy').value:=zybm;
prepared;
execsql;
end;
lscx.close;
lscx.free;
treeview1.OnClick(self);
end;
except
showmessage('此用户不能删除,否则数据库完整性将被破坏!');
end;
end;

procedure Tzycxform.N14Click(Sender: TObject);
var zybm:integer;
begin
zybm:=yhxxquery.fieldbyname('职员编码').asinteger;
hjzcdata.zybmb.close;
hjzcdata.zybmb.open;
hjzcdata.zybmb.Locate('职员编码',zybm,[lopartialkey]);
zyxxform.Panel2.Enabled:=true;
if zyxxform.showmodal=1 then
TreeView1.OnClick(self);
end;

procedure Tzycxform.N5Click(Sender: TObject);
var
  maxzybm:integer;
  i,bmbm:integer;
  jdstr:string;
begin
for i:=0 to treeview1.Items.Count-1 do
if treeview1.Items[i].Selected then
begin
  jdstr:=treeview1.items[i].Text;
  break;
end;
if Pos(' ', jdstr) > 0 then
bmbm:=strtoint(copy(jdstr,Pos(' ', jdstr)+2,length(jdstr)-Pos(' ', jdstr)-2))
else
exit;
//调用最大职员编码
with hjzcdata.maxzybm do
begin
  close;
  prepared;
  open;
  maxzybm:=hjzcdata.maxzybm.Fields[0].asinteger+1;
end;
hjzcdata.zybmb.close;
hjzcdata.zybmb.open;
//hjzcdata.zybmb.last;
//maxzybm:=hjzcdata.zybmb.fieldbyname('职员编码').asinteger+1;
hjzcdata.zybmb.append;
//hjzcdata.zybmb.edit;
hjzcdata.zybmb.fieldbyname('职员编码').asinteger:=maxzybm;
hjzcdata.zybmb.fieldbyname('部门编码').asinteger:=bmbm;
if zyxxform.showmodal=1 then
TreeView1.OnClick(self);
end;

procedure Tzycxform.DBGrid1DblClick(Sender: TObject);
begin
N14Click(self);
end;

procedure Tzycxform.yhxxqueryDSDesigner2GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
var lscx:tadoquery;
begin
lscx:=tadoquery.create(self);
lscx.Connection:=hjzcdata.hjzcdatabase;
with lscx do
begin
close;
sql.clear;
sql.add('select 部门名称 from 部门编码表 where 部门编码=:bmbm');
parameters.ParamByName('bmbm').value:=sender.Value;
prepared;
open;
end;
if not lscx.IsEmpty then
text:=lscx.fields[0].value;
end;

end.

⌨️ 快捷键说明

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