管家婆基本信息研究

数据库表:内部职员
相关字段

软件界面
======================================================
思路是以打开的窗体来考虑所有情况。每一个窗体对于depth的值。每向下开一个窗体,depth就累加1,对于第一个窗体以depth=1来检索所有子节点。
另外记录内必须要有一个根,是为了预先有个id(其他字段无所谓)可以作为下一层记录的父节点,否则不设根则下一层记录面临没有父节点。(可能无需)
第一、打开第一个窗体的检索
.界面打开后显示所有depth=1的所有记录,每向下一层depth累加1。记住新窗体只和depth有关,和点击什么记录无关。
.操作选中的记录时,某些按钮要先分析cid字段
按钮分析如下:
1、当前记录cid不为空,分类灰色,删除按钮灰色。
2、当前记录cid为空,分类可见,删除按钮可见。

鼠标双击当前记录分析
1、cid为空,则调用修改当前记录函数
2、cid不为空、打开下一层界面,同时界面检索所有depth=2的记录。记住新窗体只和depth有关,和点击什么记录无关。
3、关键,除第一个窗体的检索使用depth,其他新开一个窗体不再从depth来检索,而是以双击记录获得的id字段值来检索该字段的所有子节点
 
第二、添加

 //双击记录要么开编辑窗体,要么进入有子节点的子窗体,不会出现空记录窗体,所有新窗体内会有选定的记录(第一窗体除外)
            //所以添加的时候可以取同窗体内其他记录中fid字段的值来作为新记录的fid
            //双击打开的新窗体内的记录都有2个共同的字段depth和fid,不会有相同的cid。这一点很重要。
            //如果处于第一根窗体,getfid必须为0,这个比较特殊。
            if (ModCommon.getdepth == "1")
            {
                ModCommon.getfid = "0";

            }
            else
            {
                //因为处在同一层级,所以可以采用选定记录的fid值来作为新记录的fid的值

                ModCommon.getfid = grd_user.SelectedRows[0].Cells[3].Value.ToString();
               
            }

 
 
posted @ 2013-07-31 20:55  唐飞  阅读(367)  评论(0编辑  收藏  举报