xml地图|网站地图|网站标签 [设为首页] [加入收藏]

构造代码块与静态代码块,权限管理系统之字典

来源:http://www.ccidsi.com 作者:集成经验 人气:172 发布时间:2019-05-29
摘要:JQ 达成左右两侧菜单增加、移除 4.5 代码(字典)管理 系统代码是平台置于的、通用的、统1的数码描述。 代码管理(数据字典)是一体杨桃园数量描述的灵光机制。通过分界面实行可

JQ 达成左右两侧菜单增加、移除

4.5 代码(字典)管理

系统代码是平台置于的、通用的、统1的数码描述。

代码管理(数据字典)是一体杨桃园数量描述的灵光机制。通过分界面实行可视化的操作和护卫,能疾快速录音入和修改平台上联合的字典数据。有效抓牢了数额的重新利用率和成品、项目标开支效用。整个数据字典数据为框架平台所共享,用户能够更加好地对系统进行自定义管理,以满足本身的特性化需求。

代码管理的成效作业区(用户操作)分界面如下图四.五-一所示,通过主要的操作按键和音讯内容可见其效劳有:

一 新扩张代码组、代码,编辑代码组、代码,
2 删除代码组、代码,移动代码,
三 代码组、代码的无与伦比标志,排序成效和备注新闻等。

当中作用操作按键的景况会依照选拔的右边树型中分歧节点和分歧登陆用户的动作权限而改变。

阳台在此时此刻仅帮助二级深度的树型代码结构,可依附实际必要开始展览增加、修改、删除或挪动等对平台代码进行归类和调节。

图片 1 

图四.伍-1  代码管理分界面

#region LoadCodeTypes, LoadCodes
        private void LoadCodeTypes(TreeNode currentNode, DMESYS_SYSCODE_TYPE currentCodeType)
        {
            List<DMESYS_SYSCODE_TYPE> subCodeTypes = null;
            if (currentCodeType != null)
                subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSubCodeTypes(currentCodeType);
            else
                subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSYS_SYSCODE_TYPEEntities();

            foreach (DMESYS_SYSCODE_TYPE rt in subCodeTypes)
            {
                TreeNode node = currentNode.ChildNodes.Add();
                node.Tag = rt;
                node.Text = rt.Name;
                node.CollapsedImageIndex = 1;
                node.ExpandedImageIndex = 2;

                LoadCodeTypes(node, rt);
            }
        }

        private void LoadCodes()
        {
            codes.Clear();
            codes = DBOSYS_SYSCODE.GetSYS_SYSCODEEntities();

            foreach (DMESYS_SYSCODE r in codes)
            {
                TreeNode tn = CallFindNode(r.Syscode_Type_Id, tvCodes);
                if (tn != null)
                {
                    TreeNode node = tn.ChildNodes.Add();
                    node.Tag = r;
                    node.Text = r.Name;
                    node.CollapsedImageIndex = 3;
                    node.ExpandedImageIndex = 3;
                }
            }
        }

        private TreeNode FindTreeNode(string codeTypeId, TreeNode tnParent)
        {
            if (tnParent == null || tnParent.Tag is DMESYS_SYSCODE)
                return null;
            if ((tnParent.Tag as DMESYS_SYSCODE_TYPE).Id == codeTypeId)
                return tnParent;
            TreeNode tnRet = null;
            foreach (TreeNode tn in tnParent.ChildNodes)
            {
                tnRet = FindTreeNode(codeTypeId, tn);
                if (tnRet != null)
                    break;
            }
            return tnRet;
        }

        private TreeNode CallFindNode(string codeTypeId, TreeControl treeView)
        {
            TreeNodeCollection nodes = treeView.RootNodes[0].ChildNodes;
            foreach (TreeNode n in nodes)
            {
                TreeNode temp = FindTreeNode(codeTypeId, n);
                if (temp != null)
                    return temp;
            }
            return null;
        }
        #endregion

 

有关java中常见代码块、构造代码块与静态代码块,java构造代码静态

一.不以为奇代码块

public static void main(String[] args) {
/*日常代码块:
*直接定义在在方法或语句中冒出”{普通代码的施行语句}“的就叫做普通代码块。
*常见代码块施行各种由她们在代码中冒出的次序决定--“先出现先实行”
* */
{
  System.out.println("这里是平时代码块A");
}
//new A();
{
  System.out.println("这里是平时代码块B");
}
}

施行结果:这里是司空眼惯代码块A
     这里是层出不穷代码块B

二.静态代码块与结构代码块

在java中动用static关键字注明的代码块。常用来对类的发轫化,每种静态代码块只会施行一遍(类在内存中加载时进行,类在内存中加载后类已经存在)由于JVM在加载类时会实践静态代码块,所以静态代码块先于主方法实行。假诺类中蕴藏五个静态代码块,那么将根据"先定义的代码先实行,后定义的代码后实践。

ps:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。

构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

public class structure {
{
System.out.println("这里是惯常代码块");//全体类中有二个暗中认可的构造函数,这里的代码块为社团代码块,在类中的对象被创设时实行
}
public static void main(String[] args) {

/*一般代码块:
*一向定义在在方法或语句中冒出”{普通代码的施行语句}“的就叫做普通代码块。
*习以为常代码块实施各类由他们在代码中现身的次序决定--“先出现先施行”
* */
{
System.out.println("这里是数见不鲜代码块A");
}
new structure();//第三回类加载时静态代码块不试行
//new A();
{
System.out.println("这里是平常代码块B");
}
}

static{
System.out.println("这里是静态代码块");
}
}

实行结果:

此处是静态代码块//优先于主函数
那边是普普通通代码块A
此处是平日代码块//类中的对象被创立时试行,每创设一遍进行一回,在加一句new structure(); 实行结果为: 图片 2             

此处是平凡代码块B

3.概要计算

public class structure {
{
System.out.println("这里是普普通通代码块");
}
public static void main(String[] args) {
{
System.out.println("这里是平常代码块A");
}
//new structure();
//new structure();
new A();
{
System.out.println("这里是常常代码块B");
}
}
static{
System.out.println("这里是静态代码块");
}
}
class A{
static{
System.out.println("这里是A中的普静态代码块一");
}
{
System.out.println("这里是A中的普通代码块一");
}
{
System.out.println("这里是A中的普通代码块二");
}

}

试行结果:

这里是静态代码块
那边是普普通通代码块A
此间是A中的普静态代码块一
那边是A中的普通代码块壹
此间是A中的普通代码块二
这里是平凡代码块B

先行级计算:静态代码块>Main()>构造代码块

一.一般性代码块 public static void main(String[] args) { /*经常代码块: *一向定义在...

效果图:

四.5.1 新扩大、编辑和删除

增产代码组和代码:点击张开树形菜单“系统代码”,能够见到平台置于的一片段代码组和代码。选择“系统代码”后点击“新添分类”按键,能够增进代码组;采纳已有些代码组,点击“新扩大代码”按键,能够增多具体的代码。

在疯长代码组或代码的进度中,个中带森林绿星号标志“*”的条目款项,标志、名称和排序ID是需要求填写的从头到尾的经过。平台会检查测试该代码组或代码的标识、名称在阳台上的合法性,确认保障代码组或代码的标记、名称的唯一性和可用性。

现实加多代码组、代码的操作分界面如下图4.伍.1-一所示:

 图片 3

 图片 4

图四.伍.1-一  新添代码组、代码

private void InfoUpdatedADD()
        {
            if (dmeObj == null)
            {
                lbInfo.Text = "在“系统代码”下新增如下代码分类";
                return;
            }

            if (dmeObj != null && dmeObj is DMESYS_SYSCODE_TYPE)
            {
                dmeCodeType = dmeObj as DMESYS_SYSCODE_TYPE;
                lbInfo.Text = "在代码分类“"   dmeCodeType.Name   "”下新增如下代码";
                return;
            }
        }

        private bool InfoUpdatedEDIT()
        {
            if (dmeObj == null)
            {
                lbInfo.Text = "加载代码类型信息时出错!";
                lbInfo.ForeColor = Color.Red;
                ucCodes.IsEnabled(false);
                return false;
            }

            if (dmeObj != null && dmeObj is DMESYS_SYSCODE_TYPE)
            {
                dmeCodeType = dmeObj as DMESYS_SYSCODE_TYPE;
                lbInfo.Text = "编辑代码分类“"   dmeCodeType.Name   "”";
                return true;
            }

            if (dmeObj != null && dmeObj is DMESYS_SYSCODE)
            {
                dmeCode = dmeObj as DMESYS_SYSCODE;
                lbInfo.Text = "编辑代码“"   dmeCode.Name   "”";
                return true;
            }

            return false;
        }

        private bool InsertorUpdateCodes()
        {
            if (dmeCode == null)
            {
                dmeCode = new DMESYS_SYSCODE();
            }

            if (dmeCodeType == null)
            {
                dmeCodeType = new DMESYS_SYSCODE_TYPE();
            }

            if (action == Action.ADD)
            {
                if (dmeObj == null && DoValidatedCodes())
                {
                    dmeCodeType.Id = FeiQing.DBO.DBOService.GetID();
                    DBOSYS_SYSCODE_TYPE.InsertDMESYS_SYSCODE_TYPE(dmeCodeType);
                    return true;
                }
                if (dmeObj is DMESYS_SYSCODE_TYPE && DoValidatedCodes())
                {
                    dmeCode.Syscode_Type_Id = dmeCodeType.Id;
                    dmeCode.Id = FeiQing.DBO.DBOService.GetID();
                    DBOSYS_SYSCODE.InsertDMESYS_SYSCODE(dmeCode);
                    return true;
                }
                return false;
            }

            if (action == Action.EDIT)
            {
                if (dmeObj is DMESYS_SYSCODE_TYPE && DoValidatedCodes())
                {
                    dmeCodeType.Id = (dmeObj as DMESYS_SYSCODE_TYPE).Id;
                    DBOSYS_SYSCODE_TYPE.UpdateDMESYS_SYSCODE_TYPE(dmeCodeType);
                    return true;
                }
                if (dmeObj is DMESYS_SYSCODE && DoValidatedCodes())
                {
                    dmeCode.Id = (dmeCode as DMESYS_SYSCODE).Id;
                    DBOSYS_SYSCODE.UpdateDMESYS_SYSCODE(dmeCode);
                    return true;
                }
                return false;
            }

            return false;
        }

        private bool DoValidatedCodes()
        {
            if (String.IsNullOrEmpty(ucCodes.LbTxtTag))
            {
                lbTip.Text = "“标识”不能为空。";
                lbTip.ForeColor = Color.Red;
                return false;
            }
            if (String.IsNullOrEmpty(ucCodes.LbTxtName))
            {
                lbTip.Text = "“名称”不能为空。";
                lbTip.ForeColor = Color.Red;
                return false;
            }
            if (String.IsNullOrEmpty(ucCodes.LbTxtOrder))
            {
                lbTip.Text = "“排序ID”不能为空。";
                lbTip.ForeColor = Color.Red;
                return false;
            }
            if (!FeiQing.Util.DataValidator2.IsNumber(ucCodes.LbTxtOrder))
            {
                lbTip.Text = "“排序ID”必须为数值。";
                lbTip.ForeColor = Color.Red;
                return false;
            }

            if (dmeObj == null && dmeCodeType != null && action == Action.ADD)
            {
                dmeCodeType.Tag = ucCodes.LbTxtTag;
                dmeCodeType.Name = ucCodes.LbTxtName;
                dmeCodeType.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);
                dmeCodeType.Remark = ucCodes.LbTxtRemark;
            }
            if (dmeObj is DMESYS_SYSCODE_TYPE && dmeCode != null && action == Action.ADD)
            {
                dmeCode.Tag = ucCodes.LbTxtTag;
                dmeCode.Name = ucCodes.LbTxtName;
                dmeCode.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);
                dmeCode.Remark = ucCodes.LbTxtRemark;
            }
            if (dmeObj is DMESYS_SYSCODE_TYPE && dmeCodeType != null && action == Action.EDIT)
            {
                dmeCodeType.Tag = ucCodes.LbTxtTag;
                dmeCodeType.Name = ucCodes.LbTxtName;
                dmeCodeType.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);
                dmeCodeType.Remark = ucCodes.LbTxtRemark;
            }
            if (dmeObj is DMESYS_SYSCODE && dmeCode != null && action == Action.EDIT)
            {
                dmeCode.Tag = ucCodes.LbTxtTag;
                dmeCode.Name = ucCodes.LbTxtName;
                dmeCode.Order_Id = Int32.Parse(ucCodes.LbTxtOrder);
                dmeCode.Remark = ucCodes.LbTxtRemark;
            }

            return true;
        }

 

编辑代码组和代码:首若是在代码组或代码的标记,名称,排序,备注等新闻发出变动的境况时举行的编辑操作。点击张开树形菜单“系统代码”,在树型目录下抉择多少个代码组或许代码后点击“编辑”按键,即成功对应代码组或代码新闻的改动。具体编辑代码组、代码的操作分界面如下图4.伍.1-第22中学所示:

 图片 5

图四.五.一-2  编辑代码组、代码

 

剔除代码组和代码:点击伸开树形菜单“系统代码”,在树型目录下抉择一个代码组或代码后点击“删除”开关,图肆.伍.1-3来得了去除操作的提示对话框分界面。

备考:对于全数代码的代码组是力不从心直接删除的,首先必要删除其麾下的代码。

 图片 6

 图片 7

图四.五.1-三  删除代码组或代码提醒

 

private void btnDelete_Click(object sender, System.EventArgs e)
        {
            if (IsCodeType())
            {
                if (selectedNode.ChildNodes.Count > 0)
                {
                    GUIHelper.MessageToUserInfo("提示:该代码分类包含代码,无法直接删除!");
                    return;
                }
                if (GUIHelper.MessageQuestion("确定要删除代码分类“"   (selectedObj as DMESYS_SYSCODE_TYPE).Name   "”吗?", "删除代码分类"))
                {
                    DBOSYS_SYSCODE_TYPE.DeleteDMESYS_SYSCODE_TYPE(selectedObj as DMESYS_SYSCODE_TYPE);
                    btnRefresh_Click(sender, e);
                    return;
                }
            }
            if (IsCode())
            {
                if (GUIHelper.MessageQuestion("确定要删除代码“"   (selectedObj as DMESYS_SYSCODE).Name   "”吗?", "删除代码"))
                {
                    DBOSYS_SYSCODE.DeleteDMESYS_SYSCODE(selectedObj as DMESYS_SYSCODE);
                    btnRefresh_Click(sender, e);
                    return;
                }
            }
        }

 

图片 8

四.五.二 移动代码

点击张开树形菜单“系统代码”,选拔三个代码后点击“移动”开关,如下图四.伍.二-第11中学所示,选取要求活动到的指标代码组,点击确认,就能够到位代码的调动。方今平台上只支持代码移动,代码组一时不帮助移动。

 图片 9

图4.五.2-壹  移动代码

#region LoadCodeTypes
        private void LoadCodeTypes(TreeNode currentNode, DMESYS_SYSCODE_TYPE currentCodeType)
        {
            List<DMESYS_SYSCODE_TYPE> subCodeTypes = null;
            if (currentCodeType != null)
                subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSubCodeTypes(currentCodeType);
            else
                subCodeTypes = DBOSYS_SYSCODE_TYPE.GetSYS_SYSCODE_TYPEEntities();

            foreach (DMESYS_SYSCODE_TYPE rt in subCodeTypes)
            {
                TreeNode node = currentNode.ChildNodes.Add();
                node.Tag = rt;
                node.Text = rt.Name;
                node.CollapsedImageIndex = 1;
                node.ExpandedImageIndex = 2;

                LoadCodeTypes(node, rt);
            }
        }
        #endregion

        private bool MoveCode()
        {
            if (destObj == null)
            {
                lbTip.Visible = true;
                return false;
            }

            if (destObj is DMESYS_SYSCODE_TYPE)
            {
                target.Syscode_Type_Id = (destObj as DMESYS_SYSCODE_TYPE).Id;
                DBOSYS_SYSCODE.UpdateDMESYS_SYSCODE(target);
                return true;
            }

            return false;
        }

 

 

本文由68399皇家赌场发布于集成经验,转载请注明出处:构造代码块与静态代码块,权限管理系统之字典

关键词: 68399皇家赌场 .NET技术 WinForm

最火资讯