我做的報表,報表列的寬度不夠,因此列印出來不能完全顯示,所以想用自動換行實作,請問該怎么實作呢?
uj5u.com熱心網友回復:
把列弄窄一些,不要勾自動橫向滾動的勾,行高設高一些(超過2行文字高度),自動就能換行我用的pb12,不知你的版本是否也如此
uj5u.com熱心網友回復:
自動折行設定:1. 在DataWindow Painter中打開DataWindow;
2. 在需設定自動折行的列上雙擊滑鼠, 彈開此列的屬性視窗;
3. 選擇Position標簽, 選中Autosize Height 多選框;
4. l選擇Edit標簽, 不選中Auto Horz Scroll多選框;
5. 單擊OK按鈕, 保存所做的修改;
6. 點中Detail Band (即寫有Detail的灰色長帶), 單擊滑鼠右鍵, 選擇Properties... 選單項;
7. 選中Autosize Height多選框;
8. 單擊OK按鈕, 保存所做的修改;
9. 保存DataWindow。
uj5u.com熱心網友回復:
資料視窗中欄位的自動換行和行間距的控制作者:郭寶利
先說自動換行,操作如下:
1、取消欄位的Auto hScroll屬性
2、設定Auto Height屬性
3、設定Auto VScroll屬性
4、設定Limit屬性為0,或者比較大的一個數(起碼超過一行可以顯示的字符個數)
經過上面的設定,就可以自動換行了。但是問題就來了,行間距非常緊湊,不算美觀。在合同等格式比較明確的程式開發時,顯示行數是確定的,就可以使用下面的技巧來實作:
1、比如,可以放置2行。那我們使用2個計算域來代替原來的欄位。2個計算域間的間距我們可以隨便調整。當然,如果可以放更多的行,那我們就需要放更多的計算域。
2、這點是關鍵點,就是如何讓原來欄位中的內容分配到2個計算域中。第1個的運算式如下書寫:
if(lena(lefta(nr,98)) = len(lefta(nr,98)) * 2,lefta(nr,99),lefta(nr,98))
第2個計算域的運算式如下書寫:
if(lena(lefta(nr,98)) = len(lefta(nr,98)) * 2,MidA(nr,100),Mida(nr,99))
上面的應用在PB10中除錯成功。雖然可以較好的解決多行文字的間距問題,但是有它的局限性,適用于顯示格式比較明確的應用。
讀者朋友可以自己考慮,如果3行如何實作。
uj5u.com熱心網友回復:
資料視窗中的折行顯示資料太多時,自動換行顯示,這是一個很實際的問題。有以下兩種情況:
1、標題的換行顯示
2、列中資料的自動換行。
上面兩個問題的解決方法不同。
一、標題換行
使用‘~r~n’即可。在要換行的位置直接輸入這些字母就可以了。
二、列資料折行
需要從以下3個方面進行設定:
1、將列所在節(通常是Detail節)的高度設定自動,即選中節(Band)的‘AutoHeight’屬性。
2、將要自動折行的列的AutoHeight屬性選中。
3、取消列的‘Auto Horz Scroll’屬性。
自動折行設定:
1、在DataWindow Painter中打開DataWindow;
2、在需設定自動折行的列上雙擊滑鼠, 彈開此列的屬性視窗;
3、選擇Position標簽, 選中Autosize Height 多選框;
4、選擇Edit標簽, 不選中Auto Horz Scroll多選框;
5、單擊OK按鈕, 保存所做的修改;
6、點中Detail Band (即寫有Detail的灰色長帶), 單擊滑鼠右鍵, 選擇Properties... 選單項;
7、選中Autosize Height多選框;
8、單擊OK按鈕, 保存所做的修改;
9、保存DataWindow。
Powerbuilder是資料庫開發最優秀的前端開發工具,強大的資料視窗功能令開發者無可置疑。然而,在應用開發程序中,有些特殊的中國式報表令開發者一籌莫展。這些特殊的報表時而不時的光臨開發者。比如怎樣在資料視窗中自動折行。
這個話題也許上個世紀就提出了,但我查閱了所有資料,答案都不能解決實際問題。經過我多次設定和測驗,在基本不寫任何代碼的情況下,終于大功告成。請看下面的實作步驟:
第一步:建立并調整網格資料視窗物件。如下圖:
第二步:設定自動折行列edit頁屬性。如下圖:
第三步:設定自動折行列position頁屬性。如下圖:
說明:gzrw要自動折行列,64是自動折行列(gzrw)高度,除數60三十二個漢字的長度,因為我想把gzrw列三十二個漢字就自動換行。乘數60實際上就是64,這是為了當多行時,字行間的距離更美觀些。乘數60和除數60兩者毫無關系,這里只不過碰巧了。請看下圖結果:
uj5u.com熱心網友回復:
4樓,三張圖呢?我也在找這三張圖。uj5u.com熱心網友回復:
學習了。
uj5u.com熱心網友回復:
我覺得3樓PB人生說的已經夠全面的了uj5u.com熱心網友回復:
2樓的可以實作uj5u.com熱心網友回復:
把列弄窄一些,不要勾自動橫向滾動的勾,行高設高一些(超過2行文字高度),自動就能換行我用的pb12
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/51124.html
標籤:基礎類
上一篇:PB 日期沖突問題,跪求!急!
下一篇:呃…… 發現多年前的一個馬甲
