|
| databinding recherche d'une idée |
| Iniciado por roumegou, 23,nov. 2018 10:29 - 14 respuestas |
| |
| | | |
|
| |
| Publicado el 23,noviembre 2018 - 10:29 |
bonjour,
je n'utilise pas HF, je n'utilise pas l'analyse et je ne travaille qu'en requête SQL. Pas la peine d'épiloguer là dessus, je ne reviendrai pas sur ce parti pris.
Par contre j'avoue que c'est un peu pénible quand il faut décrire des champs formulaires, des tables, des zr zones par zones
Avec quoi pourrais-je faire du databinding sur des structures définies correspondant à mes tables, ou en analysant mes requêtes ?
j'ai déjà développé des progs qui analysent mes tables mysql et me génèrent mes codes.
Donc l'idée serait d'avoir une bibliothèque où seraient déclarées toutes mes tables et que je pourrais appeler. idéalement en externe pour que cela soit valable sur tous mes projets.
peut être des classes partagées par le GDS ? des structures déclarées dans des collections de procédures partagées ?
Toutes vos suggestions sont les bienvenues
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 23,noviembre 2018 - 11:16 |
Bonjour,
Perso je dirai des classes pour avoir le code métier avec par exemple.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 23,noviembre 2018 - 11:24 |
| Bon au final ça revient a se cogner l'analyse en manuel...Mais pourquoi pas ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 23,noviembre 2018 - 11:45 |
Philippe SB a écrit :
Bonjour,
Perso je dirai des classes pour avoir le code métier avec par exemple.
Merci de ta réponse Pjhilippe
Oui c'est là dessus que je suis en train de partir
et effectivement en déclarant mon objet en init de ma page ou ecran, je dispose bien de l'objet pour en faire des liaisons automatiques
donc prenons un exemple concret cette requete select codeindex,libindex, sum(case typedocvente when 'Commande à Date' then fic_montant else 0 end) AS cdeadate, sum(case typedocvente when 'Commande de Stock.' then fic_montant else 0 end) AS cdestock, sum(case typedocvente when 'Commande Urgente' then fic_montant else 0 end) AS cdeurgente from commandesquotidiennes group by codeindex order by codeindex
du coup pour l'instant j'ai défini en déclaration de la classe
c_rq_commandesquotidiennes est une Classe codeindex est une chaîne libindex est une chaîne cdeadate est un réel cdestock est un réel cdeurgente est un réel FIN
Admettons que je veuille remplir une tablemémoire avec le produit de cette requete il faut que je déclare un tableau de c_rq_commandesquotidiennes dans ma page ou fenêtre ? il faut que ce tableau soit dans la classe ? Le chargement de la requete vers le tbaleua ou la classe, il faut le faire dans la classe ?
je cherche ... et pour des indications sur la bonne direction à prendre, je suis preneur.
Merci de vos réponses
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 23,noviembre 2018 - 14:53 |
tu peux tout à fait déclarer un tableau de c_rq_commandesquotidiennes dans ta fenêtre en global et l'utiliser comme source de données d'une table ou d'une zone répétée sans aucun problème.
Tu peux aussi avoir une classe qui aura comme membre un tableau de c_rq_commandesquotidiennes, instancier cette nouvelle classe et utiliser ce tableau comme source de donnée.
Par contre une petite remarque, évite les réels. Trop de problèmes d'arrondis, avec ce type, tu peux avoir... 
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 23,noviembre 2018 - 14:55 |
@François C. : C'est vrai, mais tu t'affranchis aussi du problème de l'analyse et de la description des fichiers de l'analyse qui ne correspond pas à la description des fichiers réels dans ta base.
Les 2 approches se valent.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Publicado el 23,noviembre 2018 - 16:01 |
Philippe SB a écrit :
@François C. : C'est vrai, mais tu t'affranchis aussi du problème de l'analyse et de la description des fichiers de l'analyse qui ne correspond pas à la description des fichiers réels dans ta base.
Les 2 approches se valent.
oui mon modèle est basé sur une plateforme utilisant une base mysql contenant plus de 200 tables. Elle est installée sur une 10zaines de serveurs différents pour je ne sais pas combien de bases différentes. Et je suis sans arrêt en train de faire évoluer ce modèle. J'ai juste à utiliser un outil que j'ai développé et qui me propage mes scripts partout en qq minutes.
Et je n'ai jamais de problèmes de synchro des analyses avec tous mes projets; sans compter les pb de maitres en GDS dès que l'on veux toucher ce genre de choses. Donc non l'analyse ce n'est pas pour moi
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 23,noviembre 2018 - 16:08 |
Il ne faudra du coup pas oublier de répercuter les modifications de bases sur les objets liés.
Pour le probleme d'analyse ne correspondant pas aux fichiers, il me semble que : http://doc.windev.com/fr-FR/… Permet d'eviter ca.Mensaje modificado, 23,noviembre 2018 - 16:11 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 23,noviembre 2018 - 16:11 |
Après mûre réflexion, Philippe SB a écrit :
tu peux tout à fait déclarer un tableau de c_rq_commandesquotidiennes dans ta fenêtre en global et l'utiliser comme source de données d'une table ou d'une zone répétée sans aucun problème.
Tu peux aussi avoir une classe qui aura comme membre un tableau de c_rq_commandesquotidiennes, instancier cette nouvelle classe et utiliser ce tableau comme source de donnée.
c'est ce que j'ai fait et oui cela marche bien
Par contre une petite remarque, évite les réels. Trop de problèmes d'arrondis, avec ce type, tu peux avoir... 
ok donc pour des chiffres avec deux décimales, tu préconises quoi ?
Sinon ma classe telle que je l'ai faite, ce n'est rien que du pissage de lignes. Autrement dit, juste avec ma requete formatée, voire la description de ma table mysql, c'est le code que je peux générer par programmation.
Il n'existe toujours pas de techniques pour intégrer du code déjà fait ?
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
| Publicado el 23,noviembre 2018 - 17:01 |
Dans son message précédent, Roumegou Eric a écrit :
Après mûre réflexion, Philippe SB a écrit : tu peux tout à fait déclarer un tableau de c_rq_commandesquotidiennes dans ta fenêtre en global et l'utiliser comme source de données d'une table ou d'une zone répétée sans aucun problème.
Tu peux aussi avoir une classe qui aura comme membre un tableau de c_rq_commandesquotidiennes, instancier cette nouvelle classe et utiliser ce tableau comme source de donnée.
c'est ce que j'ai fait et oui cela marche bien Par contre une petite remarque, évite les réels. Trop de problèmes d'arrondis, avec ce type, tu peux avoir...  ok donc pour des chiffres avec deux décimales, tu préconises quoi ? Sinon ma classe telle que je l'ai faite, ce n'est rien que du pissage de lignes. Autrement dit, juste avec ma requete formatée, voire la description de ma table mysql, c'est le code que je peux générer par programmation. Il n'existe toujours pas de techniques pour intégrer du code déjà fait ?
bon la piste des classes, cela marche bien mais il faut être en maitre pour créer de nouvelles classes
beaucoup trop contraignant
donc à priori je copierai cela en déclaration globale voire en procédure locale
en fait je cherche ce que l'on avait dans une autre vie le /COPY ou le /INCLUDE du RPG GAP2 (sur les ibm36, 38, as400)
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 23,noviembre 2018 - 17:16 |
ok donc pour des chiffres avec deux décimales, tu préconises quoi ? Utilise des numériques ou des monétaires
Sinon ma classe telle que je l'ai faite, ce n'est rien que du pissage de lignes. Autrement dit, juste avec ma requete formatée, voire la description de ma table mysql, c'est le code que je peux générer par programmation.
Il n'existe toujours pas de techniques pour intégrer du code déjà fait ? Je ne sais pas exactement ce que tu souhaites faire...
@François C. : HVerifieStructure n'est valable que pour du HFSQL, et ici ce n'est pas le cas... 
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
| Publicado el 24,noviembre 2018 - 18:19 |
Bonjour
Les problèmes de structures divergentes entre l'analyse et le fichier en base tierce c'est de la pure foutaise il est possible passer outre en 3 lignes de code qui auront le même fonctionnement que HVérifieStructure(<Fichier> ,hSansContrôle) sur hfsql…. et ca fonctionne depuis la version 7.5 !!!
Cherche hdeclareexterne et, hchangenom, pour le reste à toi de trouver parfois c'est bien de chercher ca évite de tirer des conclusions aussi hypothétiques que les solutions qui en découlent
Pour le reste tu ne veux pas d'analyse, ni de classe, pas toucher au GDS... pourquoi tu recode pas en RPG ou en COBOL ?, les seules alternatives qui te reste se sont les tableaux et la fonction FichierVersTableau, déclarer des structures, des tableaux de structures…. bref usine à gaz inutile
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2018 - 12:14 |
Philippe SB a exposé le 23/11/2018 :
ok donc pour des chiffres avec deux décimales, tu préconises quoi ? Utilise des numériques ou des monétaires Sinon ma classe telle que je l'ai faite, ce n'est rien que du pissage de lignes. Autrement dit, juste avec ma requete formatée, voire la description de ma table mysql, c'est le code que je peux générer par programmation.
Il n'existe toujours pas de techniques pour intégrer du code déjà fait ? Je ne sais pas exactement ce que tu souhaites faire...
Merci Philippe de ta réponse En Fait c'est le EXTERNE que je viens de découvrir (tardivement) même si je soupçonne que si c'est déclaré ainsi, on n'en aura pas la disponiblité sous l'éditeur
@François C. : HVerifieStructure n'est valable que pour du HFSQL, et ici ce n'est pas le cas... 
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2018 - 12:19 |
"Marc Fastré" a pensé très fort :
Cherche hdeclareexterne et, hchangenom, pour le reste à toi de trouver parfois c'est bien de chercher ca évite de tirer des conclusions aussi hypothétiques que les solutions qui en découlent
Pour le reste tu ne veux pas d'analyse, ni de classe, pas toucher au GDS... pourquoi tu recode pas en RPG ou en COBOL ?, les seules alternatives qui te reste se sont les tableaux et la fonction FichierVersTableau, déclarer des structures, des tableaux de structures…. bref usine à gaz inutile
je te laisse à tes commentaires un peu désagréables ... mais cela fait 20 ans que je pratique ces produits; je pense en avoir une vision assez précise. Ne t'inquiêtes pas je cherche toujours !!! et même je partage assez volontiers (surtout sur le forum WebDev)
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2018 - 13:14 |
Cela a beau faire 22 ans que je bosse en WinDev je n'en ai pas pour autant des idées arrêtées pour tenir de tels propos aussi limitatifs, j'utilise les analyses, les classes et même le GDS dans un contexte d'une dizaine de développeurs.. ca n'a jamais posé de problème
Moi ce qui me dérange c'est qu'après de genre de développement il y a des retours client qui disent que WinDev ca ne fonctionne pas, que c'est limité ou que les temps de développement sont élevés évidement quand tu ne l'utilises pas là ou il est performant…
Voilà pour ceux qui prétendent que l'analyse ne fonctionne pas bien avec les bases tierces, 3 lignes de code trouvée en un peu plus d'une heure...
Prodecure IgnoreStructureSQL(_sFile)
SI HDéclareExterne(_sFile,_sFile+"_SQL",MaConnexionSQL) = Vrai ALORS HChangeNom(_sFile+"_SQL",_sFile) FIN
Bon Dev Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | | | |
| | |
|