Autor Thema: right margin property in Notes 6  (Gelesen 2057 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
right margin property in Notes 6
« am: 16.09.05 - 15:16:05 »
Hi,

ich habe einige Probleme mit dem Property right margin in bestimmten Notes 6.5 clients.
Obwohl es 100% ist, ist es nicht 100%.
Right Margin relative 100% heisst: es gibt keinen rechten Rand.
Dieses right-margin property wirkt sich ohnehin nur auf den Ausdruck aus.

Zumindest war es früher immer so.

Nun wird aber über das importieren von anderen RichtextFeld-Inhalten dieser Wert völlig anders interpretiert. Jedenfalls wird ein ziemlich heftiger rechter Rand gesetzt.
KANN DAS IRGENDJEMAND BESTÄTIGEN?

Man kann dieses Problem für DIN-A-4 beheben, wenn man den rechten Rand im zu importierenden RichTextFeld auf 19.05 cm setzt.

Nun möchte ich natürlich den User nicht zumuten, diese spannende Operation bei 120 Dokumenten durchzuführen. Hab nun in einem Domino Forumseintrag diesen Code gefunden:
Probier das mal aus.
Geht hier um die neuen RichText-Klassen.
Interessant wie damit umgegangen wird:
Code
Dim wksp As New notesuiworkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtnav2 As NotesRichTextNavigator
Dim rtrange As NotesRichTextRange

Dim cellctr As Integer
Dim strpar As String

Set uidoc = wksp.CurrentDocument
uidoc.refresh True
Set doc = uidoc.Document
Set rti = doc.GetFirstItem("Body")
Set rtnav = rti.CreateNavigator
Set rtnav2 = rti.CreateNavigator
Set rtrange = rti.CreateRange
' change all text in table to uppercase
Do
cellctr = cellctr + 1
If Not rtnav.FindNthElement(RTELEM_TYPE_TABLECELL, cellctr) Then Exit Do
rtrange.SetBegin rtnav
rtnav2.SetPositionAtEnd(rtnav)
rtrange.SetEnd rtnav2
strPar = rtrange.TextParagraph
rtrange.Remove
rti.BeginInsert rtnav
rti.AppendText Ucase(strPar)
rti.EndInsert
rti.Update
Loop
Dim docNew As New NotesDocument(doc.ParentDatabase)
docNew.form = "Memo"
Dim rtiNew As NotesRichTextItem
Set rtiNew = rti.copyitemtodocument(docNew, "Body")
Call wksp.EditDocument(True, docNew) 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: right margin property in Notes 6
« Antwort #1 am: 16.09.05 - 21:49:09 »
Ich denke mit dem Code kommst du nicht weiter, was du brauchst ist

notesRichTextParagraphStyle.RightMargin = margin

oder du probierst einfach einmal den Tip aus, den ich dir in diesem Thread gegeben habe.

http://www.atnotes.de/index.php?topic=25507.msg162867#msg162867

Was ist eigentlich daraus geworden?

Gruß Sascha

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: right margin property in Notes 6
« Antwort #2 am: 16.09.05 - 22:03:39 »
1. UseAbsoluteRightMargin=1

hat laut meinem Kollegen nicht funktioniert.
Ich werde hier aber weiter darüber berichten (6.51)

2. notesRichTextParagraphStyle.RightMargin = margin
funktioniert offenbar nicht bei bereits existierenden RichText Feldern, wobei ich der Meinung bin, dass die neuen RichText Klassen einige Komplexitäten haben. Auch darüber werde ich berichten.

3. Ich hatte gehofft, dass mit dem Entfernen und Neuerzeugen der TextParagraphs (wie in dem geposteten Code) das Problem beseitigt würde. Das war nicht der Fall.

thx Axel
« Letzte Änderung: 17.09.05 - 08:26:25 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: right margin property in Notes 6
« Antwort #3 am: 19.09.05 - 18:53:46 »
Scheint mit dxl zu gehen.
Jedenfalls kann ich das Dokument als dxl ausschreiben. Dort per Hand den Attribut in righmargin von pardef in Item ändern und dann wieder re-importieren. Muss das aber noch besser manageable machen, damit alle Dokumente eine Ansicht mit dem procedere verarztet werden. werde genaueres dazu posten.
Die dxl Artikel auf notes.net sind sehr gut. Auf den Punkt, kompetent, informativ.

Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: right margin property in Notes 6
« Antwort #4 am: 20.09.05 - 19:31:02 »
Nun stand ich vor der Aufgabe mit der sehr "einfachen" Sprache xslt dieses schöne property rightmargin in das Element pardef des dxl eines Notes-Dokuments zu bekommen.

Nach 3 Stunden war ich mit den Nerven ziemlich am Ende.
Ich fragte einen hiesigen Guru. Der meinte natürlich, dass xslt ganz einfach ist. Nach 30 Minuten meinte er, dass er das seit 1 Jahr nicht mehr gemacht hat und nach 1 h bin ich dann wieder zurück in mein Büro.
Ich habe dann das sehr gute Buch "XSLT Cookbook" von O'Reilley gefunden.

Das brachte die Rettung.

So kopiere ich ein dxl per xslt und inserte/update den Attributwert pardef rightmargin auf den magischen Wert:
Code
<pardef id="1" leftmargin="1in" rightmargin="7.5000in" tabs="L4.6063in L5in L5.5000in L6in L6.5000in L7in"/>

Hier sind die beiden Stylesheets, dh. copy.xslt wird importiert. Es ist das sogenannte identity stylesheet. Sehr nützlich für Konversion xml->xml. Es kopiert einfach alles was da ist. Das stylesheet mit dem sprechenden Namen style2.xslt nutzt dieses als service (das import statement) und macht die spezifische Arbeit.

style2.xslt:
Code
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dxl="http://www.lotus.com/dxl"> 
    
  <xsl:import href="copy.xslt"/> 
    
  <xsl:output method="xml" version="1.0" encoding="UTF-8"  
  omit-xml-declaration="yes"/> 
       
  <!--discard parents of person elements -->  
  <xsl:template match="/"> 
       <xsl:apply-templates/> 
  </xsl:template> 
    
<xsl:template match="dxl:pardef"> 
  <xsl:copy> 
    <xsl:apply-templates select="@*"/> 
    <xsl:attribute name="rightmargin">
    	<xsl:text>7.5000in</xsl:text>
    </xsl:attribute> 
    <xsl:apply-templates/> 
  </xsl:copy> 
</xsl:template> 
    
</xsl:stylesheet> 

copy.xslt:
Code
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="xml"
      encoding="UTF-8"
      indent="yes"
      standalone="no"
      omit-xml-declaration="yes"/>
<xsl:template match="node(  ) | @*">


  <xsl:copy> 
    <xsl:apply-templates select="@* | node(  )"/> 
  </xsl:copy> 
</xsl:template> 
</xsl:stylesheet>

Hab heute eine Menge gelernt. Aber besorgt euch ein gutes Buch für xslt-Zeugs und die Typen, die erzählen das wäre ganz einfach lügen. Der hiesige Guru ist voll nett, aber das mit dem "alles ganz einfach" ist eine Art Berufskrankheit. 

ICH BIN NATÜRLICH LANGE IN DER NAMESPACE FALLE RUMGEHÜPFT.
Dies ist sehr wichtig:
xmlns:dxl="http://www.lotus.com/dxl">


Axel
« Letzte Änderung: 20.09.05 - 23:06:32 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: right margin property in Notes 6
« Antwort #5 am: 20.09.05 - 19:43:00 »
Morgen versuche ich dann die problematischen NotesDokumente
-> zu einem dxl-Stream machen
-> per xslt verarzten (wie beschrieben mit rightmargin property) und dann wieder
-> zu re-importieren.

sieht gut aus. sollte klappen
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: right margin property in Notes 6
« Antwort #6 am: 06.10.05 - 21:53:45 »
UseAbsoluteMargin=1 funktioniert meistens doch. Leider nicht immer zu 100%.
Das muß ich dann wohl über xml nachziehen, wobei das auch seine Risiken hat, da wie Richard Schwartz auf Ed Brill meinte:
Zitat
and even today DXL is not still a fully faithful representation of an NSF so there's going to be potential for loss in the conversions.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz