IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

FB + Delphi + Publication de doc


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    230
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 230
    Par défaut FB + Delphi + Publication de doc
    Bonjour,

    Je développe un projet sous Delphi XE2 et FB 2.5.

    Je cherche une solution pour publier un rapport à partir:
    • des données contenues dans la bdd
    • des images contenues dans la bdd
    • d'un fichier squelette contenu dans la bdd.

    Ce fichier sera éditable à partir de l'application et sera composé de balises à remplacer par les données de la bdd lors de la publication du document (ex: "balise_nomentreprise" du fichier squelette sera remplacée par "groggle" lors de la publication).

    Quelle serait la meilleure solution pour mettre en place un tel outil ?
    Je me demande:
    • quel type de fichier je dois utiliser (word, html, xml ?)
    • comment le stocker dans la bdd(blob je suppose) ?
    • comment avoir une visu modifiable de ce fichier squelette (composant vcl?) ?

    L'insertion du fichier squelette dans la bdd n'est pas obligatoire.

    Par contre, pour l'avoir déjà utilisé dans une autre vie, je pense que je n'utiliserai pas OLE/Word car trop dépendant des versions de Word installées sur les postes.

    Merci pour vos retours.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    l'XML me semble le plus ouvert
    Surtout couplé à un XSL qui te permettra dans le transformer en un autre XML, en HTML, en JSON ou même en format DFM

    les outils de Reporting comme Report Builder, utilise une DFM comme format de stockage du modèle, après tout, c'est qu'un ensemble de TComponent que l'on peut imbriquer dans des TCollection
    ou même des TGraphicControl qui gère le Canvas aussi bien à l'écran qu'à l'impression


    Pour le stockage, j'ai stocké en BLOB, des Word, Excel, PDF ..., perso, j'utilise souvent une table dédiée à cela, après c'est juste des jointures pour associer un ID Lamda à un ID de Document
    J'hévite les blobs directement avec une autre table de donné, surtout si l'on a tendance à utiliser trop souvent le SELECT *

    En C++Builder, j'ai récemment utilisé un TClientDataSet pour gérer une contenu "polymorphe" d'une table !
    Cette table est composé d'une clé primaire (deux clé étrangère) et d'un BLOB contenant le binaire Midas, le contenu de celui-ci peut varier car exploiter par différentes implémentations de la même interface dans plusieurs DLL et je n'avais pas envie de faire une table par implémentation

    Pour le merge de balise, faudrait te trouver un équivalent Delphi au Smarty du PHP

    Perso, j'en ai fait un récemment en C++Builder, un RTF contenant des <BALISE>, ouverture du fichier avec un TStringStream, des StringReplace brutal et pas optimisé, et ça génère un RTF mergé prêt à être imprimé au besoin !

    Pour intégrer un Builder, tu as des composant comme TJvInspector, alors l'outil de Scripting de TMS

    le XML génére une DFM, tu joues avec l'IDE de TMS, puis une fonction Delphi te retransforme la DFM en XML



    J'avais fait la même chose en Delphi, il y a quelques années
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    230
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 230
    Par défaut
    Bonjour ShaiLeTroll,

    Je te remercie pour ta réponse même si de nombreuses notions (DFM ? C'est le même DFM que les fiches Delphi ?) dont tu me parles sont obscures pour moi

    Pour le stockage, j'ai stocké en BLOB, des Word, Excel, PDF ..., perso, j'utilise souvent une table dédiée à cela, après c'est juste des jointures pour associer un ID Lamda à un ID de Document
    J'hévite les blobs directement avec une autre table de donné, surtout si l'on a tendance à utiliser trop souvent le SELECT *
    OK, j'étais parti sur ce modèle de base.

    Pour intégrer un Builder, tu as des composant comme TJvInspector, alors l'outil de Scripting de TMS
    le XML génére une DFM, tu joues avec l'IDE de TMS, puis une fonction Delphi te retransforme la DFM en XML
    Tu me parles de la manière dont l’utilisateur pourrait construire son fichier à travers mon appli ? TJvInspector ne fait pas ça il me semble .
    Il faut pour l'utilisateur un éditeur de texte complet (type quasi-Word) intégré au programme dans lequel il pourra mettre en page son doc et ajouter ses <balises>. Ensuite j'enregistre le fichier au format xml.

    Perso, j'en ai fait un récemment en C++Builder, un RTF contenant des <BALISE>, ouverture du fichier avec un TStringStream, des StringReplace brutal et pas optimisé, et ça génère un RTF mergé prêt à être imprimé au besoin !
    Je pensais faire de même sur le fichier xml mis en page par l'utilisateur. Tu dis que c'est brutal et non optimisé. Comment faire mieux ?

    Merci

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    Citation Envoyé par lefju cabro Voir le message
    DFM ? C'est le même DFM que les fiches Delphi
    le même DFM, manipulable via TStream.ReadComponent\Write et les fonctions ObjectTextToBinary\ObjectBinaryToText pour convertir une DFM binaire en DFM Texte et réciproquement


    Citation Envoyé par lefju cabro Voir le message
    Tu me parles de la manière dont l’utilisateur pourrait construire son fichier à travers mon appli ? TJvInspector ne fait pas ça il me semble .
    Oui, ce n'est qu'une partie, j'utilisais Greatis Form Designer pour cela !
    C'était pour construire des écrans !

    Un Rapport c'est pas très différent, c'est un tas de Label

    Mais, tu peux faire plus simple avec RTF et Wordpad, l'avantage est que RTF est simple à modifier à la main par rapport à un fichier word, et que son format est moins "fluctuant"

    Citation Envoyé par lefju cabro Voir le message
    Je pensais faire de même sur le fichier xml mis en page par l'utilisateur. Tu dis que c'est brutal et non optimisé. Comment faire mieux ?
    Le RTF modèle dans la dernier appli fait 2Ko, c'est quasi-instantanée !
    Disons que pour un fichier de 1Mo, ça passera, tout dépend le nombre de balise, dans ma problématique, c'était des noms de champ d'une table (environ 60)

    Tu verras par la suite pour les perfs, fait juste un code assez souple pour faciliter par d'un "merger" à un autre au besoin


    As-tu étudier FastReport et un export en PDF ?
    Cela peut faire cela aussi !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    230
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 230
    Par défaut
    Merci pour tes conseils ShaiLeTroll mais je suis perdu.

    J'ai regardé les DFM et Greatis Form Designer mais je ne pense pas (ou alors je ne vois pas) comment l'utiliser dans mon cas. Et c'est peut-être trop puissant pour ce que je souhaite faire.

    Concernant FastReport, que je connaissais uniquement de nom, j'ai pu tester une version d'essai mais le paramétrage du document par un utilisateur me parait compliqué: la création de champs et le lien avec la donnée rebutera nos utilisateurs. Ou alors existe-t-il une méthode que je pourrai utiliser dans Delphi de manière conviviale ?

    Je souhaite un éditeur de texte facile à utiliser/modifier/paramétrer et très amélioré (presque comme Word mais sans le problème de version).
    Serait-il possible de:
    - créer un fichier Word qui sera modifié par l'utilisateur
    - enregistrer ce ficher Word dans la BDD au format XML
    - modifier le XML contenu dans la BDD dans Word
    - remplacer les balises du XML lors de la publication
    - publier ce XML avec la mise en page du Word
    Possible ou je suis en plein délire ?

    Merci

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    Quel est le format souhaite à la sortie ?
    Une impression papier ?
    Une page Web en ligne ?
    Un Fichier PDF ?

    Le plus difficile sera la modification façon Word !

    Pourquoi tu ne commences pas par un RTF et Wordpad, un truc simple
    un TRichEdit pour la modification et tu pourras fournir l'ajout des tes balises !

    De te façon, pour certains utilisateurs même une <BALISE> c'est déjà trop compliqué !


    Si c'est un projet pro, refléchi à de la prestation, fait toi un outil facile à utiliser pour un développeur ou un utilisateur "averti", tu pourras soit vendre de la formation, et pour les flemards, tu vends de la prestation pour configurer leurs impressions et autres courriers


    Pour le moment, tu es en train de vouloir refaire Word et ses champs de fusion !

    ReportBuilder équipé d'un TwwRichEdit gère des RTF avec balise, il fait automatiquement les merges

    Je l'avais fait à la main car je devais générer un fichier TXT non formaté au lieu d'une sortie PDF\Papier, je n'avais pas trouvé sur le ReportBuilder comment faire une telle sortie, d'où un merge à la mano !
    En fouillant, quelques temps plus tard, je pense que RB aurait pu me le faire !
    Le code fonctionnait, TPCM, comme c'était pour de l'envoie en masse, je maitrisais mieux l'affaire !


    Tu pourras imaginer un système XML <-> HTML par la suite mais cela me semble peut-être inutilement complexe pour ta problèmatique
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. composants delphi convertion PDF,DOC,PPT .. en TXT ?
    Par pragmatique dans le forum Composants VCL
    Réponses: 6
    Dernier message: 15/10/2011, 20h02
  2. Ouvrir un fichier *.doc ou *.excel avec Delphi
    Par cincap dans le forum Débuter
    Réponses: 5
    Dernier message: 03/08/2008, 15h06
  3. Réponses: 1
    Dernier message: 23/03/2007, 11h43
  4. Cherche doc DELPHI en pdf :)
    Par fantome_213 dans le forum Delphi
    Réponses: 3
    Dernier message: 16/11/2006, 16h51
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo