#1 Tue 03 July 2018 06:28
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
Date automatique_ArcMap9.3
Bonjour,
Depuis quelques temps je cherche en vain, pour ArcMap9.3, une solution pour mettre à jour la date dans le cartouche du mode mise en page. Cette mise à jour doit être liée à l'horloge de l'ordinateur.
Certes, la version est ancienne mais y aurait-il parmi nous une personne expérimentée pour me soulager de cette récurrente épine ?
Merci bien
Laurent
Hors ligne
#2 Fri 06 July 2018 09:23
Re: Date automatique_ArcMap9.3
Je suppose que les textes dynamiques sont arrivés plus tard (v10.1? ).
Ca existait sur la version 9.3. J'ai trouvé ça du côté d'une extension PLTS, en texte dynamique :
http://webhelp.esri.com/arcgisdesktop/9 … _map_sheet
A part ça, quelques pistes ici avec un peu de code :
https://community.esri.com/thread/14193
Here is the new code which I think will accomplish what you are trying to do. You will still need to reference Microsoft Scripting Runtime to get the date modified.
First inside ArcMap
1. Inset --> Text
2. Right click the new text element --> Properties
3. Under Size and Position Tab
4. Element Name Should be : FileName
Next Inside Microsoft Visual Basic Editor
1. Tools --> References --> Check "Microsoft Scripting Runtime"
2. Inside Project --> ArcMap Objects --> ThisDocument
3. Paste Code Below and reference AddFilePath in your code that is already written.
Code To Paste:Code:
Public Sub AddFilePath() Dim pApplication As Application Set pApplication = Application Dim pDocument As IDocument Set pDocument = pApplication.Document Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim pMap As IMap Set pMap = pMxDoc.Maps.Item(0) 'must be the first Data Frame in the map Dim pLayout As IPageLayout Set pLayout = pMxDoc.PageLayout Dim pActiveView As IActiveView Set pActiveView = pMxDoc.ActiveView 'Scroll through all elements on the layout Dim pGraphicsCont As IGraphicsContainer Set pGraphicsCont = pActiveView.GraphicsContainer pGraphicsCont.Reset Dim pElement As IElement Set pElement = pGraphicsCont.Next Do Until pElement Is Nothing 'Check the element's name - we are looking for one called "FileName" Dim pElementProp As IElementProperties Set pElementProp = pElement If pElementProp.Name = "FileName" Then 'Double-check that this is a text element If TypeOf pElement Is ITextElement Then 'Make Sure You Reference Microsoft Scripting Runtime or this will not work!!!!!! Dim pTemplates As ITemplates Set pTemplates = Application.Templates Dim lTempCount As Long lTempCount = pTemplates.Count ' Normal is always the first item Dim strNormalPath As String strNormalPath = pTemplates.Item(0) ' The document is always the last item Dim strDocPath As String strDocPath = pTemplates.Item(lTempCount - 1) ' If present, the base template is the middle item Dim strBasePath As String If lTempCount = 3 Then strBasePath = pTemplates.Item(1) Else strBasePath = "NO BASE TEMPLATE LOADED" End If ' Report pathnames ' MsgBox "Normal Template: " & strNormalPath & vbNewLine & "Base Template: " & strBasePath & vbNewLine & "Document: " & strDocPath 'Update the text to the file path of the project Dim pTextElement As ITextElement Set pTextElement = pElement Dim fso As New FileSystemObject Dim f As File Set f = fso.GetFile(strDocPath) Dim filedate As String filedate = f.DateLastModified 'MsgBox filedate pTextElement.Text = "Map Plotted: " & Now & ", " & "Map Edited: " & filedate & ", " & "File: " & strDocPath End If End If 'Move on to the next graphic element Set pElement = pGraphicsCont.Next Loop 'Refresh the display pActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing End Sub
Hors ligne
#3 Wed 08 August 2018 07:55
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
Re: Date automatique_ArcMap9.3
Merci Robin,
Oui ma version ArcGis Desktop 9.3.1 ne permet pas l'ajout de texte dynamique venu pour la v10. C'est quand même étrange de ne pas avoir la possibilité pour cette version, ancienne certes, d'insérer une "date" dans la mise en page sans avoir à la mettre à jour manuellement! bref.
Coïncidence ! hier j'ai trouvé également ce lien que tu transmets community.esri.com/thread/14193
J'ai testé le code puis le suivant, pour l'instant sans succès.
Je dois faire des erreurs dues à mon manque de pratique en vba.
D'après le post, le code doit renvoyer la phrase suivante:
Map Plotted: 10-08-10 15:50, Map Edited: 10-08-10 15:49, File: C:\Maps\Client\Map.mxd
J'ai suivi les instructions données et mes interrogations sont sur 3 points:
1. Inset --> Text
Que doit-on inscrire ? :
- seulement "Texte" en Fr ou "Text" en Eng
- pTextElement.Text = "Map Plotted: " & Now & ", " & "Map Edited: " & filedate & ", " & "File: " & strDocPath
- "Map Plotted: " & Now & ", " & "Map Edited: " & filedate & ", " & "File: " & strDocPath
3. Paste Code Below and reference AddFilePath in your code that is already written.
Je ne comprends pas ce que signifie "référencer AddFilePath dans le code déjà écrit" ?? Dans la fenêtre Microsoft Visual Basic, sous Projet, il y a 2 dossiers : ArcMap Objects/ ThisDocument ou j'ai copier le code. Il y a un second dossier References avec la possibilité de renseigner les propriétés du projet (Name, Description, ect..), est-ce une réponse ? ou pas !
Ma version ArcGis Desktop 9.3.1 est française. Cela a t-il des incidences sur la compréhension du code copié par le système Windows 7 Professionnel
Merci pour les compléments d'infos
Laurent
Hors ligne