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

ASP.NET Discussion :

Génération automatique de rapport ASP


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut Génération automatique de rapport ASP
    Bonjour,

    Je possède un site de reporting en ASP.net. Mes rapports sont "on demand", ce qui signifie qu'un lien existe et ce dernier va executer la requete qui génerera mon rapport.
    Je souhaiterai créer un service windows qui irai, en fonction de certains parametres, générer des fichier XLS ou des fichier HTML à des heures planifiée, partant de mes pages ASP. Une sorte de scheduler donc.
    Est ce possible ?
    Comment m'y prendre ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    alors méthode simple:
    tu peux créer tes rapports au chargement d'une page x. après tu va dans le planificateur de taches, et tu va lancer internet explorer en passant en paramètre cette page.. et le tour est joué.

  3. #3
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    peut-tu etre plus precis sur quoi de ton application et non le comment.

    Je parle essentiellement de l'architecture que tu as choisis.

    Quelle est ton cahier des charges et l'on arrivera peut-etre a une solution plus simple ou plus appropriee a ton probleme.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut
    Citation Envoyé par zeavan Voir le message
    peut-tu etre plus precis sur quoi de ton application et non le comment.

    Je parle essentiellement de l'architecture que tu as choisis.

    Quelle est ton cahier des charges et l'on arrivera peut-etre a une solution plus simple ou plus appropriee a ton probleme.
    En fait, je possede une flopée de tableaux de bord consultable par un site web. Il est egalement possible à partir du site (asp) de faire des exports excels.
    Cependant, je souhaite pouvoir planifier la génération automatique (sans intervention humaine dc) de ces rapports, à heures prédéfinies.
    Je n'utilise pas de logiciel de design report tel BO ou Ireport, puisque mes rapports sont directement modelés en pages ASP.
    L'idée est donc de savoir s'il est possible de créer une application (de type service ou console) qui puisse aller soit eventuellement appeler une fonction qui existent dans les pages, soit lancer les pages via un navigateur (ou autre) en mode silencieux.

    Merci de votre aide

  5. #5
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    Comment le end user a acces a ton report ?

    Pour l'automatisation sans user interactivity :
    tu utilise pour cela un windows service .

    ce dont j'ai du mal a comprendre c'est pourquoi ton output doit etre fait necessairement en asp d'ou ma 1er question, peut-tu etre plus precis:
    les rapports doivent-ils etre archives (bizarre mais on sait jamais, doit il apparaitre en real time ,...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut
    Citation Envoyé par zeavan Voir le message
    Comment le end user a acces a ton report ?

    Pour l'automatisation sans user interactivity :
    tu utilise pour cela un windows service .

    ce dont j'ai du mal a comprendre c'est pourquoi ton output doit etre fait necessairement en asp d'ou ma 1er question, peut-tu etre plus precis:
    les rapports doivent-ils etre archives (bizarre mais on sait jamais, doit il apparaitre en real time ,...
    En fait, pour etre plus clair, ce sont plus des tableaux de bord que des rapports.
    L'utilisateur selectionne ses critères dans certains cas (l'année, le mois, etc..)
    En cliquant sur valider, une requete SQL est executée vers oracle, qui ramene les données que je remplit dans un tableaux qui s'affichera donc au moment ou l'utilisateur cliquera.
    C'est pour ca que j'ai parler de rapports "on demand".
    Du coup, mon souhait serai une sorte d'automatisation de cette génération.
    Mais avec, en entrée, mes pages ASP, et en sortie, un format HTML, XLS, ou autre

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Par défaut
    Citation Envoyé par triworld19 Voir le message
    Bonjour,

    Je possède un site de reporting en ASP.net. Mes rapports sont "on demand", ce qui signifie qu'un lien existe et ce dernier va executer la requete qui génerera mon rapport.
    Je souhaiterai créer un service windows qui irai, en fonction de certains parametres, générer des fichier XLS ou des fichier HTML à des heures planifiée, partant de mes pages ASP. Une sorte de scheduler donc.
    Est ce possible ?
    Comment m'y prendre ?

    Merci d'avance.
    Si tu utilises les reporting services via un report viewer, il est possible de générer directement ton PDF ou XLS par le code. Après, tu peux soit mettre une tâche planifié qui te lance un prgramme qui génère l'ensemble des rapports ou bien tu peux faire un service windows avec un timer paramétré.

    J'ai trouvé ce code là pour générer le rapport directement dans un fichier :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    /// <summary>
     
    /// References:
     
    /// </summary>
     
    private void RenderReport() {
     
        LocalReport localReport = new LocalReport();
     
        localReport.ReportPath = Server.MapPath("~/Report.rdlc");
     
     
        //A method that returns a collection for our report
     
        //Note: A report can have multiple data sources
     
        List<Employee> employeeCollection = GetData();
     
     
     
        //Give the collection a name (EmployeeCollection) so that we can reference it in our report designer
     
        ReportDataSource reportDataSource = new ReportDataSource("EmployeeCollection", employeeCollection);
     
        localReport.DataSources.Add(reportDataSource);
     
     
     
        string reportType = "PDF";
     
        string mimeType;
     
        string encoding;
     
        string fileNameExtension;
     
     
     
        //The DeviceInfo settings should be changed based on the reportType
     
        //http://msdn2.microsoft.com/en-us/library/ms155397.aspx
     
        string deviceInfo =
     
        "<DeviceInfo>" +
     
        "  <OutputFormat>PDF</OutputFormat>" +
     
        "  <PageWidth>8.5in</PageWidth>" +
     
        "  <PageHeight>11in</PageHeight>" +
     
        "  <MarginTop>0.5in</MarginTop>" +
     
        "  <MarginLeft>1in</MarginLeft>" +
     
        "  <MarginRight>1in</MarginRight>" +
     
        "  <MarginBottom>0.5in</MarginBottom>" +
     
        "</DeviceInfo>";
     
     
     
        Warning[] warnings;
     
        string[] streams;
     
        byte[] renderedBytes;
     
     
     
        //Render the report
     
        renderedBytes = localReport.Render(
     
            reportType,
     
            deviceInfo,
     
            out mimeType,
     
            out encoding,
     
            out fileNameExtension,
     
            out streams,
     
            out warnings);
     
     
     
        //Clear the response stream and write the bytes to the outputstream
     
        //Set content-disposition to "attachment" so that user is prompted to take an action
     
        //on the file (open or save)
     
        //Response.Clear();
     
        //Response.ContentType = mimeType;
     
        //Response.AddHeader("content-disposition", "attachment; filename=foo." + fileNameExtension);
     
        //Response.BinaryWrite(renderedBytes);
     
        //Response.End();
     
    }
    Reste à changer le type dans le deviceinfo si tu veux un XLS.
    En espérant que ca fasse avancer le chmilblik ...

Discussions similaires

  1. [2008] Génération automatique de plusieurs rapports
    Par lucazzo dans le forum SSRS
    Réponses: 1
    Dernier message: 22/05/2015, 17h27
  2. Génération automatique de rapport ?
    Par NedaRyme dans le forum iReport
    Réponses: 7
    Dernier message: 14/03/2008, 11h00
  3. [Plugin]Gestion de génération automatique de code
    Par Maggic dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/05/2004, 11h35
  4. [JUnit] Générer automatiquement un rapport
    Par yanis97 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 09/03/2004, 18h11

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