1

如何从具有子查询的多个相关组合框中有条件地选择参数并将其发送到报告?

我有一个使用存储过程的 BIRT 报告,该过程需要参数 @category_id 输入应该来自三个组合框之一:

  1. 与类别级别 1 的组合
  2. 与类别级别 2 的组合
  3. 与类别级别 3 的组合

当您在组合 1 中选择某些内容时,组合 2 会填充执行子查询,该子查询取决于组合 1 中的值。

当您在组合 2 中选择某些内容时,组合 3 会填充执行子查询,该子查询取决于组合 2 中的值。

如果组合 3 具有选定的值,则将其发送给参数 @category_id

如果组合 3 没有选定值并且组合 2 具有选定值,则将其发送给参数 @category_id

如果未选择组合 2 和 3,则为参数 @category_id 发送组合 1

知道怎么做吗?

4

2 回答 2

1

这是 ruff 代码,希望对您有所帮助:

$("#combobox1").change(function(){
var selval1=$(this).val();
var dataString="combo1data="+selval1;// get data from ajax related to this value from ajax
$.ajax({
    url: "somepage",
    type: "POST",
    data: dataString,
    success: function(cbdata2){   
        fillcombo2(cbdata2);
    }
});
)};

$("#combobox2").change(function(){
var selval2=$(this).val();
var dataString="combo2data="+selval2;// get data from ajax related to this value from ajax
$.ajax({
    url: "somepage",
    type: "POST",
    data: dataString,
    success: function(cbdata3){   
        fillcombo3(cbdata3);
    }
});
)};

$("#submitbutton).click(function(){
var val3=$("#combobox3 option:selected").val();
if(val3=="")
{
    var val2=$("#combobox2 option:selected").val();
    if(val2=="")
    {
        var val1=$("#combobox2 option:selected").val();
        if(val2=="")
        {
            var val1=$("#combobox1 option:selected").val();
        }
        else
        {
            //use val1
        }
    }
    else
    {
        //use val2
    }
}
else
{
    //use val3
}
});
于 2014-11-21T07:50:27.637 回答
1

您将要使用级联参数。

将默认值设置为 %(通配符

在您的 SQL 查询中使用 like 语句,如果 2 和 3 仍然存在 % 那么它会搜索所有内容。如果它们被填充,则搜索特定值。

级联

于 2014-11-21T16:56:36.923 回答