2013年1月4日 星期五

CrystalReport - CheckBox

第三篇的CrystalReport , 其實是要講一個特別的應用 , 在Crystal Report中根據參數的值來顯示CheckBox , 然而因為CR本質上還是個報表軟體而已, 所以像是CheckBox這樣的元件是沒有附贈的 , 只好改用特別的方法來完成這功能. 網路上很多人都有介紹過這應用 , 但是大部分都用Basic的語法XD 我因為不會用Basic所以改用Crystal的語法來做!!

在開始功能之前要先來講講一個字形系列 Wingdings , 借用了百度的介紹 , 非常的落落長, 不過簡單來說就是微軟創造出來取代一些小圖片的文字. 剛好符合我們今天的要求 , 利用文字來呈現勾選以及非勾選.

我們今天應用到這兩個小圖示

    ASCII編碼0xA8(168)
    ASCII編碼0xFE(254)

第一個方法是利用建立公式欄位來完成 , 公式欄位簡單來說就是撰寫一個公式, 然後該公式的東西會表現在這個欄位上.
建立CheckBox步驟為

    1. 欄位總管>公式欄位>新增>設定名稱
    2. 接著在中間寫入
    3. if 判斷式 then
              Chr(168)
        else
              Chr(254)
    4. 然後按下完成, 接著從欄位總管的公式欄位裡面找到該欄位並把欄位拉入表格

但是~放入以後會發現怎麼跟想像的不一樣呢! 其實是還沒做完 ,

    5. 接著對該文字物件點右鍵 > 欄位格式設定 > 字型
        把字型改成Wingdings就可以了!


另外一個方法則是改變背景顏色達到填滿的效果, 不是用公式欄位去完成這功能, 而是要先插入一個文字物件再對背景顏色的部分撰寫公式來達到判斷, 這樣就能完成此功能了

    unCheck - 背景填滿白色


    Check - 背景填滿黑色


    1. 頁面上右鍵>插入文字物件>並增加外框
    2. 文字物件上右鍵>文字格式設定>框線>色彩>背景打勾之後再進後面的公式按鈕
    3. if 判斷式 then
              crBlack
        else
              crWhite

     crBlack跟crWhite 都是內建好的顏色 , 這樣一來就不用自己去記憶色碼, 除此之外當然也可以用傳統的RGB 或是CR自身語法的Color, 效果一樣.

1 則留言:

  1. 你好!!!我看了你的文章後測式第一種方式CHR(254),1-127都有圖,但128之後全都是空白的,請問您知道是什麼問題影響的嗎??謝謝!!

    回覆刪除