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

Jasper Discussion :

utilisation d'une fonction dans la source de donnée


Sujet :

Jasper

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut utilisation d'une fonction dans la source de donnée
    J'essaie d'utiliser une fonction dans la source de donnée d'un rapport dans iReport 3.7.6 mais le champs n'est pas disponible.

    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
     
    SELECT
     
    lignes_vente.art_id AS "Id",
    nom_article AS "Nom",
    garantie_magasin AS "Garantie magasin",
    mois_garantie AS "Mois de garantie",
    quant_vendue AS "Quantité",
    prix_vente AS "Prix",
    remise AS "Remise",
    round((quant_vendue * prix_vente * (1 - (remise / 100))),2) AS "Total",
     
    get_art_tva_taux(lignes_vente.art_id, $P{DATE_VENTE}) AS "Taux Tva",
     
    FROM lignes_vente
    LEFT OUTER JOIN noms_article ON noms_article.art_id = lignes_vente.art_id AND noms_article.langue_id = 0 -- remplacer 0 par un paramètre
     
    WHERE lignes_vente.vente_id = $P{VENTE_ID}
     
    ORDER BY lignes_vente.art_id
    Voici la déclaration de la fonction get_art_tva_taux :
    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
     
    CREATE OR REPLACE FUNCTION "public"."get_art_tva_taux" (
      "art_id" integer,
      "date_rech" date
    )
    RETURNS numeric AS
    $body$
    DECLARE
      tauxTva NUMERIC;
    BEGIN
      SELECT INTO tauxTva taux_tva 
      FROM tva_validités
      WHERE tva_validités.tva_id = (SELECT tva_id FROM art_tva WHERE art_tva.art_id = art_id AND art_tva.validité >= date_rech ORDER BY validité LIMIT 1)
      		AND validité >= date_rech
      ORDER BY validité;
     
      RETURN tauxTva;
    END;
    Si quelqu'un a une idée ou une piste...

    Merci d'avance.

  2. #2
    Membre averti

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 293
    Points : 440
    Points
    440
    Par défaut
    J'utilise souvent des fonctions dans les requêtes de mes rapports (sur une base Oracle) et je n'ai jamais eu de problèmes.
    Ma vision c'est que c'est transparent pour jasper : il passe la requête au RDBMS et celui-ci se débrouille,mouline et rend le résultat.
    Peut-être ai-je une vision trop simpliste de la chose.

    En tous cas, avec Oracle, çà marche

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    J'ai trouvé.

    J'ai assigné des valeurs par défaut à mes paramètres

    DATE_VENTE = new java.util.Date()

    VENTE_ID = new Long(2010010000)

    et là cela fonctionne...bizarre quand même.

  4. #4
    Membre averti

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 293
    Points : 440
    Points
    440
    Par défaut
    Oui c'est bizarre en effet. Selon moi, ce n'est pas lié à la fonction mais plutôt à tes paramètres.
    Le fait de mettre une valeur par défaut ne sert que s'ils sont absents.
    Tu les fais afficher dans ton rapport pour voir leur valeur ???

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    Oui je les fais afficher

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

Discussions similaires

  1. utilisation d'une fonction dans SSIS
    Par caballero dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/06/2007, 10h15
  2. Bug lors de l'utilisation d'une fonction dans une macro.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2007, 14h35
  3. [Syntaxe] utilisation d'une fonction dans mysql
    Par mussara dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 01/04/2007, 19h40
  4. utilisation d'une fonction dans un cham texte
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 11/09/2006, 14h16
  5. Utilisation d'une fonction dans une procedure
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/08/2005, 15h51

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