#1 Tue 22 April 2014 11:15
- François063
- Participant occasionnel
- Lieu: aubieres
- Date d'inscription: 20 Nov 2008
- Messages: 11
MapInfo 7.5 probleme Etiquettes Perdues
Bonjour à tous,
Je rencontre un problème avec les instructions LabelFindByID() LabelFindFirst() LabelFindNext()
Utilisateur de MapInfo 7.8 et MapBasic 7.5
Dans le cadre de l'analyse de données "traits" étiquetés je modifie les étiquettes associées au trait pour les mettre de la même couleur (association visuelle)
jusqu'à présent j'utilisais la commande
ADD Map Window WinId Layer TPress(i).TACarte(l).SimpNom
Set Map Window WinId Layer TPress(i).TACarte(l).SimpNom Label Position Above Right Font( "Arial", 257, 9, 0, 16776960 ) With Str$( Troncon ) Parallel Off Overlap On PartialSegments On Duplicates On Offset 5
où troncon contient le libellé et sans utiliser AUTO ON dans Set Map
puis, dans une sous-routine je les modifiais...
pour les enregistrements 1 à n de la table je modifiai l'etiquete Obect n par
CmdLigne = "Set Map Window " + NoFen + " Layer " + NTable + Chr$(13) + "Object " + n + " Font( " + Chr$(34) + "Arial" + Chr$(34) + ",1,9," + NRequ + ")"
ou n correspond à l'enregistrement de NTable et NRequ correspont à la couleur à appliquer (issu de NTable)
Ayant constaté des disfonctionnements, j'en ai conclu que les étiquettes ne suivaient pas "Forcément" l'ordre des enregistrements de la table en référence
J'ai donc fait une tentative avec LabelFindFirst() LabelFindNext()
mais là aussi je rencontre des problèmes et m'adresse à vous afin de solliciter vos propositions
un LabelFindFirst() me sort la premiere etiquette qui une fois analysée me permet d'identifier l'enregistrement n de la table et donc d'obtenir la couleur à appliquer... idem avec LabelFindNext()
en passant, j'ai été amené a ajouter AUTO ON dans SET MAP
je fais maintenant une sauvegarde dans un wor avant de lancer "ModLabel" j'ai juste constaté que celles qui sont modifiées apparaissent bien dans le wor...
SAUF QUE il me manque des étiquettes...
dans la copie d'ecran jointe les étiquettes Noires ombrées de jaune ne sont pas "vues" avec LabelFindNext()
j'ai fait une tentative de recherche à l'aide de LabelFindByID()
If LabelFindByID( NoFen, NoLay, cptRows, "", TRUE ) Then
cptRows jusqu'à 32000 sans trouver d'écho
La premiere etiquette du layer posant problème m'a retourné un "0" inattendu et qui ne convenait pas
je vais tester sur une autre machine qui fonctionne sous XP plutôt que sur Vista mais sans grand espoir
les volumes manipulés sont de l'ordre
de 2 à 3000 etiquettes automatiques pour 600 modifiées sur plusieurs layer sachant qu'il n'y a pas de mélange automatique/modifié sur un layer, c'est ou l'un ou l'autre, l'utilisateur n'a la main qu'en fin de traitement
Voila... des idées ? des pistes ?
je ne suis pas familiarisé avec LabelFind alors peut-être ???
Merci pour vos éclairages
François
le meme jour 14h00
Questions :
LabelFindFirst a-t-il besoin d'un délai avant d'être représentatif
le fait de lancer ModLabel juste après Set Map est-il la cause de mes ennuis ?
Set Map Window WinId Layer TPress(i).TACarte(l).SimpNom Label Position Above Right Font( "Arial", 1, 4, 0, 16776960 ) With Str$( Troncon ) Auto On Parallel Off Overlap On PartialSegments On Duplicates On Offset 5
Call ModLabel( TPress(i).TACarte(l).SimpNom, WinId, "SectPDF" )
Dans la trace je constate que dans les trois fenetres construites
la premiere passe de façon idéale (Quitte ModLabel CPTENR=0 qui restent à traiter), la seconde n'est pas concernée, et dans la troisieme "SectPDF" les index de démarrage "NoLab" ne débutent plus à 1 et cptEnr non nul
ne pratiquant pas le latin, je ne peux prétendre l'avoir perdu, mais tout de même...
Dernière modification par François063 (Tue 22 April 2014 14:44)
Hors ligne