birt引數處理瑣碎記錄

2021-08-30 18:25:59 字數 2958 閱讀 5006

------在資料集的beforeopen方法中替換:

var sql = "select * from tablename where 1=1 and ...";

this.querytext = sql;

++++++ 說明this.querytext 是指整個sql語句

------ birt的修改記錄

所屬專案org.eclipse.birt.report.viewer

修改類 所屬包及類名org.eclipse.birt.report.service.reportengineservice

修改目的:將session中的sql放在上下文中

修改方法:

所屬專案org.eclipse.birt.report.engine

修改類 所屬包及類名org.eclipse.birt.report.engine.adapter.modeldteapiadapter

修改目的:將上下文中的sql取出依據dataset的名字替換設計檔案中的slq

修改方法:

iodadatasetdesign newodadataset( odadatasethandle modeldataset,

executioncontext context ) throws birtexception

} if (needpropertybinding() && querytextbinding != null

&& querytextbinding.length() > 0) else

dtedataset.setquerytext(querytextbinding);}}

------ 開發人員作帶列印的查詢時注意事項

在有列印的介面時要在查詢的action方法中新增如下的**:

//移除session中已經存在的資料集的map

if (request.getsession().getattribute("hql") != null)

//將執行的hql轉換為sql語句employer是hql中的類名。ab01是資料庫中要查詢的表名

hql=hql.replace("employer","ab01" );

hql=hql.replace("as","" );

//構造資料集的map dataset1是資料集的名字, hql是對應的sql語句

hashmap map = new hashmap();

map.put("dataset1", hql);

//將資料集的map放與session中

request.getsession().setattribute("hql", map);

目的是將查詢的sql儲存在session中以便在列印時使用該sql。

另外在資料庫sysprintconfig表中插入如下資料

datasetname =dataset1 ;//對應map中的dataset1

sql = select ab01.aab001, ab01.aaa021,ab01.aab003, ab01.aab004,ab01.aab019, ab01.aae004,ab01.aae005,ab01.aab020,ab01.aae119,ab01.aab021 from ab01 where 1=1

//對應map中的hql

descript=基本資訊管理 -> 單位資訊管理 -> 單位查詢: 單位查詢

//對應頁面的功能資訊

//對應列印action的包類及方法

fillepathname=reports\basicinfo\employerlist.rptdesign

//對應報表設計檔案的相對路徑及檔名。該字段在報表設計完畢以後在修改。開始時為空!

--------

實施人員開發報表注意事項

實施人員在做報表列印時資料集的名字和對應的sql語句從資料庫的sysprintconfig表中取得

比如做如下的列印

select * from sysprintconfig where descript like '基本資訊管理 -> 單位資訊管理 -> 單位查詢: 單位查詢'

這裡得到

datasetname =dataset1 ;//對應map中的dataset1

sql = select ab01.aab001, ab01.aaa021,ab01.aab003, ab01.aab004,ab01.aab019, ab01.aae004,ab01.aae005,ab01.aab020,ab01.aae119,ab01.aab021 from ab01 where 1=1

descript=基本資訊管理 -> 單位資訊管理 -> 單位查詢: 單位查詢

將你設計的報表的資料集用dataset1作為報表設計中的data set的名字

select ab01.aab001, ab01.aaa021,ab01.aab003, ab01.aab004,ab01.aab019, ab01.aae004,ab01.aae005,ab01.aab020,ab01.aae119,ab01.aab021 from ab01 where 1=1

作為你的報表設計中的sql

其他的按照原先的做就可以了,開發完畢以後和開發人員聯絡把報表資訊新增到系統中

++++++++ 修改的結果是 可以把整個sql 或者是引數放在session

birt動態引數的處理

本例實現根據使用者選擇不同的查詢條件查詢顯示報表。按我的報表業務來演示。我的報表要查詢條件是起始時間,結束時間,站點,有票,沒票,55以上,55以下 分別設定報表引數對應這幾個查詢條件。start,end,station,ticketed,unticketed,up55t,below55t 其中有票...

CSS基礎 瑣碎記錄

關於屬性 vertical align 今天出現乙個問題,table裡面的乙個單元格有乙個text型別的input,然後有一張.我搞了很久,不能垂直居中,我把input去掉,發現自適應又居中了 後來發現vertical align屬性.css基礎 以下內容來自w3c官方解釋 vertical ali...

CSS基礎 瑣碎記錄

tips 大部分都摘自w3c 一,關於選擇器 後代選擇器,什麼是後代選擇器,h1標籤所有子孫元素為em的都會起效果 h1 em子元素選擇器,什麼是子元素選擇器 h1標籤下面的子元素為em的元素.請注意只是兒子元素,孫子元素以及更下層的 h1 em 號兩邊可以有空格符相鄰兄弟選擇器,h1標籤之後的同級...