医药CRM系统开发

自已做医药CRM系统有四年了,终于可以算个产品了,努力市场化,今年重种将医药营销的理念加入CRM

导航

datawindow自动换行打印,需结合该函数一起使用

Posted on 2013-06-19 15:39  hhq80  阅读(888)  评论(0编辑  收藏  举报

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.增加函数

global type f_newline from function_object
end type

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

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//奇偶

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//原始字串

long j,jcnt
jcnt=Ceiling(len(as_string)/ai_charnum)//分成几段,
ls_str2=""

//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)
 else

  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
next

return ls_doc

end function

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

增加计算列 f_newline(字段,10)//10为一行想的字符过数