Avatar billede sbay Nybegynder
05. november 2002 - 14:54 Der er 1 kommentar og
1 løsning

Overførsel af data fra RTItem til Word

Jeg prøver at få overført min tekst fra et bodyfelt til Word, men det kniber en anelse. Min kode:

Sub Click(Source As Button)
   
    Dim s As New notessession
    Dim todaydate As New notesdatetime("Today")
    Dim word As Variant
    Dim wordoc As Variant
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim count As Integer
   
    Set db = s.CurrentDatabase
    Set collection = db.UnprocessedDocuments
    If collection.count > 1 Then
        Set doc = collection.GetFirstDocument
        While Not doc Is Nothing 
           
            'Values for all
            Dim FormType As Variant
            Dim CreatedBy As Variant
            Dim Department As Variant
            Dim Categories As Variant
            Dim Version As Variant
            Dim Title As Variant
            Dim Numb As Variant
            Dim Body As Variant
           
            ' Values for .Section
            Dim SectionNumb As Variant
            Dim SectionTitle As Variant
            Dim SectionCrossRefs As Variant
            'Dim Body As Variant
           
            'Values for .Chapter
            Dim ChapterNumb As Variant
            Dim ChapterTitle As Variant
            Dim ChapterCrossRefs As Variant
            Dim ChapterBody As Variant
           
            'Values for Minor Chapter
            Dim MinorChapterNumb As Variant
            Dim MinorChapterTitle As Variant
            Dim MinorChapterCrossRefs As Variant
            Dim MinorChapterBody As Variant
           
            'Values for Sub Chapter
            Dim SubChapterNumb As Variant
            Dim SubChapterTitle As Variant
            Dim SubChapterCrossRefs As Variant
            Dim SubChapterBody As Variant
           
            Dim customername As Integer
           
    'producedby = s.username
            customername = 1
           
            For i=0 To collection.count
                FormType = doc.GetItemValue( "Form" )   
                'Setting values
                Select Case FormType(0)
                Case ".Section" :
                    Numb = doc.GetItemValue( "SectionNumb" )
                    Title = doc.GetItemValue( "SectionTitle" )
                    SectionCrossRefs = doc.GetItemValue( "SectionCrossRefs" )
                    Body = doc.GetItemValue( "Body" )
                    Version = doc.GetItemValue("ApprovedVersion")
                   
                Case ".Chapter" :
                    Numb = doc.GetItemValue( "ChapterNumb" )
                    Title = doc.GetItemValue( "ChapterTitle" )
                    ChapterCrossRefs = doc.GetItemValue( "ChapterCrossRefs" )
                    Body = doc.GetItemValue( "ChapterBody" )
                    Version = doc.GetItemValue("ApprovedVersion")
                   
                Case ".SubChapter" :
                    Numb = doc.GetItemValue( "SubChapterNumb" )
                    Title = doc.GetItemValue( "SubChapterTitle" )
                    SubChapterCrossRefs = doc.GetItemValue( "SubChapterCrossRefs" )
                    Body =doc.GetItemValue( "SubChapterBody" )
                    Version = doc.GetItemValue("ApprovedVersion")
                   
                Case ".MinorChapter" :
                    Numb = doc.GetItemValue( "MinorChapterNumb" )
                    Title = doc.GetItemValue( "MinorChapterTitle" )
                    MinorChapterCrossRefs = doc.GetItemValue( "MinorChapterCrossRefs" )
                    Body = doc.GetItemValue( "MinorChapterBody" )
                    Version = doc.GetItemValue("ApprovedVersion")
                   
                End Select
               
'Create the Word object:
                Set word = CreateObject("Word.Application") 'Create Word object
                Call word.documents.add("c:\MedArb.dot") 'Create a new document based on the template "Return and Uplift.Dot"
                Set worddoc = word.activedocument 'Get a handle for the active document
               
'Assign the field values:
                CreatedBy = doc.GetItemValue("CreatedBy")
               
                customername = customername + 1
                worddoc.FormFields(1).result = "MedarbejderGuide"
                worddoc.FormFields(2).result = Numb(0)
                worddoc.FormFields(3).result = Title(0)
                worddoc.FormFields(4).result = Version(0)
                'worddoc.FormFields(5).result = Body(0)
                worddoc.FormFields(6).result = Str$(customername)
               
                worddoc.saveas(Str$(customername)) 'save the document with the filename of "John Doe.doc"
        'Worddoc.PrintOut
                word.visible = True 'Comment this line if you don't want to show Word.
                Set doc=collection.getnextdocument(doc)
            Next               
        Wend
    End If
   
'word.quit 'remove comment if you want to close rather than show Word.
   
End Sub

Fejl: MS Word - String too long
I denne sætning. worddoc.FormFields(5).result = Body(0)

Bodyfeltet indeholder jo egentlig data fra et RTItem Felt - f.eks billede eller lign. Hvordan får jeg det overført????
Avatar billede lars_resulture Nybegynder
11. november 2002 - 10:20 #1
Du skal være klar over, at Lotus Notes's RichText format IKKE er det samme som Microsofts RichText format, som du kender bla. fra Word.
Det er måske derfor at Word giver fejl.
For at trække rich-texten over i word, er du nok nødt til at konvertere formatet, måske til mime.
Der er vist mulighed for dette vha. Java api'et i R5.

Håber det hjælper dig lidt videre...
LARS/RESULTURE
Avatar billede sbay Nybegynder
11. november 2002 - 11:29 #2
Jeg har løst det på en lidt anden måde nu: jeg kopiere RIchText-feltet til klippebordet, hvorefter jeg gemmer det i en fil. Denne fil henter jeg så med min wordtemplate, og det virker både med billeder og tekst.

Men tak for buddet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester