如何利用极致业务基础平台构建一个通用企业ERP之十八如何调用存储过程介绍

1.如果您遇到您以前老系统调用了大量存储过程来实现比如诸如更新库存,更新毛重,套件转散件等动作,我们可以放在界面菜单,然后在菜单相应按钮处执行这些存储过程即可。

代码如下:

 /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="objContext">数据实体环境</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="ParamStr">存储过程参数</param>
        /// <returns>返回值</returns>
        public static string ExecProc(ObjectContext objContext,string spName, object[] ParamStr)
        {
            string strConn = objContext.ConnectionString;

            EncryptTripleDes Jiamiduixiang = new EncryptTripleDes();
            strConn = Jiamiduixiang.Decrypt(strConn);
            strConn=strConn.Split('v')[0];
            string result = "";
           // strConn = "Persist Security Info=False;User ID=sa;Password=Pln@Clf@Cwh;Initial Catalog=QF_SCM;Data Source=172.18.30.10;Max Pool Size=10000;Connect Timeout=180";
            //取得 Conn 数据库连接字符串
            SqlConnection sqlconn = new SqlConnection(strConn);
            sqlconn.Open();
            SqlCommand sp_exec = new SqlCommand();
            if (spName != "")
            {
                sp_exec = GetspCmd(spName, sqlconn);
                if (ParamStr.Length > 0)
                {
                    for (int i = 0; i < ParamStr.Length; i++)
                    {   
                        sp_exec.Parameters[i + 1].Value = ParamStr[i];
                    }
                }
                try
                {
                    sp_exec.ExecuteNonQuery();
                    result = sp_exec.Parameters["@rststr"].Value.ToString(); ;
                }
                catch (Exception e)
                {
                    result = "未预知的错误: " + e.Message;
                }
            }
            sqlconn.Close();
            return result;
        }

        /// <summary>
        /// 获取存储过程参数
        /// </summary>
        /// <param name="spNm">存储过程名称</param>
        /// <param name="sqlconn">参数名称</param>
        /// <returns></returns>
        public static SqlCommand GetspCmd(string spName, SqlConnection sqlconn)
        {
            SqlCommand cmd_prod = new SqlCommand(spName, sqlconn);
            cmd_prod.CommandType = CommandType.StoredProcedure; 
            SqlCommandBuilder.DeriveParameters(cmd_prod);
            return cmd_prod;
        }
View Code


调用如下:

调用示例:

 public override void ResponseMenuToolClickEvent(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e, object Tool)
        {
            Jeez.FormProperty.JeezTool tool = Tool as Jeez.FormProperty.JeezTool;
            if (tool == null) return;
            this.Cursor = Jeez.Common.UI.Waitcursor.WaitCursor;
            
            switch (tool.Name)
            {                 case "tool_UpGW"://更新毛重
                    if (this.entityobject != null)
                    {
                      //   @InStorageID INT, @Oper_Man Varchar(20), @Sum_GrossWeight numeric(18, 9), @rststr varchar(255)='' output
                        if (JeezCheckBox1.Checked)
                        {
                            string strResult = BaseFunc.ExecProc(objContext, "SCM_E_InStorageUpData_GW", new object[] { this.entityobject.PrimaryKeyValue, Jeez.Login.Environment.UserName, 200 });
                            if (string.IsNullOrEmpty(strResult.Trim()))
                            {
                                this.BillRefresh();
                            }
                            else
                            {
                                Jeez.Common.UI.MsgBox.Show(strResult);
                            }
                        }
                        else
                        {
                            Jeez.Common.UI.MsgBox.Show("报关数据才可以分配毛重");
                        }
                    }
                    break;

 }
            base.ResponseMenuToolClickEvent(sender, e, Tool);
            this.Cursor = Jeez.Common.UI.Waitcursor.Default;
        }
View Code

可以看到用极致框架传递参数都非常方便了!

极致平台开发十大特点:

1. 一个数据库下可以同时进行N套业务系统开发,开发出来的产品可以根据您客户的需要按模块界面组发布,客户想要啥模块就可以给啥模块。而且一个数据库下开发所有功能,当客户需要从你的人力资源增加客户关系管理模块的时候,你只要做个升级包就可以了。解决企业多个业务系统信息孤岛问题。
2. 智能升级功能,当客户从A模块增加B模块的时候,您只需要做一个升级包即可,给客户升级后,客户原来录入的数据不会有影响,而且所有客户端都是智能感应智能升级,大大节省您的部署成本。
3. 工作流套打报表均可以运行时候自定义,比如费用报销单,您100家客户就有一百种费用报销的流程,套打的格式,用我们平台您只需要设计好这个费用报销单,至于哪个客户走什么流程,完全可以让客户自己去定义,而不需要像传统开发那样,提前在开发中设置好,100个客户就维护100套代码。套打也是如此。
4. 支持数据授权,当您开发多组织架构的系统的时候,我们只要业务单据引用组织机构即可,然后组织机构支持数据授权,这样就可以不需要编写任何一行代码就可以做到,组织与组织之间数据彼此隔离,我想给哪个用户看哪个组织的数据只要给这个用户这个组织的数据权限即可。
5. 支持字段授权,对于一些表的核心字段对用户进行屏蔽直接利用我们平台的字段授权功能即可,比如职员薪酬字段进行字段授权,让有的用户在看职员信息的时候,自动隐藏薪酬的数据。这也是无需编写任何一行代码。
6. 单据界面自动生成,我们开发的时候只要设计好实体,也就是传统开发所说的表结构即可,还可以设置哪些字段是必录,可见,不允许重复,在界面生成的时候,会自动生成一个界面,而且这个界面的增删改查是无需写一行代码的,您只要对您特有业务逻辑编码即可,相对传统开发,你代码量可以节省2/3,开发周期缩短2/3
7.一次开发同时具有单机局域互联网三个版本,客户想要单机就给单机想要互联网版就给互联网版。 

8.强大的公式引擎,让您可以灵活设计计算类的项目,比如工资,预算。

9.包含强大的各种控件,比如文本控件支持F8调用,编码名称自动带出。Grid控件支持表头过滤,单元格融合,固定列,表格列,表格行各种公式汇总,复合表头,表格宽度可以自己随意调整,而且关闭后会自动记录之前的宽度。还支持表格列随意调整顺序。

10.平台内置很多基础功能,比如权限管理,用户角色管理,还有实施的一些导入导出工具都能帮助客户大大提高一个项目验收进度。

 

官网:www.jeez.com.cn
平台介绍:www.jeez.com.cn/jbf  
平台下载地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar

(下载即可有3个月免费试用)
联系电话:13826519021 18988763421 QQ:180315586  420977542 (加我注明极致软件即可)

平台销售经理:李先生 

将互联网时代的管理软件做到极致!
==================================================================

原文地址:https://www.cnblogs.com/Jeez_JBF/p/ERP22.html