Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Fri 10 September 2010 15:18

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

[MB 8.5] Compteur d'initialisation d'outil MB

Bonjour à tous....

Depuis un moment, j'ai terminé le code d'un outil Mapbasic qui permet d'automatiser une carte donnée. Le 1er souci étant que ma structure à un système de positionnement des objets propriétaire, j'ai une table à mettre à jour tout le temps à l'initialisation de l'outil. Pour ce faire, je dois d'abord récupérer la table sur un serveur, puis manuellement la géocoder avec un logiciel propriétaire de ma structure pour que l'outil puisse ensuite monter un début de carte se basant sur cette table. Avant de créer sa carte toutefois, je modifie la table pour réécrire le contenu de deux colonnes en clair, vu qu'en sortie de géocodage, celles-ci contiennent un caractère parasite à chaque ligne. Le deuxième souci ensuite est qu'il faut ensuite copier cette table au bon endroit dans le paquetage Copy Plus sur lequel s'appuie le WOR de l'outil.

La chose sympa que je pense à faire serait donc, avec un module de code supplémentaire, d'automatiser tout çà. La mise à jour de la table se ferait une fois par semaine. Il me faudrait donc, puisque les variables globales de l'outil (il y en a pas mal) sont initialisées à chaque exécution de l'outil pendant toute la durée de son exécution, tester si l'outil est exécuté ou non plus d'une fois par semaine, et si oui, ne lancer qu'une seule fois la mise à jour de la table. Par extension, il me faut aussi contrer le fait que l'utilisateur ferait une mauvaise manip, veuille recommencer sa carte, donc il faut que les vars globales se remettent toutes à zéro, notamment pour la mise à jour des colonnes de ma table. Pertinemment, il me faut donc un compteur au cours de la session également, pour pister également la confection d'une nouvelle carte au profit d'une râtée.... et éviter ainsi de refaire la mise à jour des colonnes de la table.

C'est l'action de tester si l'outil est exécuté ou non plus d'une fois par semaine, ou au cours d'une même journée me pose souci, pour l'instant, je n'ai pas trop d'idée... Comment feriez-vous ? Si l'idée n'est pas bonne, que feriez-vous autrement ?
J'ai bien pensé à une gestion à la date, mais çà me semble d'emblée trop lourd...

Dans l'attente de lumineuses idées, merci beaucoup d'avance à tous....

Hors ligne

 

#2 Fri 10 September 2010 16:05

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MB 8.5] Compteur d'initialisation d'outil MB

Bonjour,

Voici une suggestion : 

Dans ta "sub main" Celle qui habituellement créer les menu et initialise l'outil, just apres la déclaration de variable/fonction/sub, ajoute ceci

Code:

If Weekday( CurDate( ) ) = 2 Then ' 2 étant lundi, 3 mardi etc....
run application c:\...\mise_a_jour.mbx 'Un mbx que tu crées pour mettre a jours ta table
End If
...
'Le reste de ton code
...

Le code se met donc a jour tout les lundi quand tu "load" l'outil

JF

Dernière modification par jean94 (Fri 10 September 2010 16:06)

Hors ligne

 

#3 Wed 15 September 2010 15:04

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

Re: [MB 8.5] Compteur d'initialisation d'outil MB

Bonjour ,

C'est merveilleux ! Merci beaucoup jean94 !!

Hors ligne

 

#4 Wed 15 September 2010 16:07

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MB 8.5] Compteur d'initialisation d'outil MB

Il a un ou deux hic que je prévois deja...que se passera t-il si tu ouvre deux fois l'outil le lundi et si lundi tu es absent tu voudrais p-e qu'il se mettre à jour le jour suivant?

Pour cela je te conseil d'écrire la date dans un .txt et lire la date de derniere mise à jour avec le jour présent pour activer la mise a jour ou non. Les fonction nécéssaire seraient les suivantes

CurDate( ) function
Month( ) function
Day( ) function
Year( ) function
Tu peux même réécrire comme ceci pour avoir le la date ajd : Print Day( CurDate( ) ) + "/" + Month( CurDate( ) ) + "/" + Year( CurDate( ) )

JF

Hors ligne

 

Pied de page des forums

Powered by FluxBB