PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 23 → ecran vers fichier avec table
ecran vers fichier avec table
Débuté par jjacques68, 25 jan. 2015 13:02 - 9 réponses
Membre enregistré
26 messages
Posté le 25 janvier 2015 - 13:02
bonjour,

nouveau dons le monde de WinDev, je rencontre un problème déjà évoqué plusieurs fois mais sans avoir trouver de réponses.

je m'explique :

j'ai une fenêtre avec une champ table mémoire lié à une requête INTEGREE et paramétrée (sur un seul fichier).
le paramètre de cette requête est tout simplement la valeur d'une sélection dans une liste.
cette table m'affiche donc un seul et unique enregistrement.

l'affichage ne pose aucun problème
MaSource..param1 = maliste..valeur
TableAffiche(matable)


mais cette table est en saisie.
j'aimerai avec un bouton valider que les données modifiées dans la table soient modifiées dans le fichier.
la fonction :
EcranVersFichier()
HModifie()

ne marche pas !!

je suis obligé de faire :
HLitRecherchePremier(monfichier,marubrique,mavaleur)
monfichier.champs1 = matable.colonne1
monfichier.champs2 = matable.colonne2
...
HModifie()

et la c'est ok !!

Mais j'ai une bonne vingtaine de champs !!!! le code est lourd !!!
n'y a - t- il pas moyen de procéder autrement ?

J'ai l'impression que le écran vers fichier n'arrive pas à s'appliquer aux colonnes de ma table !!
Pourtant elles sont bien liées dans la description de ma table.

Sur les forum ils parlent de TableEnregistre(), de ExecuteRequete avec hModifieFichier, mais sans succès...

Merci d'avance pour votre aide !!!!!

--
cordialement,

jjacques68
Posté le 25 janvier 2015 - 20:00
Bonjour Jean Jacques

on dirait que tu as fais un mélange d'un peu toutes les méthodes, ce qui
explique que ca ne fonctionne pas...

D'abord tu nous dis :
> j'ai une fenêtre avec une champ table mémoire lié à une requête INTEGREE
> et paramétrée (sur un seul fichier).

Ce qui n'est pas possible... C'est SOIT une table mémoire, SOIT une
table liée à une requete ou fichier... Ce sont des choses TRES
différentes qui ne segèrent pas de la même façon...

La il semble que tu ai une table fichier (liée à une requête interne)

Ensuite, dans une table en saisie, on ne peut pas faire un
ecranversfichier, vu que la table peut avoir N lignes, et donc le écran
vers fichier ne saurait pas quoi mettre dans UN enreg du fichier...

Il faut donc utiliser TableEnregistre...

Mais, TableEnregistre ne peut enregistrer que dans le fichier lié à la
table (il n'y en a pas) ou dans une requête exécutée par hexecuterequete
avec le paramètre hmodifieFichier...

Or tu as lié ta table à une requête INTERNE, qui ne peut donc pas être
traitée de cette manière

Il faut donc virer la requête interne (principe de base, PAS de requête
interne, c'est trop limité), créer une VRAI requête, lier la table à
cette requete et faire le hexecuterequete avec le hmodifiefichier et
finalement le tableenregistre

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXReplication, votre système de réplication open source est
disponible sur mon site web !!!
WXShowroom.com : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 1/25/2015 7:02 AM, jjacques68 wrote:
bonjour,

nouveau dons le monde de WinDev, je rencontre un problème déjà évoqué
plusieurs fois mais sans avoir trouver de réponses.

je m'explique :

j'ai une fenêtre avec une champ table mémoire lié à une requête INTEGREE
et paramétrée (sur un seul fichier).
le paramètre de cette requête est tout simplement la valeur d'une
sélection dans une liste.
cette table m'affiche donc un seul et unique enregistrement.

l'affichage ne pose aucun problème
masource..param1 = maliste..valeur
tableaffiche(matable)


mais cette table est en saisie.
j'aimerai avec un bouton valider que les données modifiées dans la table
soient modifiées dans le fichier.
la fonction :
ecranversfichier()
hmodifie()

ne marche pas !!

je suis obligé de faire :
Hlitrecherchepremier(monfichier,marubrique,mavaleur)
monfichier.champs1 = matable.colonne1
monfichier.champs2 = matable.colonne2
...
hmodifie()

et la c'est ok !!

Mais j'ai une bonne vingtaine de champs !!!! le code est lourd !!!
n'y a - t- il pas moyen de procéder autrement ?

J'ai l'impression que le écran vers fichier n'arrive pas à s'appliquer
aux colonnes de ma table !!
Pourtant elles sont bien liées dans la description de ma table.

Sur les forum ils parlent de TableEnregistre(), de ExecuteRequete avec
hModifieFichier, mais sans succès...

Merci d'avance pour votre aide !!!!!

--
cordialement,
jjacques68
Membre enregistré
26 messages
Posté le 25 janvier 2015 - 21:04
Ah ben ça au moins c'est clair.
Merci pour votre réponse, je vais essayer ça et je tiens au courant.

Encore mille merci pour les explications !!

--
cordialement,

jjacques68
Membre enregistré
26 messages
Posté le 27 janvier 2015 - 16:27
Bonjour,

je reviens vers vous...

j'ai créé ma VRAI requete paramétrée et je l'ai lié à ma table.
affichage des infos ok.
j'utilise pour l'affichage :
REQ_MaRequete.MonParam = MaListe..valeur
TableAffiche(MaTable,taInit)


Mais pour la modif des informations, ça marche pas...
je fais :
HExécuteRequête(REQ_MaRequete,hModifieFichier,MaListe..valeur)
TableEnregistre(MaTable)


et j'ai une erreur :

Erreur à la ligne 15 du traitement Clic sur BTN_Valider.
Vous avez appelé la fonction TableEnregistre.
Aucun enregistrement en cours n'est défini pour le fichier <REQ_MaRequete>.

et la je comprends plus...
c'est comme si il ne savait pas quel enregistrement il fallait modifier...
ai chercher sur le forum mais rien...

merci d'avance !!

--
cordialement,

jjacques68
Membre enregistré
26 messages
Posté le 27 janvier 2015 - 17:11
rebonjour

enfait je crois que j'ai trouvé une piste.
le HexecuteRequete était mal placé, je le mettais sur le click du boutton validé.
Et la maintenant le l'ai mis sur juste avant l'affichage des infos dans la table.
sur le click du boutton validé, il n'y a maintenant plus que le TableEnregistre.

C'est juste ce que je dis ?

--
cordialement,

jjacques68
Membre enregistré
26 messages
Posté le 27 janvier 2015 - 18:42
rebonjour,

alors tout est ok.

l'affichage, la modification et l'ajout c'est nickel !!!

mais quand meme encore un problème :

il y a une colonne dans ma table qui ne peux pas être null ou "".
J'ai donc mis un test :
SI MaTable.MaColonne = "" OU MaTable.MaColonne = null ALORS RETOUR


Mais visiblement il me crée quand même m'enregistrement dans le fichier.
Pourtant dans la description de la rubrique du fichier j'ai bien DECOCHER null autorisé !! et rien mis dans valeur par défaut.
et dans la description de la colonne j'ai bien cocher renvoyer null si vide !!!
même pas un message d'erreur de WinDev !!

alors je précise que si je saisie rien ça marche.
Mais si je saisie qqch et que je supprime le texte avec la touche retour, là il enregistre.

pourquoi donc ??

--
cordialement,

jjacques68
Membre enregistré
26 messages
Posté le 27 janvier 2015 - 19:34
je me répond à moi même,

l'option de la table "enregistrer en sortie de colonne" était actif.
je l'ai décoché et c'est ok.
mais c'est étrange que WinDev ne déclenche pas une erreur si ce champs est vide ou null (vu mes réglages dans la desfription de la rubrique du fichier...)

--
cordialement,

jjacques68
Membre enregistré
1 message
Posté le 13 juin 2018 - 13:18
BONJOUR JE SUIS DÉBUTANT EN WINDEV ET JE RENCONTRE DEUX PROBLÈMES. LE PREMIER C'EST QUE J'AI UNE TABLE ET QUAND JE VEUX MODIFIER UN ENREGISTREMENT LA FICHE S'ouvre mais certains champs sont vides

le deuxieme cest que jai une table qui affichent les budgets de l'année en cours
comment m'y prendre pour modifier les informations du budget de l'année suivante c'est a dire

nous sommes en 2018 on renseigne les budgets de cette année. en 2019 on aura un nouveau budget par ligne de plan comptable
sachant que les budgets se renseigne par ligne du plan comptable

--
Très Coordialement
Membre enregistré
307 messages
Popularité : +5 (5 votes)
Posté le 13 juin 2018 - 15:36
Bonjour.
Rome ne s'est pas construite une une journée !
Au risque de te décevoir en ne répondant pas à ton problème, je te demande de te former un minimum sur Windev. Rien ne sert de construire un mur si les fondations ne sont pas solides et il vaut mieux que tu apprennes à pêcher plutôt qu'on te donne du poisson (j'en ai plein d'autres comme cela !).
Si tu as des bases de développements informatiques cela ira vite via les livres d'autoformation, sinon cela prendra un temps certain ;)
L'avantage que tu as, c'est que maintenant l'information se trouve partout. Pense à tes ainés qui n'avaient que des supports papiers et des éditeurs aussi conviviaux que "Notepad".
Bon courage.
Michel.
Posté le 15 juin 2018 - 11:03
Bjr,

mlion vient de nous annoncer :

+1

Pense à tes ainés qui n'avaient que des supports papiers et des éditeurs
aussi conviviaux que "Notepad".


tu me connais ?
:-) :-) :-)

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------