熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

機構設置及編碼功能的實現(五)[2]

2013-11-23 17:41:10  來源: Delphi編程 
    ——此文章摘自《Delphi 數據庫開發經典案例解析》定價 特價 購買>>http://tracklinktechcn/?m_id=dangdang&a_id=A&l=&l_type= width= height= border= nosave>

    //
    //某一個節點的編號實際上是由它自己的類別號也就是它在本級中的INDEX
    //前面加上父節點的編號組成而父節點的編號也可以用這種方法依次推出
    while pnodeParent<>nil do
     begin
       sp:=inttostr(pnodeParentIndex);
       if length(sp)= then
       sp:=+sp
       else
       sp:=sp;
       s:=sp+s;
       pnode:=pnodeParent;
       //節點的編號等於類別號前面加上它的父節點編號也等於加上它的所有父節點的類別號
       //這裡的加是指字符串加
       //取父節點的類別號並一直追溯到最頂層的主節點從而構成一個節點的完整編號
     end;
       code:=copy(slength(s));
     
       //由於首項的編號為程序中將它轉為了因此需要去掉一個零
       temp:=length(code);
       temp:=round(temp/);
       itemlevel:=inttostr(temp);
       //根據編號的長度來計算它的所屬級別也就是它的itemlevel
      adocommandCommandText:=insert into 組織機構編碼表([內部編號]
      [類別][AbsIndex][ItemIndex][ItemLevel][ParentIndex][類別號]
      [單位編號][單位名稱]) values(+number++name
      ++absindex++itemindex++itemlevel+
      +parentindex++order++code++name+);
      adocommandExecute;
      //向表中插入新記錄
     end;
     adocommandCommandText:=set IDENTITY_insert 組織機構編碼表 off;
     adocommandExecute;
     //關掉組織機構編碼表的插入許可
     adocommandCommandtext:=drop table zztemp;
     adocommandExecute;
     //刪除臨時表
     MessageBox(對機構所作的修改已經保存成功!成功MB_OK);
     //刷新樹形圖的顯示
     treeviewItemsClear;
     adoqueryActive:=false;
     adoqueryActive:=true;
     buttonClick;
    end;      

    這樣就把程序中對樹形圖所做的修改保存到了SQL Server中的【組織機構編碼表】數據表中下一次再打開程序的時候看到的就是已修改過的數據表中讀出的新的樹形圖了

    至此我們就完成了結構設置編碼功能的設置需要說明的是我們在程序中利用了數據表的存儲順序的優點數據表中數據按照節點中絕對順序也就是AbsoluteIndex存儲的特性為我們對數據庫進行操作把樹形圖的關系數據保存到【組織機構編碼表】數據表以及在代碼中確定數據的一些參數提供了很大的方便我們根據樹型圖中節點所提供的數據就完全確定了相對應的【組織機構編碼表】數據表中的全部數據而沒有再依賴其他的輸入或者是保存結果可以看到一個好的存儲格式可以為程序設計提供很大的方便很多時候甚至可以起到事半功倍的效果

right>[http://developcsaicn/delphi/htm>]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24891.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.