Probleme de selection dans une table memoire
Utilisateur WDF
Inscrit:
19/04/2006 18:20
Post(s): 63
J'ai une table memoire alimenter par une requete,elle se remplis tres bien

J 'ai un champs date qui est FFDATE
Et un champs que je veux modifie soit par oui ou non qui est FFTXFEDAP

Le fichier qui aliment la requete est un dbf en acces natif


A partir d'une ligne quelconque possedant une date soit FFDATE je veux modifier toute les lignes possedant la meme date
dela ligne selectionner. bouton "cochez tous " Fonctionne Pourr une meilleur comprehension de l'environnement je vous ai inscrit le code

*************cochez tous **************************

i est un entier

POUR i=1 A TableOccurrence(Table)

TableSelectPlus(Table,i)
SI Table.FFTXFEDAP = "O" ALORS
Table.FFTXFEDAP = "N"
TableEnregistre(Table)
FIN

FIN

TableAffiche(Table)
************************************************************

************** cochez par date ********************


i est un entier
ldate est une chaine=FFDATE[tableselect(Table)]
POUR i=1 A TableOccurrence(Table)
SI Table.FFDATE [i] = ldate ALORS

Table.FFTXFEDAP [i]="O"


TableEnregistre (Table)
FIN
FIN
TableAffiche(Table)

******************************************
Probleme rencontrer
Cochez par date modifie que la ligne ou je suis situe...!
et non les ligne qui ont la meme date

Autre probleme

Dans le cas de decochez tous ou cochez tous

si je ne suis pas en bas de ma table dans une ligne nouvelle il me donne souvent une erreur qui est la meme dans le cas cochez par date

" Une erreur est survenue dans la fenetre, erreur de l'acces natif Xbase numero de l'erreur 1060
Le numero d'enregistrement specifie est invalide ou il n'y a pas d'enregistrement courant"

Mon enregistrement existe bien dans le fichier de base de la requete et j'ai dans ma fenetre de la requete la cle de parcours du fichier de base.

Ce qui est curieux Dans la fenetre de requete j'ai fait un bouton hors fenetre qui sous double clic m'envoie a ma fiche fenetre du fichier de base. Je vois a ce moment que la cle de parcours (definit comme cle unique) le reste des rubriques
sont vide

Qu'en pensez vous!

Contribution le : 19/10/2007 03:08
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de selection dans une table memoire
Developpeur WDF
Inscrit:
26/07/2004 09:01
Post(s): 127
Bonjour,

Alors pour les boucles il est préférable de créer une variable NbLignes est un Entier = TableOccurrence(Table)
En effet, la fonction TableOccurrence() ne sera ainsi appelée qu'une seule fois.

Sinon pour ta partie ** cochez par date **, il te faut comme dans le premier bouton de commande utiliser TableSelectPlus(), car d'après l'aide en ligne la fonction TableEnregistre() ne s'applique que sur la ligne sélectionnée.
Par contre il est indiqué que si l'option "saisie en cascade" est activée, cette fonction n'est plus nécessaire lors de la saisie d'un utilisateur. Il serait intéressant que tu teste si par programmation tu obtiens le même résultat.

Euh pour la dernière partie, désolé, je ne pense pas grand chose.

Bonne chance :)

Contribution le : 19/10/2007 09:53
_________________
Faut pas trop se prendre au sérieux ...
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de selection dans une table memoire
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Citation :

//*************cochez tous **************************
i est un entier
POUR i=1 A TableOccurrence(Table)
  TableSelectPlus(Table,i)
  //SI Table.FFTXFEDAP = "O" ALORS
    Table.FFTXFEDAP = "O"
    //TableEnregistre(Table)  
  FIN
FIN
//TableAffiche(Table)
//************************************************************ 


En rouge les deux lignes de code qui ne sont pas nécessaire si vous manipulez une table mémoire

TableEnregistre(Table) sert à enregistrer les modifications apportées dans une ligne de la table vers le fichiers lié avec une table fichier.

TableAffiche(Table) n'a aucun effet sur une table mémoire.

En orange les lignes spécifiant une condition non nécessaire puisque vous voulez sélectionner toutes les lignes de la table.

Cocher par date
i est un entier
nLigne est un entier = TableOccurrence(Table)
ldate est une chaine=FFDATE[Table]

Si Table = -1 alors Retour //Pas de ligne sélecionnée 
POUR i = 1 A nLigne
  SI Table.FFDATE[i] = ldate ALORS
    Table.FFTXFEDAP[i]="O"
  FIN
FIN


Vous tentez avec la ligne TableEnregistre(Table) une tentative d'enregistrement sur un fichier sur lequel vous n'êtes pas positionné et de plus pour y enregistrer quoi puisque vous manipulez des données en mémoire qui ne nécessite au vu de votre code aucun enregistrement dans un fichier!

Contribution le : 19/10/2007 11:24
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Probleme de selection dans une table memoire
Utilisateur WDF
Inscrit:
19/04/2006 18:20
Post(s): 63
J'ai refait mes devoir
voici le code

**************cochez par date ***********************
i est un entier // c'est ligne ou je me situe
nLigne est un entier = TableOccurrence(Table) // me donne le nombre de ligne dans la table
ldate est une chaîne=FFDATE[Table] // me donne la date du positionnement du curseur


SI Table = -1 ALORS RETOUR //Pas de ligne sélecionnée.

POUR i = 1 A nLigne
// Info( "guy2",i,ldate,Table.FFTXFEDAP,FFDATE)
SI Table.FFDATE[i] = ldate ALORS

//Info( "guy3",i,ldate,Table.FFTXFEDAP,FFDATE)

Table.FFTXFEDAP[i]="O"

Table enregistre (Table)

FIN

FIN

********************

Dans le cas cochez tous
Pour la question TableEnregistre dans tous les cas s'il n'est pas appliquer les enregistrement change mais au bout d'un moment revienne a leur valeurs initial. Donc l'importante de l'appliquer dans le cas d'un table memoire.



Dans le cas cochez par date

Pour la question TableEnregistre s'il n'est pas appliquer les enregistrement change mais au bout d'un moment revienne a leur valeurs initial.

S'il est appliquer uniquement la valeur du bandeau ou de la ligne selectionner est modifier.

Ce qui se passe Exemple dans le cas ou il y a 3 date egale
il modifie effectivement les 3 colonnes en question ,mais
au bout d'un moment remet a la case depart ceux qui ne sont pas sur la ligne selectionner


Dans la merde comme dirait l'autre..!


Alors comment sauvegarder une modification dans une Table de memoire.

en attente d'une reponse positive ou negative.

Contribution le : 19/10/2007 20:13
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2