Problème avec un case ... of

Résolu
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 7 févr. 2007 à 09:26
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 8 févr. 2007 à 10:37
Bonjour
j'aurais besoin de votre aide.
je voudrais créer une fonction avec des case permettant de recuperer ces résutats

j'ai 4 items list(bouton cmbXPASS, combobox)

0,75
1
1,5
2
2,5
3
3,5
4

la fonction :cChp_abGMaj_RemunEuros_Ste 66 --> bouton JDBE_GM_Remun

la fonction :cChp_abGMaj_RemunNbPass_Ste --> bouton cmbXPASS

*si le montant saisi par l'utilisateur est = à la valeur du PASS c'est à dire les valeurs de l'items, on affiche le PASS correspondant

* si le montant saisi par l'utilisateur est comprise entre deux 1/2 PASS c'est à dire entre [0,75-1] on choisi le PASS superieur donc "1"
---------------------------------------------------------------------------------------------------------------------------

j'aurais besoin de votre aide pour créer un case ou une autre fonction
qui me permet de gérer les résultat saisi par l'utilisateur


j'ai commencé à faire mon case mais j'ai plein d'erreur

//la fonction qui permet de calculer le bon pourcentage(essai)
case wDBM.JTab_E0.FieldByName(cChpRemun).asString

    0:
      begin
        cmbXPASS.ItemIndex := 0,75;
      if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString

      end;

    1:
    begin
        cmbXPASS.ItemIndex := 1;
      if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString
      end;
   2:
    begin
        cmbXPASS.ItemIndex := 1,5;
      if wDBM.JTab_E0.FieldByName(cChp_abGMaj_RemunEuros_Ste).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChp_abGMaj_RemunNbPass_Ste).asString
      end;
  3:
    begin
        cmbXPASS.ItemIndex := 2;
      if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass.asString
      end;
  4:
    begin
        cmbXPASS.ItemIndex := 2,5;
      if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString
      end;
  5:
    begin
        cmbXPASS.ItemIndex := 3;
      if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString
      end;
  6:
    begin
        cmbXPASS.ItemIndex := 3,5;
      if wDBM.JTab_E0.FieldByName(cChpRemun.asFloat =< cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString
      end;
  7:
    begin
    cmbXPASS.ItemIndex := 4;
          if wDBM.JTab_E0.FieldByName(cChpRemun).asFloat < cmbXPASS.ItemIndex then
          wDBM.JTab_E0.FieldByName(cChpRemunNbPass).asString;
    end;
end;



merci de votre aide , car je suis un peu bloquée

4 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
7 févr. 2007 à 12:19
wDBM.JTab_E0.FieldByName(cChpRemun).asString

Tu ne peux pas faire une case avec un string...
Par cotre avec un caracetere oui, donc essaie
s := wDBM.JTab_E0.FieldByName(cChpRemun).asString

et fais un case avec s[0]
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 févr. 2007 à 16:33
Salut,

il existe une autre méthode qui offre bien plus de flexibilité :

en admettant que tes valeurs soient comprises entre 0 et 50 (par exemple) la méthode CptPingu ne fonctionnera plus

alors que celle-ci  oui :

Case StrToIntDef(wDBM.JTab_E0.FieldByName(cChpRemun).asString, -1) Do
   -1 :; ShowMessage(' Erreur : cChpRemun n''est pas un entier correcte');
    0 : ;
    10 :;
    20 :;
    50 :;
End; // Case

 
@+
Cirec

<hr size="2" />
3
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 5 avril 2007
7 févr. 2007 à 13:29
Ok, merci pour tes explications et ta réponse

je vais tester.
0
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 5 avril 2007
8 févr. 2007 à 10:37
Je vous remercie pour votre aide, j'ai réussi à résoudre mon problème.

Merci à CptPingu et Cirec.

à +
Lilo
0
Rejoignez-nous