📄 basedept01p.pas
字号:
ftype:='N';
ftmp:='外协厂';
end;
if ADDMODE and checkdata then
begin
//查找同一级编号,取最大的编号再加1
//第一级
if TREEVIEW1.SelectionCount = 0 then
begin
I := 10;
FLAG := FALSE;
while (I <= 99) and not FLAG do
begin
SQL := 'SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + INTTOSTR(I) + '''';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add(SQL);
QUERY1.Open;
if QUERY1.IsEmpty then
begin
SQL := ' INSERT INTO BASEDEPT (TYPE_NO,DEPT_NO,DEPART'+
' ,USERNO,UPD_DATE,TYPE,TMP,WORKMAN)'+
' VALUES (' + '''' + INTTOSTR(I) + '''' +
',' + '''' + EDIT3.Text + '''' + ',' + '''' + EDIT1.Text + '''' +
','+''''+global.puser+''''+','+''''+datetostr(getdate())+''''+
',' + ''''+FTYPE+ '''' + ',' + ''''+FTMP+'''' +
',' + '''' + workmantxt.Text + '''' + ')';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.ExecSQL;
FLAG := TRUE;
end;
I := I + 1;
end;
if not FLAG then
MESSAGEDLG('错误,同一层类别不能超过90个!', mtInformation,
[mbOk], 0)
else
begin
//更新树
SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + INTTOSTR(I - 1) + '''';
QUERY1.Close;
QUERY1.SQL.Clear;
// SHOWMESSAGE(SQL);
QUERY1.SQL.ADD(SQL);
QUERY1.OPEN;
TREEVIEW1.Selected := nil;
NODE := TREEVIEW1.Items.Add(nil,'(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
')' + QUERY1.FIELDBYNAME('DEPART').AsString);
NODE.Data := POINTER(QUERY1.FIELDBYNAME('ID').ASINTEGER);
TREEVIEW1.Repaint;
TREEVIEW1.Refresh;
end;
ADDMODE := FALSE;
EDITMODE := FALSE;
REFRESHDATA;
REFRESHTREEVIEW;
end //END SELECT=NIL
else
begin //不是第一层,则须取得上层编号加上本层编号
//取得父节点编号
I := INTEGER(TREEVIEW1.Selected.Data); //取得父世点的ID
SQL := ' SELECT * FROM BASEDEPT WHERE ID=' + INTTOSTR(I);
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add(SQL);
QUERY1.OPEN;
FTYPE_NO := QUERY1.FIELDBYNAME('TYPE_NO').AsString;
I := 10;
FLAG := FALSE;
while (I <= 99) and not FLAG do
begin
SQL := 'SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + FTYPE_NO + INTTOSTR(I) + '''';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add(SQL);
QUERY1.Open;
if QUERY1.IsEmpty then
begin
SQL := ' INSERT INTO BASEDEPT (TYPE_NO,DEPT_NO,DEPART'+
' ,USERNO,UPD_DATE,TYPE,TMP,WORKMAN) VALUES (' + '''' + FTYPE_NO + INTTOSTR(I) + '''' +
',' + '''' + EDIT3.Text + '''' + ',' + '''' + EDIT1.Text + '''' +
','+''''+global.puser+''''+','+''''+datetostr(getdate())+''''+
',' + ''''+FTYPE+ '''' + ',' + ''''+FTMP+'''' +
',' + '''' + workmantxt.Text + '''' + ')';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.ExecSQL;
FLAG := TRUE;
end; // END ISEMPTY
I := I + 1;
end; // END WHILE
if not FLAG then
MESSAGEDLG('错误,同一层类别不能超过90个!', mtInformation,
[mbOk], 0)
else
begin
//更新树
SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO=' + ''''
+ FTYPE_NO + INTTOSTR(I - 1) + '''';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.OPEN;
NODE := TREEVIEW1.Selected;
NODE := TREEVIEW1.Items.Add(NODE,'(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
')' + QUERY1.FIELDBYNAME('DEPART').AsString);
NODE.Data := POINTER(QUERY1.FieldByName('ID').AsInteger);
TREEVIEW1.Repaint;
TREEVIEW1.Refresh;
end;
ADDMODE := FALSE;
EDITMODE := FALSE;
REFRESHDATA;
REFRESHTREEVIEW;
end; //END SELECT=NIL
end; // END ADDMODE
if editmode and checkdata then
begin
sql := ' update BASEDEPT set DEPART=' + '''' + edit1.Text + '''' +
',USERNO=' + '''' + global.puser + '''' +
',UPD_DATE=' + '''' + datetostr(getdate()) + '''' +
',TYPE=' + '''' + FTYPE + '''' +
',TMP=' + '''' + FTMP + '''' +
',WORKMAN='+''''+workmantxt.Text+''''+
' where id=' + inttostr(integer(treeview1.selected.data));
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.ExecSQL;
ADDMODE := FALSE;
EDITMODE := FALSE;
treeview1.Selected.Text:='('+edit3.Text+')'+edit1.Text ;
REFRESHDATA;
end;
end;
procedure Tbasedept01f.spdeleteClick(Sender: TObject);
var
SQL, TYPE_NO: string;
I: INTEGER;
begin
if TREEVIEW1.SelectionCount = 0 then
MESSAGEDLG('错误,你还没选择要删除的节点!', mtERROR,
[mbOk], 0)
else
begin
I := INTEGER(TREEVIEW1.Selected.Data);
SQL := ' SELECT * FROM BASEDEPT WHERE ID=' + INTTOSTR(I);
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.OPEN;
TYPE_NO := QUERY1.FIELDBYNAME('TYPE_NO').AsString;
SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO LIKE ' + '''' + TYPE_NO + '%' +'''';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.OPEN;
if QUERY1.RecordCount > 1 then
MESSAGEDLG('错误,你还有下级节点,不能删除!', mtERROR,
[mbOk], 0)
else
if MESSAGEDLG('你确定要删除此节点吗?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
SQL := 'DELETE FROM BASEDEPT WHERE TYPE_NO=' + '''' + TYPE_NO + '''';
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.ADD(SQL);
QUERY1.ExecSQL;
TREEVIEW1.Selected.Delete;
TREEVIEW1.Repaint;
TREEVIEW1.Refresh;
TREEVIEW1.Selected := nil;
refreshdata;
end;
end;
end;
procedure Tbasedept01f.Button1Click(Sender: TObject);
var
I, J: INTEGER;
begin
I := 0;
while I < TREEVIEW1.Items.Count do
begin
J := INTEGER(TREEVIEW1.Items[I].DATA);
SHOWMESSAGE(INTTOSTR(J));
I := I + 1;
end;
end;
procedure Tbasedept01f.TreeView1DblClick(Sender: TObject);
var
I: INTEGER;
begin
I := INTEGER(TREEVIEW1.Selected.Data);
end;
procedure Tbasedept01f.speditClick(Sender: TObject);
begin
if edit3.Text <> '' then
begin
editmode := true;
edit1.ReadOnly := false;
edit3.ReadOnly := true;
refreshdata;
if PANEL1.Enabled then
edit1.SetFocus;
end
else
showmessage('你还没有选择要修改的项目');
end;
procedure Tbasedept01f.SpeedButton1Click(Sender: TObject);
var
sql:string;
i:integer;
begin
basedept02f:=tbasedept02f.create(self);
//创建临时表#basedept
sql:='create table #basedept(dept_no char(16) null,'+
' depart char(16) null, tmp char(10) null,'+
' workman char(16) null,dept_no1 char(16) null,'+
' depart1 char(16) null, tmp1 char(10) null,'+
' workman1 char(16) null)';
basedept02f.query1.close;
basedept02f.Query1.SQL.Clear;
basedept02f.Query1.SQL.Add(sql);
basedept02f.Query1.ExecSQL;
//将basedept记录插入#basedept
sql:=' select dept_no,depart,tmp,workman from basedept';
basedept02f.query1.close;
basedept02f.Query1.SQL.Clear;
basedept02f.Query1.SQL.Add(sql);
basedept02f.Query1.Open;
basedept02f.Query1.First;//从第一条记录开始
basedept02f.query2.close;
basedept02f.Query2.SQL.Clear;
basedept02f.Query2.SQL.Add(sql);
basedept02f.Query2.Open;
basedept02f.Query2.First;
basedept02f.Query2.Next;//从第二条记录开始
i:=(basedept02f.Query1.RecordCount) mod 2;
while not basedept02f.Query1.Eof and not basedept02f.Query2.Eof do
begin
sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
'dept_no1,depart1,tmp1,workman1)'+
' values('+''''+basedept02f.query1.fieldbyname('dept_no').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('depart').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('tmp').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('workman').asstring+''''+','+
''+''''+basedept02f.query2.fieldbyname('dept_no').asstring+''''+','+
''+''''+basedept02f.query2.fieldbyname('depart').asstring+''''+','+
''+''''+basedept02f.query2.fieldbyname('tmp').asstring+''''+','+
''+''''+basedept02f.query2.fieldbyname('workman').asstring+''''+')';
basedept02f.Qbasedept.Close;
basedept02f.Qbasedept.SQL.Clear;
basedept02f.Qbasedept.SQL.Add(sql);
basedept02f.Qbasedept.ExecSQL;
basedept02f.Query1.Next;
basedept02f.Query1.Next;
basedept02f.Query2.Next;
basedept02f.Query2.Next;
end;
if i=1 then
begin
basedept02f.Query1.Last;
sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
'dept_no1,depart1,tmp1,workman1)'+
' values('+''''+basedept02f.query1.fieldbyname('dept_no').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('depart').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('tmp').asstring+''''+','+
''+''''+basedept02f.query1.fieldbyname('workman').asstring+''''+','+
''' '','' '','' '','' '')';
basedept02f.Qbasedept.Close;
basedept02f.Qbasedept.SQL.Clear;
basedept02f.Qbasedept.SQL.Add(sql);
basedept02f.Qbasedept.ExecSQL;
end;
//计算记录数
sql:='select * from #basedept';
basedept02f.query1.close;
basedept02f.Query1.SQL.Clear;
basedept02f.Query1.SQL.Add(sql);
basedept02f.Query1.open;
i:=(basedept02f.Query1.RecordCount) mod 35;
if i=0 then
begin
basedept02f.Qperson1.Active:=true;
basedept02f.QuickRep1.Preview;
end
else
begin
while (i<35) do
begin
i:=i+1;
sql:='insert into #basedept(dept_no,depart,tmp,workman,'+
'dept_no1,depart1,tmp1,workman1)'+
' values('' '','' '','' '','' '','' '','' '','' '','' '')' ;
basedept02f.query1.close;
basedept02f.Query1.SQL.Clear;
basedept02f.Query1.SQL.Add(sql);
basedept02f.Query1.ExecSQL;
end;
end;
//报表预览
sql:='select * from #basedept';
basedept02f.Qbasedept.Close;
basedept02f.Qbasedept.SQL.Clear;
basedept02f.Qbasedept.SQL.Add(sql);
basedept02f.Qbasedept.Open;
basedept02f.Qperson1.Active:=true;
basedept02f.QuickRep1.Preview;
//删除#basedept
sql:='drop table #basedept';
basedept02f.Query1.Close;
basedept02f.Query1.SQL.Clear;
basedept02f.Query1.SQL.Add(sql);
basedept02f.Query1.ExecSQL;
basedept02f.free;
end;
procedure Tbasedept01f.FormClick(Sender: TObject);
begin
if panel2.Enabled then
begin
treeview1.Selected := nil;
refreshdata;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -