2013年10月28日 星期一

iReport 練習筆記(一)

  現在可以免費匯出pdf的套件有很多,剛好工作上有需要匯出報表,前輩使用的是iReport 特色是在於圖形化介面操作並有多國語系,可以很輕鬆直接的畫出你所想要的畫面並且支援許多匯出的格式和資料庫、表單傳送資料界接。

Step 1:首先下載iReport 本次練習是5.1版,可以選擇免安裝版和安裝版本,順道一提,iReport新舊版本相容性沒有做得很好,往往舊版本做好的報表在新版本會有異常問題發生,建議不需要一直用新的版本和作好版本註記的習慣。

Step 2:開始後可以看到畫面,在左上角  檔案→New...→可以看到內建許多的範本,選擇完你想要的範本之後→命名並且選擇存取好位置→就可以看到如下圖(圖中範本選擇"Blank A4");
可以看到基本上有(Title、Page Header、Column Header、Detail 1、Column Footer、Page Footer)當然還可以再新增相同的。


Step 3:上圖所示右邊有個叫"調色板",其實應該叫做元件板會比較合適,因為裡面的東西就是讓你拉進去中間畫面中的"元件",就很設計出你所想要的畫面。可以看到有Designer、XML、Preview的選項。

  3-1:Designer就是目前畫面所看到的"視覺"畫面。
  3-2:XML其實就是畫面是由這些XML的格式所組成,如果看不懂就不要亂動,否則你的 設計出來的畫面可能會"走樣"。
  3-2:Preview其實就是執行最上方的menu的Preview的設定(預設值是Internal Preview),用來   預覽,當執行preview時,會自動儲存並做編譯動作,如果沒有錯誤的話會產生一個副檔名叫作jasper檔案,當程式要產生pdf或其他格式時,直接使用這個檔案作為輸出格式範本。

Step 4:如果文字要輸出的是繁體中文,各元件屬性設定:
   4-1:Pdf Font name is now deprecated..(略):MHei-Medium
   4-2:Pdf Embedded:勾選
   4-3:Pdf Encoding:UniCNS-UCS2-H (Chinese Traditional)
  接下來,如下圖裡面的元件由上往下講,首先最上面的"列印時間",使用"Text Field" 元件
,要動態的產生值都是使用這個元件,屬性部分:Text Field Expression值填入
"列印時間:"+ new SimpleDateFormat("yyyy/MM/dd").format(new Date())
可以知道是使用Java的物件,所以iReport也可以匯入其他的jar使用其中的物件(menu上的工作→選項→iReport→Classpath)。


2013年5月25日 星期六

Targus Expedition 黑石後背包 15.6吋(TSB229AP-50) 黑 開箱(包)文,用手機拍得很不專業XD

今天下午與鄉民面交(比較便宜,因為之前沒跟到特價潮,之後也不知道要等多久乾脆就先衝了),是"全新品"不是二手品(反正Targus是有限終身保固),,雖然懷疑應該被開過,但應該沒被使用過,就想想算了,不過回到家後,有發現瑕疵,但不影響使用,等到之後壞到有影響使用的部分在一次性的去"維修"就好。
會買這個包包主要是因為工作不想分兩個包去上班和下雨騎車上班(有雨衣袋),只好買一個大包包來解決,雖然有點過大...反正之後只會增加要帶的東西,不會減少~"~。

首先是正面:整個包包幾乎是紅黑配色(紅色只有小小部分XD),金屬拉鍊比較耐用(很多介紹文都說金屬比較耐用,但是我的外套金屬拉鍊還是斷掉拉),基本上這個包包背出去不會很潮反而覺得很宅(其實我不喜歡後背,很容易被後面的人偷拉開都沒感覺~"~),感覺我講的都是負評XD


背面:上方的Targus logo的部分是手提把,如果人多的地方我可能就改用手或抱著,感覺重量很重長期使用手提會容易壞...,圖中左邊還有一個小袋子,可以放一些小東西可以立即方便拿來拿去的東西,例如車鑰匙、筆之類的,再來就是調整背帶的長度。


接下來是左右側:下方有小包包,外面的網袋可以放雨傘或水瓶,中間有各有一個固定扣環(勒緊包包的帶子)。



底部:算是筆電包的防撞重點,此款還有防水和雨衣袋(從包包底下拉鍊拉出來跟一條帶子連在一起,右邊那一個皺皺的袋子...),包起來的照片沒拍,官方有相關圖(不過沒有這麼整齊就是了,涵蓋範圍只有到前方而已,背面背帶並不會被包起來,因為人還是要背阿,包起來不就不能背了XD)


接下來是裡面的第一層:黑黑的東西就是筆電,還有一小層可以放平板的空間,超大容量空間。

還是第一層:為了秀中間還有一個網格,第一層就隔好多0.0


耳機孔:可以從第二層穿出來,有做防水保護


第二層:裡面的上方有孔(耳機孔),從這張圖可以看出來有兩小層,可以放IPod或手機,所以手機孔會設計那邊。
 第二層:可以放筆電的周邊設備,變壓器電源線之類,因為空間跟第一層差不多大。


第三層:很多小格,放名片和筆的好地方(?


正面的三角網袋.....我想不到有啥東西可以放這...


買筆電送的手提袋(左邊),因為過小放筆電(13.3吋)和週邊就滿了,相較之下右邊的包包真的很大XD


背部的瑕疵.....少了透氣材質,所以凹陷下去了(OOXX),如果該鄉民知道有這瑕疵的話....我就知道你面交為啥這麼緊張了......

Reference: 官方介紹-Revolution Expedition 黑石後背包 15.6"

2013年5月6日 星期一

Outlook 無法建立工作檔。檢查暫存環境變數。

在自己的筆電中安裝Ramdisk後, 當然把暫存的路徑設定為Ramdisk路徑底下, 但是outlook卻報出錯誤,解決方式如下:
在開始→執行→輸入"regedit.exe"或"regedit" 開啟登入編輯程式,找到下列位置, 可以找到Cache字串
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Cache
Cache字串的值,會發現與OS的環境變數設定不太一樣 為(ramdisk磁區代號):\TEMP\Temporary Internet Files, 多了"Temporary Internet Files"看來跟IE的暫存空間有關,所以因為該暫存路徑並無此資料夾,才會報出錯誤.
因此有兩種解決方式:
   1.建立該Temporary Internet Files於(ramdisk磁區代號):\TEMP,底下
   2.修改Cache字串的值, 改為與環境變數所設定暫存路徑相同(ramdisk磁區代號):\TEMP

Reference:The Will Will Web

2013年4月13日 星期六

Javascript的StringBuffer

如果page loading過慢, 外加有使用迴圈串字串的話, 可以使用string buffer來改善串字串的速度.
function stringBuffer(){
  this._string=new Array;
  /*如果執行此function帶有參數則為true,
   example: new stringBuffer('test');*/
  if(arguments.length==1)
     this._string.push(arguments[0]);
}
stringBuffer.prototype.append = function(str){
  this._string.push(str);
}
stringBuffer.prototype.toString = function(){
  return this._string.join('');//javascript的array最後放''為結尾轉為字串, ex:C語言為'\0'
}
//使用範例
function init(){
  var strbuff=new stringBuffer('first');//將init first push於陣列
  strbuff.append('second');//將second push於陣列
  strbuff.toString();//最後轉成字串, print:firstsecond
}
另外可以透過Google Page Speed測試網頁是否有變快

在Blogger文章中使用程式區塊


1.如下圖點選範本→編輯HTML



2.在</head>之前貼上下列程式碼
<!-- begin syntax hightlight -->
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/> 
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js" type="text/javascript"></script>
<!-- import programming language type -->
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDelphi.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushGroovy.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushScala.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script type='text/javascript'>
    SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/2.0.287/scripts/clipboard.swf';
    SyntaxHighlighter.all();
    dp.SyntaxHighlighter.HighlightAll('code'); // Add this!!!
</script>
<!-- end syntax hightlight -->

3.Blogger的程式碼要呈現在程式區塊中, 需要將tag <>之類的需要將轉成跳脫字元,
 <(&lt;)和>(&gt;),可以透過HTML Encoder轉換

4.再將轉換後的程式碼貼在tag中<pre class="brush:html">程式碼...</pre>
其中html就是你所要顯示程式語言的類型,從上面得知你所匯入的js檔中有支援那些語言.
example:<pre class="brush:js">, <pre class="brush:java">...etc

Reference:路破皮的部落格ParameciumSyntax Highlighter

Beginning Eclipse(未完..待補)

Eclipse Home
Eclipse Download Page

.安裝plugins: Help->Install New Software...,如下圖, 輸入Name:自訂更新位置名稱, Location:更新網址
example:
              Name: jboss Tools
              Location: http://download.jboss.org/jbosstools/updates/stable/juno
接下來就可以勾選要安裝的plugins, 若是已經下載plugins的jar檔,則直接將jar檔放置在X:\eclipse\plugins\底下,再重啟eclipse即可.