反饋已提交
網絡繁忙
在根據元件值自動匹配資料文檔中介紹了2種聯動方式,但是都需要在儲存格失焦後才能觸發聯動,且一旦手動修改了聯動公式所在儲存格的資料,後續就無法再聯動了。
那麼如果有以上兩種需求的場景,該如何實現呢?
利用元件的編輯後事件觸發聯動,在事件中根據當前值獲取所需資料,賦給其他儲存格。API說明可以參考:API彙總。
注:不支援行動端。
建立普通報表,設計填報表格,A3 儲存格新增下拉框元件,B3~F3 新增正文框元件,如下圖所示。
選中 A3 儲存格,給下拉框元件綁定資料字典,如下圖所示。
建立資料集ds1,從FRDemoTW取數,sql語句為:【SELECT * FROM 産品】。
選中A3儲存格,給下拉框元件新增一個編輯後事件。
JavaScript 代碼如下:
var id=this.getValue();//獲取當前元件值var cpmc=FR.remoteEvaluate("value('ds1','産品名稱','産品ID','"+id+"')");var dwsl=FR.remoteEvaluate("value('ds1','單位數量','産品ID','"+id+"')");var cbj=FR.remoteEvaluate("value('ds1','成本價','産品ID','"+id+"')");var dj=FR.remoteEvaluate("value('ds1','單價','産品ID','"+id+"')");var kcl=FR.remoteEvaluate("value('ds1','庫存量','産品ID','"+id+"')");//根據産品ID去ds1資料集中獲取其他欄位的值var row=FR.cellStr2ColumnRow(this.options.location).row;//獲取當前行號_g().setCellValue(0,1,row,cpmc);_g().setCellValue(0,2,row,dwsl);_g().setCellValue(0,3,row,cbj);_g().setCellValue(0,4,row,dj);_g().setCellValue(0,5,row,kcl);//給當前行其他儲存格指派
儲存報表,填報預覽效果如下圖所示。
已完成範本可參見:【%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\JS\填報預覽JS實體\JS實現根據元件值自動匹配資料.cpt】。
點選下載範本:JS實現根據元件值自動匹配資料.cpt。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙