Nuovo problema con i bookmark

giovedì 07 luglio 2005 - 15.48

Babi Profilo | Junior Member

Ciao, ho fissato un bookmark in un .doc
devo impostare un ciclo su una dataview e scrivere tante righe quante sono
contenute nella view. Il problema è che non trovo l'istruzione per aggiungere un bookmark sotto l'altro..
ho utilizzato la InsertAfter, ma me li affianca... grazie per un aiuto

For i = 0 To dvBenV.Count - 1
strCompose = String.Format(Trim(dvBenV.Item(i).Item("cognome")) & " " & Trim(dvPerCli.Item(i).Item("nome")) & _
" nato(a) a {0} il {1}", Trim(dvBenV.Item(i).Item("luogo_nascita")), Trim(dvBenV.Item(i).Item("dt_nascita")))

wdDoc.Bookmarks.Item("p2benef_b").Range.InsertAfter(strCompose)

Next

Cteniza Profilo | Guru

Mi sembrava di avere risposto recentemente ad una domanda simile.
Comunque ..
Ti consiglio di gestire una tabella all'interno del tuo documento word
Metti una tabella sul tuo modello con già impostata la eventuale header (la puoi utilizzare per impostare le labels da incolonnare) ed eventualmente di una riga vuota.
Nel ciclo dei tuoi dati puoi accedere ed agire sulla tabella impostandone i valori (cell(riga,colonna)), aggiungere righe, ecc.
E soprattutto per fare questa cosa non hai bisogno di neanche un bookmark



Babi Profilo | Junior Member

Si, infatti ho seguito i tuoi suggerimenti. mi resta solo un problema
se puoi aiturami.. quando definisco il range come faccio a stabilire quali valori assegnare ai parametri start ed End del range ?
(cioè, dovrei assegnare il numero di riga e di colonna da cui voglio partire)

Grazie mille

Dim rng As Word.Range = wdDoc.Range(Start:=1, End:=14)
wdDoc.Tables.Add(Range:=rng, NumRows:=1, NumColumns:=5)



Cteniza Profilo | Guru

Se devi aggiungere una tabella da codice (non si trova nel .dot) ti conviene allora usare un bookmark per indicare il punto in cui inserire la tabella.
Poi definisci un oggetto tabella e scrivi e/o leggi impostando il tuo range uguale alla cella della tabella (riga,colonna), cicli sui tuoi dati e dinamicamente ti sposti di cella in cella scrivendo i tuoi valori
Io al posto di inserire una tabella da codice ho messo una tabella nel .dot e ho pilotato la scrittura delle righe accedendo direttamente come range alle celle della tabella (piuttosto che inserirla e poi posizionarsi sulle celle per scrivere).




Babi Profilo | Junior Member

Ciao, ho provato a farlo, ma senza successo :(
Io devo per forza crearla via codice perchè non so a priori quante righe avrò.

Ti posto il codice, il problema è quando definisco l'oggetto RANGE
nei parametri start e end non so cosa mettere. in questo modo mi scrive
sempre la tabella nel primo foglio (????).
Poi ho aggiunto un bookmark, ma non so come alimentarlo
wdDoc.Bookmarks.Item("TestTab").Range.Text() = ????

grazie del tuo prezioso aiuto

===========
Dim rng As Word.Range = wdDoc.Range(Start:=0, End:=20)
'Dim rng As Word.Range = wdDoc.Range
wdDoc.Tables.Add(Range:=rng, NumRows:=2, NumColumns:=5)

Dim tbl As Word.Table = wdDoc.Tables.Item(1)

..popolo la tabella
.Cell(Row:=1, Column:=1).Range.Text =
......
......



Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5