Génération automatique de liste / nom word et vb.net

Splif62 Messages postés 28 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 29 mars 2009 - 4 mars 2009 à 11:12
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 - 5 mars 2009 à 11:06
Salut les amis !!
Je développe une application en vb.net et sql serveur.
Dans celle ci, j'ai une génération automatique de document je récupère les informations d'un client dans ma base et les envoi sur une page word déjà existante à des emplacements prévu grâce aux signets.
j'arrive à imprimer les données de plusieurs client, le problème c'est que ceux-ci s'ouvrent chacun sur une page différente alors que ce que je recherche est une liste des information.

voici mon  code :

tout d'abord, je fais une requète pour récupérer les données qui
m'interessent
commande.CommandText = "SELECT nom_expert,
prenom_expert, code_expert, code_postal_expert, ville_expert FROM expert
"
 
on enregistre le resultat de la
requete dans le reader
reader =
commande.ExecuteReader
 
on affiche les données dans les
labels
 
label_nom_expert.Text =
reader.GetOrdinal("nom_expert")

label_prenom_expert.Text =
reader.GetOrdinal("prenom_expert")

label_code_expert.Text =
reader.GetOrdinal("code_expert")

label_cp.Text =
reader.GetOrdinal("code_postal_expert")

label_ville.Text =
reader.GetOrdinal("ville_expert")
 
on ferme le reader

reader.Close()
 
 
Déclaration de la variable MonWord
Dim MonWord
As

Object

 
Initialisation de la
variable
MonWord =
CreateObject(
"Word.Application")

 
Accepter que Word apparaisse
MonWord.Visible =
True
 
Ouverture du fichier
test.doc
MonWord.Documents.Open(
"C:\...\document.doc")

 

'Positionnement dans le document
sur les signets
'Saisie
du contenu des textbox dans le document Word
 
MonWord.ActiveDocument.Bookmarks(
"nom_expert").Select()
MonWord.Selection.InsertAfter(label_nom_expert.Text)
 
MonWord.ActiveDocument.Bookmarks(
"prenom_expert").Select()
MonWord.Selection.InsertAfter(label_prenom_expert.Text)
 
MonWord.ActiveDocument.Bookmarks("code_expert"
).Select()
MonWord.Selection.InsertAfter(label_code_expert.Text)

 
MonWord.ActiveDocument.Bookmarks(
"code_postal_expert").Select()
MonWord.Selection.InsertAfter(label_cp.Text)
 
MonWord.ActiveDocument.Bookmarks(
"ville_expert").Select()
MonWord.Selection.InsertAfter(label_ville.Text)
 

'MonWord.ActiveDocument.Save() ' Sauvegarde du
document
 
'MonWord.ActiveDocument.Printout() ' Lancement de
l'impression
 
'MonWord.Quit() ' Ferme Word
'MonWord = Nothing
' Ferme Word
 
les signets sont nommés sur le document
word...
 
par
contre, comment faire pour que la page du document word affiche toute la
liste
 
ex:
 
nom X         
prénom X          code X        code postal X          ville X
nom Y          prénom Y          code Y        code postal
Y          ville Y
nom Z         
prénom Z          code Z        code postal Z          ville Z
nom A          prénom A          code A        code
postal A          ville A
nom B         
prénom B          code B         code postal B          ville B
nom C          prénom C          code C        code
postal C          ville C
 
etc....
 
la logique voudrait qu'on répète les signets sur la page word...
mais combien en mettre car on ne sait pas combien il y aura d'expert au
total...
 
cette
méthode fonctionne correctement lorsque je veux uniquement un expert...

de plus, ça fonctionne également quand il me met
un expert par page...
mais moi, je veux la liste
de tous les experts sur la même page...
 
merci d'avance...
c'est très important...

1 réponse

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
5 mars 2009 à 11:06
Bonjour

une premiere piste Ajouter un tableau (propriété Table) : le construire et y ajouter autant de ligne que d'experts
http://msdn.microsoft.com/fr-fr/library/microsoft.office.interop.word(VS.80).aspx
0