31 messages in org.openoffice.fr.progRe: [prog] Probleme concernant le dat...
FromSent OnAttachments
thom...@free.frApr 15, 2005 5:51 am 
Laurent GodardApr 15, 2005 6:04 am 
thom...@free.frApr 15, 2005 6:22 am 
thom...@free.frApr 15, 2005 7:23 am 
Bernard MarcellyApr 15, 2005 7:43 am 
thom...@free.frApr 15, 2005 7:59 am 
thom...@free.frApr 18, 2005 12:05 am 
Bernard MarcellyApr 18, 2005 1:53 am 
thom...@free.frApr 18, 2005 3:03 am 
thom...@free.frApr 18, 2005 5:50 am 
thom...@free.frApr 18, 2005 7:35 am 
Bernard MarcellyApr 18, 2005 9:40 am 
Thomas CoqueryApr 20, 2005 5:48 am 
Thomas CoqueryApr 20, 2005 6:35 am 
Thomas CoqueryApr 20, 2005 7:55 am 
Laurent GodardApr 20, 2005 8:10 am 
Thomas CoqueryApr 20, 2005 11:11 pm 
Josianne SAUVAGEApr 21, 2005 1:51 am 
will...@free.frApr 21, 2005 2:07 am 
Thomas CoqueryApr 21, 2005 2:08 am 
will...@free.frApr 21, 2005 2:22 am 
Alain NowakApr 21, 2005 7:30 am 
Josianne SAUVAGEApr 21, 2005 9:01 am 
Jean-MichelApr 21, 2005 9:06 am 
GVApr 21, 2005 10:20 am 
Josianne SAUVAGEApr 22, 2005 2:15 am 
Thomas CoqueryApr 22, 2005 2:27 am 
Thomas CoqueryApr 27, 2005 6:50 am 
Thomas CoqueryApr 29, 2005 2:47 am 
Laurent GodardApr 29, 2005 3:06 am 
Thomas CoqueryApr 29, 2005 6:15 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Probleme concernant le datasource dans un publipostage (ma table n'existe pas)Actions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Apr 18, 2005 1:53:34 am
List:org.openoffice.fr.prog

Le 2005-04-18 09:06, thom@free.fr a écrit :

Toujours par rapport à mon problème, est ce quelqu'un pourrait me dire comment affecter une chaine à une "séquence" de chaines (terme OOo).

C'est bien traduit par un tableau de chaînes. Mais cela ne résoudra pas ton problème car il n'y a pas à modifier les tablefilter. Tes tables n'apparaissent pas parce que la source de données est mal initialisée: - Le service utilisé est incorrect. - la prop CharSet s'écrit ainsi et pas Charset; son contenu est un String et non pas un nombre. OOo supporte certaines valeurs de la liste <http://www.iana.org/assignments/character-sets> . Voir gestionnaire de sources de données, onglet dBase, Jeu de caractères. Exemples : "ISO-8859-15" pour Euroland occidental , "windows-1252" pour MS-Windows

J'ai créé correctement une source de données à partir d'un fichier texte configuré (appelé aussi csv) avec le codage qui suit. Il utilise les ressources de Delphi_OOo.

procedure TForm1.Button2Click(Sender: TObject); var DataContext, maConnexion, maSource, uneInstance, lesProps: Variant; NomSource, Chemin: String;

begin ConnectOpenOffice; // établir la connexion, si pas déjà fait

DataContext:= CreateUnoService('com.sun.star.sdb.DatabaseContext'); NomSource:= 'src2'; if DataContext.hasbyname(NomSource) then Memo1.Lines.Add(NomSource +' existe') else begin // mettre les fichiers dans ce répertoire Chemin:= convertToURL('c:\Docs OpenOffice\mesCsv'); lesProps:= CreateProperties([ 'Extension', 'txt', 'CharSet', 'ISO-8859-15', 'FixedLength', True, 'HeaderLine', True, 'FieldDelimiter', ';', 'StringDelimiter', '"', 'DecimalDelimiter', '.', 'ThousandDelimiter', ',']); uneInstance:= DataContext.createInstance; DataContext.registerObject(NomSource, uneInstance); uneInstance.URL:= 'sdbc:flat:' + Chemin; uneInstance.Info:= lesProps; end; maSource:= DataContext.getByName(NomSource); maConnexion:= maSource.getconnection('',''); // - - - faire le publipostage avec cette connexion - - - maConnexion.close; maConnexion.dispose; Memo1.Lines.Add('Terminé'); end;

_Remarque_ Après analyse, je conclus que le driver pour les fichiers texte est très limité. Il ne traite le délimiteur décimal et le délimiteur de milliers que sur la première colonne. Les autres colonnes sont toujours interprétées comme texte. Aucune amélioration en 1.9.93. Pour preuve, il suffit de créer manuellement (avec le gestionnaire de bases de données) une base de données texte à partir d'un fichier contenant des nombres dans plusieurs colonnes. Visualiser le contenu de la table, et faire un clic droit sur l'en-tête d'une colonne de nombres, choisir formatage de colonne : c'est un format texte sauf pour la première colonne. Autre confirmation, trier une colonne comportant des valeurs comme 7.60 52.3 123.45 : l'ordre est incorrect.

Ceci n'empêche pas d'utiliser des colonnes remplies de nombres décimaux, à condition de se limiter au point décimal et sans séparateur de milliers: en fait les fonctions API comme getDouble interprètent le texte pour en obtenir un nombre.

Bernard