zoukankan      html  css  js  c++  java
  • VSTO EXCEL篇学习笔记五【原】

        

    VSTO实现的一个动态生成的业务数据操作界面:

    代码
    // 初始化菜单和Pane
            private void ThisWorkbook_Startup(object sender, System.EventArgs e)
            {
                
    //TextBox tb1 = new TextBox();
                
    //tb1.Left = 100;
                
    //tb1.Top = 100;
                ExcelTaskTrackPanel editControl = new ExcelTaskTrackPanel();
                
    //editControl.Controls.Add(tb1);bo
                this.ActionsPane.Controls.Add(editControl);
                
    //this.Application.Workbooks["ExcelTaskTrack"].CommandBars.ActiveMenuBar.Controls["T1"].Delete(false);   
                ExcelBulidMainMenu exBulidMainMen = new ExcelBulidMainMenu();
                exBulidMainMen.BulidMainMenu(
    this.Application.Workbooks["ExcelTaskTrack1"]);

            }

    代码
    //动态创建业务数据界面 
    private UserTable CreateUserTable(int ruleId)
            {
                DataTable dtFields 
    = new DataTable();
                
    //dtFields = DBHelper.GetTable("SELECT [ESM_SYSUIROLE].*,[ESM_SYSFIELDSROLE].* FROM [ESM_RULEFLD],[ESM_SYSFIELDSROLE],[ESM_SYSUIROLE],[ESM_RULE]" +
                
    //            "WHERE [ESM_RULEFLD].RU_OBJECT_ID=" + ruleId + " AND [ESM_RULEFLD].RU_OBJECT_ID=[ESM_RULE].RU_OBJECT_ID"+
                
    //            " AND [ESM_RULEFLD].UR_CLASS_ID=[ESM_SYSUIROLE].UR_CLASS_ID");
                dtFields = DBHelper.GetTable("SELECT  ESM_SYSUIROLE.UR_OBJECT_ID, ESM_SYSUIROLE.UR_CLASS_ID, ESM_SYSUIROLE.FR_CLASS_ID, ESM_SYSUIROLE.FR_OBJECT_ID,"+ 
                          
    "ESM_SYSUIROLE.SR_OBJECT_ID, ESM_SYSUIROLE.UITYPE, ESM_SYSUIROLE.ALLOWEDIT, ESM_SYSUIROLE.VISIBLE," + 
                          
    "ESM_SYSUIROLE.HEADRANGEROW, ESM_SYSUIROLE.HEADRANGECOL, ESM_SYSFIELDSROLE.FR_OBJECT_ID AS Expr1," +
                          
    "ESM_SYSFIELDSROLE.FR_CLASS_ID AS Expr2, ESM_SYSFIELDSROLE.FIELD_NAME, ESM_SYSFIELDSROLE.FIELD_INDEX," +
                          
    "ESM_SYSFIELDSROLE.DATATYPE, ESM_SYSFIELDSROLE.REALNAME, ESM_SYSFIELDSROLE.TABLENAME," +
                          
    "ESM_SYSFIELDSROLE.DATABASENAME, ESM_SYSFIELDSROLE.FIELD_LENGTH, ESM_SYSFIELDSROLE.ISNULL, ESM_SYSFIELDSROLE.TABLEID," +
                          
    "ESM_SYSFIELDSROLE.REGEX, ESM_SYSFIELDSROLE.ISPK, ESM_SYSFIELDSROLE.ISFK, ESM_SYSFIELDSROLE.TOOlMESSAGE," +
                          
    "ESM_SYSFIELDSROLE.ERRORMESSAGE " +
                          
    "FROM ESM_RULEFLD INNER JOIN " +
                          
    " ESM_RULE ON ESM_RULEFLD.RU_OBJECT_ID = ESM_RULE.RU_OBJECT_ID INNER JOIN " +
                          
    " ESM_SYSUIROLE ON ESM_RULEFLD.UR_CLASS_ID = ESM_SYSUIROLE.UR_CLASS_ID INNER JOIN " +
                          
    " ESM_SYSFIELDSROLE ON ESM_SYSUIROLE.FR_OBJECT_ID = ESM_SYSFIELDSROLE.FR_OBJECT_ID"+
                          
    " WHERE(ESM_RULEFLD.RU_OBJECT_ID = " + ruleId + ") ORDER BY  ESM_SYSFIELDSROLE.FIELD_INDEX");


                UserTable table 
    = new UserTable();
                table.TbName 
    = "ESM_APPORDERFLOW";
                List
    <Column> list = new List<Column>();
                
                
    //return table;
                foreach(DataRow dr in dtFields.Rows)
                {
                    Column col 
    = new Column();
                    col.ColId 
    = (int)dr["FR_OBJECT_ID"];
                    col.ColName 
    = dr["REALNAME"].ToString ();
                    col.ColDisplyName 
    = dr["FIELD_NAME"].ToString ();
                    col.ColDBType 
    = dr["DATATYPE"].ToString ();
                    col.ErrorMessage 
    = dr["ERRORMESSAGE"].ToString();
                    col.IsPK 
    = (bool)dr["ISPK"];
                    col.Length 
    = int.Parse(dr["FIELD_LENGTH"].ToString ());
                    col.Regex 
    = dr["REGEX"].ToString();
                    col.ToolMessage 
    = dr["TOOLMESSAGE"].ToString();
                    list.Add(col); 
                }
                table.Columns 
    = list;
                
    return table;
                
    //col.ColId = 1;
                
    //col.ColName = "productID";
                
    //col.ColDisplyName = "产品代码";
                
    //col.ColDBType = "varchar";
                
    //col.ErrorMessage = "产品代码错误,只能是2-10个数字和字母!";
                
    //col.IsPK = true;
                
    //col.Length = 10;
                
    //col.Regex = "^[0-9A-Za-z]{2,10}$";
                
    //col.ToolMessage = "只能是数字和字母";
                
    //list.Add(col);

                
            }
  • 相关阅读:
    PostgreSQL数据库中的常见错误
    postgresql相关命令
    Linux系统查看公网IP地址
    TCP/IP TIME_WAIT状态原理
    TCP连接状态详解及TIME_WAIT过多的解决方法
    让你提升命令行效率的 Bash 快捷键 [完整版]
    linux 如何显示一个文件的某几行(中间几行)
    linux中内核的一个不错的参数somaxconn
    Linux crontab 实现每秒执行
    Linux tar This does not look like a tar archive
  • 原文地址:https://www.cnblogs.com/ddlzq/p/1686691.html
Copyright © 2011-2022 走看看