|
Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Voilà, je rencontre plusieurs problèmes assez gênant au niveau d'un tableau et surtout avec les boutons qui l'accompagne :
Problème avec le bouton "Modifier" : Lors de la sélection d'une ligne dans le tableau, les données importées vers la fenêtre de modification est toujours la première ligne
Problème avec le bouton "Supprimer" : Quand on clique, ça ne supprime pas la bonne ligne, ce qui est assez gênant.
Ce qui me parait le plus étrange, c'est que j'ai réalisé mon tableau à partir du RAD donc logiquement, je ne devrais pas toucher le code... où est mon problème alors?
Contribution le : 22/01/2004 11:12
|
|
|
Re: Problèmes un tableau |
|
|
bizarre, effectivement ^^ peut tu donner un exemple de code qu'il y a dans ton bouton ? est-ce que l'indice de la ligne supprimée est toujours la meme ou est-ce qu'elle diffère ?
Argona
Contribution le : 22/01/2004 13:32
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Voilà le code du bouton modifier. Le problème ici est qu'il ne m'envoit pas le bon client vers le formulaire de saisie // ne fait rien si aucun enregistrement sélectionné dans la table
SI TableSelect(Frm_ListCli.Tab_ListCli)=-1 ALORS RETOUR
// Si c'est la ligne de saisie/sélection, on ne peut pas la supprimer
SI TableSelect(Frm_ListCli.Tab_ListCli)>TableOccurrence(Frm_ListCli.Tab_ListCli) ALORS
Info("Il n'y a aucun enregistrement sur cette ligne.","Modification impossible.")
RETOUR
FIN
// rafraichissement de la table avant la modification
// dans le cas où une modification à été faite sur un autre poste
TableAffiche(Frm_ListCli.Tab_ListCli,taCourantBandeau)
// On arrête le rafraichissement automatique de la fenêtre
Frm_ListCli.SuspendreRafraichissement(Vrai)
// Pour compatibilité avec les autres modèles de génération
HLitRecherche(CLIENT,IDCLIENT,REQ_SELECT_CLIENT.NomClient)
// ouverture de la fiche du fichier CLIENT en mode modification
SI Ouvre(Frm_InsertCli,"Modif") ALORS
// rafraichissement de la table si un enregistrement a été modifié
SI Frm_ListCli.ValeurFiltre~="" ALORS
HExécuteRequête(REQ_SELECT_CLIENT,hRequêteDéfaut+hModifieFichier)
SI ErreurDétectée ALORS
Erreur("Impossible d'accéder aux enregistrements de la table",HErreurInfo())
FIN
SINON
// Cas particulier
Frm_ListCli.RADSQLFiltre(ExtraitChaîne(Frm_ListCli.ValeurFiltre,1,"="),...
ExtraitChaîne(Frm_ListCli.ValeurFiltre,2,"="))
FIN
TableAffiche(Frm_ListCli.Tab_ListCli,taCourantBandeau)
FIN
// On relance le rafraichissement automatique de la fenêtre
Frm_ListCli.SuspendreRafraichissement(Faux)
Voici celui du bouton Supprimer. Là il ne me supprime pas la bonne ligne. Je pense que c'est un problème de rafraichissement mais bon... // ne fait rien si aucun enregistrement sélectionné dans la table
SI TableSelect(Frm_ListCli.Tab_ListCli)=-1 ALORS RETOUR
// Si c'est la ligne de saisie/sélection, on ne peut pas la supprimer
SI TableSelect(Frm_ListCli.Tab_ListCli)>TableOccurrence(Frm_ListCli.Tab_ListCli) ALORS
Info("Il n'y a aucun enregistrement sur cette ligne.","Suppression impossible.")
RETOUR
FIN
// On arrête le rafraichissement automatique de la fenêtre
Frm_ListCli.SuspendreRafraichissement(Vrai)
// si la suppression est confirmée, suppression de la ligne de la table et de
// l'enregistrement correspondant dans le fichier CLIENT
SI OuiNon("Voulez-vous vraiment supprimer ce client ?") ALORS
// Suppression de l'enregistrement à partir de la table
TableSupprime(Frm_ListCli.Tab_ListCli)
// Vérification de l'intégrité
SI HErreurIntégrité() ALORS
Erreur("La ligne sélectionnée n'a pas été supprimée : ",HErreurInfo())
FIN
FIN
// On relance le rafraichissement automatique de la fenêtre
Frm_ListCli.SuspendreRafraichissement(Faux)
Contribution le : 22/01/2004 14:10
|
|
|
Re: Problèmes un tableau |
|
|
pour etre sur d'effectuer l'opération sur la bonne ligne, rajoute le parammetre "Indice" dans ta fonction tablesupprime(...) tu peut récuperer l'indice avec le code suivant : indice_Ligne = tableselect(NomTable,1) pour encore + de sureté, affiche le résultat avec la fct trace()... c'est ce qu'il y a de mieux quand on veut éviter que les codes de raffraichissement d'une fenetre s'exécutent. perso j'utilise plus Info() ^^
Contribution le : 22/01/2004 15:36
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Ca marche il supprime la bonne ligne. mais il y a encore un problème d'affichage. Exemple :
On a dans la liste :
DUPOND DURAND DUMAS TOULO
On clique sur DURAND et on appuie sur Sup. Pouf! A l'écran on obtient :
DUPOND DURAND DUMAS
MAIS cependant, si je ferme la fenêtre et que je la réouvre, c'est bien DURAND qui a été supprimé et on voit :
DUPOND DUMAS TOULO
Comment remédier à ça?
Merci d'avance ^^
Contribution le : 22/01/2004 16:06
|
|
|
Re: Problèmes un tableau |
|
|
tu peut me donner le code de la fction Frm_ListCli.SuspendreRafraichissement(Faux)?? ca doit etre la dedans qu'il y a un chmil ... sinon tu a éxécuté la fction tableaffiche() en fin de code ? j'insiste, je suit désolée ... j'ai eu le meme soucis sur une fenetre générée par e rad dernierement ... sinon si ca fonctionne pas met la dans le code de reprise de focus de ta fenetre ^^
Contribution le : 22/01/2004 16:36
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Effectivement il manquait le TableAffiche() à la fin de la suppression. Etrange vu que c'est le code générer par le RAD... bon pas grave ^^ maintenant je le sais c'est parfait.
Reste mon soucis avec le bouton modifier qui ne me prend que les données de la première ligne pour les exporter vers le formulaire de saisie au lieu de la ligne sélectionnée.
HA! Et j'ai un autre "problème" mais je pense qu'il va vite se trouver une solution :
-J'utilise des ComboBox pour certains champs et une fois ces données affichées dans le tableau récapitulatif, je n'ai pas les données sélectionnées mais un numéro (qui est j'ai remarqué, leur position dans la liste déroulante). Même problème avec des cases à cocher et des Boutons radios.
Voilà voilà ^-^
Contribution le : 23/01/2004 11:09
|
|
|
Re: Problèmes un tableau |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Salut, Pour le bouton modifier Le suppose que ta table est une table mémoire. Une Solution Il préférable lorsque l'on utilise une table mémoire de créer une colonne invisible qui contiendra l'identifiant de l'enregistremnt souvent l' identifiant automatique de l'enregistremnt. En adméttant que cette colonne se nomme 'IdAuto' dans tans table memoire tu peut utiliser le code suivant pour te positionner sur le bon enregistrement.
nId est un entier
sFichier est une chaine = "MonFichier" //Nom de ton fichier
sCleRecherche est une chaine = "IdAuto" //Nom le la rubrique auto
sTableNom est une chaine="MaTable" //Nom de la table
enregistrements
SI {"MaTable"}..Occurrence=0 ALORS RETOUR
Si TableSelect(sTableNom)=-1 ALORS
INFO("Veuillez sélectionner une ligne!")
RETOUR
FIN
nId = IdAuto[{"MaTable"}] // IdAuto est le nom de la colonne qui contient les idAuto de ton fichier Cette colonne peut etre invisible
HLitRecherche(sFichier,sCleRubrique,nid)
Ouvre(<NomDeMafenetredDeModification>,"Modif")
Utiliser ensuite la fonction TableModifie(....) voir l'aide en ligne pour mettre à jour la ligne de la table avec les modifications apportées dans la fenetre de modification.
Contribution le : 23/01/2004 11:55
|
|
|
Re: Problèmes un tableau |
|
|
salut
pour ton pb de combo, au lieu de faire référence a la valeur de la combo, tu peut utiliser la propriété ..ValeurAffichée. Sinon dans le détail coche la case "Combo avec saisie", dans ce cas la la valeur retournée sera celle affichée ^^ @+
Bon ap a tous :) Argoa
Contribution le : 23/01/2004 12:16
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Ben j'ai pris ton code en l'adaptant à mon application mais mon problème est toujours le même. j'ai essayé de voir où été le problème en mettant un point d'arrêt juste avant l'ouverture de mon formulaire de saisie. Et la variable nId contient toujours la valeur zéro. Où est ce que je me suis trompé?
Contribution le : 23/01/2004 12:18
|
|
|
Re: Problèmes un tableau |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
1) As-tu ajouter une colonne dans ta table qui contient l'identifiant automatique de tes enregistrements?
2) As tu modifier la fonction TableAjoute(...) ou table AjouteLigne(...) pour ajouter cette identifiant?
Contribution le : 23/01/2004 12:29
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Pour le premier point oui. Pour le point 2, où est cette ligne de code car je ne la voit nulle part.
Contribution le : 23/01/2004 12:47
|
|
|
Re: Problèmes un tableau |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
A ne pas lire le fil de discution je fini par dire n'importe quoi, Pour test
4) dans l'onglet contenu de ta table combo Rubrique Mémorisé indique le nom de la rubrique représentant ton identifant automatique
dans le code de ton bouton controlependant le débuggage que nId doit etre <> de 0
Contribution le : 23/01/2004 14:10
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Okay ça marche merci ^^
Reste mon soucis à propos de mes menus déroulants qui renvoit les positions à la place des données.
je pense que c'est une fonction qui doit gérer ça mais je ne sais pas laquelle ^^'
Merci en tout cas pour tout ce que vous m'apprenez :)
Contribution le : 23/01/2004 14:39
|
|
|
Re: Problèmes un tableau |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Menu déroulant ????????? Je pense que tu veux parler des combos? Ci c'est le cas, le principe est le meme que pour la table Tu va dans la description de ta combo, tu clique sur l'onglet Contenu et tu sélectionne dans 'rubrique mémorisée' la rubrique que tu veux avoir en retour. Cette exemple fonctionne uniquement si ta combo est relié à une source de données dans sélection d'une ligne de la combo Cas ou la rubrique mémorisé est une valeur
nId est un entier
nid = <NomDeMaCombo>
Contribution le : 23/01/2004 14:55
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Oui menu déroulant = combo box ^^
Bon je vais te réexpliquer mon problème car je crois que tu n'as pas bien compris de quoi je parle :-p
Un exemple est toujours plus parlant :
Dans ma fenêtre de saisie, il y a 3 boutons radios :
° Mr ° Mme ° Mlle
On sélectionne MMe par exemple. Arrivé sur le tableau récapitulatif, il n'y a pas Mme dans la colonne Titre mais... 2. Si j'avais sélectionné Mr, il y aurait 1 et si j'avais sélectionné Mlle, il y aurait 3.
Même problème avec une combo. Si on a une combo : ____________ |____________|V |Monsieur | |Madame | |Mademoiselle|
Monsieur devient 1 dans le tableau, madame 2,etc...
Tu vois le problème? Et si on ne sélectionne rien, on obtient -1.
Contribution le : 23/01/2004 15:15
|
|
|
Re: Problèmes un tableau |
|
|
fait une recherche sur le nom de ta combo... tu verras bien quelles fctions l'utilisent ...
Contribution le : 23/01/2004 15:32
|
|
|
Re: Problèmes un tableau |
|
Utilisateur WDF
Inscrit: 15/01/2004 11:33
De Etoile (26)
Post(s): 70
|
Heu je ne comprends pas bien ton message ^^' Je ne cherche pas à savoir quelles fonctions utilisent ma combo... Est ce que tu veux peut être dire qu'à partir de l'indice je peux retrouver l'info qui s'y rattache même si elle n'est pas dans la fenêtre?
Contribution le : 23/01/2004 15:40
|
|
|
Re: Problèmes un tableau |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Ok Dans le descriptif de ton tableau récapitulatif tu clique sur la colonne Titre et tu sélectionne combo comme type de champs. Puis dans contenu Initial tu incrit en dur Monsieur Madame Mademoiselle
Tu clique ensuite sur l'onglet détai et tu sélectionne 'Sans bouton' dans le groupe 'Bouton de la combo'
Relance ta fenêtre et la cela doit fonctionner.
Contribution le : 23/01/2004 15:47
|
|
|
Re: Problèmes un tableau |
|
|
avec ta combo , t'a fait comme je t'ai di ? t'a sélectionné l'option de saisie? moi je disais ca pasque je croyais que tu l'avait fait :p
Contribution le : 23/01/2004 15:51
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|