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 + -
显示快捷键?