CRM之菜单管理(二)

四、文件及函数

1、文件说明

  (1)LQMenu.dbml:创建Linq To SQL类,使其对应数据库中的core_menu表

  (2)MyFuncLib.cs:常见的公共函数类,将系统中经常用到的公共的函数放入其中

  (3)BLMenu.cs:对LQMenu.dbml的数据操作层,用于存放数据增删改查函数,及其他与数据库有关的函数

  (4)FormMenu.cs:窗体的主函数

2、FormMenu_Load函数

  使用InitDgv函数来初始化DataGridView,当需要修改的时候可以直接在代码中进行修改。该函数还调用了MyFuncLib.InitDgv,以及后续的两个函数InitDgvColumns以及IsNumber。

  (1)FormMenu.InitDgv()

     /// <summary> 用代码的方式构造dataGridView,便于修改里面的内容
        ///
        /// </summary>
        private void InitDGV()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Type=text,Width=100,Visible=true,ReadOnly=false,Frozen=true,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=menuName,HeaderText=菜单名称");
            sb.Append(";Type=text,Width=90,Visible=true,ReadOnly=false,Frozen=false,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=subMenuName,HeaderText=二级菜单");
            sb.Append(";Type=text,Width=100,Visible=true,ReadOnly=true,Frozen=false,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=title,HeaderText=菜单文本");
            sb.Append(";Type=checkbox,Width=70,Visible=true,ReadOnly=false,Frozen=false,Format=,NullValue=0,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=isForm,HeaderText=是否窗体");
            sb.Append(";Type=text,Width=100,Visible=true,ReadOnly=false,Frozen=false,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=100,Name=methodNames,HeaderText=方法列表");
            sb.Append(";Type=text,Width=100,Visible=true,ReadOnly=true,Frozen=false,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=fullName,HeaderText=完整名称");
            sb.Append(";Type=checkbox,Width=70,Visible=true,ReadOnly=true,Frozen=false,Format=,NullValue=0,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=hasChildren,HeaderText=包含下级");
            sb.Append(";Type=checkbox,Width=70,Visible=true,ReadOnly=true,Frozen=false,Format=,NullValue=1,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=30,Name=isSys,HeaderText=系统菜单");
            sb.Append(";Type=checkbox,Width=30,Visible=false,ReadOnly=false,Frozen=false,Format=,NullValue=,");
            sb.Append("Order=false,Alignment=center,MaxInputLength=,Name=parentId,HeaderText=parentId");
            sb.Append(";Type=text,Width=100,Visible=false,ReadOnly=false,Frozen=false,Format=,NullValue=0,");
            sb.Append("Order=false,Alignment=left,MaxInputLength=,Name=ID_,HeaderText=ID_");
            dataGridViewMenu.AutoGenerateColumns = false;
            dataGridViewMenu.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
            dataGridViewMenu.RowHeadersWidth = 41;
            dataGridViewMenu.Columns.Clear();
            dataGridViewMenu.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            MyFuncLib.InitDgv(dataGridViewMenu, sb.ToString());
        }

  (2)

        /// <summary> 初始化dataGridView各列
        ///
        /// </summary>
        /// <param name="d">DataGirdView</param>
        /// <param name="c">Column</param>
        /// <param name="type">type(如text,int,decimal,checkbox,date,datetime</param>
        /// <param name="maxInputLength">最大程度</param>
        /// <param name="source">数据源</param>
        private static void InitDgvColumns(DataGridView d, DataGridViewColumn c, string type, string maxInputLength, string source)
        {
            if ("text".Equals(type))
            {
                #region text
                DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.DefaultCellStyle = c.DefaultCellStyle;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                if (IsNumber(maxInputLength))
                    c2.MaxInputLength = int.Parse(maxInputLength);
                d.Columns.Add(c2);
                #endregion
            }
            else if ("decimal".Equals(type))
            {
                #region decimal
                DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.DefaultCellStyle = c.DefaultCellStyle;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                if (IsNumber(maxInputLength))
                    c2.MaxInputLength = int.Parse(maxInputLength);
                d.Columns.Add(c2);
                #endregion
            }
            else if ("int".Equals(type))
            {
                #region int
                DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.DefaultCellStyle = c.DefaultCellStyle;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                if (IsNumber(maxInputLength))
                    c2.MaxInputLength = int.Parse(maxInputLength);
                d.Columns.Add(c2);
                #endregion
            }
            else if ("date".Equals(type))
            {
                #region date
                DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.DefaultCellStyle = c.DefaultCellStyle;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                if (IsNumber(maxInputLength))
                    c2.MaxInputLength = int.Parse(maxInputLength);
                d.Columns.Add(c2);
                #endregion
            }
            else if ("datetime".Equals(type))
            {
                #region datetime
                DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.DefaultCellStyle = c.DefaultCellStyle;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                if (IsNumber(maxInputLength))
                    c2.MaxInputLength = int.Parse(maxInputLength);
                d.Columns.Add(c2);
                #endregion
            }
            else if ("checkbox".Equals(type) || "check".Equals(type))
            {
                #region checkbox
                DataGridViewCheckBoxColumn c2 = new DataGridViewCheckBoxColumn();
                c2.Name = c.Name;
                c2.DataPropertyName = c.DataPropertyName;
                c2.HeaderText = c.HeaderText;
                c2.Width = c.Width;
                c2.Visible = c.Visible;
                c2.ReadOnly = c.ReadOnly;
                c2.Frozen = c.Frozen;
                c2.HeaderCell.Style = c.HeaderCell.Style;
                c2.SortMode = c.SortMode;
                c2.Tag = c.Tag;
                c2.TrueValue = 1;
                c2.FalseValue = 0;
                d.Columns.Add(c2);
                #endregion
            }
    }

原文地址:https://www.cnblogs.com/AngryZe/p/8185691.html

时间: 2024-10-18 19:51:03

CRM之菜单管理(二)的相关文章

CRM之菜单管理(三)

五.功能实现 1.  数据的保存与更新 当新建一个菜单时,其在树中的节点Node(Name="new_"+GUID):当修改一个菜单时,其在树中的节点Node(Name="edit_"+GUID). 在保存时,通过遍历菜单树中的节点Node.Name,根据该字符串的开头调用不同的保存方法. 1 /// <summary> 创建一个TreeNode,定义Tag,Name,Text 2 /// </summary> 3 /// <retur

开源 java CMS - FreeCMS2.2 菜单管理

项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能,二次开发人员可以自由增加新的功能菜单到FreeCMS. 为了让后台管理功能更规范,FreeTeam建议您把新增加的功能放在admin目录下,系统也对admin目录下所有资源进行了登录验证,保证资源的访问安全. 从FreeCMS 1.7开始支持 菜单增加图标属性. 1. 添加一级菜单 从左侧管理菜单点击菜单管理进入. 点击"添加根菜单"

SharePoint 2013 自定义扩展菜单(二)

原文:SharePoint 2013 自定义扩展菜单(二) 接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomAction Id="CustomAction1" Description="博客园-霖雨" Title="博客园-霖雨" GroupId="GeneralSettings"

开源 java CMS - FreeCMS2.4 菜单管理

原文地址:http://www.javaz.cn/site/javaz/site_study/info/2015/37587.html 项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能,二次开发人员可以自由增加新的功能菜单到FreeCMS. 为了让后台管理功能更规范,FreeTeam建议您把新增加的功能放在admin目录下,系统也对admin目录下所有资源进行了登录验证,保证资源的访问安全. 从

开源 免费 java CMS - FreeCMS2.1 菜单管理

项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能,二次开发人员可以自由增加新的功能菜单到FreeCMS. 为了让后台管理功能更规范,FreeTeam建议您把新增加的功能放在admin目录下,系统也对admin目录下所有资源进行了登录验证,保证资源的访问安全. 从FreeCMS 1.7开始支持 菜单增加图标属性. 1. 添加一级菜单 从左侧管理菜单点击菜单管理进入. 点击"添加根菜单"

企业如何运用CRM进行客户管理?

俗话说创业容易守业难,企业刚刚创立的时候,往往大家都是激情澎湃的,但是在管理企业的过程中就开始出现一些问题,除了企业内部的制度没有建立完善,另外一个重要的方面就是客户管理工作没有做好.亿客CRM建议每个企业管理者即使认为目前客户数量少,不需要使用CRM系统,也应该了解一下CRM是什么意思,CRM给企业带来的好处以及CRM的作用及用法,为企业日后的发展做好充足的准备. CRM系统最基础的功能就是管理客户.当然这不仅仅是保存客户信息,这些用Excel就能替代的功能只是CRM最底层的基础,我们都知道销

如何做好CRM企业内部管理?

企业购买了CRM之后,难免会在实施过程中出现一些问题,包括员工对CRM系统的操作问题.CRM实施流程.CRM使用前的培训.CRM系统中各个员工的职位权限等等.这些问题如果处理不当,就会影响到与客户的沟通.企业的客户数据分析等重要问题上.如何做好企业内部CRM管理呢?今天亿客CRM就企业内部CRM管理给大家支几招. 一.建立问题汇集制度任何事情不可能一开始就是完美的,实施CRM也一样.在实施过程中,企业的每一员都是CRM的使用的用户,特别是销售人员和客服人员是使用频率最多的员工,他们可能会碰到很多

Django项目:CRM(客户关系管理系统)--82--72PerfectCRM实现CRM动态菜单和角色

1 #models.py 2 3 # --------01PerfectCRM基本配置ADMIN-------- 4 5 from django.db import models 6 # Create your models here. 7 8 """ 9 #运行 Terminal 10 # 生成 数据表 11 # python manage.py makemigrations 12 # 数据表 迁移 13 # python manage.py migrate 14 &quo

Shell编写字符菜单管理-8

第8章 Shell编写字符菜单管理 一.shell函数定义function menu(){ echo 'this is a func!!';} 二.shell函数使用menu 三.cat命令的heredoc使用方法cat << eof aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaeof 四.字符界面下字体的颜色控制echo -e "\033[30;47m tes