VSTO EXCEL篇学习笔记五【原】

    

 

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

 

ExpandedBlockStart.gif 代码
//  初始化菜单和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 " ]);

        }

 

 

ExpandedBlockStart.gif 代码
// 动态创建业务数据界面 
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);

            
        }

 

转载于:https://www.cnblogs.com/ddlzq/archive/2010/03/15/1686691.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值