[FoxPro] Publipostage avec un DBF

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
lefort
Fraîchement OOthentifié
Messages : 3
Inscription : 08 mai 2007 19:49

[FoxPro] Publipostage avec un DBF

Message par lefort »

Courrier avec une source de données Dbase3 ( table1.dbf), ecrit en Visual Foxpro V9 SP1 ( assez proche du VB )

Ce code ne génère pas d'erreur mais le document edité ne comporte pas le contenu du champ de fusion inséré dans le document.Le document final comporte autant de pages que le nombre d'enregistrements de la base.
Si je fais imprimer avec ce document à partir de Writer cela marche.

Dans ce code manque t-il une info ???

Merci d'avance pour une idée.

Code : Tout sélectionner

PUBLIC oserv,odesk

* Creation des instances au serveur
oserv = CREATEOBJECTEX("com.sun.star.serviceManager","","")
odesk = oserv.createinstance("com.sun.star.frame.Desktop")
loCoreReflection = oserv.createInstance("com.sun.star.reflection.CoreReflection" )
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.PropertyValue").createobject(@loPropertyValue)

DIMENSION arg3(1)
arg3(1) = loPropertyValue
COMARRAY(odesk,10)

cFichier = "file:///C:/temp/testdbf.odt"

omerge = oserv.createinstance("com.sun.star.text.MailMerge")

DIMENSION args(8)

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.name = "DataSourceName"
loPropertyValue.value = "tableDB"
args(1)=loPropertyValue

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.name = "DocumentURL"
loPropertyValue.value = cFichier
args(2)=loPropertyValue


RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.NAME = "CommandType"
loPropertyValue.VALUE = 0
args(3)=loPropertyValue

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.NAME = "Command"
loPropertyValue.VALUE = "TABLE1"
args(4)=loPropertyValue

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.name = "OutputType"
loPropertyValue.value = 2
args(5)=loPropertyValue

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.name = "OutputURL"
loPropertyValue.value = "file:///C:/temp/"
args(6)=loPropertyValue

RELEASE loPropertyValue 
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName("com.sun.star.beans.NamedValue").createobject(@loPropertyValue)
loPropertyValue.name = "FileNamePrefix"
loPropertyValue.value = "docfusion_"
args(7)=loPropertyValue

release lopropertyvalue 
lopropertyvalue = createobject("Empty")
locorereflection.forname("com.sun.star.beans.NamedValue").createobject(@lopropertyvalue)
lopropertyvalue.name = "SaveAsSingleFile"
lopropertyvalue.value = .T.
args(8)=lopropertyvalue

COMARRAY(omerge,10)

omerge.execute(@args)


RELEASE oserv,odesk
Modérateur a écrit :Merci, d'utiliser la balise code
XP SP1 + OO3.0.1
Avatar de l’utilisateur
chater
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 237
Inscription : 21 févr. 2006 13:43
Localisation : Paname

Message par chater »

Salut,

Perso, je n'utilise pas de macro pour faire cela. Je crée directement les fichiers en faisant un remplacement dans un XML que je zippe pour en faire un ODT. C'est plus simple et plus rapide
OOo 3.1 officielle sous Ubuntu 9.04

Pensez à aider les autres en répondant à leurs questions.
lefort
Fraîchement OOthentifié
Messages : 3
Inscription : 08 mai 2007 19:49

Merci pour les infos

Message par lefort »

Merci pour l'info

Je vais regardé de près de ce côté.
J'ai revu ce matin le code pour m'apercevoir que dans Datasource et command le nom de la table et de la feuille (car ici source de données de type XLS) est sensible à minuscule/Majuscule.

François
XP SP1 + OO3.0.1