問題:我有一個從資料庫讀取的資料表,資料如下


參考你網站內其他文章可以更改XY Graph的Polt的名稱,但是X軸的座標好像沒有屬性可以更改為自定名稱,我想要把XY Graph的X軸改為資料表的中文欄位名稱,站長是否有什麼好方法可以處理?

20131122-01  

 


關於這個問題從之前收集的所有資料來看是無解,不過有變通的方法,就是讓程式用畫的畫上X軸的中文座標

 

 


以下分解說明操作步驟:

 


1.先在面板上放一個XY Graph元件,將顯示範圍的底下往上調整縮小,底下空出來的空間大約略大於欄位名稱直排的長度


放上一個Picture元件覆蓋在空出來的空間上,Picture元件大小調整到寬度比XY Graph元件顯示範圍略大,高度略大於欄位名稱直排的長度,左上角對齊XY Graph元件顯示範圍左邊再過去約半個中文字寬


※Picture元件的大小和位置都是大約位置,可以分別調用XY Graph和Picture的屬性來計算達到很準確的定位。不過這不是這篇文章的重點,且會增加程式的複雜度。範例程式只有列出改變Picture寬度屬性,讓所有欄位名稱能顯示

20131122-02  

 


2.塗色工具把前景和背景色都設定為透明

20131122-03  

 


3.把Picture元件含邊框都塗成透明

20131122-04  

 


4.顯示資料的程式用迴圈就可以完成

20131122-05  

 


5.改變XY Graph元件Plot名稱用網站內另一篇文章的方法,以迴圈調用XY Graph屬性來完成

20131122-06  

 


6.把欄位名稱寫入Picture比較複雜,使用Draw Text at Point.vi元件,底下text orientation接腳控制寫入文字的狀態,有4種狀態


a.None:不做任何改變,橫向的欄位名稱還是以橫向顯示

20131122-07  


b.Stacked:文字改成縱向排列

20131122-08  


c.Clockwise:文字改成順時鐘轉90度後的縱向排列

20131122-09  


d.Counterclockwise:文字改成逆時鐘轉90度後的縱向排列

20131122-10  


因為欄位名稱橫向排列時的計算很複雜,所以我用縱向排列的方法,程式內使用Stacked那一項設定

 


7.計算欄位名稱排列的間距,這裡調用XY Graph元件顯示範圍屬性的寬度,除以欄位數量減1,算出來的結果再減掉欄位文字的寬度。要減掉欄位文字的寬度是因為畫在Picture的時候文字寬度不包含在間距內,而是另外加上去

 

欄位文字寬度的計算使用Draw Text at Point.vi元件

20131122-11  

 


8.正式把欄位名稱寫入Picture元件,使用迴圈搭配Draw Text at Point.vi元件,連續改變寫入座標

20131122-12  

 


9.調整Picture元件的寬度,調用Picture元件的寬度屬性,大小設定為調用XY Graph元件顯示範圍屬性的寬度加上欄位文字的寬度

20131122-13  

 


完成的全部程式

20131122-14  

 


執行的結果,可以看到欄位名稱有對齊對應的資料

20131122-15  

, ,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()