2010-03-25 4 views
2

Notre application PowerBuilder est assez volumineuse et contient de nombreux objets dans plusieurs PBL pour organiser notre code. Nous avons souvent 10 ou plus datawindows sur une fenêtre, et ces fenêtres de données peuvent être réparties sur deux ou trois PBL. Pour le contrôle de version, nous utilisons l'extraction exclusive pour éviter les conflits de fusion. La situation est que lorsque vous faites un clic droit sur un objet datawindow de Window peintre, vous obtenez un menu contextuel avec des options comme "Script" et "Properties" et "Modify Datawindow ...". Nous aimerions en ajouter un pour "Check-out ..." pour éviter d'avoir à chercher la datawindow dans plusieurs PBL.Personnalisation de l'IDE PowerBuilder pour SCC

Toutes les idées sur la façon de faire ceci, ou quelque chose de similaire, seraient grandement appréciées.

+0

Cela semble être une très bonne idée, mais je ne peux pas imaginer comment vous y prendrez. L'IDE ne supporte pas vraiment les plugins AFAIK –

Répondre

2

Je pense que le mieux que vous pouvez faire est de créer une bibliothèque temporaire en haut de votre liste de bibliothèques, localisez vos fenêtres de données en y accédant via "Modifier DataWindow ...", puis en les sauvegardant dans votre bibliothèque temporaire. Enfin, utilisez les outils de votre système de contrôle de source pour les localiser par leur nom et les verrouiller. Une autre astuce que j'utilise est de décocher la case dans les options de contrôle de source qui efface les fichiers .srd etc, puis en utilisant les outils de recherche de votre système d'exploitation pour rechercher le nom de fichier pour ces (puisque Powerbuilder ne le fait toujours pas t soutenir la recherche d'objets par leur nom ...). Bien sûr, si vous n'avez pas beaucoup d'objets, et si vos objets n'ont pas beaucoup de références, vous pouvez toujours utiliser la recherche de Powerbuilder ... mais qui connaissez-vous dans cette position chanceuse? !!

1

Je pense que vous avez rencontré un problème que beaucoup de gens rencontrent, qui traverse une faille dans PB qui vous permet de commencer à modifier un DataWindow sans vous avertir de le vérifier. Malheureusement, à ma connaissance, il n'y a aucun moyen de se connecter au menu contextuel.

Toutefois, vous pouvez vous connecter aux éléments de la barre d'outils. Si tel était la façon dont je voulais aller, et j'ai eu beaucoup de temps à perdre, j'écrire une application que je lance à partir de la barre d'outils, et voici ce qu'il ferait:

  • Trouver la fenêtre PowerBuilder avec les API
  • Trouver la feuille actuelle PB
  • Obtenez le nom de l'objet sur le titre
  • Obtenez l'application en cours (registre ou PB.INI, selon la version de PB, et peut impliquer d'obtenir l'espace de travail d'abord , puis la cible actuelle)
  • Obtenez la liste de bibliothèques (PB.INI ou fichier cible)
  • Faire un LibraryExport() sur l'objet qui est ouvert
  • Trouver tous les contrôles DataWindow (cela peut impliquer regarder les ancêtres pour déterminer les types de contrôle)
  • Identifier dataobjects pour ces contrôles (encore une fois, vous pouvez besoin de regarder les ancêtres)
  • Utilisez LibraryDirectory() pour obtenir une liste de tous les objets dans toutes les PBL
  • Trouver des PBL DataObjects
  • Jeter une fenêtre listant les dataobjects et leurs PBL

OTOH, si j'avais PBL Peeper (et, oui, ce sont des conseils biaisés), je

  • Lancer le "PBL Peeper (Parcourir application en cours)" icône sur mon bureau (OK, c'est un mensonge ; Ctrl-Q (pour QuickFind) et commencer à taper le nom de l'objet (si vous faites une pause, il trouvera une correspondance partielle sur ce que vous ' ai tapé)
  • Hit [Entrée] pour accepter la sélection de QuickFind
  • Hit [Entrée] pour développer l'objet
  • Trouver le contrôle DataWindow en question et RMB sur elle
  • Sélectionnez « Aller à défaut DataWindow »
  • S'il ne montre pas la bibliothèque et le nom dans le microhelp (cela fait longtemps que je n'ai pas publié de version, et je ne peut pas garder trace de ce qui est dans la version publiée), trouver l'élément Up barre d'outils pour aller à la PBL

Je sais que cela ne permet pas de passer à la caisse, mais il "évite d'avoir à chercher le datawindow dans plusieurs PBL ". Et, vous pouvez probablement réaliser ceci plus rapidement que ma première suggestion.

Bonne chance,

Terry

+0

Je n'avais pas utilisé PBL Peeper auparavant. Merci pour cet outil astucieux! –

+0

La désactivation de l'avertissement pour les objets qui n'ont pas été extraits a été la première chose que j'ai faite lorsque l'option est devenue disponible. –

1

La façon dont je le fais est à un clic droit et choisissez Modifier DataWindow. Lorsque le peintre ouvre, vous pouvez simplement lire le PBL du titre du peintre. Fermez ensuite le peintre DataWindow afin que PB vous laisse découvrir la DataWindow. Pour le cas plus général de localisation d'un objet utilisateur arbitraire, utilisez la méthode Peeper PBL de Terry.

+0

C'est la manière actuelle de faire cela. Il semble qu'il y ait quelques pas de trop. Ne serait-il pas agréable d'avoir "Check Out" lorsque vous faites un clic droit? –

0

Vous pouvez séparer l'organisation des PBL utilisés pour le développement de ceux utilisés pour le déploiement.

Tant que les noms PBL ne sont pas en conflit entre les deux vues dans le code source. Les fichiers PBG enregistrés dans le contrôle de la source ne se chevauchent pas. L'inconvénient est que lorsque de nouveaux objets sont ajoutés ou supprimés, vous devrez mettre à jour les deux emplacements.

Je créerais un PBL datawindow uniquement avec tous les objets liés et les placerais dans la même cible. Quand j'ai travaillé avec ce sous-système ou ce rapport, je pouvais alors vérifier tous les objets de la même bibliothèque.

Questions connexes