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

Reports Oracle Discussion :

Changer la description d'un champ texte via code


Sujet :

Reports Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Changer la description d'un champ texte via code
    Ma version:

    Report Builder 10.1.2.0.2
    ORACLE Server Release 10.1.0.4.2
    Oracle Procedure Builder 10.1.2.0.2
    Oracle ORACLE PL/SQL V10.1.0.4.2 - Production
    Oracle CORE 10.1.0.4.0 Production
    Oracle Tools Integration Services 10.1.2.0.2
    Oracle Tools Common Area 10.1.2.0.2
    Oracle Toolkit 2 pour Windows plate-forme 32 bits 10.1.2.0.2
    Resource Object Store 10.1.2.0.2
    Oracle Help 10.1.2.0.2
    Oracle Sqlmgr 10.1.2.0.2
    Oracle Query Builder 10.1.2.0.2 - Production
    PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
    Oracle ZRC 10.1.2.0.2
    Oracle XML Developers Kit 10.1.0.4.2 - Production
    Oracle Virtual Graphics System 10.1.2.0.2
    Oracle Image 10.1.2.0.2
    Oracle Multimedia Widget 10.1.2.0.2
    Oracle Tools GUI Utilities 10.1.2.0.2

    Ma question:

    Comment changer la description d'un champ texte via le code.

    J'ai un paramètre utilisateur P_Langue, en fonction de ce paramètre je veux changer la description dans le style:

    If p_langue = 'F' then
    b_titre := 'Voici le titre'
    else
    b_titre := 'There is the title'
    endif;



    Merci a l'avance

    Clément
    Québec
    Canada.

  2. #2
    Membre actif Avatar de JerryMouse
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 215
    Points : 295
    Points
    295
    Par défaut
    Après ton End If;, Appelle la procedure suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set_Item_Property('Block.Champ',Prompt_Text,b_titre)
    pour changer l'invite de ton champ.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci je vais essayer avec ce code.

    As-tu un exemple de code car de mon coté ca ne fonctionne pas, ca fonctionne tres bien dans le Forms Builder, mais pas dans le Report Builder.

    Je continue à chercher.

    Merci

    Clément.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il te suffit de mettre un : devant le nom de l'item

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If :p_langue = 'F' then
    :b_titre := 'Voici le titre';
    else
    :b_titre := 'There is the title';
    end if;

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci mais même si je mets un [ : ] j'ai un message me disant que la variable doit etre déclarée.

    A noter que ce champ [b_titre] est un champ texte dans l'entete du rapport.

    Si vous avez d'autre suggestions.

    Merci.

    Clément.

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    J'ai ajouté une colonnes de formule a mon champ.

    J'ai mis le code suivant a ma colonne de formule.

    _________________

    function CF_titreFormula return Char is
    begin
    if :p_langue = 'F' then
    return('Ceci est un titre');
    else
    return('There is a title');
    end if;
    end;

    __________________________________

    et maintenant ça fonctionne. Mais si je dois faire cela avec plusieurs champs, il doit y avoir une meilleure méthode.

    Je continue

    Merçi

    Clément.

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    __________________________________

    et maintenant ça fonctionne. Mais si je dois faire cela avec plusieurs champs, il doit y avoir une meilleure méthode.

    Voici mes idées :

    1. Il faut utiliser une table de paramétrage du genre tparam(code, tfrancais, tenglish) et ça ira
    ou
    2. mettre au point un package avec tous tes éléments.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    A noter que je n'ai pas accès à la création de table, c'est un ERP externe, je ne peut que prendre les données de leurs tables.

    Merci, j'ai fait une autre astuce, je me suis créer 2 textes, un en francais et un en anglais.

    Sur le texte anglais j'ai mis le code:

    function B_TITRE_ENGFormatTrigger return boolean is
    begin
    IF :REF_LANG = 'ENG' THEN
    return (TRUE);
    ELSE
    return (FALSE);
    END IF;
    end;


    et sur le texte français le code:

    function B_TITRE_FREFormatTrigger return boolean is
    begin
    IF :REF_LANG = 'ENG' THEN
    return (FALSE);
    ELSE
    return (TRUE);
    END IF;
    end;


    J'ai fait cela sur tous les textes que je voulais mettre anglais et français.

    Je cherche toujours comment changer le texte via le code, si quelqu'un le trouve, je suis preneur, car l'inconvénient c'est que ça me prend 2 textes.

    Clément.

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 64
    Points
    64
    Par défaut
    moi pareille je le fait changer via le code:
    je crée une fonction que j'appel 'TITRE' par exemple
    au niveau de la vue presentation je cree un champ texte et j'appel ma fonction par et le code fait le reste selon les condition il me renvoie le texte voulu.

    Bonne chance

Discussions similaires

  1. [IP-2007] Mise à jour champ texte via zone liste déroulante
    Par aroundes dans le forum InfoPath
    Réponses: 0
    Dernier message: 08/03/2010, 11h47
  2. Changer la taille d'un champ texte
    Par pitoumad dans le forum IHM
    Réponses: 6
    Dernier message: 07/02/2010, 21h29
  3. Changer le libellé d'un champ texte
    Par c_d_o_s dans le forum Forms
    Réponses: 1
    Dernier message: 05/05/2008, 22h07
  4. Mise à jour d'un champ texte via une liste déroulante
    Par dedein84 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2008, 20h24
  5. changer la value d'un champ texte
    Par kidu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2005, 16h10

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