U9控制DataGrid调整数量自动变动金额功能

7 篇文章 0 订阅

 public void AfterCreateChildControls()
        {
            //开启个性化
            UFIDA.U9.UI.PDHelper.PersonalizationHelper.SetPersonalizationEnable((BaseWebForm)this, true);

            AllotQtyChangedCallBack();
        }

注册事件

    ///<summary>
        /// 注册表格单元格内容改变的回调事件
        ///</summary>
        private void AllotQtyChangedCallBack()
        {
            AssociationControl gridCellDataChangedASC = new AssociationControl();       //基本固定代码
            gridCellDataChangedASC.SourceServerControl = this.DataGrid5;
            gridCellDataChangedASC.SourceControl.EventName = "OnCellDataChanged";

            //CallBack处理方案
            ((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("currentQty");
            //((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("Qty");
            //((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("Price");
            //((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("TaxRate");

            ClientCallBackFrm gridCellDataChangedCBF = new ClientCallBackFrm();
            gridCellDataChangedCBF.ParameterControls.Add(this.DataGrid5);

            gridCellDataChangedCBF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(AllotQtyChange);
            gridCellDataChangedCBF.Add(gridCellDataChangedASC);
            this.Controls.Add(gridCellDataChangedCBF);

        }

       ///<summary>
        /// 表格的CallBack处理方式,返回结果
        ///</summary>
        ///<param name="args"></param>
        ///<returns></returns>
        private object AllotQtyChange(CustomerActionEventArgs args)
        {
            this.Model.MOProductionTask.ClearErrorMessage();
            UFWebClientGridAdapter grid = new UFWebClientGridAdapter(this.DataGrid5);

            //取表格数据(当前行)
            ArrayList list = (ArrayList)args.ArgsHash[UFWebClientGridAdapter.ALL_GRIDDATA_SelectedRows]; //基本固定代码
            int curIndex = int.Parse(list[0].ToString());
            Hashtable table = (Hashtable)((ArrayList)args.ArgsHash[this.DataGrid5.ClientID])[curIndex];


            decimal Qty = decimal.Parse(table["Qty"].ToString());
            decimal TotalCompleteQty = decimal.Parse(table["TotalCompleteQty"].ToString());
            decimal TotalOutQty = decimal.Parse(table["TotalOutQty"].ToString());
            decimal ExceedableQty = decimal.Parse(table["ExceedableQty"].ToString());
            decimal currentQty = decimal.Parse(table["currentQty"].ToString());
            if (Qty - TotalCompleteQty - TotalOutQty + ExceedableQty < currentQty)
            {
                base.ErrorControl.AddUFErrorInfo(base.TopLevelContainer, $"本次生成数量不能超过!");
                decimal Money = Qty - TotalCompleteQty - TotalOutQty;
                //金额
                grid.CellValue.Add(new object[] { curIndex, "currentQty", new string[] { Money.ToString(), Money.ToString(), Money.ToString() } });
                args.ArgsResult.Add(grid.ClientInstanceWithValue);
            }

            return args;
        }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值