report9d

          2009年3月4日 #

          特大喜訊: 簡表(JOR),國內唯一開源的java報表工具隆重啟航!

          簡表(JOR),是一款開源的報表工具,完全java實現,核心代碼來自于國內一線報表工具品牌杰表.2008 。

          提起開源的報表工具,不能不說說jaspereport,jasperreport作為著名的開源報表工具,在java程序員中一直享有盛名。但由于其設計主要是針對西式的簡單報表,設計起復雜的中式報表來,有點力不從心,所以,在國內的項目中能成功應用的例子并不多。JOR,作為能做復雜報表的開源報表工具,可以彌補jasperreport的不足。

          下載地址:

          http://www.jatools.com/jor

          posted @ 2009-10-15 16:09 report9d 閱讀(350) | 評論 (0)編輯 收藏

          原創olap引擎,純java實現的

          java實現的olap服務器,完全自主產權,純java實現. cube架構,性能優,占用空間小.


           

          分析模型設計器

           


          posted @ 2009-09-25 18:47 report9d 閱讀(379) | 評論 (0)編輯 收藏

          換個角度來曬曬杰表.2008

          閑話少說,曬幾個杰表.2008的ppt截圖,希望有助于大家對報表工具的選擇.













           


          posted @ 2009-09-02 13:02 report9d 閱讀(959) | 評論 (0)編輯 收藏

          jni 學習筆記一(原創)

          jni 類型

          簡單類型 primitive type

          jni有8大基本類型, jboolean,jbyte,jchar,jshort,jint,jfloat,jlong,,jdouble
          8位,16位,32位,64位,各兩個(在win32平臺中,其他平臺不一定)

          java類型與c++數據類型的映射關系是如下:
          jboolean <--> unsigned char
          jchar   <--> unsigned short
          jshort  <--> short
          jfloat  <-->  float
          jdouble <--> double

          這是在 jni.h里定義的,為啥缺了jbyte,jint,jlong的映射呢?
          答案是:sun在實現java虛擬機時,考慮到虛擬機可能運行在不同的操作系統和不同的硬件平臺上,比如,硬件平臺有8位,16位,32位,64位的區別,為了更好地與硬件平臺匹配,發揮最好的性能,將一些類型抽取出來,允許在不同的平臺上有不同的表示(位數),我們姑且稱之為硬件相關類型,jbyte,jint,jlong就屬于硬件相關類型。

          舉列來說,如果你在32位機上,jint表示的是32bit的,而在64位機上,一般是64位即8個字節表示,也就是說,jbyte,jint,jlong在sun的虛擬機上,位數是不定的。

          那位數不一定,怎么編譯?   sun的方法是增加一個機器相關的jni_md.h文件,這里的md是machine dependent(機器相關)的意思。在win32平臺中,這三個類型的定義如下:

          typedef long jint;
          typedef __int64 jlong;
          typedef signed char jbyte;

          由此可見,在win32平臺中,jint是32位的,jlong是64位,jbyte是8位的.

          指針類型  reference type
          reference 準確的譯法,應該是引用,但引用實際上就是指針的一種偽裝,只不過更接近人的思維罷了。如果說,"爸爸的爸爸"是一種指針概念,那"爺爺"就是一種引用概念。

          jni把類型分為兩大類,一個是簡單類型,一個是引用類型,下面是引用類型



          從上圖似乎可以看出,所有引用類型,都從jobject 繼承,jarray又被幾個簡單類型的數組繼承.
          但實際上這個對象層次,是一種假象,跟我們c++與java中看到的對象層次是有區別的,jobject與LPSTR(字符串指針),本質上沒有區別:
          1.  jobject, jclass,jstring,...等,所有對象,是指針,不是對象本身,而指針是不存在繼承關系的,“小狗”的指針,從“動物”的指針繼承,這種說法不成立。
          2. jobject,jclass,jstring 是一種指針,不存在任何操作方法,好比你不能 LPCSTR->strlen(),在jni中,也沒有提供任何  jobject->something() 這種調用。
          3. 對這些對象的操作必須依賴于 env對象的操作方法.

          看一下,jni.h中對 這些引用對象的定義

          class _jobject {};
          class _jclass : public _jobject {};
          class _jstring : public _jobject {};
          ...
          typedef _jobject *jobject;     //_jobject才是類定義,jobject 是否_jobject的指針
          typedef _jclass *jclass;
          typedef _jstring *jstring;
          ...

          在這些下劃線對象中,有什么成員變量,成員函數呢? 答案是你什么也不能得到,比如,你想知道,_jstring對象的字符串長度,你不能 _jstring.length(),得到,而必須env->GetStringLength(jstring) 來得到.

          只給你一個對象的指針,不告訴你里面有什么,這樣做的好處是實現與接口分離。

          jvalue 這個類型,是一個union ,感覺很想com里的variant對象,不過沒有指明類型的field
           typedef union jvalue {
              jboolean z;
              jbyte    b;
              jchar    c;
              jshort   s;
              jint     i;
              jlong    j;
              jfloat   f;
              jdouble  d;
              jobject  l;
          } jvalue;
          我現在還不知道,這個數據類型,什么時候用.

          jfieldID是一個java類成員變量的id,這個id在c++中,實際是一個指向結構的一個指針, jmethodID  是成員方法的id,  不管是成員變量還是方法的id,在java類被加載進虛擬機后,是保持不變的。所以從考慮性能計,可以使用靜態緩存的方法,先取出來,后面會講到

          字符串類型
          這里說的字符串類型,是jni中char * 的格式,不是指 jstring/_jstring,jni也使用 char * 字符串指針,
          好下所示:
              jmethodID GetMethodID (JNIEnv *env, jclass clazz, const char *name, const char *sig);

          但需要注意的是,這里的name,必須是UTF-8的編碼,utf-8對于ascii字符,只占一個字節,最多不超過3個字節

          posted @ 2009-06-22 10:12 report9d 閱讀(2285) | 評論 (1)編輯 收藏

          java報表圖例大全

          通過圖片介紹java報表開發過程中,經常遇到的一些報表類型,統計圖,及可視化的設計等.下面以 杰表.2008 為例介紹之.

           

          一、支持報表類型

          主從報表

          套打報表

          標簽報表

          分欄報表

          計算比去年增長數

          計算比去年同期增長數

          補足空行的表格報表

          多表合并.不同的數據集,做成一個相連的報表.

          公式分組報表.按字段值,進行分類,分級

          排行榜(Top N)報表

          按匯總值大小排序的分組

          多級分組

          計算占比

          顯示排名

          交叉表折頁處理



          層次不等的交叉表

          行列并行分組的交叉表

          多數據集的交叉表

          靜態表格中的公式計算

           

          二、javabean數據源

          使用java數組

          假設項目組其他成員已經編寫了一個Student類,如下圖(a),該類定義四個方法,分別獲取其姓名,年齡,性別,分數。由腳本構造一個包含三個Student對象的數組,如圖(b),要求你做成下圖(c)所示報表。

          嵌套的java對象數據源

          假設你有下圖(a)所示的兩個類Student和Person,你可以使用Student的getMembers()方法,取得該學生的家庭成員列表,每個家庭成員用一個Person對象表示,該對象包含與該學生的關系、姓名、性別等信息。

          ResultSet數據源

          指定sql查詢一個報表


          三、統計圖與條碼

          插入統計圖對象

          設置統計圖背景及立體效果

          設置統計圖輸出格式為Flash

          從統計圖鉆取另一個明細報表

          你可以在統計圖的某一個數據區放置一個超鏈接,使用戶雙擊該區時,跳轉到另一個子報表或網頁,如,有一個柱形圖,顯示各產品的庫存量,點擊某個產品的柱面,就可以打開該產品相關的銷售記錄。

          餅圖

          以時間為橫軸的統計圖

          混合類型統計圖

          雙軸統計圖

          創建甘特圖

          特殊統計圖








          創建條形碼對象

          日常生活中條形碼隨處可見,條形碼用幾何圖形表示數據,并可以被專門設備識別。杰表可支持的13種條形碼,分別是codabar、code39、code128、2of5、postnet、ean-128、ean-13、ean-8、upc-a、upc-e、royal-mail-cbc、pdf417、datamatrix,其中最后兩種是二維條形碼。

          一維碼   二維碼  

          設置圖片背景

          顯示數據庫字段上的圖片


          三、特殊的報表效果

          凍結窗口效果

          點擊表頭排序

          使用超鏈接子報表

          當你瀏覽報表時,可能需要了解更詳細的信息,比如,我們在瀏覽一個訂單列表時,希望了解該訂單中各貨物的銷售數量。這時,你可以在訂單列表中,加一個超鏈接,使用戶在點擊該鏈接后,可以跳轉到顯示該訂單明細的一個報表。
          你可以在主表中,點擊訂單ID,即可瀏覽該訂單出售的所有貨物明細,如下圖所示:

          熱點提示

          復雜匯總

          顏色警告

          斑馬條

          創建頁小計、頁累計報表

           

          四、可視化設計器

          設計參數表單

          杰表.2008配備了一個可視化參數表單設計器,使用這個設計器,你可以不離開報表設計器環境,輕松制作查詢表單。表單設計器有豐富的web控件,檢驗,事件偵聽,css樣式機制,你也可以使用javascript腳本擴展表單功能,同時,也實現了常用的多個下拉框聯動功能。

          可視化的報表設計器

          報表預覽面板

           

          posted @ 2009-03-04 17:58 report9d 閱讀(5875) | 評論 (5)編輯 收藏

          主站蜘蛛池模板: 武平县| 丹棱县| 连平县| 灵台县| 翼城县| 康平县| 富川| 茌平县| 金秀| 广丰县| 中方县| 凉山| 唐山市| 怀化市| 巫溪县| 蒲江县| 醴陵市| 鱼台县| 蓬溪县| 汾西县| 和林格尔县| 广丰县| 翼城县| 阿坝| 天全县| 桂东县| 阿拉善右旗| 平和县| 太仓市| 东乌| 民乐县| 泰和县| 拉萨市| 兴国县| 乌什县| 绍兴市| 伊吾县| 陈巴尔虎旗| 马公市| 浑源县| 南召县|