在 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
阅读(11258) | 评论(0) | 转发(0) |