如何对报表的参数控件赋值

应用场景

在用FineReport制作的报表中,在参数界面,往往需要在一个控件中动态的控制其他控件的值,如下图,当username有值时,state自动变为1,否则变为2::

解决方案

可以通过js脚本获取到需要的控件,从而获得控件的值,及给控件赋值。

示例

我们利用FineReport制作一个简单的例子实现上图效果。

1、参数界面

如下图参数界面

username控件类型为下拉框,数据自定义,实际值和显示值都为:jerny,anna,merry。

state控件类型选择单选按钮组,数据也为自定义,实际值和显示值都为:1,2。

2 、JS事件设置

在username的事件编辑中添加编辑后事件,JS代码如下:

1.     var state= this.options.form.getWidgetByName("state");

2.     var username = this.options.form.getWidgetByName("username").getValue();

3.     if (!username){

4.     state.setValue(2);

5.     }else{

6.     state.setValue(1);

7.     }

该段代码是用来对state参数置数,当username为空时,!username为真,此时将state置数为2,否则当username有值时,将state置数为1。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 10:46:39

如何对报表的参数控件赋值的相关文章

根据条件控制参数控件是否显示(可用)

1.应用场景 在用报表工具FineReport设计报表时,使用参数控件时,有时我们希望部分参数控件在没满足条件时不显示,满足条件后再显示,如下图效果:只有前面的下拉框选择了内容之后,后一层下拉框控件才显示出来: 2.解决方案 首先将被控制的控件初始化为不可见或者不可用,然后在条件控件上增加编辑结束事件,通过js脚本设置被控制控件可见或可用,对应的js方法如下: setEnable(boolean):设置是否可用,true为可用,false为不可用: setVisible(boolean):设置是

报表参数控件和报表内容自动居中设置方法

在用报表工具FineReport设计报表时,常遇到以下问题: 1.参数控件(多行控件)的居中问题.2.报表内容的居中和自适应宽度问题,以及报表标题设置了重复标题和冻结如何不影响居中.3.图表居中和自适应宽度问题. 解决方案如下: 1.如果使用的是FineReport的7.1.1版本:将参数控件界面的控件手动来拖,当然设计宽度是可以变的 , 按照上图中的设置方法,就可以整体居中 如果是FineReport7.1 版本:点击参数界面空白处   右边属性界面有个位置选择来居中 2.居中显示不影响表头

用js给html控件赋值

用js给html控件赋值 <script> window.onload=function setValue()//在页面加载时赋值 { document.getElementById("你要赋值的控件ID").value=你需要赋的值; //$("#aa").html('给html赋值'); //document.getElementById('aa').innerText='给html赋值'; //document.getElementById('aa

页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RefTopicList.aspx.cs" Inherits="Project.RefTopicList" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.

根据对象属性给控件赋值

当界面控件比较多的时候,给控件赋值就是一件比较困难的事情了,但是我们可以使用下面这样的办法给控件赋值 /// <summary> /// 绑定帮助类 /// </summary> public class QueryBondHelper { /// <summary> /// 绑定属性到控件 /// </summary> /// <param name="control">control</param> /// &

在线程中使用委托进行窗体控件赋值

若对窗体控件label进行赋值 delegate void SetLabelText(int str);//定义委托,用来完成线程的赋值 /// <summary> /// 为label赋值 /// </summary> /// <param name="str"></param> private void setLabel(int str) { this.lbCountY.Text = Convert.ToInt32( str).ToS

用户控件与页面间相互给各自的控件赋值

用户控件 ->页面 ((Label)this.Parent.Page.FindControl("AAA")).Text = "ABC"; AAA:页面控件ID Label:页面控件类型 页面 -> 用户控件 ((HiddenField)POPUSER_1.FindControl("hidNO")).Value = "VNBB"; POPUSER_1:用户控件ID HiddenField:用户控件中需要处理的控件的类

Jquery给input[type=radio] 控件赋值

1 setobject: function (data, scope, win) { //data jsoon数据, scope,一般为form的id,win 窗口对象,如果在当前window win=null 2 $.each(data, function (id, value) { //循环json数据每个属性 3 var control; //当前控件 4 if (scope) { 5 if(win){ 6 control = $("#" + scope + " #&q

C# 跨线程对控件赋值

第一种:不对跨线程访问检查,最后输出的结果值不能确定public Form1()        {            InitializeComponent();            // 加入这行            Control.CheckForIllegalCrossThreadCalls = false;        } 第二种:private void button2_Click(object sender, EventArgs e)        {