阅读:7455 回复:20
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲

SheetGridView JS赋值之后合计金额为0,怎么才能正常显示合计金额

楼主#
更多 发布于:2017-11-14 13:59
JS代码



 function GetYjkbje() {
            var bm = $.MvcSheetUI.GetControlValue("bm");//编号
            //清空项目明细表数据
            var len = $("table[data-datafield='ywfyjs_xmmx']").find(".rows").length;
            for (var w = len; w >= 0 ; w--) {
                $("table[data-datafield='ywfyjs_xmmx']").find("a.delete:eq('" + w + "')").click();
            }
            if (bm != "") {
                $.MvcSheet.Action({
                    Action: "GetYjkbje",    // 后台方法名称
                    Datas: [bm],     // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true
                    LoadControlValue: true,  // 是否获取表单数据
                    PostSheetInfo: true,    // 是否获取已经改变的表单数据
                    Async: false,
                    OnActionDone: function (e) {
                        var rJson = eval('(' + e + ')');
                        var dtl = $.MvcSheetUI.GetElement("ywfyjs_xmmx").SheetGridView();
                        for (var i = 0; i < rJson.length; i++) {
                            //$("a[id*='Add_ywfyjs_xmmx']").click();
                            dtl._AddRow();
                            var jsonObj = rJson;
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dw", jsonObj.unitname, i+1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.xspq", jsonObj.xspq, i+1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.xmmc", jsonObj.xmmc, i+1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.khmc", jsonObj.khmc, i+1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dkbl", jsonObj.dkbl, i+1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.ysye", parseFloat(jsonObj.balanceamt), i + 1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.qtywfyye", parseFloat(jsonObj.qtywfyye), i + 1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dlywfyye", parseFloat(jsonObj.qzcj), i + 1);
                            $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.yjkbje", parseFloat(jsonObj.yjkbje), i + 1);
                        }


                    },
                    PostSheetInfo: true         // 是否提交表单数据,如果 false,那么不返回表单的数据
                });
            } else {
                alert("销售人员编号不能为空!");
            }
        }

合计显示为0

图片:STK截图20171114135539.png






@岩竹玉雨@武汉技术支持团队@开始懂了@t156965365@越王勾践

最新喜欢:

实名用户_5a1e4e49实名用户_5...
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
1楼#
发布于:2017-11-14 14:07
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
2楼#
发布于:2017-11-14 14:40
 
大神指点一下,是什么问题????

@H3BPM @TAn @武汉技术支持团队 @岩竹玉雨 @越王勾践 @开始懂了
TAn
TAn
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
3楼#
发布于:2017-11-14 17:15
页面也贴出来啊
手输能不能汇总,还是只有SetControlValue的时候不汇总?
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
4楼#
发布于:2017-11-15 08:29
TAn:页面也贴出来啊
手输能不能汇总,还是只有SetControlValue的时候不汇总?
回到原帖
手工输入有汇总的,只有SetControlValue时候不能汇总,提交之后到下一个节点了汇总内容显示正常。
TAn
TAn
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
5楼#
发布于:2017-11-15 10:09
测试了下你那段js代码,在有多行且原汇总为0的情况下,有一定几率出现汇总为0的情况。
看了下变化,先是有汇总值,然后又被清零,可能跟赋值先后有关,没时间去仔细调试。
建议你修改一下写法,下面两种二选一。
1 如果纯前台操作,就把Action的方法改成Ajax的方式,全部在前台搞定
2 既然你已经调用后台,那就不要用SetControlValue再前台赋值,直接在后台方法里面操作InstanceData。
 PostSheetInfo: true,    // 是否获取已经改变的表单数据
 这个参数会获取你在后台修改过的明细。
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
6楼#
发布于:2017-11-15 14:40
TAn:测试了下你那段js代码,在有多行且原汇总为0的情况下,有一定几率出现汇总为0的情况。
看了下变化,先是有汇总值,然后又被清零,可能跟赋值先后有关,没时间去仔细调试。
建议你修改一下写法,下面两种二选一。
1 如果纯前台操作,就把Action...
回到原帖
按钮 <button type="button" onclick="SetValue();">赋值</button>
前台 JS
function SetValue(){  
          $.MvcSheet.Action(
                {
                    Action: "SetValue",   // 后台方法名称
                    Datas: [""],    // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true
                    LoadControlValue: true, // 是否获取表单数据
                    PostSheetInfo: true,    // 是否获取已经改变的表单数据
                    OnActionDone: function (e) {
                        // 执行完成后回调事件
                        alert("成功!");
                    }
                });
}



后台代码

        public string SetValue(){
            BizObject[] bizObjects = new BizObject[2];
            BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("a1").ChildSchema;
                bizObjects[0] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
                bizObjects[0]["b1"] = "1";
                bizObjects[0]["b2"] = "1";
                bizObjects[1] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
                bizObjects[1]["b1"] = "2";
                bizObjects[1]["b2"] = "2";
            this.ActionContext.InstanceData["a1"].Value = bizObjects;
            this.ActionContext.InstanceData.Submit();
            return "{\"IsSuccess\":true}";
    }


不写在加载界面,为什么获取不到数据;
TAn
TAn
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
7楼#
发布于:2017-11-15 16:33
徘徊的魚:按钮 <button type="button" onclick="SetValue();">赋值</button>
前台 JS
function SetValue(){  
          $.MvcSheet.Action(...
回到原帖
不要用button,点了会回发,导致多次刷新。
用div模拟或者用a标签
<div class="btn" onclick="SetValue();">赋值</div>
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
8楼#
发布于:2017-11-16 08:50
TAn:不要用button,点了会回发,导致多次刷新。
用div模拟或者用a标签
<div class="btn" onclick="SetValue();">赋值</div>
回到原帖
按你说的修改了,前台界面还是没有获取到数据啊。。
徘徊的魚
8

帖子

49

跟帖

1279

积分

高级榴莲
高级榴莲
9楼#
发布于:2017-11-16 08:52
TAn:不要用button,点了会回发,导致多次刷新。
用div模拟或者用a标签
<div class="btn" onclick="SetValue();">赋值</div>
回到原帖
按你说的修改了,前台界面还是没有获取到数据啊。。





前台页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="S0621.aspx.cs" Inherits="OThinker.H3.Portal.Sheets.DefaultEngine.S0621" EnableEventValidation="false" MasterPageFile="~/MvcSheet.master" %>
<%@ OutputCache Duration="999999" VaryByParam="T" VaryByCustom="browser" %>
<asp:Content ID="head" ContentPlaceHolderID="headContent" runat="Server">
<script type="text/javascript">
function SetValue(){  
          $.MvcSheet.Action(
                {
                    Action: "SetValue",   // 后台方法名称
                    Datas: [""],    // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true
                    LoadControlValue: true, // 是否获取表单数据
                    PostSheetInfo: true,    // 是否获取已经改变的表单数据
                    OnActionDone: function (e) {
                    alert(e);
                        // 执行完成后回调事件
alert("成功!");
                    }
                });
}
</script>
</asp:Content>
<asp:Content ID="menu" ContentPlaceHolderID="cphMenu" runat="Server">
</asp:Content>
<asp:Content ID="master" ContentPlaceHolderID="masterContent" runat="Server">
<div style="text-align: center;" class="DragContainer">
<label id="lblTitle" class="panel-title">2</label>
</div>
<div class="panel-body sheetContainer">
<div class="nav-icon fa fa-chevron-right bannerTitle">
<label id="divBasicInfo" data-en_us="Basic information">基本信息</label>
</div>
<div class="divContent">
<div class="row">
<div id="divFullNameTitle" class="col-md-2">
<label id="lblFullNameTitle" data-type="SheetLabel" data-datafield="Originator.UserName" data-en_us="Originator" data-bindtype="OnlyVisiable" style="">发起人</label>
</div>
<div id="divFullName" class="col-md-4">
<label id="lblFullName" data-type="SheetLabel" data-datafield="Originator.UserName" data-bindtype="OnlyData" style=""></label>
</div>
<div id="divOriginateDateTitle" class="col-md-2">
<label id="lblOriginateDateTitle" data-type="SheetLabel" data-datafield="OriginateDate" data-en_us="Originate Date" data-bindtype="OnlyVisiable" style="">发起时间</label>
</div>
<div id="divOriginateDate" class="col-md-4">
<label id="lblOriginateDate" data-type="SheetLabel" data-datafield="OriginateDate" data-bindtype="OnlyData" style=""></label>
</div>
</div>
<div class="row">
<div id="divOriginateOUNameTitle" class="col-md-2">
<label id="lblOriginateOUNameTitle" data-type="SheetLabel" data-datafield="Originator.OUName" data-en_us="Originate OUName" data-bindtype="OnlyVisiable" style="">所属组织</label>
</div>
<div id="divOriginateOUName" class="col-md-4">
<label id="lblOriginateOUName" data-type="SheetLabel" data-datafield="Originator.OUName" data-bindtype="OnlyData" style=""></label>
</div>
<div id="divSequenceNoTitle" class="col-md-2">
<label id="lblSequenceNoTitle" data-type="SheetLabel" data-datafield="SequenceNo" data-en_us="SequenceNo" data-bindtype="OnlyVisiable" style="">流水号</label>
</div>
<div id="divSequenceNo" class="col-md-4">
<label id="lblSequenceNo" data-type="SheetLabel" data-datafield="SequenceNo" data-bindtype="OnlyData" style=""></label>
</div>
</div>
</div>
<div class="nav-icon fa  fa-chevron-right bannerTitle">
<label id="divSheetInfo" data-en_us="Sheet information">表单信息</label>
</div>
<div id="ctl00_BodyContent_divSheet" class="divContent">
<div class="row">
<div id="title1" class="col-md-2">
<span id="Label11" data-type="SheetLabel" data-datafield="a2" style="">a2</span>
</div>
<div id="control1" class="col-md-4">
<input id="Control11" type="text" data-datafield="a2" data-type="SheetTextBox" class="" style="">
</div>
<div id="space2" class="col-md-2">
<a class="btn" onclick="SetValue();">赋值</a>
</div>
<div id="spaceControl2" class="col-md-4">
</div>
</div>
<div class="row tableContent">
<div id="title3" class="col-md-2">
<span id="Label12" data-type="SheetLabel" data-datafield="a1" style="">a1</span>
</div>
<div id="control3" class="col-md-10">
<table id="Control12" data-datafield="a1" data-type="SheetGridView" class="SheetGridView">
<tbody>

<tr class="header">
<td id="Control12_SerialNo" class="rowSerialNo">
序号 </td>
<td id="Control12_Header3" data-datafield="a1.b1">
<label id="Control12_Label3" data-datafield="a1.b1" data-type="SheetLabel" style="">b1</label>
</td>
<td id="Control12_Header4" data-datafield="a1.b2" class="">
<label id="Control12_Label4" data-datafield="a1.b2" data-type="SheetLabel" style="">b2</label>
</td>
<td class="rowOption">
删除 </td>
</tr>
<tr class="template">
<td id="Control12_Option" class="rowOption">
</td>
<td data-datafield="a1.b1">
<input id="Control12_ctl3" type="text" data-datafield="a1.b1" data-type="SheetTextBox" style="">
</td>
<td data-datafield="a1.b2">
<input id="Control12_ctl4" type="text" data-datafield="a1.b2" data-type="SheetTextBox" style="" class="">
</td>
<td class="rowOption">
<a class="delete">
<div class="fa fa-minus">
</div>
</a>
<a class="insert">
<div class="fa fa-arrow-down">
</div>
</a>
</td>
</tr>
<tr class="footer">
<td class="rowOption">
</td>
<td data-datafield="a1.b1">
<label id="Control12_stat3" data-datafield="a1.b1" data-type="SheetCountLabel" style="" class=""></label>
</td>
<td data-datafield="a1.b2">
<label id="Control12_stat4" data-datafield="a1.b2" data-type="SheetCountLabel" style="" class=""></label>
</td>
<td class="rowOption">
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</asp:Content>













后台代码




using OThinker.Data.Database;
using OThinker.H3.DataModel;
using OThinker.H3.WorkSheet;
using System;
using System.Data;
using System.Text;
using System.Web.UI.WebControls;

namespace OThinker.H3.Portal.Sheets.DefaultEngine
{
    public partial class S0621 : OThinker.H3.WorkSheet.MvcPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          
        }
        public string SetValue()
{
            BizObject[] bizObjects = new BizObject[2];
            BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("a1").ChildSchema;
                bizObjects[0] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
                bizObjects[0]["b1"] = "1";
                bizObjects[0]["b2"] = "1";
                bizObjects[1] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID);
                bizObjects[1]["b1"] = "2";
                bizObjects[1]["b2"] = "2";
            this.ActionContext.InstanceData["a1"].Value = bizObjects;
            this.ActionContext.InstanceData.Submit();
            return "{\"IsSuccess\":true}";
    
    
    }
}
}
上一页
1 2 3  »|
游客

返回顶部