SAS在輸出RTF文件時(shí)寬度為什么時(shí)99%?

我們SAS程序員在做TFL的時(shí)候一般都是用PROC REPORT步輸出RTF文件,在設(shè)置列寬度的時(shí)候會(huì)用cellwidth=進(jìn)行設(shè)置,所有列的寬度加起來占整個(gè)頁面的99%,當(dāng)我們把寬度設(shè)置成100%的時(shí)候,頁面會(huì)發(fā)生換行的情況,為什么會(huì)這樣呢?
做TFL的時(shí)候一般都是三線表,三線表只有上下邊框,左右是沒有邊框的,其實(shí)左右邊框是存在的,只是我們看不到(邊框透明),邊框也是有一定寬度的,這時(shí)候把列寬度設(shè)置成100%再加上邊框的寬度實(shí)際上就超過100%了,所以會(huì)出現(xiàn)換行的情況。
那么想要設(shè)置成100%要如何操作呢?這個(gè)時(shí)候就要對(duì)template下手了,我們先看一下常用的style template是如何定義的。



















proc template;                                  define style TLstyle / store = WORK.TEMPLAT;                    parent = styles.rtf;                              class table /      fontweight = light        rules = group        frame = above      cellpadding = 0      borderspacing = 0                              ;   
style Body from Document / marginbottom = 1in margintop = 1in marginright = 1in marginleft = 1in ; end; run;
這里與邊框有關(guān)的設(shè)置只有:


      rules = group        frame = above
前者規(guī)定了table的header和body之間有一個(gè)邊框,后者規(guī)定了table最上面有一條邊框。因此按照這個(gè)定義,table其實(shí)是沒有左右邊框的??瓷先ィM管沒有左右邊框,SAS在計(jì)算寬度時(shí)仍然考慮了左右邊框的寬度。這時(shí)候我們嘗試把所有的邊框去掉:


rules = noneframe = void
去掉所有邊框以后就可以把寬度設(shè)置成100%而不換行了,但是同時(shí)也失去了上下邊框,這時(shí)候該如何設(shè)置呢?我們來對(duì)template修改一下:






















proc template;                                  define style TLstyle / store = WORK.TEMPLAT;                    parent = styles.rtf;                            class table /    fontweight = light        rules = none        frame = void     cellpadding = 0    borderspacing = 0                                                      ;     class header /    borderbottomwidth=1                                                      bordertopwidth=1  ;    style Body from Document /                          marginbottom = 1in                               margintop = 1in                                marginright = 1in                              marginleft = 1in    ;     end;                                     run;
在上面的定義中,我們將table的邊框定義成完全不顯示,但是在header中顯示上下邊框:


borderbottomwidth=1                                                  bordertopwidth=1
這樣我們就得到跟之前的效果,而且可以設(shè)置寬度為100%了。











請(qǐng)前往:http://lygongshang.com/TeacherV2.html?id=166