Les Time Series peuvent filtrer les données de la fenêtre de plongée sur la date système en cours mais il est nécessaire d'appliquer ces dernières sur l'ensemble des champs Sommes présents dans la fenêtre de plongée.
L'astuce que nous allons décrire va permettre de filtrer l'ensemble des données d'une fenêtre de plongée automatiquement sur la date système à chaque ouverture de la Marque. Cette astuce fait appel au Lookup de Groupes Nommés, aussi il est nécessaire d'avoir les modules de Diver Solution version 6.3 ou supérieure.
L'idée est d'avoir la possibilité d'obtenir dans un fichier lookup un Groupe Nommé qui filtre sur la date système actuelle. Il existe plusieurs façon de générer un fichier lookup avec intégration de la date système. Le script VBS ci-dessous permet de réaliser cette opération avec seulement quelques lignes de codes :
Const ForReading = 1, ForWriting = 2
Dim fso, f, dt1, dt2
dt1 = #31-12-1899#
dt2 = DateDiff("d",dt1,Date())+1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\DI_Solution\dl-dataroot\data\lookups\lookup_date.txt", ForWriting,true)
f.writeline("Date" & vbTab & "GN_Date_Jour_Systeme")
f.writeline(dt2 & vbTab & "X")
Ce script crée un fichier lookup_date.txt dont le format de sortie est le suivant :
Les champs sont séparés par des tabulations et la valeur 41477, qui correspond à la date système numérique lors de la rédaction de cette astuce, est l'unique valeur du Groupe Nommé GN_Date_Jour_Systeme. Date est la colonne "pivot" du lookup.
La mise à jour du fichier Lookup peut être automatisé par le lancement du script VBS via une tâche planifiée.
Maintenant nous allons ouvrir DiveMaster afin de créer la liaison entre le modèle principal (dans notre exemple stocks.mdl) et le fichier lookup lookup_date.txt. Pour cela dans la fenêtre principale de DiveMaster, cliquer sur le bouton Set... à coté de l'étiquette Model(s), puis cliquez sur le bouton Open... à coté de l'étiquette Single Model. Choisissez le Modèle adéquat, puis cliquez sur Ouvrir. Cliquez sur OK pour revenir dans la fenêtre principale. Cliquez maintenant sur le bouton Set... à coté de l'étiquette Named Groups Lookup. Dans la boite de dialogue Edit lookup, cliquez sur la Dimension Date, puis cliquez sur le bouton Add... Sélectionnez alors le fichier Lookup à utiliser (dans notre exemple lookup_date.txt) puis cliquez sur le bouton OK.
Enfin enregistrer le Diveplan en allant dans File > Save As...
Ouvrez maintenant le DivePlan avec Diver. Dans la Console faites un clic-droit sur la Dimension Date et dans le menu contextuel cliquez sur Créer une QuickView de Modèle.
Ensuite vérifiez que les groupes nommés sont présents dans les valeurs de la QuickView en allant dans Edition>Modifier QuickViews... Dans la boite de dialogue Edition de QuickViews, cliquez sur la Dimension Date puis cliquez sur le bouton Modifier... Dans la boite de dialogue Edition de la QuickView, vérifiez que l'option Inclure groupe nommés est cochée. Cliquez ensuite sur OK puis Fermer.
Afin de vérifier que le Groupe Nommé soit bien présent dans la QuickView et filtre bien sur la date système, plongez sur la Dimension Date puis sélectionnez dans la QuickView Date la valeur GN_Date_Jour_Systeme.
Vous devriez avoir une vue tabulaire avec une valeur unique pour la Dimension Date et qui correspond à la date système. Votre vue devrait ressembler à celle de notre exemple :
Une fois la vérification effectuée, fermez la fenêtre de plongée sur la Dimension Date et plongez sur la ou les Dimensions souhaitées. Laissez la valeur de la QuickView Date à GN_Date_Jour_Systeme. Enfin, enregistrez la Marque.
A la prochaine ouverture, la Marque s'ouvrira par défaut avec GN_Date_Jour_Systeme comme valeur pour la QuickView Date, à moins que le Modèle n'ait pas de données relatives à la date système courante, dans ce cas la valeur GN_Date_Jour_Systeme est remplacée par Toutes les valeurs (xx) .
Remarque : vous pouvez également utiliser cette méthode pour qu'une QuickView de type Mois-Année soit filtrée sur le mois de la date système.
Un script VBS avec les lignes de codes suivantes :
Const ForReading = 1, ForWriting = 2
Dim fso, f, dt1, dt2
dt1 = Month(Date())
if len(dt1)<2 then dt1 = "0" & dt1
dt2 = dt1 & "-" & Year(Date())
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\DI_Solution\dl-dataroot\data\lookups\lookup_date.txt", ForWriting,true)
f.writeline("Date" & vbTab & "GN_Date_Jour_Systeme")
f.writeline(dt2 & vbTab & "X")
génère un fichier lookup_date.txt dont le format de sortie est le suivant :