JS實(shí)現(xiàn)點(diǎn)擊參數(shù)面板按鈕顯示或隱藏?cái)?shù)據(jù)
當(dāng)報(bào)表中列出數(shù)據(jù)太多時(shí),想通過(guò)顯示按鈕隱藏明細(xì)數(shù)據(jù)只顯示統(tǒng)計(jì)數(shù)據(jù)。如下圖示例,那么該如何實(shí)現(xiàn)呢?本文以FineReport為例,來(lái)講述JS如何實(shí)現(xiàn)點(diǎn)擊參數(shù)面板按鈕顯示或隱藏?cái)?shù)據(jù)。
打開(kāi)報(bào)表
在參數(shù)面板添加一個(gè)標(biāo)簽控件,控件名為lable,設(shè)置標(biāo)簽控件不可見(jiàn),控件值為“顯示”。
在參數(shù)面板添加一個(gè)按鈕控件,控件名為button,控件值為“只顯示合計(jì)數(shù)據(jù)”,并添加點(diǎn)擊事件。
編輯點(diǎn)擊事件,添加下面的JavaScript代碼:
/*獲取隱藏的標(biāo)簽控件的值*/
var label= this.options.form.getWidgetByName("label").getValue();
/*判斷標(biāo)簽控件的值*/
if(label=='顯示')
{
/*當(dāng)標(biāo)簽控件的值為顯示時(shí),則改為隱藏,并修改按鈕名稱為顯示所有數(shù)據(jù)*/
this.options.form.getWidgetByName("label").setValue("隱藏");
this.options.form.getWidgetByName("button").setValue("顯示所有數(shù)據(jù)");
}
else
{
/*當(dāng)標(biāo)簽控件的值不為顯示時(shí),則改為顯示,并修改按鈕名稱為只顯示合計(jì)數(shù)據(jù)*/
this.options.form.getWidgetByName("label").setValue("顯示");
this.options.form.getWidgetByName("button").setValue("只顯示合計(jì)數(shù)據(jù)");
}
/*執(zhí)行查詢*/
_g().parameterCommit();
var label= this.options.form.getWidgetByName("label").getValue();
/*判斷標(biāo)簽控件的值*/
if(label=='顯示')
{
/*當(dāng)標(biāo)簽控件的值為顯示時(shí),則改為隱藏,并修改按鈕名稱為顯示所有數(shù)據(jù)*/
this.options.form.getWidgetByName("label").setValue("隱藏");
this.options.form.getWidgetByName("button").setValue("顯示所有數(shù)據(jù)");
}
else
{
/*當(dāng)標(biāo)簽控件的值不為顯示時(shí),則改為顯示,并修改按鈕名稱為只顯示合計(jì)數(shù)據(jù)*/
this.options.form.getWidgetByName("label").setValue("顯示");
this.options.form.getWidgetByName("button").setValue("只顯示合計(jì)數(shù)據(jù)");
}
/*執(zhí)行查詢*/
_g().parameterCommit();
點(diǎn)擊參數(shù)面板空白處,將“點(diǎn)擊查詢前不顯示報(bào)表內(nèi)容”屬性的勾去掉。
回到報(bào)表設(shè)計(jì)界面,右鍵B3單元格,添加條件屬性,設(shè)置行高為0毫米,添加公式條件為$label = '隱藏'。
保存模板,點(diǎn)擊分頁(yè)預(yù)覽即可看到上圖的效果。
posted on 2017-03-08 10:36 喝水居然長(zhǎng)肉 閱讀(215) 評(píng)論(0) 編輯 收藏