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

FastReport Discussion :

Création et sauvgarde de Fast Report sur BDD Sql server


Sujet :

FastReport

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut Création et sauvgarde de Fast Report sur BDD Sql server
    Bonjour;
    je suis entrain de développer une application Delphi2010+Sql server 2008 , actuellement , je suis sur le point d’établir des rapports d'impressions , je veux savoir comment puis-je ?
    créer , modifier, sauvgarder la Fast report , et la mettre sur un champ Blob sur SQL server ,pour qu'il soit traité par tout le monde sous reseau?
    j'ai fait une tentative avec succés sur Access mais sur Sql server l'opération echoué:
    1- pour la création:
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var
      memStream:TMemoryStream;
    begin
     
           try
             memStream:=TMemoryStream.Create;
             frxReport1.LoadFromFile(OpenDialog1.FileName);
             frxReport1.SaveToStream(memStream);
             memStream.Position:=0;
             dm.raport.Insert;
             dm.raportEtat.AsString:='ETAT';
             dm.raportBlob.LoadFromStream(memStream);
             dm.raport.Post;
           finally
             memStream.Free;
           end;
     
    end;
    pour la sauvegarde:
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
      memStream:TMemoryStream;
    begin
      try
        memStream:=TMemoryStream.Create;
        dm.raportBLOB.SaveToStream(memStream);
        memStream.Position:=0;
        frxReport1.LoadFromStream(memStream);
        frxReport1.DesignReport();
      finally
        memStream.Free;
      end;
    end;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 063
    Points : 41 023
    Points
    41 023
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    à première vue je dirais que c'est bon mais cela dépend peut-être des composants utilisés pour le faire.

    J'ai plus l'habitude d'utiliser des requêtes
    exemple avec Firedac + Firebird


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
      // UPDATE OR INSERT
      // récupérer ID
      // FDGabaritFr3.SQL.Text
      // SELECT ID, DESCRIPTION, GABARIT, CLE FROM GABARITFR3 &where ORDER BY ID,CLE
     
       Datas.FDGabaritFr3.Active:=False;
       Datas.FDGabaritFr3.MacroByName('where').AsRaw:='WHERE CLE='+Quotedstr(edtCode.text);
       Datas.FDGabaritFr3.Active:=True;
       if Datas.FDGabaritFr3.FieldByName('ID').isNull
         then FDSavePDF.ParamByName('ID').Clear()
         else FDSavePDF.ParamByName('ID').asInteger:=Datas.FDGabaritFr3.FieldByName('ID').asInteger;
       Datas.FDGabaritFr3.Active:=False;
      // Modifier/Insérrer
      // FDSavePDF.SQL.Text
      // UPDATE OR INSERT INTO GABARITFR3 (ID, DESCRIPTION, GABARIT, CLE)
      //  VALUES (:ID,:DESCRIPTION,:GABARIT,:CLE) MATCHING (CLE)
       FDSavePDF.ParamByName('CLE').AsString:=edtCode.Text;
       FDSavePDF.ParamByName('DESCRIPTION').AsString:=edtDescription.Text;
       FDSavePDF.ParamByName('GABARIT').LoadFromStream(AStream,TFieldType.ftBlob);
       FDSavePDF.ExecSQL;
       // Actualiser liste
       Datas.FDGabaritFr3.MacroByName('where').Clear;
       Datas.FDGabaritFr3.Active:=True;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut
    La solution tres simple :
    1-Création
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    procedure TJournal.Button2Click(Sender: TObject);
    var
      memStream:TMemoryStream;
    begin
     
           try
             memStream:=TMemoryStream.Create;
             frxReport1.LoadFromFile(OpenDialog1.FileName);
             frxReport1.SaveToStream(memStream);
             memStream.Position:=0;
             dm.raport.Insert;
             dm.raportEtat.AsString:='ETAT';
             dm.raportBlob.LoadFromStream(memStream);
             dm.raport.Post;
           finally
             memStream.Free;
           end;
     
    end;
    2-Modification/Sauvegarde:
    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TJournal.DBGrid2DblClick(Sender: TObject);
     
     
    var template : TStream;
    begin
    template := dm.raport.CreateBlobStream(dm.raport.FieldByName('blob'), bmRead);
    template.Position := 0;
    try
    frxReport1.LoadFromStream(template);
    frxReport1.DesignReport;
    finally
    template.Free;
    end;
    end;

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

Discussions similaires

  1. Restauration BDD SQL server sur nouvel ordinateur
    Par nagneau dans le forum Administration
    Réponses: 8
    Dernier message: 14/06/2017, 14h45
  2. Héritage de classes basé sur une bdd SQL Server
    Par p1xl_01 dans le forum Linq
    Réponses: 0
    Dernier message: 29/05/2010, 23h33
  3. [Config] Connexion BO sur Solaris avec BdD SQL Server
    Par bo_beginner dans le forum Administration-Migration
    Réponses: 3
    Dernier message: 10/11/2009, 14h20
  4. [SP-2007] Création rapport sur bdd sql sharepoint
    Par __CPU__ dans le forum SharePoint
    Réponses: 3
    Dernier message: 29/05/2009, 14h51
  5. Réponses: 5
    Dernier message: 26/02/2007, 01h50

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