【问题标题】:Avoiding formatting of DOORS object text using DXL避免使用 DXL 格式化 DOORS 对象文本
【发布时间】:2016-06-24 13:41:13
【问题描述】:

我正在编写 DXL 脚本,其中很少有对象文本有边框(就像复制了一整行表格)。

我必须强调shall中的“shall”这个词。 但是使用 findPlainText() 方法,它改变了有边框的对象文本的格式。 脚本运行前的初始对象是:

运行脚本使“shall”字加粗后,我编写了 DXL 脚本:

void Change_Shall(Object o, string objText)
{


    int off=0
    int len=0
    string StartUpperText = ""
    string FontText = ""
    string StartText = ""
    string FindText = ""

    bool IsChanged = false
    string OriginalObjText = objText
    string UpperFontObjText = upper(objText)
    while (findPlainText(UpperFontObjText, "SHALL", off, len, true, false))
    {
        StartUpperText = UpperFontObjText[0:off-1]
        UpperFontObjText = UpperFontObjText[off+len:]

        FindText = OriginalObjText[off:off+len-1] 
        StartText = OriginalObjText[0:off-1]
        OriginalObjText = OriginalObjText[off+len:]
        if(FontText == "")
          FontText = StartText "{\\b " FindText "}"
        else
          FontText = FontText StartText "{\\b " FindText "}" 

    //print FindText "\t\t" UpperFontObjText "\n"
        IsChanged = true

        off = 0
        len = 0
    }


    if(IsChanged == true)
       o."Object Text" = richText FontText OriginalObjText 

}

此脚本运行后带有边框的对象文本会发生类似的变化

如何避免对象文本带有边框的格式,并在对象文本中保留边框。

【问题讨论】:

    标签: ibm-doors


    【解决方案1】:

    我不确定你是如何从Object o 获得"Object Text",但我猜你是在使用o."Object Text" "" 将其转换为字符串。是对的吗? 如果是这样,那么这就是在您对其执行任何操作之前剥离所有富文本(包括您的边框)。尝试使用string objText = richTextWithOle o."Object Text"string objText = richText o."Object Text",然后尝试删除函数string objText 中不必要的参数,因为Object o 已经附带了对此的引用

    我根据您的表格的外观假设它是一个 RichText 表格,在这种情况下,我相信您的代码仍然可以工作,只是我怀疑您是从一个去除了richText 的字符串开始并将richtext 添加到它。有时带有表格的 Word OLE 对象也可能看起来像这样,在这种情况下,您必须使用 COM 来操作 OLE。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多