What have I done last time

This component displays a preset number of recently modified project methods / project forms / table forms. It comes from a v14r5 code recently converted to v17. The “?” button displays a page explaining why some functions (form preview, open form in its editor) can work only if methods are added to host. In C/S, I’m quite frustrated to have nothing to differentiate who did what.
https://forums.4d.com/4DBB_Main/x_User/4467/files/28675282.zip

Very nice concept to implement :wink:

Si tu as une version v16 car j’ai vu qu’il n’y avait pas de code spécifiquement v17 ?(pas d’objet.attribut), je serai preneur

a la rigueur une v15 que je convertirai en v16

Mimosa

Aucune chance d’y trouver de la dot notation (ni d’objet non plus, il me semble). C’était en v14r5, je l’ai converti en v17 récemment et n’ai quasiment rien fait d’autre. Du bon vieux code de pépé, quoi. Voilà le v14 :
https://forums.4d.com/4DBB_Main/x_User/4467/files/28677468.zip

Un grand MERCI

mimosa

Danke Arnaud,

wirklich sehr nützlich.

Armin

Thanks for the thanks, guys. I hope it will be useful :slight_smile:
Chronological sort in forms lists is obviously missing: it’s possible using the same principle as search, but thinking how simple it would be if we had https://forums.4d.com/Post/FR/28343889/1/28343890#28343890a command to read forms stamps> made me lazy. Colorised code preview would be fine, too, but it needs a strong code parser, read the prefs file, a bunch of ST code, dark mode: second laziness crisis…

j’ai fait une version v16 du composant. Pour tenter de comprendre, j’ai évidemment tout renommé, francisé, modifié un peu le look de l’interface.

Je n’ai JAMAIS pu faire fonctionner le mode de vision des formulaires tables. Ca mouline dans le vide… et le code est trop dur à comprendre (la gestion des markers)

j’ai voulu améliorer l’indentation en gérant les alternatives au sein des Au cas où : (
et ben c’est plus complexe que je ne l’imaginais et çà marche à 80%…

composant à prendre ici :

https://forums.4d.com/4DBB_Main/x_User/3922/files/28687484.zip

c’est vachement utile pour voir ce qui a été modifié quand on a prêté une base quelques jours à un stagiaire pour voir ce qu’il a trafiqué…

un grand merci Arnaud

Si ça peut te rassurer, une fois écrit ce genre de trucs, je redoute d’avoir à m’y remettre :lol:

C’est une bête dichotomie, en fait :
• d’une part chaque form a un marqueur, un numéro qui est d’autant plus élevé que le form est modifié récemment (ce n’est malheureusement pas un timestamp)
• d’autre part on a la commande FORM LIRE NOMS : on lui passe une valeur de marqueur X, elle renvoie les P formulaires dont le marqueur est supérieur à X ; on peut donc la considérer comme un genre de filet à choper plus ou moins de formulaires en partant du plus récent

Si je veux pêcher exactement P poissons, j’initialise Xmin à 0 et X à la valeur qui ne laisse pas un seul poisson dans l’eau
après, je boucle :
je lance le filet, je compte les N poissons obtenus
si N≠P, j’ajuste la taille du filet :

  • N>P : mon nouveau X est entre X et Xmin (au milieu, division par 2)
  • N<P : X devient mon nouveau Xmin et je retaille mon filet au double de X
    et je renvoie le filet, et je compte, et je divise, inlassablement, jusqu’à ce que P=N
    Avec les formulaires projets c’est simple. Avec les formulaires table, moins, car on est obligé de lancer le filet autant de fois qu’il y a de tables pour calculer N toutes tables confondues. À la fin on y arrive, mais à force de sortir/compter/remettre les poissons dans l’eau, ils sont plus très frais.