Personalización IDE de PowerBuilder para SCC

Nuestra aplicación PowerBuilder es bastante grande y tiene muchos objects en varios PBL para organizar nuestro código. A menudo tenemos 10 o más windows de datos en una window, y estas windows de datos pueden estar distribuidas en dos o tres PBL. Para el control de versiones, usamos el check-out exclusivo para evitar conflictos de combinación.

La situación es que cuando hace clic derecho en un object de la window de datos desde el pintor de Windows, obtiene un menu de context con opciones como "Script" y "Propiedades" y "Modificar window de datos …". Nos gustaría agregar uno para "Check-out …" para evitar tener que search la window de datos en varios PBL.

Cualquier idea sobre cómo hacer esto, o algo similar, sería muy apreciada.

Creo que lo mejor que puedes hacer es crear una biblioteca temporal en la parte superior de tu list de bibliotecas, ubicar tus windows de datos saltando a ellas a través de "Modificar window de datos …", luego savelas en tu biblioteca temporal y finalmente usar las herramientas en su sistema de control de origen para localizarlos por su nombre y bloquearlos.

Otro truco que uso es desmarcar la checkbox en las opciones de control de origen que borra los files .srd etc. y luego usar las herramientas de búsqueda de su sistema operativo para search el nombre de file (ya que Powerbuilder aún no admite la búsqueda de objects por nombre …). Por supuesto, si no tienes muchos objects, y si tus objects no tienen muchas references, siempre puedes usar la búsqueda de Powerbuilder … pero ¿a quién conoces en esa afortunada position?

Creo que has topado con un problema con el que se topan muchas personas, que corre directamente a través de un vacío en PB que te permite comenzar a editar un DataWindow sin advertirte que lo verifiques. Lamentablemente, que yo sepa, no hay forma de enganchar el menu contextual.

Sin embargo, puede conectar elementos de la barra de herramientas. Si esa era la forma en que yo quería ir, y tenía mucho time libre, escribiría una aplicación que lanzaría desde la barra de herramientas, y esto es lo que haría:

  • Encuentre la window de PowerBuilder con API
  • Encuentre la hoja actual en PB
  • Obtener el nombre del object fuera del título
  • Obtenga la aplicación actual (logging o PB.INI, dependiendo de la versión de PB, y puede implicar get el espacio de trabajo primero, luego el objective actual)
  • Obtener la list de la biblioteca (PB.INI o file de destino)
  • Hacer una LibraryExport () en el object que está abierto
  • Buscar todos los controles DataWindow (esto puede implicar search ancestros para determinar los types de control)
  • Identifique los objects de datos para estos controles (de nuevo, es posible que tenga que mirar a los antepasados)
  • Use LibraryDirectory () para get una list de todos los objects en todos los PBL
  • Encuentra los PBL de los objects de datos
  • Lanzar una window que enumere los objects de datos y sus PBL

OTOH, si tuviera PBL Peeper (y, sí, este es un consejo sesgado), lo haría

  • Inicie el ícono "PBL Peeper (Examine la aplicación actual)" en mi escritorio (OK, eso es mentira, ya tenía PBL Peeper abierto y simplemente cambiaría a la página de exploración)
  • Ctrl-Q (para QuickFind) y comienza a escribir el nombre del object (si hace una pausa, encontrará una coincidencia parcial en lo que ha escrito)
  • Pulse [Entrar] una vez para aceptar la selección de QuickFind
  • Presione [Enter] nuevamente para expandir el object
  • Encuentre el control DataWindow en cuestión y RMB en él
  • Seleccione "Ir a la window de datos pnetworkingeterminada"
  • Si no muestra la biblioteca y el nombre en el microhelp (ha pasado mucho time desde que lancé una versión, y no puedo hacer un seguimiento de lo que hay en la versión lanzada), encuentre el elemento de la barra de herramientas Up para upload al PBL

Sé que esto no logra un pago, pero sí "evita tener que search la window de datos en varios PBL". Y, probablemente puedas lograr esto más rápido que mi primera sugerencia.

Buena suerte,

Terry

La forma en que lo hago es hacer clic derecho y elegir Modificar window de datos. Cuando el pintor se abre, puede leer el PBL desde el título del pintor. Luego cierre el pintor DataWindow para que PB le permita verificar DataWindow. Para el caso más general de localizar un object de usuario arbitrario, utilice el método PBL Peeper de Terry.

Podría separar la organización de los PBL utilizados para el desarrollo de los utilizados para la implementación.

Siempre que los nombres de PBL no entren en conflicto entre las dos vistas en el código fuente. Los files PBG registrados en el control de fuente no se pegarán entre sí.

La desventaja es que cuando se agregan o eliminan nuevos objects, deberá actualizar ambas ubicaciones.

Yo crearía una window de datos solo PBL con todos los objects relacionados y los pondría en el mismo destino. Cuando trabajé con ese subsistema o informe pude ver todos los objects en la misma biblioteca.