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

          主站蜘蛛池模板: 泽库县| 石嘴山市| 湛江市| 濮阳市| 如东县| 富川| 九龙坡区| 台中市| 保山市| 精河县| 顺义区| 兴安盟| 阿鲁科尔沁旗| 任丘市| 阳信县| 资兴市| 台山市| 京山县| 临安市| 古交市| 麻栗坡县| 中方县| 满洲里市| 江油市| 镶黄旗| 西乡县| 滨海县| 玉屏| 泸溪县| 板桥市| 鹤壁市| 九寨沟县| 汉阴县| 右玉县| 砀山县| 大英县| 西畴县| 新源县| 于田县| 时尚| 馆陶县|