datawindow自動換行打印,需結合該函數一塊兒使用

1.設置函數

具體步驟以下: 
    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。
2.增長函數prototype

global type f_newline from function_object
end type對象

forward prototypes
global function string f_newline (string as_string, integer ai_charnum)
end prototypesci

global function string f_newline (string as_string, integer ai_charnum);//功能:將字符串轉換爲換行文本
//參數:as_string  待轉換字符串
// ai_charnum 每行字符數
//兩個英文算一個字符,一個漢字兩個字符字符串

//3.a一二三四五六七八九a一二三四五六七八九十
//2.一二三四五六七八九十
//3.ab一二三四五六七八九
string ls_doc = ""
long li_je//奇偶string

long i, ll_strlen
int li_asc, li_ascnum, li_endchar=0, li_add =0
li_ascnum=0
string ls_left_str,ls_allstring
string ls_str1,ls_str2
ls_allstring=as_string//原始字串it

long j,jcnt
jcnt=Ceiling(len(as_string)/ai_charnum)//分紅幾段,
ls_str2=""io

//messagebox("分隔",string(jcnt))
for j=1 to jcnt//分紅n段
 li_ascnum =0
 ls_left_str=left(as_string,ai_charnum)//取左邊部分
 //判斷該串中有多少個ascii字符
 for i=1 to ai_charnum
  if Asc (mid(ls_left_str,i,1))<=126 then li_ascnum ++
 next
 //若是爲奇數
 li_je=mod(li_ascnum,2)
 if li_je=1 then  //若是爲奇數,ai_charnum+1
  ls_left_str=left(as_string,ai_charnum+1)
  as_string=mid(as_string,ai_charnum +2,len(as_string)-ai_charnum -1)
 elsefunction

  ls_left_str=left(as_string,ai_charnum)
  as_string=mid(as_string,ai_charnum +1,len(as_string)-ai_charnum)
 end if
 if len(ls_doc)<=0 then
  ls_doc=ls_left_str+" "
 else
  ls_doc=ls_doc+ls_left_str+" "
 end if
nextobject

return ls_doc

end function

 3.-----------------------------------

增長計算列 f_newline(字段,10)//10爲一行想的字符過數

相關文章
相關標籤/搜索