Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
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 20/05/2011, 15h49   #1
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
Par défaut popup to confirm

Bonjour ,
voila , je dois lancer un popup , si un radio-bouton est coché et la zone texte a coté est vide
voila le code que j ai utilisé

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
if         w_box1  IS  NOT INITIAL  and  w_text1  eq space
           or w_box2  IS  NOT INITIAL  and  w_text2  eq space
           or w_box4  IS  NOT INITIAL  and  w_text4  eq space
           or w_box5   is  NOT INITIAL  and  w_text5  eq space
           or w_box6   IS  NOT INITIAL  and  w_text6  eq space
           or w_box7 IS NOT INITIAL  and  w_text7  eq space.
      CLEAR w_answer.
      CALL FUNCTION 'POPUP_TO_CONFIRM'.
        EXPORTING  
            titlebar               =  text-002
            objectvalue =  
             text_after = SPACE 
          text_before = text-006 =>   j’ajoute le text : 006 :   Etes-vous sure de mettre à blanc les données pour les lignes xxx?  

          text_button_1 = text-003 => oui 
          text_button_2 = text-004  
        IMPORTING
          answer        = w_answer.
    case w_answer.
       when '1'
         perform f300_mass_update_text
       when '2' 
           LEAVE SCREEN =>  retourné à l'écran précédant  
     when others 

      * do nothing 
    Endcase

Dans objectvalue je dois préciser la valeur du radio bouton qui a été coché
Par exemple :
Si le w_box2 e été cocher et la zone texte a coté est vide , le pop up doit afficher le message suivant :
etes-vous sure de mettre à blanc les données pour 'ADV comment 2' ? (sachant que ' adv comment 2 et la valeur du w_box 2)

Déjàje suis pas sur si c est correcte , et que object value sert à ça , si oui/non , alors
comment faire ?

Merci d avance et j espère que j étais claire .
hattas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 15h59   #2
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Salut,

Tu peux passer par l'instruction READ TEXTPOOL pour obtenir les textes de sélection.
(Voir ABAP Keyword Documentation - READ TEXTPOOL)

En lisant la table retournée, tu pourras retrouver le texte associé à ta case d'option.

Sinon, pour t'éviter des remontrances pour peu de choses, je corrige ta phrase :
« Êtes-vous sûr de mettre à blanc les données pour les lignes xxx »
=> Les majuscules sont accentuées en français.

Sinon, elle est un peu bizarre la tournure de phrase...
« - Êtes vous sûr de mettre à blanc les données ?
- Ben je n'en sais rien, si tu le dis c'est que ce doit être vrai. »

Je dirai plutôt « Êtes vous sûr de vouloir mettre à blanc les données », comme ça on devine que l'action n'a pas encore été faite.
__________________
Boaf...signature <= ça suffira ça ??
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 16h54   #3
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
merci pour ta réponse déjà
et oui tu as raison pour la phrase , mais bon c est le client qu'il l a rédigé dans sa demande
sinon , tu peux m aider d'avantages :s
et il y a pas d autre méthodes . Popup_to_confirm_with_value ne résoudra pas ce problème ???
hattas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 17h30   #4
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Citation:
Envoyé par hattas Voir le message
mais bon c'est le client qui l'a rédigée dans sa demande
Je vais reprendre et adapter une célèbre phrase culte des inconnus :
« Il ne faut pas prendre les clients pour des cons, mais ne pas oublier qu'ils le sont. »
=> Tin, si un jour on découvre qui je suis dans la vraie vie, je suis trop dans la mouise.

Même si la demande du client est écrite, rien ne t'empêche de proposer des idées, il ne faut pas être passif devant les demandes.
T'imagines, si dans la demande il était écrit « Après la réalisation, le développeur devra se jeter par la fenêtre pour des raisons de confidentialité »... Bon je reconnais que le mec qui écrit ça a surement un bon coup dans le nez, mais bon voila il ne faut pas tout le temps suivre à la lettre ce qui est écrit. T'en parles et s'ils restent sur leur position, ben dans ce cas là tu fais.

Bon trêve de blabla...

Pourquoi tu ne passes pas par une variable intermédiaire et tu y remplaces les valeurs. Puis cette variable tu la passes dans ton paramètre TEXT_BEFORE, tu te casseras moins la tête je pense.

Tu fais :
Code :
1
2
3
4
5
6
7
8
9
10
11
*Êtes-vous sûr de mettre à blanc les données pour &1.
MESSAGE text-006 TYPE 'I'
  WITH 'valeur'
  INTO l_message.

CALL FUNCTION 'POPUP_TO_CONFIRM'.
  EXPORTING
    titlebar = text-002
    text_after = SPACE
    text_before = l_message.
Tout simplement.

Ça t'irait ça?
__________________
Boaf...signature <= ça suffira ça ??
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2011, 17h04   #5
Membre confirmé
 
Inscription : août 2009
Messages : 226
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 226
Points : 239
Points : 239
"mettre à blanc", ça ne serait pas du charabia d'informaticien?
on ne dit pas plutôt "effacer"?
sandraros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 11h52   #6
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
merci Celdrøn ça marche bien pour cette partie et la je bloque sur une autre ,

Voila ,
j ai 6 case a coché , si sa arrive et l utilisateur coche une case et rempli le texte à coté , et s il saisi un autre texte et ne coche pas la case a coté , l écran doit rester bloqué , c est a dire , même s il clique sur enregistrer , le bouton doit être inactive et rester sur la même fenêtre

Sur le programme que j ai , si toutes les cases ne sont pas cochés et des textes saisies , la fenêtre reste bloqué , mais une fois , une seule case est coché et les autres non , sa ne marche pas

et d après ce que j ai compris , cette partie du code , qui fait l affaire mais j ai pas trouvé comment ils ont fais l appel

MODULE status_0200 OUTPUT.

SET PF-STATUS 'D0100'.

ENDMODULE
.


voila toute la partie du programme qui fait les testes

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
MODULE status_0200 OUTPUT.

  SET PF-STATUS 'D0100'.

ENDMODULE.                    "status_0200 OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0200  INPUT
*&---------------------------------------------------------------------*
*       BUpdate mass text of rebates
*----------------------------------------------------------------------*
MODULE user_command_0200 INPUT.
  CALL METHOD cl_gui_cfw=>dispatch.
  CASE w_ok_code.
    WHEN 'SAVE'.
      CHECK w_box1 IS NOT INITIAL OR w_box2 IS NOT INITIAL
         OR w_box4 IS NOT INITIAL OR w_box5 IS NOT INITIAL
         OR w_box6 IS NOT INITIAL OR w_box7 IS NOT INITIAL.

      PERFORM f300_mass_update_text.

      CALL METHOD w_alvgrid->refresh_table_display
        EXCEPTIONS
          finished = 1
          OTHERS   = 2.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      PERFORM exit_program.
    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR w_ok_code.
ENDMODULE.

Merci d avance
hattas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 12h35   #7
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Salut Hattas,

Serait-il possible que tu utilises les balises [code] (Croisillon '#' dans la barre d'outils de la zone de texte) ?
Afin que ton code soit formaté comme sur l'éditeur SAP et que ce soit plus facile à lire.
Merci.

Si je lis ta condition suivante :
Code :
1
2
3
4
5
6
7
CHECK w_box1 IS NOT INITIAL OR 
      w_box2 IS NOT INITIAL OR 
      w_box4 IS NOT INITIAL OR 
      w_box5 IS NOT INITIAL OR 
      w_box6 IS NOT INITIAL OR 
      w_box7 IS NOT INITIAL.
Tu ne testes que les... je ne sais quoi (case à cocher ou zone de texte).
Force toi à utiliser des préfixes parlant comme CB_ pour les case à cocher (Check-Box) et PA_ pour paramètre (PArameter). À moins que tes W_BOX ne soient que des variables dans lesquelles tu reprends les valeurs des zones d'écran.

Fin bref, je pense que W_BOX sont tes cases à cocher et je vois que tu testes si au moins l'une d'elle est cochée. Mais tu ne fais pas le test dont tu parles, c'est-à-dire case à cocher cochée et zone de texte remplie.
Je reconnais que la condition est un peu complexe à écrire, mais si j'ai bien compris :
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
*Test qu'il y a au moins un couple Case à cocher-Zone de texte rempli
* Et qu'il n'y a aucune zone de texte remplie seule
CHECK ( w_box1  IS NOT INITIAL AND 
        pa_box1 IS NOT INITIAL ) OR 
      ( w_box2  IS NOT INITIAL AND 
        pa_box2 IS NOT INITIAL ) OR 
      ( w_box4  IS NOT INITIAL AND 
        pa_box4 IS NOT INITIAL ) OR 
      ( w_box5  IS NOT INITIAL AND 
        pa_box5 IS NOT INITIAL ) OR 
      ( w_box6  IS NOT INITIAL AND 
        pa_box6 IS NOT INITIAL ) OR 
      ( w_box7  IS NOT INITIAL AND 
        pa_box6 IS NOT INITIAL )     AND 
      NOT ( w_box1  IS INITIAL AND 
            pa_box1 IS NOT INITIAL ) OR 
          ( w_box2  IS INITIAL AND 
            pa_box2 IS NOT INITIAL ) OR 
          ( w_box4  IS INITIAL AND 
            pa_box4 IS NOT INITIAL ) OR 
          ( w_box5  IS INITIAL AND 
            pa_box5 IS NOT INITIAL ) OR 
          ( w_box6  IS INITIAL AND 
            pa_box6 IS NOT INITIAL ) OR 
          ( w_box7  IS INITIAL AND 
            pa_box6 IS NOT INITIAL ).
C'est un peu tendu du slip, mais je pense que ça devrait fonctionner.
À tester donc.
__________________
Boaf...signature <= ça suffira ça ??
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h42   #8
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
le problème est que ce n est pas mon programme , c ' est le programme d un client et moi je ne fais que l analyse maintenant et réaliser quelque modifs demandé, j ai même pas le droit de tester mes modifs , jusqu'a ce que mon analyse soit valider par un supérieur
et voila , je dois ajouter des modifs ,tel que dans le cas ou case n est pas coché et text rempli , et plusieur d autres .

j ai pensé a une solution: j aimerai bien avoir ton avis

creation d une table interne t_table qui contient 3 champs : Box_name , Box , text

le champ Box_name va contenir les noms des box , w_box1 , w_box2 , w_box4 , w_box5, w_box6, w_box7
le champ Box va contenir :
- dans le cas si w_box concerné is not initial ' X' , sinn ' sapce '
le champ text va contenir :
- si w_text concerné est rempli : 'X' sinon ' sapce '
apres je fais le teste suivant

read table t_table where box = space
and text = 'X'
IF sy-subrc NE 0.
ne rien faire

je trouve que c est moins tordu et que ça peut faire l affaire ??
hattas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h28   #9
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
Apparemment , je vais travailler avec ta solution , elle fait l'affaire , merciii beaucoup
hattas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h46   #10
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Comment ça «moins tordu» ??
Tu oses dire que ma solution l'est ?!
Ben, c'est pas faux.

Ta solution n'était pas mauvaise vu qu'elle pouvait fonctionner.
Par contre, il aurait fallu que tu gères l'alimentation de la table à chaque fois que tu reviens dans le PAI, mais ce n'est pas impossible.

Sinon, même si tu n'as pas le droit de modifier un programme, qu'est ce qui t'empêches de faire une copie du programme, faire tes modifications et tests ? Ce qui n'est pas une perte de temps en soit même vu que ce sera toujours ça de fait et qu'une comparaison de programme se fait assez rapidement.

En plus, comble de l'ironie, on peut facilement annuler des modifications en reprenant la dernière version libérée via le gestionnaire des versions.
Fin bon, je vois que ce que j'ai dit plus haut n'est pas totalement faux en fait.
__________________
Boaf...signature <= ça suffira ça ??
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 15h08   #11
Invité de passage
 
Femme sara hatta
Étudiant
Inscription : mai 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Femme sara hatta
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 14
Points : 0
Points : 0
lol désole je voulais dire moins 'tendu du slip' :p
et puis c est des restrictions de la société , je peux pas toucher au programme ,
et le programme est très grand , avec des sous trucs lol , je peux pas copier le tout
Bon , on fait avec et merci encore

Cordialement,
Sara.
hattas 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 16h22.


 
 
 
 
Partenaires

Hébergement Web