問題:我有一個從資料庫讀取的資料表,資料如下
參考你網站內其他文章可以更改XY Graph的Polt的名稱,但是X軸的座標好像沒有屬性可以更改為自定名稱,我想要把XY Graph的X軸改為資料表的中文欄位名稱,站長是否有什麼好方法可以處理?
關於這個問題從之前收集的所有資料來看是無解,不過有變通的方法,就是讓程式用畫的畫上X軸的中文座標
以下分解說明操作步驟:
1.先在面板上放一個XY Graph元件,將顯示範圍的底下往上調整縮小,底下空出來的空間大約略大於欄位名稱直排的長度
放上一個Picture元件覆蓋在空出來的空間上,Picture元件大小調整到寬度比XY Graph元件顯示範圍略大,高度略大於欄位名稱直排的長度,左上角對齊XY Graph元件顯示範圍左邊再過去約半個中文字寬
※Picture元件的大小和位置都是大約位置,可以分別調用XY Graph和Picture的屬性來計算達到很準確的定位。不過這不是這篇文章的重點,且會增加程式的複雜度。範例程式只有列出改變Picture寬度屬性,讓所有欄位名稱能顯示
2.塗色工具把前景和背景色都設定為透明
3.把Picture元件含邊框都塗成透明
4.顯示資料的程式用迴圈就可以完成
5.改變XY Graph元件Plot名稱用網站內另一篇文章的方法,以迴圈調用XY Graph屬性來完成
6.把欄位名稱寫入Picture比較複雜,使用Draw Text at Point.vi元件,底下text orientation接腳控制寫入文字的狀態,有4種狀態
a.None:不做任何改變,橫向的欄位名稱還是以橫向顯示
b.Stacked:文字改成縱向排列
c.Clockwise:文字改成順時鐘轉90度後的縱向排列
d.Counterclockwise:文字改成逆時鐘轉90度後的縱向排列
因為欄位名稱橫向排列時的計算很複雜,所以我用縱向排列的方法,程式內使用Stacked那一項設定
7.計算欄位名稱排列的間距,這裡調用XY Graph元件顯示範圍屬性的寬度,除以欄位數量減1,算出來的結果再減掉欄位文字的寬度。要減掉欄位文字的寬度是因為畫在Picture的時候文字寬度不包含在間距內,而是另外加上去
欄位文字寬度的計算使用Draw Text at Point.vi元件
8.正式把欄位名稱寫入Picture元件,使用迴圈搭配Draw Text at Point.vi元件,連續改變寫入座標
9.調整Picture元件的寬度,調用Picture元件的寬度屬性,大小設定為調用XY Graph元件顯示範圍屬性的寬度加上欄位文字的寬度
完成的全部程式
執行的結果,可以看到欄位名稱有對齊對應的資料