fermez cette fenêtre pour revenir au site de microrun

Plan de la page :



Listes fichiers évoluées
fonctionnement du chargement en mémoire
Colorier dynamiquement les lignes et les colonnes
Exemples



Listes fichiers évoluées :


3 conditions :

* L'affichage de la ligne doit être défini à l'aide de la fonction Screener zlifline.
Attention: L'utilisation de zlifline permet de se passer de la boucle do...if (za5...loop dans l'automate.

* Les colonnes de la liste doivent être décrites :
Soit à l'aide du painter en créant une vue.
Soit à l'aide de zlib en utilisant les fonctions Screener zcol_dcl lors de la déclaration des listes.

* La liste doit avoir une ligne de titre.

Ecran du painter de Bikini permettant de définir une VUE :


























Ceci a pour conséquence, de manière automatique :

* Que la liste fichier est automatiquement transformée en liste mémoire.
* Que l'utilisateur peut cliquer sur les colonnes pour trier la liste.

Tri sur les dates : Bikini détecte automatiquement les colonnes dates au format ZDAT10, et inverse en mémoire la colonne pour que le tri soit correct.

Le premier tri est réalisé lors du click sur la colonne, mais l'inversion du tri est plus rapide.
(La fonction de tri utilise en interne les fonctions ZSI avec un fichier en mémoire.











une fois une colonne triée, une petite flèque l'indique, dans le titre de la liste.
Cependant lorqu'on arrive sur la liste, il faut indiquer à Bikini, en traitement avant, quelle est la colonne qui est triée par défaut :
Pour ce faire utiliser la fonction zcol_setdefault

début




Fonctionnement du chargement en mémoire :


Les listes fichiers évoluées sont maintenant converties en listes mémoire.
Zlib charge pendant un temps maximum paramétrable à l'aide de la fonction zfile2mem_delay
le maximum de records possible, dans une liste mémoire.

Cas particuliers : Si un filtre est positionné sur la liste, au moins 256 records sont chargés.
Ce qui assure que même en cas de chargement lent, un minimum de lignes soient chargées.

Si tous les records n'ont pu être chargés, la liste reste "ouverte" :
Seule une "page" du fichier est chargée en mémoire.
Dans ce cas Pg Dn, ou flèche bas, en bas de liste, provoquent un chargement de la suite des records.
Cliquer sur le bouton record suivant provoque également un rechargement en fin de page.
Après le chargement la liste est décalée d'une demi-page.
Le même comportement est reproduit pour le début de la liste.

Home et End vont en début et fin de page.
Ctrl Home et Ctrl End vont en début et fin de fichier (les POSIT décrits dans zlifposit sont activés).

ATTENTION ! Le tri sur une colonne de la liste n'agit que sur la page en cours.

Lors du zlifreposit, la liste est à nouveau chargée en mémoire.

Il faut savoir, que lors du déroulement de la liste, le pointeur sur le fichier ne bouge pas.
Donc un DOWN ne se positionnera pas sur le bon record, puisque le pointeur se trouvera en fin de page chargée en mémoire.
Si l'on veut que le pointeur sur le fichier suive le déroulement de la liste (autrement dit qu'un DOWN ou un MODIF ...), il est nécessaire de le préciser par la fonction zfile2mem_search.


Modifier un record dans le fichier sur le disque, puis revenir sur la liste ne rafraîchira pas la ligne concernée, car la liste est chargée en mémoire.

Pour réaliser cela, 2 solutions :
* Soit zlisrefresh, et la liste est entièrement rechargée, mais cela peut provoquer un ré-affichage déplaisant.
* Soit utiliser la fonction zaskgoto_linerefresh, qui va provoquer un rechargement, et un réaffichage de la ligne courante.
Evidemment, cela ne fonctionne que si c'est la ligne courante que l'on a modifié.
Attention, le record n'est pas réellement rechargé depuis le disque.
C'est le record courant en mémoire qui est recopié à l'intérieur de la ligne.
(celui qui est passé en paramètre à zaskLalpha)


début




Colorier dynamiquement les lignes et les colonnes :

Il peut être inréressant de jouer avec les couleurs, voire les polices à l'intérieur de la liste.
Dans ce cas la méthode est la suivante :
Il faut redéclarer les colonnes de la liste, lors de l'affichage de la ligne de celle ci,
dans la fonction qui est passée en paramètre à zlifline.
La fonction qui permet de réaliser cela est la fonction zcol_modif.
Elle redéfinit la colonne de la liste avec les zcol_color, zcol_font courants.

On aura donc un code source de redéfinition de la ligne du type :
	...
	zcol_color(coul,7)
	zcol_font(8)			; Fonte 8
	zcol_modif(2,0)			; Colonne 2

	zcol_color(rouge,7)		; Rouge sur fond blanc
	zcol_font(0)			; Fonte 0 car colonne = montant numérique
	zcol_modif(3,0)			; Colonne 3

	if (ecri_lettree == space(4))
		zcol_color(coul,7)	; Si écriture non lettrée => fond blanc
	else
		zcol_color(coul,11)	; Si écriture lettrée => fond jaune
	endif
	zcol_font(8)			; Fonte 8
	zcol_modif(7,0)			; Colonne 4
	....
	zprintline(127,ligne)



début






Exemples :

Ceci est une balance comptable.
Les lignes correspondant à des totaux de classes sont en jaune.
La colonne Total est de couleur rouge pour les débits, et bleue pour les crédits.





























Ceci est un écran de lettrage manuel.
La colonne montant peut être triée en cliquant sur la barre de titre. Cela est bien pratique pour lettrer 2 écritures de même montant.
Le bouton "appareil photo" permet de sélectionner une écriture (pour la lettrer)
Les écritures lettrées apparaissent sur fond jaune.


































début