Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2008, 10h47   #1
Invité de passage
 
Inscription : avril 2004
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 34
Points : 4
Points : 4
Par défaut Limiter le nombre de caractère d'un champs dynamiquement

Bonjour,

Tout d'abord, config : forms 9i, base 10g.
J'aimerais savoir si il est possible de changer la limite du nombre de caractères d'un champs basé.
C'est à dire, on a deux champs(A et B) :
Si A =1 je veux que le champs B se limite à 100 caractère.
Si A = 2 je veux que le champs B se limite à 200 caractère.
...

Merci
gengen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 10h50   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu as regardé l'aide de SET_ITEM_PROPERTY ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 10h53   #3
Invité de passage
 
Inscription : avril 2004
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 34
Points : 4
Points : 4
Oui, j'ai regardé mais je n'ai rien trouvé.
gengen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 10h57   #4
Invité de passage
 
Inscription : avril 2004
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 34
Points : 4
Points : 4
Justement, je viens de trouver ça sur le tuto forms :

Longueur maximum nombre maximum de caractères saisissable :
Cette propriété ne peut être fixée qu'au moment du design.

Quelqu'un aurait une idée pour contourner le problème?
gengen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 11h04   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
éventuellement tu peux créer plusieurs items (A_100, A_200, etc...) avec chacun une règle différente et tu affiches celui qui t'intéresse en fonction de la valeur de A.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 11h16   #6
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Ou sinon tu peux afficher une erreur dans le WHEN-VALIDATE-ITEM.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 11h18   #7
Invité de passage
 
Inscription : avril 2004
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 34
Points : 4
Points : 4
A oui, je vois je vais créer un item pour chaque cas, basé sur le même champs, et j'affiche l'item qui correspond à la valeur.
j'y avais pas pensé . Merci
gengen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 11h28   #8
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
Vous pouvez utiliser la syntaxe suivante:

Code :
Set_Custom_property( 'block.item', 1, 'MAX_LENGTH', 200);
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 11h30   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
c'est beaucoup mieux
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 12h00   #10
Invité de passage
 
Inscription : avril 2004
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 34
Points : 4
Points : 4
Effectivement ca me simplifie réellement la tâche.
Je vais tester ça ce week-end.

Merci
gengen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 13h36   #11
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par SheikYerbouti Voir le message
Vous pouvez utiliser la syntaxe suivante:

Code :
Set_Custom_property( 'block.item', 1, MAX_LENGTH, 200);
Intéressant, je ne savais pas qu'il était possible de modifier dynamiquement des propriétés non modifiables via set_item_property. Est-ce documenté quelque part ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 13h40   #12
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
Non il n'y a aucune doc. Mais comme la plupart des items Forms sont un Pluggable Java Component (PJC), il est possible de fixer/lire les valeurs de ces propriétés.
Pour connaitre la liste des propriétés, il suffit de créer un simple PJC qui étend l'item en question (VTextField dans l'exemple) et de faire une sortie sur la console au niveau de la méthode setProperty().
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 13h44   #13
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
deplus, la surcharge de l'instruction Set_Custom_Property() ne permet que d'envoyer des valeurs de type VARCHAR, NUMBER ou BOOLEAN
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 14h06   #14
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
Sortie sur la console:

Citation:
Version de Forms Applet : 902110
setProperty()--> BORDER_BEVEL:oracle.forms.properties.BorderBevel@13ec2dd
setProperty()--> UI_PARENT:16
setProperty()--> LOCATION:java.awt.Point[x=43,y=47]
setProperty()--> OUTERSIZE:java.awt.Point[x=388,y=28]
setProperty()--> FOREGROUND:java.awt.Color[r=0,g=0,b=0]
setProperty()--> BACKGROUND:java.awt.Color[r=255,g=255,b=255]
setProperty()--> FONT:java.awt.Font[family=Dialog,name=Dialog,style=plain,size=11]
setProperty()--> BORDERUSE:true
setProperty()--> BORDER_BEVEL:oracle.forms.properties.BorderBevel@1f10a67
setProperty()--> LANGUAGE_DIRECTION:oracle.forms.properties.LanguageDirection@1e2161d
setProperty()--> DEFAULTKEYS:1
setProperty()--> CLASSNAME:oracle.forms.fd.PJCJtextArea
setProperty()--> MAX_LENGTH:30
setProperty()--> VISIBLE:true
setProperty()--> VALUE:coucou
getProperty()<-- EDITABLE:true
getProperty()<-- VALUE:coucou
getProperty()<-- FOREGROUND:java.awt.Color[r=0,g=0,b=0]
getProperty()<-- BACKGROUND:java.awt.Color[r=255,g=255,b=255]
setProperty()--> BGPATTERN:null
setProperty()--> FOCUS:true
getProperty()<-- EDITABLE:true
getProperty()<-- SELECTION:java.awt.Point[x=0,y=0]
getProperty()<-- OK_TO_PASTE:true
getProperty()<-- VALUE:coucou
...
a partir du code Java suivant:

Code :
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
package oracle.forms.fd;
 
import javax.swing.BorderFactory;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import oracle.ewt.util.stringFilter.StringFilter;
import oracle.forms.handler.IHandler;
import oracle.forms.ui.CustomEvent;
import oracle.forms.properties.ID;
import oracle.forms.ui.VTextField;
 
 
public class PJCJtextArea extends VTextField
 
{
    static IHandler mHandler;
    // properties you can SET
    protected static final ID SET_01   = ID.registerProperty("SET_01");
    protected static final ID SET_02   = ID.registerProperty("SET_02");
    // properties you can be get
    protected static final ID GET_01   = ID.registerProperty("GET_01");
    // events you can raise
    protected static final ID EVT_01   = ID.registerProperty("EVT_01");    
    protected JTextField jText = new JTextField();
    protected Border border, loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
    protected TitledBorder title;
 
    // DEFAULT constructor
    public PJCJtextArea()
    {
      super();
    }
 
    public void init(IHandler handler)
    {
      super.init(handler);
      mHandler = handler;
      // put your initialisation instructions here
    }      
 
 /**
   * Set the properties to the bean
   **/    
  public BOOLEAN setProperty(ID property, Object value)
  {
    System.out.println("setProperty()--> " + property+":"+value) ;       
    IF(property == SET_01)
    {     
       RETURN true;       
    }
    else IF (property == SET_02)
    {
        // ADD your code here
        RETURN true;
    }
    else // DEFAULT behaviour
    {
       RETURN super.setProperty(property, value);
    }      
  }
 
 /**
   * Get the properties of the bean
   **/
  public Object getProperty(ID property)
  {
    System.out.println("getProperty()<-- " + property+":"+super.getProperty(property)) ;       
    IF (property == GET_01)
    {
      // RETURN the corresponding value
      RETURN "the property needed" ;
    }
    else // DEFAULT behaviour
    {
      RETURN super.getProperty(property);
    }
  }
 
 
}
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 14h36   #15
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
petite correction : la propriété doit être passée entre quotes:
Code :
Set_Custom_Property('bloc.item',1, 'MAX_LENGTH',5);
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 15h24   #16
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Merci Sheik pour toutes ces précisions.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h01.


 
 
 
 
Partenaires

Hébergement Web