隨筆 - 225  文章 - 98  trackbacks - 0
          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          隨筆分類

          相冊(cè)

          報(bào)表工具廠商們

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

           

          1. 問題描述

          客戶的用戶群體很大,涵蓋范圍很廣,為了數(shù)據(jù)安全,所以將不同區(qū)域的數(shù)據(jù)存在不同的數(shù)據(jù)庫中。同時(shí)考慮到開發(fā)工作和后期的維護(hù)等,將這些數(shù)據(jù)的業(yè)務(wù)在同一張表里顯示(這些業(yè)務(wù)關(guān)系一樣,在數(shù)據(jù)庫中表的字段都一樣)。所以在數(shù)據(jù)錄入時(shí),需要根據(jù)用戶所在的區(qū)域,將用戶錄入的數(shù)據(jù)存入不同的數(shù)據(jù)庫表中。

          2. 解決思路

          在模板中建幾個(gè)隱藏的按鈕控件,分別設(shè)置提交事件,觸發(fā)提交入庫,再在工具欄上或者模板中設(shè)置自定義按鈕,編寫js,根據(jù)不同的參數(shù)觸發(fā)不同的按鈕,實(shí)現(xiàn)根據(jù)不同的參數(shù)提交到對(duì)應(yīng)的數(shù)據(jù)庫功能。

          3. 示例

          我們的FRDemo數(shù)據(jù)庫中有2張表S訂單和訂單,這兩張表的數(shù)據(jù)結(jié)構(gòu)一模一樣,選擇華東,華中,華北地區(qū)的數(shù)據(jù)時(shí),數(shù)據(jù)填入數(shù)據(jù)庫S訂單,選擇其他地區(qū)時(shí),數(shù)據(jù)填入數(shù)據(jù)庫訂單

          3.1 數(shù)據(jù)準(zhǔn)備

          新建模板,新建數(shù)據(jù)集ds1:SELECT * FROM [訂單] where 貨主地區(qū)='${地區(qū)}'

          3.2 參數(shù)界面設(shè)置

          切換到參數(shù)設(shè)計(jì)界面,將地區(qū)參數(shù)的控件添加到面板中,數(shù)據(jù)字典設(shè)置如下:


          3.3 報(bào)表主體設(shè)計(jì)

          這里為了簡(jiǎn)潔方便,只添加了幾個(gè)控件,并沒有將所有數(shù)據(jù)列都添加一個(gè)控件,如下圖:


          其中第5行中為填報(bào)控件,控件設(shè)置如下表:

          控件類型

          數(shù)據(jù)字典

          B5

          文本框

          C5

          下拉框

          來源于客戶表,實(shí)際值客戶ID,顯示值公司名稱

          D5

          下拉框

          來源于雇員表,實(shí)際值雇員ID,顯示值姓名

          E5

          文本框

          wu

          F5

          下拉框

          公式:sql("FRDemo", "select 貨主城市 from 訂單 where 貨主地區(qū)='" + $地區(qū) + "'", 1)

          3.4 按鈕設(shè)置

          如上圖,第2行中的三個(gè)按鈕分別為進(jìn)行提交入庫操作的2個(gè)隱藏按鈕和一個(gè)進(jìn)行點(diǎn)擊操作的可見按鈕。

          · E2單元格

          控件名為“s”,該控件控制S訂單表的填報(bào),添加一個(gè)點(diǎn)擊事件,事件類型選擇提交入庫,如下圖:


          · 
          F2單元格

          控件名為“S1”,該控件控制訂單表的填報(bào),添加一個(gè)點(diǎn)擊事件,事件類型選擇提交入庫,如下圖:


          將E2單元格和F2單元格中的按鈕都設(shè)置為不可見。

          · H2單元格

          給該按鈕添加一個(gè)點(diǎn)擊事件,如下圖:


          完整js如下:

          1. var s=contentPane.getWidgetByName("s");  

          2. var s1=contentPane.getWidgetByName("s1");  

          3. if(area=='華東'||area=='華北'||area=='華中')  

          4. s.fireEvent("click");  

          5. else  

          6. s1.fireEvent("click");  

          該提交按鈕也可自定在工具欄中,設(shè)置過程一樣。

          3.5 效果查看

          點(diǎn)擊填報(bào)預(yù)覽,參數(shù)選擇華東,效果如下圖:參數(shù)選擇西南,效果如下圖:


          注:此例中由于數(shù)據(jù)的限制,只用了2張數(shù)據(jù)表進(jìn)行填報(bào),如果有多張表,則需要設(shè)置多個(gè)隱藏按鈕。



          了解Java報(bào)表工具就從這里開始
          主站蜘蛛池模板: 林芝县| 获嘉县| 荥经县| 武宁县| 临朐县| 镇原县| 偃师市| 类乌齐县| 盐山县| 古浪县| 阿巴嘎旗| 阳新县| 和硕县| 河曲县| 嘉定区| 颍上县| 商城县| 阳山县| 桐梓县| 五指山市| 合江县| 平远县| 资溪县| 建德市| 东乌珠穆沁旗| 丹江口市| 黄浦区| 清涧县| 麻城市| 四子王旗| 灵山县| 武隆县| 台州市| 南充市| 昌吉市| 蓬莱市| 绿春县| 彭阳县| 临海市| 潍坊市| 东阿县|