2016-06-24 9 views
0

Ich schreibe ein DXL-Skript, in dem wenige Objekttexte Rahmen haben (wie eine komplette Zeile der Tabelle kopiert wird).Vermeiden der Formatierung von DOORS-Objekttext mit DXL

Ich muss betonen, das "soll" Wort in soll. Mit der Methode findPlainText() wird jedoch die Formatierung von Objekttext mit Rahmen geändert. Zunächst werden die Objekte vor Skripte ausgeführt ist:

enter image description here

Nach dem Ausführen des Skripts „soll“ Wort Bold zu machen, schrieb ich DXL Skript:

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 

} 

Das Objekt Text mit Grenze nach diesem Skript Läufe erhalten Änderungen wie

enter image description here

Wie von objec Formatierung kann t Text mit Rändern wird vermieden und Rahmen wird im Objekttext erhalten.

Antwort

0

Ich bin mir nicht sicher, wie Sie bekommen "Object Text" von Object o, aber meine Vermutung ist, Sie verwenden o."Object Text" "", um es als Zeichenfolge zu werfen. Ist das richtig? Wenn dies der Fall ist, wird der gesamte Text (einschließlich Ihrer Rahmen) entfernt, bevor Sie etwas daran ändern. Versuchen Sie string objText = richTextWithOle o."Object Text", oder string objText = richText o."Object Text", und dann versuchen, die unnötigen Parameter an der Funktion zu entfernen string objText, als Verweis auf das kommt schon zusammen mit Object o

Ich gehe davon aus, basierend auf, wie Sie Ihre Tabelle sieht, dass es ein RichText- Tisch, In diesem Fall glaube ich, dass Ihr Code immer noch funktioniert. Ich vermute nur, dass Sie mit einem String beginnen, der von RichText befreit wurde und Richtext hinzufügt. Manchmal können Word OLE-Objekte mit Tabellen auch so aussehen, in diesem Fall müssten Sie COM verwenden, um das OLE zu manipulieren.

Hoffe, das hilft.