好难注册 发表于 2013-7-18 16:15:00

TX ActiveX 加载内容过长报错

附件是刚刚遇到的一份长的病程,这些文件加载到一起时就会出错。
之前的那份测试资料点虽然有错但还能正常打开,但这样多的话都不能正常加载完成了。
麻烦你们测试一下。

iceman 发表于 2013-7-18 18:29:00

回复 1楼好难注册的帖子

问题正在处理中,明天回复。

iceman 发表于 2013-7-19 08:53:00

回复 2楼iceman的帖子

内容加载过长问题可以请尝试通过以下方法加载:

Private Sub mnuInsertFile_Click()
    TXTextControl1.ResetContents
    For i = 1 To 59 Step 1
       FileName = App.Path + "\data\" + CStr(i) + ".txw"
         
      TXTextControl1.Load FileName, 2, 3, True
      TXTextControl1.SelStart = -1
      '避免段落中的 table 行过多导致文档变为无效格式
      TXTextControl1.SectionInsert txBeginAtNewLine, -1
    Next
   
    '最后一个参数,使用8 ,使用 Unicode 编码格式存储文档
    Me.TXTextControl1.Save App.Path + "\data\" + "\combine.tx", 0, 8
End Sub

附件是我的测试 Demo:



同时,我尝试加载 150 个文档也可以正常加载。

好难注册 发表于 2013-7-19 13:52:00

请教一下,我刚有试用Ctrl+C,Ctrl+V,在一下病历上加入这些有表格的内容可以加很长,打开时也不会报错。我有试过CLIP(2),CLIP(3)但没用。请教一代码下应该怎样实现?

ZenosZeng 发表于 2013-7-19 13:53:00

回复 1楼好难注册的帖子

我这边在实现插入高度为0的空行时,使用了以下代码 Me.TXTextControl1.SelText = "",请尝试在你的环境中是否可以正常使用:
Private Sub mnuInsertFile_Click()
    TXTextControl1.ResetContents
    For i = 1 To 59 Step 1
      FileName = App.Path + "\data\" + CStr(i) + ".txw"
      TXTextControl1.Load FileName, 2, 3, True
      Me.TXTextControl1.SelText = ""
    Next
    Me.TXTextControl1.Save App.Path + "\data\" + "\combine.tx", 0, 8
End Sub

ZenosZeng 发表于 2013-7-19 15:21:00

回复 1楼好难注册的帖子

首先可以通过调用'Me.TXTextControl1.SectionInsert txBeginAtNewLine, -1 或者 Me.TXTextControl1.SelText = vbNewLine 插入新行,然后调整行高:
Private Sub mnuInsertFile_Click()
    TXTextControl1.ResetContents
    Dim index As Long
    For i = 1 To 59 Step 1
       FileName = App.Path + "\data\" + CStr(i) + ".txw"
         
      Me.TXTextControl1.Load FileName, 2, 3, True

      'Me.TXTextControl1.SectionInsert txBeginAtNewLine, -1
      
      Me.TXTextControl1.SelText = vbNewLine

      index = Me.TXTextControl1.SelStart
      Me.TXTextControl1.FormatSelection = True
      Me.TXTextControl1.SelStart = index - 1
      Me.TXTextControl1.SelLength = 2
      Me.TXTextControl1.FontSize = 1
    Next
   
    Me.TXTextControl1.Save App.Path + "\data\" + "\combine.tx", 0, 8
   
End Sub

ZenosZeng 发表于 2013-7-19 15:37:00

回复 4楼好难注册的帖子

TXTextControl在获得焦点的情况下Clip方法会生效

选中 TXTextControl1 并执行
Me.TXTextControl1.SelStart = 0
Me.TXTextControl1.SelLength = 1000
Me.TXTextControl1.Clip (2)

然后再选中 TXTextControl2执行:
Me.TXTextControl2.Clip (3)

好难注册 发表于 2013-7-19 18:43:00

在循环中要实现这样的批次COPY,我这边试了有问题,拷不到剪切板中。也粘贴不了。请帮忙确认一下有什么注意点的?谢谢!!!

好难注册 发表于 2013-7-19 19:27:00

再请教一下别一个问题,一个文档是含有表格的,就如我发给你们的文档样式一样。现在想把现有文档中的表格去掉,只留文字和数据元,不知要怎样做?

ZenosZeng 发表于 2013-7-22 08:49:00

回复 8楼好难注册的帖子

在VB中只有TX处于Focus状态时Copy方法才生效,不知PB是不是这样。
页: [1] 2
查看完整版本: TX ActiveX 加载内容过长报错