Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1392264
  • 博文数量: 254
  • 博客积分: 4173
  • 博客等级: 中校
  • 技术积分: 3400
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-03 21:24
个人简介

不为失败找借口,只为成功找方法!

文章分类

全部博文(254)

文章存档

2021年(3)

2020年(1)

2019年(2)

2017年(10)

2016年(6)

2015年(19)

2014年(24)

2013年(19)

2012年(52)

2011年(118)

分类: Sybase

2014-02-28 16:20:50

在 Datawindow 中,

  • 若只选中列的 Auto Horz Scroll,键入的字符可以加到文本串中并始终维持一行,直到达到上限;
  • 若只选中列的 Auto Vert Scroll,键入的字符可以加到文本串中并会换行,直到达到上限;
  • 若都不选中,且高度不足以让文本多行显示的话,键入的字符只可达到控件的显示范围内的长度。

所以为实现多行显示要求:

必须不选中 Auto Horz Scroll,并且在 EditChanged 事件中自动调整列高。建议不选中 Auto Vert Scroll,以避免打印与显示不一致的问题。

注:只有 string 型的文本才可以换行。

最终方案:

Object.DataWindow.Detail.Height.AutoSize = 'yes'

Object..Height.AutoSize = 'yes'

Object..Edit.AutoVScroll = 'yes' //用于可编辑列

即可实现自动换行功能。

对于要实现实时的自动换行则需如下脚本:

event editChanged;
/***************************************************************************
解决自动换行时,新行不能实时显示的问题。
通过加上多个条件限制,使得 acceptText() 对有效性验证的影响最小
**************************************************************************
*/
try
    
if Object.DataWindow.Detail.Height.AutoSize = "yes" &
    and dwo.type 
= "column" &
    and dwo.Edit.AutoVScroll 
= "yes" &
    and left(dwo.coltype, 
4= "char" then
        acceptText()
    end 
if
catch (runtimeError err)
end 
try

 

阅读(10975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~