2017-07-20 2 views
2

Je veux savoir comment modifier les paramètres dans EA par programme dans un addin.Création d'une image de diagramme sans description ou remplissage dans addin

J'ai déjà un addin qui fonctionne, ce qui crée une nouvelle image du diagramme chaque fois qu'il est modifié, écrasant l'ancienne version. cela se fait en C# via cette commande:

projectInterface.PutDiagramImageToFile(GUID, path, 1); 

Cela ressemble à ceci: Current image

Cependant je veux une image sans rembourrage et sans la boîte dans le coin gauche supérieur, comme celui-ci: Wanted image

alors que cela peut être fait en modifiant les paramètres, je veux persister les paramètres des utilisateurs, ce qui signifie que je vais probablement faire ce qui suit:

  1. Notez le paramètre
  2. Modifier le paramètre
  3. Créer l'image diagramme
  4. Modifier le paramètre à l'original

so ... Comment puis-je modifier ces paramètres? (Préférences -> diagramme -> cadres de diagramme -> images imprimées et le rembourrage du diagramme)

Les idées sont également les bienvenus :)

Répondre

2

Vous ne pouvez pas obtenir facilement ce que vous voulez. Le drapeau pour créer la frontière du diagramme est stocké dans le Registre:

[HKEY_CURRENT_USER\Software\Sparx Systems\EA400\EA\OPTIONS] 
"SAVE_IMAGE_FRAME"=dword:00000001 

Vous pouvez modifier ce paramètre, mais EA ne reconnaîtra le changement d'un redémarrage. Si vous exécutez votre script depuis l'extérieur d'EA, vous devrez modifier le registre, démarrer une instance d'évaluation environnementale, faire ce dont vous avez besoin et changer finalement le drapeau. De l'intérieur d'EA, vous n'avez probablement pas de chance. (Vous pouvez essayer, cependant.)

J'ai vérifié l'aide et pour les propriétés diagramme/diagramme/Masquer la frontière, il dit

Cliquez sur tout ou partie des cases à cocher pour spécifier les images enregistrées de votre les diagrammes incluent automatiquement un cadre de diagramme autour d'eux - ceux qui sont sauvegardés sur le disque, ceux qui sont imprimés et/ou ceux qui sont sauvegardés dans le presse-papiers du système par défaut.

Un cadre de diagramme est un contour étiqueté autour de l'image du diagramme, fournissant à la fois une bordure et une référence.

De toute évidence, il ne fait pas ce qu'il dit. Vous pourriez signaler un bug.

En quittant ma réponse précédente pour éviter les pièges pour d'autres ....

Vieille réponse - Il semble que le réglage du schéma « évident » ne fera pas ce qu'il dit - EAUI :-(

Vous devez accéder directement aux tables.

SELECT ShowBorder FROM t_diagram WHERE Diagram_ID = <the id> 

<the id> est l'ID de diagramme du diagramme. Il renverra True ou False en fonction du réglage actuel.

Pour changer réellement vous avez besoin d'appeler

Repository.Execute("UPDATE t_diagram SET ShowBorder=<the altered value>") 

Execute est une opération sans papier mais de travail qui ne peut être évité dans des cas comme celui-ci où l'API (encore une fois) ne fournit pas les attributs.

+0

Le paramètre que je veux changer est pour chaque utilisateur, dans les préférences -> diagramme -> cadres de diagramme -> images imprimées bien que ce soit assez agréable à savoir, ce n'est pas ce que je veux - sauf si cela peut aussi être fixé sur chaque diagramme? – Martin

+0

Oups. EA frappe à nouveau. Je dois regarder encore une fois. –

+0

Aah, oui. C'est dans l'une des options. Je mettrai à jour ma réponse (cela prendra environ une heure). –