【问题标题】:How to create a radio button parameters in the Birt reporting tool如何在 Birt 报告工具中创建单选按钮参数
【发布时间】:2014-07-02 06:32:42
【问题描述】:

我有两个单选按钮作为升序和降序。当我单击升序单选按钮时,希望从数据库中按升序显示名称。如何将参数与数据库连接以获取数据。

我已经附上了下面的代码,

员工排序:

<input type="radio" name="emp_sorting" value="emp_ascending" id="emp_ascending" 
       onkeyup="changeName();">
emp_ascending 
<input type="radio" name="emp_sorting" value="emp_descending" id="emp_descending"
       onkeyup="changeName();">
emp_descending
<a id="emp_name" href="">View</a><br><br> 

<script>
function changeName() {
    var input_value = document.getElementById("emp_ascending").value;
    var input_value1 = document.getElementById("emp_descending").value;
    var context_path = "<%=request.getContextPath()%>";
    var create_href = context_path + "/frameset__report=report_sort.rptdesign&e_name=" 
                    + input_value +" &emp_‌​name=" + input_value1 
                    + "&__parameterpage=false" ;
    emp_name.href= create_href;
}
</script> 

【问题讨论】:

  • 你能给我们一些代码吗?
  • 我附上了下面的代码,Employee-Sorting:: emp_ascending emp_descending 查看

标签: birt


【解决方案1】:

您需要一个名为“sort_order”的报告参数,将排序顺序与员工姓名分开处理。在您的代码中,您实际上插入了单选按钮值以报告名为“e_name”和“emp_name”的参数,这对您和我们了解排序顺序的情况都不是很有帮助。

然后,在数据集的 beforeOpen 方法中,您可以将默认排序顺序替换为如下表达式:

this.queryText=this.queryText.replace(" ASC"," "+params["sort_order"].value);

为了防止任何 SQLIA 漏洞,您应该首先检查 params["sort_order"].value 是否等于 "ASC" 或 "DESC:

 var sort=params["sort_order"].value;
 if (sort=="ASC" || sort=="DESC"){
    this.queryText=this.queryText.replace(" ASC"," "+sort);
 }

虽然另一种方法比单选按钮容易得多,但无需客户端 JavaScript 的单个字节:在表示 ASC 和 DESC 方向的图像上定义本机 birt 钻取操作。查看一个实时示例with this report,列标题中有一个图像,允许对表格进行动态排序。此图像未在 PDF 导出中显示(birt“可见性”属性)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多