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 :

Passer un paramètre utilisateur dans une unité de programme.


Sujet :

Reports Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut Passer un paramètre utilisateur dans une unité de programme.
    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 passer un paramètre utilisateur [p_mastview] qui est une variable envoyée par le Forms et qui est le nom d'une table.

    Dans mon interrogation SQL j'ai utilisé le &p_mastview et ça fonctionne soit:

    FROM &p_mastview

    Mais je veut me servir de cette variable dans une unité de programme dont voici le code:

    PROCEDURE P_GET_LOGO (P_LOGO IN OUT VARCHAR2) IS

    CURSOR CUR_LOGO IS
    SELECT COMP_LOGO_FILE_ON_WEB
    FROM DA.COMPANY
    WHERE COMP_CODE = :p_comp_code;

    CURSOR CUR_LOGO_DEPT IS
    select LOGO
    from DA.UETD_DEPT_INFOS
    WHERE COMP_CODE = :p_comp_code AND DEPARTMENT = :p_dept;

    cursor CUR_DEPT is
    select JFAPM_DEPT_CODE
    from DA.JFAPMAST; Changement ici

    V_LOGO VARCHAR2(100);
    V_DEPT VARCHAR2(100);

    BEGIN

    OPEN CUR_DEPT;
    FETCH CUR_DEPT INTO V_DEPT;
    CLOSE CUR_DEPT;
    :p_DEPT := V_DEPT;

    IF SUBSTR(:p_comp_code,1,1) in ('C','G') THEN

    OPEN CUR_LOGO_DEPT;
    FETCH CUR_LOGO_DEPT INTO V_LOGO;
    CLOSE CUR_LOGO_DEPT;
    P_LOGO := replace(V_LOGO,'.jpg','_check.jpg');

    ELSE

    OPEN CUR_LOGO;
    FETCH CUR_LOGO INTO V_LOGO;
    CLOSE CUR_LOGO;
    P_LOGO := replace(V_LOGO,'.jpg','_check.jpg');

    END IF;

    END;


    J'ai changé la variable pour la table from DA.JFAPMAST; plus haut dans le code mais j'aimerais à la place mettre soit &p_mastview ou :p_mastview parce que le forms peut changer la table selon les critéres demandés, mais ça ne fonctionne pas, je crois que c'est parce que c'est sur une instruction FROM, est-ce que quelqu'un aurait une idée.


    Merci à l'avance

    Clément
    Québec
    Canada.

  2. #2
    Membre éclairé Avatar de sofiane_bfm007
    Profil pro
    Consultant Décisionnel
    Inscrit en
    Mai 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Décisionnel

    Informations forums :
    Inscription : Mai 2008
    Messages : 261
    Par défaut
    je vais te donnais ce code essey le ça va marcher dans tout les appels de ton report a partir du forms
    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
    DECLARE
    p_desType number default CACHE;
    lMachine varchar2(200);
    lRepObj report_object;
    lRepServer varchar2(100);
    lRepJobId varchar2(100);
    lJobId varchar2(100);
    lRepStatus varchar2(30);
     
    pl_id ParamList;
    pl_name VARCHAR2(10) := 'param';
    LN$Valeur integer ;
    Begin
    pl_id := Get_Parameter_List(pl_name);
    IF NOT Id_Null(pl_id) THEN
    destroy_parameter_list(pl_name);
    pl_id := Create_Parameter_List(pl_name);
     
    IF Id_Null(pl_id) THEN
     Message('Error creating parameter list '||pl_name);
    RAISE Form_Trigger_Failure;
    END IF;
    ELSE
    pl_id := Create_Parameter_List(pl_name);
    END IF;
     
    add_parameter(pl_id,'code_cl1',TEXT_PARAMETER,:code_cl1); -- (1)
    --code_cl1 entre cotes est nom de paramètre de l'état "report"
    --:code_cl1 est la valeur sur le canvas
    add_parameter(pl_id,'code_cl2',TEXT_PARAMETER,:code_cl2); -- (2)
    -- si tu as +ieurs paramètres tu les ajoutes tous de la même manière
    -- si tu n’a pas de paramètres, tu enlèves (1) et (2)
    add_parameter(pl_id,'paramform',TEXT_PARAMETER,'no');
     
    lRepServer := 'rep_etat'; -- nom de report_server
    -- appel de l'état
    lRepObj:=find_report_object('report1'); --nom de l'état dans la forme
    lRepJobId := run_report_object( lRepObj,pl_id );
     
    If p_desType = cache then
    lJobId := substr(lRepJobId,length(lRepServer)+2);
    If      lJobId != 0    then
    lRepStatus := REPORT_OBJECT_STATUS(lRepJobId);
     
    If   lRepStatus = 'FINISHED'  then         WEB.SHOW_DOCUMENT('http://localhost:8889/reports/rwservlet/getjobid'||lJobId||'?server='||lRepServer,'_blank');
            	 End if;
    End if;
    End if;
    End;
    bon courage

  3. #3
    Membre expérimenté 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
    Par défaut
    Recevoir le nom de la table à travers un parametre et interroger cette table!
    Ce que tu veux faire, Je penses que c'est du Dynamique Sql.

Discussions similaires

  1. [AC-2010] passer un paramêtre VB dans une requete SQL
    Par Mairequimby dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/04/2011, 06h13
  2. [AC-2007] Paramètre demandé a l'utilisateur dans une requete
    Par EmmanuelleC dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/08/2010, 15h03
  3. Passer des paramètres cachés dans une URL?
    Par PeteZah dans le forum C#
    Réponses: 2
    Dernier message: 09/09/2008, 14h41
  4. Réponses: 3
    Dernier message: 25/04/2006, 10h30
  5. Réponses: 1
    Dernier message: 23/09/2005, 18h30

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