PDA

View Full Version : 请问, 如何判断RTF域是否为空??


r3station
13-09-06, 01:46 PM
请问, 如何判断RTF域是否为空??

在网上也找了,大都是先goto到哪个Field,再分别selece, deselect一下进行判断,都不太好用!

请问,有没有其它方法好方法啊,请各位指教!

谢谢!!

ly_sl
13-09-06, 03:52 PM
你可以用len(doc.域名(0))<=0就是空啊。

r3station
14-09-06, 08:16 AM
原帖由 ly_sl 于 2006-9-13 03:52 PM 发表
你可以用len(doc.域名(0))<=0就是空啊。

非常感谢! 我试一下看看。 < 曾试用doc.GetFirstItem("Body").ValueLength不行 >

r3station
14-09-06, 08:28 AM
原帖由 ly_sl 于 2006-9-13 03:52 PM 发表
你可以用len(doc.域名(0))<=0就是空啊。

你好! 经验证,采用len(doc.域名(0))<=0通不过,只能判断该RTF域是否有文字。如有只在该RTF域内加入 附件或图片就不能正确判断或者出错。 

谢谢!

暴风雪
14-09-06, 09:45 AM
原帖由 r3station 于 2006-9-13 01:46 PM 发表
请问, 如何判断RTF域是否为空??

在网上也找了,大都是先goto到哪个Field,再分别selece, deselect一下进行判断,都不太好用!

请问,有没有其它方法好方法啊,请各位指教!

谢谢!!

怎么会呢?我觉得goto到那个Field,再分别Call uidoc.selectall, Call uidoc.deselectall的方法很好用啊~~

r3station
14-09-06, 09:59 AM
原帖由 暴风雪 于 2006-9-14 09:45 AM 发表


怎么会呢?我觉得goto到那个Field,再分别Call uidoc.selectall, Call uidoc.deselectall的方法很好用啊~~

非常感谢回复.

用以上方法是能够正确判断. 但我有几十个RTF域,域名分别为RTF1, RTF2, RTF3......RTF60,
当往RTF60域写的时候,判断RTF59是否为空,如果为空,就往RTF59里写,
进入RTF59时,再判断RTF58是是否为空,如果空,就往RTF58里写,以防浪费一个域.... 依次类推.
因为我控制用户从RTF1到RTF60里依次写内容, 并控制发出以后的内容是不能修改


我是把以上的判断放在Entering事件中的, 如果用以上的方法,就会造成LOOP, 所以不太好用. 所以寻求不用GOTO那个field而判断其是否为空的方法.

谢谢!

jadeneo
14-09-06, 05:30 PM
公式判断:

@Command([EditGotoField];"Body");
@Command([EditSelectAll]);
@If(@IsError(@Command([EditDeselectAll]));@Return(@Prompt([OK];"提示";"BODY域不能为空!"));"");

脚本判断:

Function IsRTFNull(rtfield As String) As Integer

On Error Goto Errhandle

currentfield = uidoc.CurrentField

Call uidoc.GotoField(rtfield)
Call uidoc.SelectAll
Call uidoc.DeselectAll

If currentfield <> "" Then
Call uidoc.GotoField(currentfield)
End If

IsRTFNull = False
Exit Function

Errhandle:
Select Case Err
Case 4407
Call uidoc.GotoField(rtfield)
IsRTFNull = True
Exit Function
Case Else
Error Err
End Select

End Function

r3station
15-09-06, 08:03 AM
非常感谢!请问版主,除了用goto..., 再select all...,desect all的方法,有没有其它不用跳转被判断域,而直接进行判断的方式?

非常感谢!

jadeneo
15-09-06, 09:14 AM
:)

够用了就没在继续想这个问题

你可以研究一下,呵呵

验证码够难
04-07-07, 02:11 PM
doc.GetFirstItem("Body").ValueLength > 164Kb 为非空, <= 164Kb就是空, 可以试试

sundrenched
04-07-07, 05:12 PM
谢谢.

再试一试.