Bonjour,
en faite tout est dans le titre, j'ai trouvé un code que j'ai pas compris, ou ils utilisent '#' comme suit:
Quelqu'un pourra m'expliquer cela?Code:copy ('#='||TO_CHAR(:GEN.BAK),'SAD.SAD_L_SAD') ;
Version imprimable
Bonjour,
en faite tout est dans le titre, j'ai trouvé un code que j'ai pas compris, ou ils utilisent '#' comme suit:
Quelqu'un pourra m'expliquer cela?Code:copy ('#='||TO_CHAR(:GEN.BAK),'SAD.SAD_L_SAD') ;
Aucune réponse??!!! :(
Bon,
J'ai trouvé la signification, je la met pour toute fin utile.
En faite, dans le bout code:
'#' est interpreté comme l'item sur lequel COPY est appliquée (dans ce cas SAD.SAD_L_SAD)Code:copy ('#='||TO_CHAR(:GEN.BAK),'SAD.SAD_L_SAD') ;
Merci comme même...8-)
C'est la premiére fois que j'entends parler de ca, pourtant ca fait longtemps que je triture Forms dans tous les sens !
Est-tu sur que c'est une fonctionnalité Forms et pas une spécificité de l'appli ?
Peux- tu donner plus de détails ?
Merci
Bonsoir,
En faite, je pense que c'est une fonctionalité forms, je te donnerai l'exemple complet que j'avais tester et ça marche bien...
Supossant qu'on a un block defini ainsi:
Cela ne permettera pas d'utiliser l'index sur le champ d_emp.d_emb puisqu'on a la fonction NVL.Code:
1
2
3
4
5
6
7
8
9
10 DEFINE BLOCK NAME = d_emp TABLE = d_emp ....... ORDERING = <<< WHERE d_emp.n_emp = : d_emp.n_emp AND NVL(d_emp.d_emb, '') = NVL(:GEN.d_emb,'') ORDER BY GEN.d_emb >>>
Afin de palier à cela, on pourra procéder ainsi:
Cet exemple m'a parru bizzare au début mais quand j'ai testé, effectivement ça marche.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 DEFINE BLOCK NAME = d_emp TABLE = d_emp ORDERING = <<< WHERE d_emp.n_emp = : d_emp.n_emp ORDER BY d_emp.d_emb >>> DEFINE TRIGGER NAME = PRE-QUERY TRIGGER_TYPE=V4 TEXT = <<< if :GEN.d_emb IS NOT NULL then copy (#=||TO_CHAR(:GEN.d_emb), 'd_emp.d_emb) ; else copy (# IS NULL, d_emp.d_emb) ; end if; >>> ENDDEFINE TRIGGER
Cordialement,