Java軟件報表軟件技術博客

          java報表軟件技術匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
           參數控件動態顯示

          在使用FineReport報表軟件時,由于業務的需要,很多情況下需要當滿足某個條件時,某些查詢條件才顯示出來,此時參數控件就需要動態的控制其是否可見。

              //通過控件的visible()invisible()屬性控制其可視、不可視

              var [Widget] = form.getWidgetByName("[ParaName]"); //通過控件名獲取控件

              [Widget].visible(); //設置該控件可見

          [Widget].invisible(); //設置該控件不可見

          實例:

          該實例實現效果:當選擇日報時,右側出現一個日期查詢控件,選擇月報時,則讓用戶選擇年月,例如20083月,選擇年報時,即讓用戶選擇年份。

          1.      模板設計

                 1.1 新建報表

          1.2 添加數據源

          新建一個名為ds1的數據庫查詢,SQL語句:

          SELECT equipment,amount,costs,updatetime,equipmentId

          FROM EquipmentDetail

          where 1=1

          ${if(type='日報'," and format(updatetime,'yyyy-mm-dd') = '" + date + "'","")}

          ${if(type='月報'," and month(updatetime) = "+ month + " and year(updatetime) = " + year,"")}

          ${if(type='年報'," and year(updatetime) = " + year,"")} 

          其中設置參數type的默認值日報,data的默認值是字符串2009-01-13

          1.3 模板設計

                  模板樣式如下

             

          2.4 綁定數據列

          按照下表進行數據列綁定

           

          2.5 參數設計

                  2.5.1 打開參數設計界面,參數界面布局如下

                    

                        2.5.2 控件設置

          l         type控件設置

          右擊type控件,選擇控件設置,打開控件設置面板,控件類型為下拉框,控件名選擇type,自定義數據,如下圖所示

           

          l         date控件設置

          右擊date的控件,選擇控件設置,打開控件設置面板,控件類型為日期,控件名選擇date,自定義數據,如下圖所示

          l         year控件設置

          右擊year的控件,選擇控件設置,打開控件設置面板,控件類型為下拉框,控件名選擇year,使用公式,dyear控件是由type的類型來決定他是否需要顯示的,且我們默認的類型為日報,因此默認設置它為不可見,如下圖所示

          l         month控件設置

          右擊month的控件,選擇控件設置,打開控件設置面板,控件類型為下拉框,控件名選擇month,自定義數據,并設為不可見,如下圖所示

          2.      事件編輯

          右擊type控件,選擇控件設置,打開控件設置面板,添加編輯后事件,如下圖所示:

          http://www.finereport.com/forumimages/e197.png

                

              function fun(){}中添加如下代碼:

              var form = this.options.form;

          var DateWidget = form.getWidgetByName("date");

          var YearWidget = form.getWidgetByName("year");

          var MonthWidget = form.getWidgetByName("month");

          var value = this.getValue();

          if(value == "日報"){

                  DateWidget.visible();

                  YearWidget.invisible();

                  MonthWidget.invisible();

          }else if(value == "月報"){

                  DateWidget.invisible();

                  YearWidget.visible();

                  MonthWidget.visible();

          }else if(value == "年報"){

                  DateWidget.invisible();

                  YearWidget.visible();

                  MonthWidget.invisible();

          }else{

                  DateWidget.invisible();

                  YearWidget.invisible();

                  MonthWidget.invisible();

          }

          說明:此段代碼的作用是選擇日報,那么在其下方出現一個日期選擇框;選擇月報時,即讓用戶選擇年月,例如20083月;年報與月報同理,即讓用戶選擇年份。

          3.      保存并預覽

          默認為日報,只顯示出日期控件,預覽效果如圖

                 

                 當選擇月報時,右邊彈出月份和年份下拉框,預覽效果如圖  

                 當選擇年報時,右邊彈出年份下拉框,預覽效果如圖

          文章轉自:http://ajavareport.cn/archives/450

          主站蜘蛛池模板: 工布江达县| 会昌县| 津南区| 义乌市| 广州市| 高要市| 百色市| 太谷县| 新蔡县| 益阳市| 梧州市| 松潘县| 馆陶县| 柞水县| 石家庄市| 西青区| 顺平县| 西充县| 河源市| 金门县| 苏尼特右旗| 万全县| 自治县| 威信县| 册亨县| 大余县| 波密县| 南陵县| 腾冲县| 泊头市| 泰州市| 蓝山县| 沙河市| 汪清县| 丽江市| 合水县| 黎城县| 青浦区| 漯河市| 罗田县| 孟州市|