Domino 9 und frühere Versionen > ND8: Entwicklung

Fusszeile per Skript setzen

<< < (4/6) > >>

eknori:
Und hier noch die ( erste Fassung ) der Schreibroutine:


--- Code: ---Function SetFooter (doc As NotesDocument, strFooter As String) As integer
TRY:
Dim ITEM_OBJ As String
ITEM_OBJ = "$Footer"
If Not (doc.HasItem(ITEM_OBJ)) Then
SetFooter = -1
Exit Function
End If
ODS_OFFSET = 0

irc = NSFItemInfo _
(doc.handle, ITEM_OBJ, Len(ITEM_OBJ),_
item_blockid, idatatype, value_blockid, value_len )

pBuff = OSLockObject _
(value_blockid.pool) + (CLng(value_blockid.block) And &H0FFFF&)

Call ODSReadMemory (pBuff+(ODS_OFFSET+4), ODS_WORD, ODS_LENGTH, 1)

Call W32_ODSWriteMemoryStr _
(pbuff + (ODS_OFFSET+2)+43, _
ODS_WORD, strFooter, Len(strFooter))

OSUnLockObject (value_blockid.pool)
Call W32_NSFNoteUpdate (doc.handle, 0)
SetFooter = 0
EXIT_HERE:
Exit Function
CATCH:
SetFooter = 1
Resume EXIT_HERE
End Function
--- Ende Code ---

Ein kleiner Hinweis: Da der Code bestimmt irgendwann einmal in irgendein Kundenprojekt einfliessen wird, weise ich vorsorglich schon einmal darauf hin, daß hierzu eine Genehmigung meinerseits erforderlich ist.
Ich habe ein paar Stunden Arbeit und Wissen investiert.

bikerboy:
Das versteht sich.

Habe aber noch ein Problem mit der folgenden Zeile


--- Code: ---bufferlen = ODS_LENGTH - FOOTER_TEXT_START
--- Ende Code ---

Hier kommt bei mir immer -43 raus. Was mache ich da falsch

eknori:
Wie ist denn ODS_LENGTH deklariert? Muss Long sein.

bikerboy:
So es funktioniert nun, aber ich kann es noch nicht verwenden weil  ich es noch nicht verstanden habe.

Aber ich und sicherlich tausend andere danken dir.  :love: :love: :love: :love:

eknori:
Die Schreibroutine ist noch nicht sauber und schmeisst eine Runde Napalm in den Rechner, wenn der neue Inhalt des Footers > alter Inhalt ist.
 

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln