SZDF:录入相关的代码

2017-06-30 13:40:32  访问(1765) 赞(0) 踩(0)




  • 参考 ZnbmHrzz/HrzzbTxqy/Index (通行区域)
    几点:

    1、ZNBM\eKing.SzdfPage\Areas\ZnbmHrzz\HRZZB\HrzzbTxqy\EkSzdfDetailForm.cs
    设置录入控件

    2、Management\Areas\ZnbmHrzz\Views\HrzzbTxqy\Index.cshtml
    绘制HTML
  • 
    // Website\Management\Content\js\ZNBM\znbm.ek.js
    
    
    function EkGetSaveDetailData(pI, ekCode, pkId) {
        // 将保存内容装入Ajax的数组中,用于ajax实现 //
        // pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
        // ekCode == 控件元素searchcode对应的代号 
    
        // 获得保存的数据 //
        var theResult = [];
    
        theResult.push({ name: "_id", value: pkId });
    
        var eA = null;
    
        if (pI == null) {
            // 如果没有指定容器 //
            eA = $("[savecode=" + ekCode + "]");
        }
        else {
            // 如果指定了容器 //
            eA = $("#" + pI).find("[savecode=" + ekCode + "]");
        }
    
        var eALen = eA.length;
        var i = 0;
        var eI = null;
        var eId = null;
        var eName = null;
        var eValue = null; 
    
        for (i = 0; i < eALen; ++i) {
            eI = eA[i];
    
            if (eI == null)
                continue;
    
            eId = eI.id;
    
            if (eId == null || eId == "" || eId == undefined)
                continue;
    
            eValue = EkGetCtrlValue(eI);
    
            eName = eId;
    
            theResult.push({ name: eName, value: eValue });
        }
    
        return theResult;
    }
    
    
    // 保存记录集合 //
    function BaseAjaxGetSaveDetailData(pkId) {
        // 构建保存记录的集合 //
        var theResult = EkGetSaveDetailData("add_box", "a", pkId);
    
        return theResult;
    }
    
  • 
    // Website\Management\Content\js\ZNBM\znbm.ek.js
    
    
    
    
    function BaseJsCheckInput(pkId) {
        // JS 校验 //
        var checkResult = EkJudgeValidate(pkId, "add_box", "a");
    
        if (!checkResult) {
            return false;
        }
    
        return true;
    }
    
    
    // Website\Management\Content\js\ZNBM\znbm.ekcheck.js
    
    function EkJudgeValidate(pkId, containerId, ekCode) {
    
        // 输入校验 //
        var eA = null;
    
        if (containerId == null) {
            // 如果没有指定容器 //
            eA = $("[checkcode=" + ekCode + "]");
        }
        else {
            // 如果指定了容器 //
            eA = $("#" + containerId).find("[checkcode=" + ekCode + "]");
        }
    
        var eALen = eA.length;
        var i = 0;
        var eI = null;
        var checkResult = true;
    
        for (i = 0; i < eALen; ++i) {
            eI = eA[i];
    
            // 校验结果 //
            checkResult = EkJudgeValidateByThis(pkId, eI);
            if (!checkResult)
                return false;
    
            // 移除校验错误提示 //
            EkFocusCtrlRemoveCheckError(eI);
        }
    
    
        return checkResult;
    
    }
    
  • 
    
    // Website\Management\Content\js\ZNBM\index.sea.js
    
            // 录入页面保存事件 //
            $('[data-role="submit_form"]').on("click", function () {
    
                // 获得关键字 //
                var pkId = $("#add_box").attr("data-guid");
    
                if (pkId == undefined) {
                    // 如果未设置,设置成空 //
                    pkId = "";
                }
    
                if (EPI.IsOverrideJsCheckInput) {
                    // 自定义校验JS //
                    if (!JsCheckInput(pkId)) {
                        return;
                    }
                }
                else {
                    // 缺省方法校验JS //
                    if (!BaseJsCheckInput(pkId)) {
                        return;
                    }
                }
    
                // 显示浮层 //
                showLoad(true);
    
    
                // 获得Ajax的Url地址 //
                // 缺省是 DetailSave //
                var ajaxUrl = GlobalPhyPath + "/" + EPI.DetailSaveUrl;
    
                // 获得搜索的数据 //
                var ajxData = null;
    
                if (EPI.IsOverrideAjaxGetSaveDetailData) {
                    // 需要自定义方法获得保存的数据 //
                    ajxData = AjaxGetSaveDetailData(pkId);
                }
                else {
                    // 缺省的方法获得保存数据 //
                    ajxData = BaseAjaxGetSaveDetailData(pkId);
                }
    
                $.ajax({
                    cache: false,
                    async: true,
                    url: ajaxUrl,
                    type: "post",
                    data: ajxData,
                    success: function (rData) {
                        // 保存返回结果 //
                        // 为null,未知的异常,不做处理 //
                        if (rData == null)
                            return;
    
                        // 保存成功 //
                        if (rData.IsSucc) {
                            showLoad(false);
                            if (EPI.IsLoadTree) {
    
                                // 如果是加载树 //
                                // 提示成功并刷新页面 //
                                alert(rData.Msg);
    
                                // 重新刷新页面 //
                                EkPageReload();
                            }
                            else {
                                // 重新绑定当前页 //
                                getList($("#" + EPI.TableId).attr("pageindex"));
                            }
                        }
                        else {
                            // 保存失败的提示 //
                            alert(rData.Msg);
                        }
    
                    }
                });
    
            });
    
  •     <!--添加/编辑弹窗-->
        <div class="alert_box" id="add_box" data-role="alert_box" data-guid="" >
            <div class="alert_tit" data-role="alert_tit">
                <span id="span_detail">添加记录</span><i class="a_close" data-role="alert_close"></i>
            </div>
            <div class="n_aciton">
                <table class="n_table">
                    <tr>
                        <td class="t_r ek-tr-width">
                            <span class="ek-p-r5"><em class="c_red p_r5">*</em>名称:</span>
                        </td>
                        <td>
                            <input type="text" id="ctrld_TheName" class="input_txt" style="width:98%;" err="名称" checkexpession="NotNull" checkcode="a" savecode="a" setcode="a" setvaluedatacolumnname="TheName" />
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            <span class="ek-p-r5"><em class="c_red p_r5">*</em>代号:</span>
                        </td>
                        <td>
                            <input type="text" id="ctrld_TheCode" class="input_txt" style="width:98%;" err="代号" checkexpession="NotNull" checkcode="a" ValidExtendCode="basecheckunique" savecode="a" setcode="a" setvaluedatacolumnname="TheCode" />
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            <span class="ek-p-r5"><em class="c_red p_r5">*</em>显示顺序:</span>
                        </td>
                        <td>
                            <input type="text" id="ctrld_ShowSeq" class="input_txt" style="width:98%;" err="显示顺序" checkexpession="Num" checkcode="a" savecode="a" setcode="a" setvaluedatacolumnname="ShowSeq" />
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            <span class="ek-p-r5">描述:</span>
                        </td>
                        <td>
                            <textarea id="ctrld_TheText" style="width:98%;height:100px;" savecode="a" setcode="a" setvaluedatacolumnname="TheText"></textarea>
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            <span class="ek-p-r5">备注:</span>
                        </td>
                        <td>
                            <textarea id="ctrld_Remark" style="width:98%;height:100px;" savecode="a" setcode="a" setvaluedatacolumnname="Remark"></textarea>
                        </td></tr>
                </table>
            </div>
            <div class="c_action"><button class="con_btn m_r10" data-role="submit_form">确定</button><button class="cc_btn" data-role="be_close">取消</button></div>
        </div>
        <!--添加/编辑弹窗 End -->
    
    
  • 
    
    
    // Website\Management\Areas\ZnbmHrzz\Views\HrzzbTxqy\Index.cshtml
    <!--添加/编辑弹窗-->
        <div class="alert_box" id="add_box" data-role="alert_box" data-guid="" >
            <div class="alert_tit" data-role="alert_tit">
                <span id="span_detail">添加记录</span><i class="a_close" data-role="alert_close"></i>
            </div>
            <div class="n_aciton">
                <table class="n_table">
                    <tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.DetailForm._TheName.PrintDetailLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.DetailForm._TheName.PrintHTML())
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.DetailForm._TheCode.PrintDetailLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.DetailForm._TheCode.PrintHTML())
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.DetailForm._ShowSeq.PrintDetailLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.DetailForm._ShowSeq.PrintHTML())
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.DetailForm._TheText.PrintDetailLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.DetailForm._TheText.PrintHTML())
                        </td></tr><tr>
                        <td class="t_r ek-tr-width">
                            @Html.Raw(@eKp.DetailForm._Remark.PrintDetailLabel())
                        </td>
                        <td>
                            @Html.Raw(@eKp.DetailForm._Remark.PrintHTML())
                        </td></tr>
                </table>
            </div>
            <div class="c_action"><button class="con_btn m_r10" data-role="submit_form">确定</button><button class="cc_btn" data-role="be_close">取消</button></div>
        </div>
        <!--添加/编辑弹窗 End -->
    
  • 
    
    // \ZNBM\eKing.SzdfPage\Areas\ZnbmHrzz\HRZZB\HrzzbTxqy\EkSzdfDetailForm.cs
    
    
    using eKing.EkPageCreate.IWebCtrls;
    using System;
    using System.Web.UI.WebControls;
    using eKing.EkPageCreate.CtrlNames;
    using eKing.SzdfPage.WebCtrls;
    using SlowX.Core.Classes;
    
    
    /// <summary>
    /// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
    /// <para>注释:通行证通行区域</para>
    /// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
    /// </summary>
    namespace eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy
    {
    
        /// <summary>
        /// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
        /// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
        /// </summary>
        [Serializable]
        public partial class EkSzdfDetailForm
            :
            EkxPageDetailForm
        {
            
            /// <summary>
            /// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
            /// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
            /// </summary>
            public EkSzdfDetailForm()
            {
                // UTB_SZDF_HRZZB_TXQY //
                // eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY //
                InitClass();
            }
    
            #region 控件 
    
    
            #region TheName - 名称
    
            
            /// <summary>
            /// TheName - 名称
            /// </summary>
            protected EkxPageInputCtrl m_TheName
                =
                null;
            
            
            /// <summary>
            /// TheName - 名称
            /// </summary>
            public EkxPageInputCtrl _TheName
            {
                get
                {
                    return m_TheName;
                }
            }
    
            #endregion TheName - 名称
    
            #region TheCode - 代号
    
            
            /// <summary>
            /// TheCode - 代号
            /// </summary>
            protected EkxPageInputCtrl m_TheCode
                =
                null;
            
            
            /// <summary>
            /// TheCode - 代号
            /// </summary>
            public EkxPageInputCtrl _TheCode
            {
                get
                {
                    return m_TheCode;
                }
            }
    
            #endregion TheCode - 代号
    
            #region ShowSeq - 显示顺序
    
            
            /// <summary>
            /// ShowSeq - 显示顺序
            /// </summary>
            protected EkxPageInputCtrl m_ShowSeq
                =
                null;
            
            
            /// <summary>
            /// ShowSeq - 显示顺序
            /// </summary>
            public EkxPageInputCtrl _ShowSeq
            {
                get
                {
                    return m_ShowSeq;
                }
            }
    
            #endregion ShowSeq - 显示顺序
    
            #region TheText - 描述
    
            
            /// <summary>
            /// TheText - 描述
            /// </summary>
            protected EkxPageInputCtrl m_TheText
                =
                null;
            
            
            /// <summary>
            /// TheText - 描述
            /// </summary>
            public EkxPageInputCtrl _TheText
            {
                get
                {
                    return m_TheText;
                }
            }
    
            #endregion TheText - 描述
    
            #region Remark - 备注
    
            
            /// <summary>
            /// Remark - 备注
            /// </summary>
            protected EkxPageInputCtrl m_Remark
                =
                null;
            
            
            /// <summary>
            /// Remark - 备注
            /// </summary>
            public EkxPageInputCtrl _Remark
            {
                get
                {
                    return m_Remark;
                }
            }
    
            #endregion Remark - 备注
             
    
            #endregion 控件 
    
            /// <summary>
            /// 
            /// </summary>
            public void CtrlAddCreate()
            {
                // 对应的表属性 //
                eKing.SzdfLib.TableAttribute.HRZZB.UTB_SZDF_HRZZB_TXQY TA
                    =
                    eKing.SzdfLib.TableAttribute.HRZZB.UTB_SZDF_HRZZB_TXQY.instance;
                
                // 对应的字段属性 //
                DataColumnAttributeInfo dcai = null;
    
                // 标签名 //
                string labelName = null;
                // 控件前缀 //
                string ctrlPreName = FormCtrlPreName;
                EkxPageInputCtrl ekx = null;
                IValidCtrl ivc = null;
                IInputCtrlName IICN 
                    = 
                    IInputCtrlName.IInputCtrlNameInstance;
    
    
                #region TheName - 名称
    
                ekx = new EkxPageInputCtrl();
                m_TheName = ekx;
                CtrlAdd(ekx);
    
                dcai = TA._TheName;
                labelName = ToLabelName8Info(dcai, "名称", true);
    
                // 控件的标签名 //
                ekx.LabelName = labelName;
                // 控件客户端显示ID //
                ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
                // Detail表单编辑的时候允许设置值 //
                ekx.IsEnabledSetValue = true;
                // 不参与作为搜索的查询条件 //
                ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
                // 控件类型 //
                ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
                // 控件样式 //
                ekx.CtrlCssClass = "input_txt";
                // 控件赋值给数据库做保存时候的格式值 //
                ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
    
                // 录入表单:给表单控件赋值用于编辑的显示逻辑 //
                ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
     
                // 控件宽度 //
                ekx.CtrlWidth = Unit98per;
                // 控件高度 //
                ekx.CtrlHeight = Unit.Empty;
    
                // 控件校验 //
                ivc = ekx;
                ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.校验;
                ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
    
                #endregion TheName - 名称
    
                #region TheCode - 代号
    
                ekx = new EkxPageInputCtrl();
                m_TheCode = ekx;
                CtrlAdd(ekx);
    
                dcai = TA._TheCode;
                labelName = ToLabelName8Info(dcai, "代号", true);
    
                // 控件的标签名 //
                ekx.LabelName = labelName;
                // 控件客户端显示ID //
                ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
                // Detail表单编辑的时候允许设置值 //
                ekx.IsEnabledSetValue = true;
                // 不参与作为搜索的查询条件 //
                ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
                // 控件类型 //
                ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
                // 控件样式 //
                ekx.CtrlCssClass = "input_txt";
                // 控件赋值给数据库做保存时候的格式值 //
                ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
    
                // 录入表单:给表单控件赋值用于编辑的显示逻辑 //
                ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
     
                // 控件宽度 //
                ekx.CtrlWidth = Unit98per;
                // 控件高度 //
                ekx.CtrlHeight = Unit.Empty;
    
                // 控件校验 //
                ivc = ekx;
                ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.完全唯一性校验;
                ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
    
                #endregion TheCode - 代号
    
                #region ShowSeq - 显示顺序
    
                ekx = new EkxPageInputCtrl();
                m_ShowSeq = ekx;
                CtrlAdd(ekx);
    
                dcai = TA._ShowSeq;
                labelName = ToLabelName8Info(dcai, "显示顺序", true);
    
                // 控件的标签名 //
                ekx.LabelName = labelName;
                // 控件客户端显示ID //
                ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
                // Detail表单编辑的时候允许设置值 //
                ekx.IsEnabledSetValue = true;
                // 不参与作为搜索的查询条件 //
                ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
                // 控件类型 //
                ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
                // 控件样式 //
                ekx.CtrlCssClass = "input_txt";
                // 控件赋值给数据库做保存时候的格式值 //
                ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
    
                // 录入表单:给表单控件赋值用于编辑的显示逻辑 //
                ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.整型值;
     
                // 控件宽度 //
                ekx.CtrlWidth = Unit98per;
                // 控件高度 //
                ekx.CtrlHeight = Unit.Empty;
    
                // 控件校验 //
                ivc = ekx;
                ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.校验;
                ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.整型数字;
    
                #endregion ShowSeq - 显示顺序
    
                #region TheText - 描述
    
                ekx = new EkxPageInputCtrl();
                m_TheText = ekx;
                CtrlAdd(ekx);
    
                dcai = TA._TheText;
                labelName = ToLabelName8Info(dcai, "描述", true);
    
                // 控件的标签名 //
                ekx.LabelName = labelName;
                // 控件客户端显示ID //
                ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
                // Detail表单编辑的时候允许设置值 //
                ekx.IsEnabledSetValue = true;
                // 不参与作为搜索的查询条件 //
                ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
                // 控件类型 //
                ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.多行文本;
                // 控件赋值给数据库做保存时候的格式值 //
                ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串;
    
                // 录入表单:给表单控件赋值用于编辑的显示逻辑 //
                ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
     
                // 控件宽度 //
                ekx.CtrlWidth = Unit98per;
                // 控件高度 //
                ekx.CtrlHeight = Unit100px;
    
                // 控件校验 //
                ivc = ekx;
                ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.不校验;
                ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
    
                #endregion TheText - 描述
    
                #region Remark - 备注
    
                ekx = new EkxPageInputCtrl();
                m_Remark = ekx;
                CtrlAdd(ekx);
    
                dcai = TA._Remark;
                labelName = ToLabelName8Info(dcai, "备注", true);
    
                // 控件的标签名 //
                ekx.LabelName = labelName;
                // 控件客户端显示ID //
                ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
                // Detail表单编辑的时候允许设置值 //
                ekx.IsEnabledSetValue = true;
                // 不参与作为搜索的查询条件 //
                ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
                // 控件类型 //
                ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.多行文本;
                // 控件赋值给数据库做保存时候的格式值 //
                ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串;
    
                // 录入表单:给表单控件赋值用于编辑的显示逻辑 //
                ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
     
                // 控件宽度 //
                ekx.CtrlWidth = Unit98per;
                // 控件高度 //
                ekx.CtrlHeight = Unit100px;
    
                // 控件校验 //
                ivc = ekx;
                ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.不校验;
                ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
    
                #endregion Remark - 备注
                 
            }
    
    
            /// <summary>
            /// 
            /// </summary>
            public void InitClass()
            {
                // 控件的前缀名 //
                m_FormCtrlPreName = "d";
    
                // 创建元素 //
                CtrlAddCreate();
    
                // 初始化控件后 //
                InitClassAfter();
            }
    
    
        }
    }
    
    
    
  • 
    
    // Management\Areas\ZnbmHrzz\Controllers\HRZZB\HrzzbTxqy\HrzzbTxqyController.cs
    
            #region 保存内容
    
    
            /// <summary>
            /// 保存内容
            /// </summary>
            /// <param name="xdbHelper">数据库链接串</param>
            /// <returns></returns>
            protected DetailSaveOperResult
                DetailSaveOper(DBHelper xdbHelper)
    
            {
                // 1. 保存执行前的逻辑操作,如有需要重载 //
                DetailSaveOperResult theResult 
                    = 
                    DetailSaveOperBeforeLogic(xdbHelper);
    
                if (theResult != null)
                    return theResult;
    
                // Http参数过来的相关的参数名 //
                HttpContextName hcn = HttpContextName.instance;
    
                // 2.保存后的逻辑操作 //
                DetailSaveOperDBParams dp
                    =
                    DetailSaveOperDBParamsCreate();
    
                // 通过Form表单获得关键字 //
                dp.PkId = Request.Form[hcn._id];
     
                // 获得页面的属性 //
                eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfPage eKp
                    =
                    eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfPage.instance;
    
                // 获得页面的属性 //
                eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfDetailForm dF
                    =
                    eKp.DetailForm;
    
                // 获得录入条件 //
                List<EkxInputCtrl> ctrlList
                    =
                    dF.CtrlListGet();
    
                bool bIsCreate = true;
    
                if (xdbHelper == null)
                {
                    // 如果没有指定数据库链接 //
                    // 创建数据库链接 //
                    xdbHelper
                        =
                        SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
                }
                else
                {
                    // 没有打开链接 //
                    bIsCreate = xdbHelper.IsNotOpen();
                }
    
                try
                {
                    if (bIsCreate)
                        xdbHelper.OpenDBHelper();
    
    
                    // 这里一般用来做保存校验 //
                    theResult = DetailSaveOperBeforeSaveLogic
                        (
                            dp,
                            xdbHelper
                        );
    
                    if (theResult != null)
                    {
                        if (bIsCreate)
                            xdbHelper.EndDBHelper();
    
                        return theResult;
                    }
                    
                    // 业务逻辑 //
                    eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY
                        bll
                        =
                        eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY.instance;
    
                    // 表操作交互字段 //
                    eKing.SzdfLib.Entity.HRZZB.UTB_SZDF_HRZZB_TXQY
                        entity
                        =
                        new eKing.SzdfLib.Entity.HRZZB.UTB_SZDF_HRZZB_TXQY();
    
                    // 保存相关操作的接口 //
                    ISaveDriver isave = entity;
    
                    // 查询相关操作的接口 //
                    IQueryDriver iq = entity;
    
                    dp.DateTimeNow = bll.GetNow(xdbHelper);
                    // 设置用户Session信息 //
                    SessionInfoToParam(dp);
    
                    if (dp.PkId == null || dp.PkId.Length == 0 || dp.PkId == "0")
                    {
                        dp.IsInsert = true;
                        dp.PkId = bll.GetNewID(xdbHelper);
                    }
    
                    // 3.设置isave.AddISaveItem前 //
                    // 如有需要的逻辑,可以扩展 override 实现 //
                    DetailSaveOperBeforeSetISaveDriver(bll, entity, dp, xdbHelper);
    
    
                    // 逻辑方法 //
                    eKing.SzdfPage.Helpers.eKingSzdfPageHelper
                            wh
                            =
                            eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
    
                    wh.ICtrlSaveValueSetObjValue
                        (
                            ctrlList,
                            entity,
                            eKing.EkPageCreate.Enums.Code.EmCode.Default
                        );
    
                    isave.AddISaveItem(entity._LastUpdateUserId, dp.UserId); 
                    
                      
                    isave.AddISaveItem(entity._UpdateTime, dp.DateTimeNow); 
    
    
                    // 4.设置isave.AddISaveItem前 //
                    // 如有需要的逻辑,可以扩展 override 实现 //
                    DetailSaveOperBeforeDB(bll, entity, dp, xdbHelper);
    
     
                    if(dp.IsInsert)
                    {
                    isave.AddISaveItem(entity._CreateTime, dp.DateTimeNow); 
                     
                    isave.AddISaveItem(entity._InputUserId, dp.UserId); 
                     
    
                        isave.AddISaveItem(entity._ID, dp.PkId);
                        bll.Insert(entity, xdbHelper);
                    }
                    else
                    {
                        iq.AddIQueryItemWithEntityFieldInfo(entity._ID, dp.PkId);
    
                        bll.Update(entity, xdbHelper);
                    }
    
    
                    #region 保存后的逻辑操作
    
    
                    // 5.执行保存后的逻辑操作
                    // 如有需要,重载逻辑实现 
                    DetailSaveOperAfterDB
                        (
                            bll,
                            entity,
                            dp,
                            xdbHelper
                        );
    
                    #endregion 保存后的逻辑操作
    
                    if (bIsCreate)
                        xdbHelper.EndDBHelper();
    
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                        xdbHelper.TranDBHelper();
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                        xdbHelper.FinallyDBHelper();
                }
    
                // 6.数据执行完毕提交后的操作,如有需要,重载 //
                theResult = DetailSaveOperAfterLogic(dp, xdbHelper);
    
                if (theResult != null)
                    return theResult;
    
                // {"IsSucc": true,"Msg":"保存成功"} 
                return DetailSaveOperResult.DetailSaveToSucc("保存成功", dp.PkId);
    
            }
    
    
            /// <summary>
            /// 录入保存
            /// </summary>
            /// <returns>OperResult[IsSucc:是否成功;Msg:结果提示]</returns>
            public ActionResult DetailSave()
            {
                DetailSaveOperResult op = null;
    
                try
                {
                    op = DetailSaveOper(null);
                }
                catch (Exception err)
                {
                    op = DetailSaveOperResult.DetailSaveToError("发生异常:" + err.Message);
                    BaseWriteException(err);
                }
    
                ContentResult theResult = new ContentResult();
                theResult.ContentEncoding = UTF8Encoding.UTF8;
                theResult.ContentType = MIMETypes.Json;
                theResult.Content = op.ToJson();
                 
                return theResult;
            }
    
            #endregion 保存内容
    
  • 
    
    
    
    // ZNBM\eKing.SzdfPage\Helpers\eKingWebUtilHelper.cs
    
    
    
            /// <summary>
            /// 通过递归遍历的方式设置保存值
            /// </summary>
            /// <param name="cList">控件的类列表</param>
            /// <param name="entity">字段实体</param>
            /// <param name="em">设置值的分组代号</param>
            public void ICtrlSaveValueSetObjValue
                (
                    List<EkxInputCtrl> cList,
                    BaseEntity entity,
                    eKing.EkPageCreate.Enums.Code.EmCode em
                )
            {
                if (cList == null || entity == null)
                    return;
    
                object obj = null;
                ISaveDriver isave = entity;
                EntityFieldInfo eInfo = null;
                string strDataColumnName = null;
    
                foreach (ICtrlSaveValue isc in cList)
                {
                    if (isc == null)
                        continue;
    
                    if (!isc.IsEnabledSaveValue)
                        continue;
    
                    if (isc.SaveValueEmCode != em)
                        continue;
    
                    // 数据无效 //
                    // 就是没有这个表单的填写记录 //
                    if (!isc.SaveValueIsValid())
                        continue;
    
                    strDataColumnName = isc.SaveValueDataColumnNameGet();
    
                    // 获得字段对应的EntityFieldInfo // 
                    eInfo = entity.GetEntityFieldInfo
                        (strDataColumnName);
    
                    if (eInfo == null)
                        continue;
    
                    obj = isc.SaveValueGetValueObj();
    
                    isave.AddISaveItem(eInfo, obj);
                }
            }
    

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)