后台给单元格中的文本框赋值setDataRowValue

 

namespace QDZXBBCL.ZXBZ
{
    class ZHFactorBCL : ISuwfBus
    {
        private pageMode _mode;
        private decimal? _userID = null;
        private string _rs_id = null;
        private RecordConfig _rc = null;

        #region ISuwfBus 成员

        private SlnSuwfPage _page;

        public void Initial(SlnSuwfPage page)
        {
            _page = page;
            _rs_id = _page.GetValueByName("RS_ID");
            if (string.IsNullOrEmpty(_rs_id))
            {
                _rs_id = "-9999";
            }
            _rc = new RecordConfig("ZHFACTOR_VALUE", page);
            _rc.GroupID = _rs_id;
            _page.Load += new EventHandler(_page_Load);

            string strIsNew = _page.GetValueByName("isnew");
            if (string.IsNullOrEmpty(strIsNew))
            {
                _page.afterFillGrid += onAfterFillGrid;
            }
        }

        void onAfterFillGrid()
        {
            int count = _page.GridData.Rows.Count;
            List<decimal> rf = null;
            rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(decimal.Parse(_rs_id));
            for (int i = 0; i < count; i++)
            {
                DataRow dr = _page.GridData.Rows[i];
                string odr = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");

                if (rf.Contains(decimal.Parse(odr)))
                {
                    _page.SetGridRowSelected(i, true);
                }
            }

            string s = "true";
            string script = string.Format(@"var _openwin = {0};var mode='{1}';", s, _mode);
            _page.ClientScript.RegisterClientScriptBlock(script.GetType(), "openwin", script, true);
        }

        void _page_Load(object sender, EventArgs e)
        {
            _mode = clsGridConfig.getPageModeByString(_page.GetValueByName("mode"));            

            string userid = _page.GetValueByName("sys_userid");
            decimal useridtmp = 0;
            if (decimal.TryParse(userid, out useridtmp))
            {
                _userID = useridtmp;
            }

            Button btn = _page.FindControl("btnSaveZHF") as Button;
            if (btn != null)
            {
                btn.Click += new EventHandler(btnSaveZHF);
            }

            btn = _page.FindControl("btnSaveZHFNew") as Button;
            if (btn != null)
            {
                btn.Click += new EventHandler(btnSaveZHFNew);
            }

            btn = _page.FindControl("btnSaveZHFNewN") as Button;
            if (btn != null)
            {
                btn.Click += new EventHandler(btnSaveZHFNewN);
            }

            btn = _page.FindControl("btnDefined") as Button;
            if (btn != null)
            {
                btn.Click += new EventHandler(btnDefined_Click);
            }

            btn = _page.FindControl("btnACJQ") as Button;
            if (btn != null)
            {
                btn.Click += new EventHandler(btnACJQ_Click);
            }

            
        }
        #endregion
        void setDataRowValue(DataRow dr, string key, int index)
        {
            TextBox tb = _page.GetTextBoxInGridCell(index, key);
            if (tb != null)
            {
                if (string.IsNullOrEmpty(tb.Text))
                {
                    dr[key] = DBNull.Value;
                }
                else
                {
                    dr[key] = tb.Text;
                }
            }
        }

        void btnSaveZHF(object sender, EventArgs e)
        {
            string strMsg = "";
            string showMsg = "新增:";
            DataTable dt = _page.GridData;
            int count = dt.Rows.Count;
            decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));

            string pk = _page.GetRowDataPrimaryKeys();
            if (string.IsNullOrEmpty(pk))
            {
                showMsg = "全部撤销:";
            }

            _page.btnSave_Click(null, null);//先保存数据

            List<DataRow> zhvIds = _rc.CreateDataRowListWithDataTableOfGrid(dt, delegate(DataRow dr, int index)
            {
                if (_page.GridRowIsSelected(index))
                {
                    return true;
                }
                return false;
            });

            strMsg = ZHFactorValueSL.UpdateZHFactorValuesWithRationSet(rs_id, zhvIds, (decimal)_mode, _userID);
            if (!string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage(strMsg);
                return;
            }

            string strJS = "<script type='text/javascript'>"
                    + "pWindow = window.parent.parent.parent;"
                    + "fr=pWindow.gridframe;"
                    + "btn= fr.document.all.btnQuery;"
                    + "if(btn != null)"
                    + "{btn.click();}"
                    + " </script>";
            _page.Response.Write(strJS);

            //   string strJS = "<script type='text/javascript'>"
            //        + "var pwin=window.parent.parent.gridframe; "
            // + " if(pwin!=null){"
            //+ "$(\"#btnQuery\",pwin.document).click();}"
            // + "</script>";
            _page.ShowMessage(showMsg + "执行成功");
            _page.btnQuery_Click(sender, e);
        }

        void btnSaveZHFNew(object sender, EventArgs e)
        {
            string strMsg = "";
            string showMsg = "新增:";
            DataTable dt = _page.GridData;
            int count = dt.Rows.Count;
            decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));

            string pk = _page.GetRowDataPrimaryKeys();
            if (string.IsNullOrEmpty(pk))
            {
                showMsg = "全部撤销:";
            }

            #region

            for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
            {
                string temp = _page.GetRowDataByKey(i, "ZHFACTOR_TYPE");

                if (string.IsNullOrEmpty(temp) || temp == "1")
                {
                    _page.GetTextBoxInGridCell(i, "BASEPRICE_TYPE").Text = "";
                    _page.GetTextBoxInGridCell(i, "BASE_RATE").Text = "";
                }
                else if (temp == "2")
                {
                    temp = _page.GetRowDataByKey(i, "BASEPRICE_TYPE");
                    if (string.IsNullOrEmpty(temp))
                    {
                        strMsg = strMsg + i + ",基数类型不能为空;";
                        continue;
                    }

                    decimal dRG = 0;
                    decimal dCL = 0;
                    decimal dJX = 0;
                    temp = _page.GetRowDataByKey(i, "RG");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dRG);
                    }
                    temp = _page.GetRowDataByKey(i, "CL");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dCL);
                    }
                    temp = _page.GetRowDataByKey(i, "JX");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dJX);
                    }
                    if (dRG + dCL + dJX != 100)
                    {
                        strMsg = strMsg + i + ",数据不正确;";
                        continue;
                    }
                }
            }

            if (!string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage(strMsg);
                return;
            }

            #endregion

            List<RowCheck> listState = new List<RowCheck>();
            for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
            {
                bool isChecked = false;
                Control ckb = _page.MainGrid.Rows[i].FindControl("chkMC");
                if (ckb != null && (ckb as CheckBox).Checked)
                {
                    isChecked = true;
                }

                listState.Add(new RowCheck(i, isChecked));
            }

            _page.btnSave_Click(null, null);//先保存数据
            //onAfterFillGrid();
            foreach (RowCheck item in listState)
            {
                _page.SetGridRowSelected(item.RowIdx, item.Checked);
            }

            List<DataRow> zhvIds = _rc.CreateDataRowListWithDataTableOfGrid(dt, delegate(DataRow dr, int index)
            {
                //if (_page.GridRowIsSelected(index))
                //{
                //    return true;
                //}
                //return false;
                bool isSelected = false;
                Control ckb = _page.MainGrid.Rows[index].FindControl("chkMC");
                if (ckb != null && (ckb as CheckBox).Checked)
                {
                    isSelected = true;
                }
                return isSelected;
            });

            strMsg = ZHFactorValueSL.UpdateZHFactorValuesWithRationSet(rs_id, zhvIds, (decimal)_mode, _userID);
            if (!string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage(strMsg);
                return;
            }

            string strJS = "<script type='text/javascript'>"
                    + "pWindow = window.parent.parent.parent;"
                    + "fr=pWindow.gridframe;"
                    + "btn= fr.document.all.btnQuery;"
                    + "if(btn != null)"
                    + "{btn.click();}"
                    + " </script>";
            _page.Response.Write(strJS);

            //   string strJS = "<script type='text/javascript'>"
            //        + "var pwin=window.parent.parent.gridframe; "
            // + " if(pwin!=null){"
            //+ "$(\"#btnQuery\",pwin.document).click();}"
            // + "</script>";

            //   _page.ClientScript.RegisterClientScriptBlock(typeof(string), "close", strJS, false);
            _page.ShowMessage(showMsg + "执行成功");
            _page.btnQuery_Click(sender, e);
        }

        void btnSaveZHFNewN(object sender, EventArgs e)
        {
            string strMsg = "";
            string showMsg = "新增:";
            DataTable dt = _page.GridData;
            int count = dt.Rows.Count;
            decimal rs_id = decimal.Parse(_page.GetValueByName("RS_ID"));

            string pk = _page.GetRowDataPrimaryKeys();
            if (string.IsNullOrEmpty(pk))
            {
                showMsg = "全部撤销:";
            }

            #region

            for (int i = 0; i < _page.MainGrid.Rows.Count; i++)
            {
                string temp = _page.GetRowDataByKey(i, "ZHFACTOR_TYPE");

                if (string.IsNullOrEmpty(temp) || temp == "1")
                {
                    _page.GetTextBoxInGridCell(i, "BASEPRICE_TYPE").Text = "";
                    _page.GetTextBoxInGridCell(i, "BASE_RATE").Text = "";
                }
                else if (temp == "2")
                {
                    temp = _page.GetRowDataByKey(i, "BASEPRICE_TYPE");
                    if (string.IsNullOrEmpty(temp))
                    {
                        strMsg = strMsg + i + ",基数类型不能为空;";
                        continue;
                    }

                    decimal dRG = 0;
                    decimal dCL = 0;
                    decimal dJX = 0;
                    temp = _page.GetRowDataByKey(i, "RG");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dRG);
                    }
                    temp = _page.GetRowDataByKey(i, "CL");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dCL);
                    }
                    temp = _page.GetRowDataByKey(i, "JX");
                    if (!string.IsNullOrEmpty(temp))
                    {
                        decimal.TryParse(temp, out dJX);
                    }
                    if (dRG + dCL + dJX != 1)
                    {
                        strMsg = strMsg + i + ",分摊比例数据不正确;";
                        continue;
                    }
                }
            }

            if (!string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage(strMsg);
                return;
            }

            #endregion

            _page.btnSave_Click(null, null);//先保存数据
            ZHFactorValueSL.UpdateRSByZHFactorValue(decimal.Parse(_page.GetValueByName("preset")),
                _userID, (decimal)_mode);

            string str_preset_id = _page.GetValueByName("preset");
            if (!string.IsNullOrEmpty(str_preset_id) && !string.IsNullOrEmpty(pk))
            {
                strMsg = ZHFactorValueSL.DeleteRSByZHFactorValues(str_preset_id, pk);
            }

            if (!string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage(strMsg);
                return;
            }

            string strJS = "<script type='text/javascript'>"
                    + "pWindow = window.parent.parent.parent;"
                    + "fr=pWindow.gridframe;"
                    + "btn= fr.document.all.btnQuery;"
                    + "if(btn != null)"
                    + "{btn.click();}"
                    + " </script>";
            _page.Response.Write(strJS);
            _page.ShowMessage("执行成功");
            _page.btnQuery_Click(sender, e);
        }

        void btnACJQ_Click(object sender, EventArgs e)
        {
            string strZHV_id = _page.GetRowDataPrimaryKey();
            if (string.IsNullOrEmpty(strZHV_id))
            {
                _page.ShowMessage("未选中任何数据");
                return;
            }

            string strPreset_id = _page.GetRowDataByKey("preset_id");
            string strMsg = ZHFactorValueSL.UpdateUpdateZHFactorValues(decimal.Parse(strZHV_id),
                decimal.Parse(strPreset_id), _userID, (decimal)_mode);

            string strJS = "<script type='text/javascript'>"
                    + "pWindow = window.parent.parent.parent;"
                    + "fr=pWindow.gridframe;"
                    + "btn= fr.document.all.btnQuery;"
                    + "if(btn != null)"
                    + "{btn.click();}"
                    + " </script>";
            _page.Response.Write(strJS);
            _page.btnQuery_Click(null, null);
            if (string.IsNullOrEmpty(strMsg))
            {
                _page.ShowMessage("执行成功!");
            }
            else
            {
                _page.ShowMessage(strMsg);
            }
        }

        /// <summary>
        /// 页面加载时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void _page_load_choose()
        {
            if (string.IsNullOrEmpty(_page.GetValueByName("RS_ID")))
            {
                return;
            }
            decimal rsID = decimal.Parse(_page.GetValueByName("RS_ID"));
            List<decimal> rf = null;
            rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(rsID);

            string pk;
            for (int i = 0; i < _page.GridData.Rows.Count; i++)
            {
                pk = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
                if (!string.IsNullOrEmpty(pk) && rf.Contains(decimal.Parse(pk)))
                {
                    _page.SetGridRowSelected(i, true);
                }


                TextBox name = _page.GetTextBoxInGridCell(i, "ADD_NAME");
                TextBox fm = _page.GetTextBoxInGridCell(i, "FORMULA");
                TextBox rg = _page.GetTextBoxInGridCell(i, "RG");

                TextBox cl = _page.GetTextBoxInGridCell(i, "CL");
                TextBox jx = _page.GetTextBoxInGridCell(i, "JX");
                string pid = _page.GetRowDataByKey(i, "preset_id");

                if (string.IsNullOrEmpty(pid))
                {
                    name.ReadOnly = true;
                    fm.ReadOnly = true;
                    rg.ReadOnly = true;
                    cl.ReadOnly = true;

                    jx.Enabled = false;
                }

            }
        }

        //void onAfterFillGrid()
        //{
        //    DataTable dtRecordState = null;
        //    clsGridConfig.buildOptions(_baseOptions, _configOptions, _mode, _page.Unit.ProgUnit);
        //    if (_mode != pageMode.Common)
        //    {
        //        string strOrders = "-99999";
        //        for (int i = 0; i < _page.GridData.Rows.Count; i++)
        //        {
        //            string id = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");
        //            strOrders += "," + id;
        //        }
        //        dtRecordState = clsGridConfig.getRecordStateByOptionsAndTargets(_baseOptions, strOrders, _rs_id);
        //    }
        //    int count = _page.GridData.Rows.Count;
        //    List<decimal> rf = null;
        //    rf = ZHFactorSL.GetChoseRationZHFactorForRationSet(decimal.Parse(_rs_id));
        //    for (int i = 0; i < count; i++)
        //    {
        //        DataRow dr = _page.GridData.Rows[i];
        //        string odr = _page.GetRowDataByKey(i, "ZHFACTOR_VALUE_ID");

        //        clsGridConfig.setGridTextBoxState(_baseOptions, _page.MainGrid.Rows[i], dtRecordState, odr, _rs_id);

        //        if (rf.Contains(decimal.Parse(odr)))
        //        {
        //            _page.SetGridRowSelected(i, true);
        //        }
        //        string iscustom = _page.GetRowDataByKey(i, "ISCUSTOM");

        //        if (string.IsNullOrEmpty(iscustom) || iscustom == "0")
        //        {
        //            clsGridConfig.removeTextBox("ADD_NAME", _page.MainGrid.Rows[i], _baseOptions);
        //            clsGridConfig.removeTextBox("FORMULA", _page.MainGrid.Rows[i], _baseOptions);
        //            clsGridConfig.removeTextBox("RG", _page.MainGrid.Rows[i], _baseOptions);
        //            clsGridConfig.removeTextBox("CL", _page.MainGrid.Rows[i], _baseOptions);
        //            clsGridConfig.removeTextBox("JX", _page.MainGrid.Rows[i], _baseOptions);
        //        }
        //    }

        //    string s = "true";
        //    if (_baseOptions.ContainsKey("openwin") && !_baseOptions["openwin"].editable)
        //    {
        //        s = "false";
        //    }
        //    string script = string.Format(@"var _openwin = {0};var mode='{1}';", s, _mode);
        //    _page.ClientScript.RegisterClientScriptBlock(script.GetType(), "openwin", script, true);
        //}

        /// <summary>
        /// 撤销增加费
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnDelRation_Click(object sender, EventArgs e)
        {
            string strRs = _page.GetValueByName("RS_ID");
            if (string.IsNullOrEmpty(strRs))
            {
                _page.ShowMessage("没有定额预算ID,请尝试重新打开页面!");
                return;
            }
            decimal rsID = decimal.Parse(strRs);

            string msg = ZHFactorValueSL.RepealZHFactorlWithRationSet(rsID);

            if (string.IsNullOrEmpty(msg))
            {
                _page.ShowMessage("撤销成功!");
                string strJS = "<script type='text/javascript'>"
                + "var pwin=window.parent.parent.gridframe; "
         + " if(pwin!=null){"
        + "$(\"#btnQuery\",pwin.document).click();}"
         + "</script>";

                _page.ClientScript.RegisterClientScriptBlock(typeof(string), "update", strJS, false);
            }
            else
            {
                _page.ShowMessage(msg);
            }
        }
        /// <summary>
        /// 增加自定义系数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnDefined_Click(object sender, EventArgs e)
        {
            string strPreset = _page.GetValueByName("preset");
            if (string.IsNullOrEmpty(strPreset))
            {

                _page.ShowMessage("没有获取到预算书ID");
                return;
            }
            string msg = ZHFactorSL.CreateUserDefinedZHFctorByPreset(decimal.Parse(strPreset), (decimal)_mode, _userID);
            if (string.IsNullOrEmpty(msg))
            {
                _page.ShowMessage("成功增加一条自定义系数");
                _page.btnQuery_Click(null, null);
            }
            else
            {
                _page.ShowMessage(msg);
            }

        }

    }

    public class RowCheck
    {
        public RowCheck(int rowIdx, bool ischecked)
        {
            _rowIdx = rowIdx;
            _checked = ischecked;
        }

        private int _rowIdx;

        public int RowIdx
        {
            get { return _rowIdx; }
            set { _rowIdx = value; }
        }

        private bool _checked;

        public bool Checked
        {
            get { return _checked; }
            set { _checked = value; }
        }
    }
}

 

posted @ 2025-09-02 10:20  知行一体2  阅读(3)  评论(0)    收藏  举报