Table par defaut

Je souffre avec cette calamité historique à propos de laquelle la doc s’exprime ainsi :
« TABLE PAR DEFAUT est simplement une facilité de programmation proposée pour accélérer la saisie du code et le rendre plus facile à lire. »
Par pitié, n’en jetez plus ! :lol:

Bon, ceci posé : existe-t-il quelque part la liste des commandes qui accepte que la table soit omise ?

Bon, finalement, aide-toi le ciel t’aidera a été plus vite que la mendicité sur la voie publique. Si ça peut servir aux malheureux nettoyeurs d’écuries d’Augias, je mets la liste et le code utilisé pour l’obtenir (v17). 81 commandes, me voilà bien avancé, je souffre plus que tout à l’heure.

5 Imprimer ligne ( {laTable ;} formulaire {; zone1 {; zone2}} ) -> Résultat
36 Fin de selection {( laTable )} -> Résultat
39 IMPRIMER ETIQUETTES ( {laTable }{;}{ nomFichier {; * | >}} )
40 DIALOGUE ( {laTable ;} formulaire {; formData}{; *} )
47 TOUT SELECTIONNER {( laTable )}
49 TRIER ( {laTable ;}{ leChamp }{; > ou < }{; leChamp2 ; > ou <2 ; … ; leChampN ; > ou <N}{; } )
50 DEBUT SELECTION {( laTable )}
51 ENREGISTREMENT SUIVANT {( laTable )}
52 CHARGER ENREGISTREMENT {( laTable )}
53 STOCKER ENREGISTREMENT {( laTable )}
54 FORM FIXER SORTIE ( {laTable ;} formulaire {; formUtilisateur} )
55 FORM FIXER ENTREE ( {laTable ;} formulaire {; formUtilisateur}{; } )
56 AJOUTER ENREGISTREMENT ( {laTable}{;}{
} )
57 MODIFIER ENREGISTREMENT ( {laTable}{;}{
} )
58 SUPPRIMER ENREGISTREMENT {( laTable )}
59 VISUALISER SELECTION ( {laTable}{; modeSélection}{; saisieListe}{; }{; } )
60 IMPRIMER SELECTION ( {laTable}{;}{
| >} )
66 SUPPRIMER SELECTION {( laTable )}
68 CREER ENREGISTREMENT {( laTable )}
71 IMPRIMER ENREGISTREMENT ( {laTable}{;}{
| >} )
76 Enregistrements trouves {( laTable )} -> Résultat
78 ENVOYER ENREGISTREMENT {( laTable )}
79 RECEVOIR ENREGISTREMENT {( laTable )}
83 Enregistrements dans table {( laTable )} -> Résultat
84 ECRITURE DIF ( {laTable ;} nomFichier )
85 ECRITURE SYLK ( {laTable ;} nomFichier )
86 LECTURE DIF ( {laTable ;} nomFichier )
87 LECTURE SYLK ( {laTable ;} nomFichier )
105 AFFICHER ENREGISTREMENT {( laTable )}
110 ENREGISTREMENT PRECEDENT {( laTable )}
116 NOMMER ENSEMBLE ( {laTable ;} ensemble )
119 ADJOINDRE ELEMENT ( {laTable ;} ensemble )
140 ENSEMBLE VIDE ( {laTable ;} ensemble )
145 LECTURE SEULEMENT {( laTable | * )}
146 LECTURE ECRITURE {( laTable | * )}
147 Enregistrement verrouille {( laTable )} -> Résultat
167 EXPORTER TEXTE ( {laTable ;} nomFichier )
168 IMPORTER TEXTE ( {laTable ;} nomFichier )
176 EMPILER ENREGISTREMENT {( laTable )}
177 DEPILER ENREGISTREMENT {( laTable )}
185 CHARGER ENSEMBLE ( {laTable ;} ensemble ; nomFichier )
189 ENREGISTREMENT SELECTION {( laTable )}
197 QR ETAT ( {laTable ;} nomFichier {; hiérarchique {; assistant {; recherche {; nomMéthode {; *}}}} )
198 Avant selection {( laTable )} -> Résultat
200 ALLER A DERNIER ENREGISTREMENT {( laTable )}
204 MODIFIER SELECTION ( {laTable}{; modeSélection}{; saisieListe}{; *}{; *} )
212 LIBERER ENREGISTREMENT {( laTable )}
225 DUPLIQUER ENREGISTREMENT {( laTable )}
242 ALLER A ENREGISTREMENT ( {laTable ;} enregistrement )
243 Numero enregistrement {( laTable )} -> Résultat
244 Numerotation automatique {( laTable )} -> Résultat
245 ALLER DANS SELECTION ( {laTable ;} enregistrement )
246 Numero dans selection {( laTable )} -> Résultat
277 CHERCHER ( {laTable }{;}{ critère {; }} )
292 CHERCHER PAR EXEMPLE ( {laTable}{;}{
} )
299 UTILISER PARAMETRES IMPRESSION ( {laTable ;} formulaire )
314 Enregistrement modifie {( laTable )} -> Résultat
331 COPIER SELECTION ( {laTable ;} nom )
334 DEPLACER SELECTION ( {laTable ;} nom )
341 CHERCHER DANS SELECTION ( {laTable }{;}{ critère {; *}} )
351 REDUIRE SELECTION ( {laTable ;} nombre )
353 VERROUILLE PAR ( {laTable ;} process ; utilisateur4D ; utilisateurSession ; nomProcess )
362 Etat lecture seulement {( laTable )} -> Résultat
561 ENLEVER ELEMENT ( {laTable ;} ensemble )
642 FIXER PARAMETRE BASE ( {laTable ;} sélecteur ; valeur )
643 Lire parametre base ( {laTable ;} sélecteur {; valeurAlpha} ) -> Résultat
656 MARQUER ENREGISTREMENTS ( {laTable }{;}{ nomEnsemble {; *}} )
668 Nouvel enregistrement {( laTable )} -> Résultat
669 Enregistrement charge {( laTable )} -> Résultat
674 FORM LIRE PROPRIETES ( {laTable ;} nomForm ; largeur ; hauteur {; nbPages {; largeurFixe {; hauteurFixe {; titre}}}} )
675 Creer fenetre formulaire ( {laTable ;} nomForm {; type {; posH {; posV {; *}}}} ) -> Résultat
902 LIRE ENREGISTREMENTS MARQUES ( {laTable ;} nomEnsemble )
942 CHERCHER PAR SQL ( {laTable ;} formuleSQL )
969 FORM LIRE PARAMETRE ( {laTable ;} formulaire ; sélecteur ; valeur )
1051 VIDER TABLE {( laTable )}
1103 FORM CHARGER ( {laTable ;} formulaire {; *} )
1167 FORM LIRE NOMS ( {laTable ;} tabNoms {; filtre {; marqueur}}{; *} )
1168 METHODE LIRE CHEMINS FORM ( {laTable ;} tabChemins {; filtre}{; marqueur}{; *} )
1331 CHERCHER PAR ATTRIBUT ( {laTable}{;}{opConj ;} champObjet ; cheminAttribut ; opRech ; valeur {; *} )
1407 TRIER PAR ATTRIBUT ( {laTable ;} champObjet ; cheminAttribut ; > ou < {; champObjet2 ; cheminAttribut2 ; > ou <2 ; … ; champObjetN ; cheminAttributN ; > ou <N} {; *} )
1424 CHERCHER PAR ATTRIBUT DANS SELECTION ( {laTable}{;}{opConj ;} champObjet ; cheminAttribut ; opRecherche ; valeur {; *} )

https://forums.4d.com/4DBB_Main/x_User/4467/files/29909432.zip

Beau travail Arnaud !

C’est gentil :wink:

Par contre…

N’importe quel développeur normalement constitué sait que du code utilisant TABLE PAR DEFAUT est aussi agréable à manipuler que du plutonium. Je suppose que chez 4D on en a conscience et qu’on conserve cette calamité dans le formol pour cause de compatibilité ascendante (en clair, pour ne pas traumatiser les ancêtres). Mais, du coup, était-il vraiment nécessaire qu’autant de commandes récentes de cette liste en prolongent l’espérance de vie en permettant d’omettre la table ?