Affiche un tableau 1D ou 2D dans un contrôle ListView
#include <Array.au3>
_ArrayDisplay ( Const ByRef $aArray [, $sTitle = "ArrayDisplay" [, $sArrayRange = "" [, $iFlags = 0 [, $vUser_Separator = Default [, $sHeader = Default [, $iMax_ColWidth = Default]]]]]] )
$aArray | Tableau à afficher |
$sTitle | [optionnel] Titre pour l'affichage. Par défaut "ArrayDisplay". |
$sArrayRange | [optionnel] Plage de lignes/colonnes à afficher. Par défaut (""), le tableau entier. (Voir ci-dessous pour plus de détails) |
$iFlags | [optionnel] Détermine les options UDF. Ajoutez des valeurs ensemble si besoin: $ARRAYDISPLAY_COLALIGNLEFT (0) = (par défaut) Alignement du texte dans les colonnes - à gauche $ARRAYDISPLAY_TRANSPOSE (1) = Transpose le tableau $ARRAYDISPLAY_COLALIGNRIGHT (2) = Alignement du texte dans les colonnes - à droite $ARRAYDISPLAY_COLALIGNCENTER (4) = Alignement du texte dans les colonnes - au centre $ARRAYDISPLAY_VERBOSE (8) = Verbose - affiche MsgBox si erreur et recouvre l'écran pour de grands tableaux 16 = Obsolète 32 = Obsolète $ARRAYDISPLAY_NOROW (64) = Aucune colonne 'Row' ne s'affiche |
$vUser_Separator | [optionnel] Obsolète. Gardé pour la compatibilité des scripts. |
$sHeader | [optionnel] Les noms des colonnes dans l'entête (chaîne de noms séparés par le séparateur courant - en général "|" ). Par défaut voir Remarques. |
$iMax_Colwidth | [optionnel] Largeur maximale à laquelle une colonne de ListView s'élargit pour afficher le contenu. Valeur par défaut 350 pixels. |
Succès: | Retourne 1 |
Échec: | Retourne 0 et définit @error <> 0 : |
@error: | 1 - $aArray n'est pas un tableau 2 - $aArray a trop de dimensions (seulement 1D et 2D est supporté) |
Si le paramètre $aArray n'est pas un tableau ou est un tableau de plus de 2 dimensions, la fonction retourne une erreur et le script continue. Si le paramètre "verbose" est installé dans $iFlags une MsgBox s'affiche qui offre la possibilité de quitter immédiatement le script ou de continuer le script avec un retour normal d'erreur.
Bien qu'il n'y ait aucune limite sur la taille du tableau à afficher, il y a une limitation des contrôles de Windows, ce qui signifie que les en-têtes et les colonnes des ListView ne s'alignent pas s'il y en a plus de 600 environ.
La syntaxe du paramètre $sArrayRange est la suivante:
"7" | Affiche les lignes 0-7 avec toutes les colonnes |
"7:" | Affiche les lignes 7-fin avec toutes les colonnes |
"|7" | Affiche toutes les lignes avec les colonnes 0-7 |
"|7:" | Affiche toutes les lignes avec les colonnes 7-fin |
"7|7" | Affiche les lignes 0-7 avec les colonnes 0-7 |
"5:7" | Affiche les lignes 5-7 avec toutes les colonnes |
"|5:7" | Affiche toutes les lignes avec les colonnes 5-7 |
"7|5:7" | Affiche les lignes 0-7 avec les colonnes 5-7 |
"5:7|7" | Affiche les lignes 5-7 avec les colonnes 0-7 |
"5:7|5:7" | Affiche les lignes 5-7 avec les colonnes 5-7 |
#include <Array.au3> #include <MsgBoxConstants.au3> Example() Func Example() ; Crée un tableau 1D et l'affiche Local $aArray_1D[5] = ["Item 0", "Item 1", "Un long Item 2 pour montrer l'extension de la colonne", "Item 3", "Item 4"] _ArrayDisplay($aArray_1D, "Affichage 1D") ; Crée un tableau 2D à afficher Local $aArray_2D[20][15] For $i = 0 To UBound($aArray_2D) - 1 For $j = 0 To UBound($aArray_2D, 2) - 1 $aArray_2D[$i][$j] = "Item " & StringFormat("%02i", $i) & StringFormat("%02i", $j) Next Next _ArrayDisplay($aArray_2D, "Affichage 2D") _ArrayDisplay($aArray_2D, "Affichage 2D transposé", Default, 1) ReDim $aArray_2D[20][10] $aArray_2D[5][5] = "Un long item pour montrer l'expansion de la colonne" _ArrayDisplay($aArray_2D, "Expansion colonne - Titres personnalisé - pas de ligne/colonne", Default, 64, Default, "AA|BB|CC|DD|EE|FF|GG|HH|II|JJ") $aArray_2D[5][5] = "Alignement de la colonne défini à droite" _ArrayDisplay($aArray_2D, "Définition par plage - alignement à droite", "3:7|4:9", 2, Default, "AA|BB|CC|DD|EE|FF") $aArray_2D[5][5] = "Alignement de la colonne défini à gauche" Opt("GUIDataSeparatorChar", "!") _ArrayDisplay($aArray_2D, "! Séparateur d'entête", "3:7|4:9", Default, Default, "AA!BB!CC!DD!EE!FF") ; Crée une variable non tableau pour forcer une erreur - MsgBox s'affiche car $iFlags est installé Local $vVar = 0, $iRet, $iError $iRet = _ArrayDisplay($vVar, "Pas de MsgBox lors d'une Erreur") $iError = @error MsgBox(0, "Erreur _ArrayDisplay()", "Retourne sans Msgbox interne $iret =" & $iRet & " @error=" & $iError) $iRet = _ArrayDisplay($vVar, "MsgBox lors d'une Erreur", Default, 8) $iError = @error MsgBox(0, "Erreur _ArrayDisplay()", "Retourne une Msgbox interne sans forcer un Exit $iret =" & $iRet & " @error=" & $iError) EndFunc ;==>Example