Esta semana estoy trabando mucho con K2B, y resulta también, que estoy escribiendo mucho.
Situación
Genere una transacción, donde se genera un Id único para todos los Clientes de Empresas Externas. Cada empresa externa, tiene su propia calificación para identificar a sus Clientes, para lo cual, creé un atributo que identifica para que Empresa Externa es la carga del Cliente.
Cada combinación de claves por la empresa externa son claves candidatas. Esta por demás decir que los atributos que no correspondan al Tipo de empresa externa, quedan vacías.
Ejemplo
TipoEmpresaExterna = 'Empresa 1'
AtrClaveEmpresa101
AtrClaveEmpresa102
TipoEmpresaExterna = 'Empresa 2'
AtrClaveEmpresa201
AtrClaveEmpresa202
AtrClaveEmpresa203
TipoEmpresaExterna = 'Empresa 3'
AtrClaveEmpresa301
Al generar los pattern K2B, tuve la idea al cargar la Transacción, al visualizar el workwith, solo debía verse los atributos claves según el Tipo de empresa externa que seleccione el usuario. Es hay donde comencé a escribir bastante, en la Transacción y con Pattern K2B.
Tips
Esto es básicamente lo que escribí es K2B para el evento Refresh del Workwith
If not &TipoEmpresaExterna.IsEmpty()
If &TipoEmpresaExterna <> 'Empresa 2'
// atributos
AtrClaveEmpresa101.Visible = 0
AtrClaveEmpresa102.Visible = 0
// Variables del filtro
&AtrClaveEmpresa101.Visible = 0
&AtrClaveEmpresa102.Visible = 0
// Los literas de las variables del filtro
K2BSearchTitleAtrClaveEmpresa101.Visible = 0
K2BSearchTitleAtrClaveEmpresa102.Visible = 0
Endif
If &TipoEmpresaExterna <> 'Empresa 2'
// atributos
AtrClaveEmpresa201.Visible = 0
AtrClaveEmpresa202.Visible = 0
AtrClaveEmpresa203.Visible = 0
// Variables del filtro
&AtrClaveEmpresa201.Visible = 0
&AtrClaveEmpresa202.Visible = 0
&AtrClaveEmpresa203.Visible = 0
// Los literas de las variables del filtro
K2BSearchTitleAtrClaveEmpresa201.Visible = 0
K2BSearchTitleAtrClaveEmpresa202.Visible = 0
K2BSearchTitleAtrClaveEmpresa203.Visible = 0
Endif
...
Endif
También agregue el evento .Click para la variable &TipoEmpresaExterna
Idea
Habilitar una propiedad NoVisibleConditions, donde se cargue la condición para que no se visualice el atributo en la grilla, en los filtros y en el tab General.
jueves, 8 de noviembre de 2007
Tips K2B e Idea: NoVisibleConditions
Publicadas por Adolfo Vera a la/s 6:40:00 a. m. 0 comentarios
Etiquetas: Idea, K2BWorkWith, Patterns, Tips
miércoles, 31 de octubre de 2007
Tips GX e Idea: Ajustar ancho de columna de una Grilla
Te ha pasado que cuando desarrollas un nuevo sistema, defines las transacciones, haces la reorg, le aplicas pattern, lo especificas, lo compilas, y listo!!!, a cargar las nuevas transacciones.
Hasta el momento de cargar las transacciones, pareciera que uno no se cuenta de como van a quedar los títulos de las columnas de las grillas.
Por ejemplo dos atributo, tipo Char 1, con los valores (S, N), visualizado con un combo box (Si, No)
"Permiso de usuario a visualizar su email",
"Permiso de usuario a visualizar su nombre completo"
Las columnas quedan muy anchas y estéticamente no queda bien
Digamos, que sos de las personas que cargan en la transacción la propiedad del atributo "Column Title", antes de continuar ,Te felicito!, vas por buen camino, pero como en mi caso, tengo que reconocer que en esa área, tengo una mala práctica.
Digamos entonces que cargue en la propiedad "Column Title"
"Permiso ver email", ó "Ver email"
"Permiso ver Nombre" ó "Ver Nombre"
Para este ejemplo, quizás ya sea suficiente con eso, la columna de la Grilla queda menos ancha, y si no, es ahi donde se comienza a abreviar. Para el tema de abreviaciones no quiero entrar en detalles, pues generalmente los usuarios finales me preguntan ¿Y que significa la columna:
"Per. Usu. Email"?
Tips:
Ante esta situación leyendo un poco, encontre una mini solución:
Hacer que títulos de las columnas aparezcan en más de una linea utilizando <BR> y seteando la propiedad TitleFormat en 1, de los atributos, variables que esten en una grilla.
Como utilizo Pattern, generalmente corrijo el título de las columnas de una grilla, es ahí donde agrego el tag <BR>
Publicadas por Adolfo Vera a la/s 4:23:00 p. m. 0 comentarios
jueves, 25 de octubre de 2007
Patterns - Idea: Una sola definición de grillas por Transacción
¡¡¡Me encanta Patterns!!! Es una herramienta que esta sobre un generador. Podríamos decir que está a un tercer nivel de abstracción, primero el lenguaje de programación en si, luego esta el CASE, para este caso Genexus, y sobre está herramienta, Patterns.
Para alguien como yo, que nunca escribió mínimos "Tag" para un HTML, trabajar en Genexus, para realizar un "Web Panels" era algo tedioso, no porque la herramienta no lo permita hacer, sino, por esa condición de "Diseñador Gráfico" que uno tiene que tener a la hora de hacer sitios profesionales y con estilo.
Y la parte de estética, definitivamente, lo soluciona Patterns.
Ahora que se esta trabajando en la Rocha, seria bien interesante considerar la siguiente "Idea". Se basa en el caso de uso para WorkWith y K2BWorkWith
Primero explico el problema:
Ya que soy de la línea de escribir código lo menos posible, hay algo bastante repetitivo, a la hora de trabajar con Pattern con varias transacciones (20 en adelante), donde las relaciones por claves foráneas ya son bastantes.
Por cada instancia de Pattern, se tiene definir todos los atributos que se desean visualizar en la grilla, el titulo de las columnas, los filtros, los prompts, chequear si la búsqueda es por un Combo Box, las condiciones, en el caso de K2BWorkwith, agregar código, variables, y la misma tarea se repite en los "Tabs".
Posible solución:
A la hora de generar la instancia del Pattern, que haya una configuración global, donde se permite setear la no creación automática de los Tabs.
La idea es generar las instancias "Selection" de todas las transacciones, modificar los titulo de columnas de ser necesario, selección de atributos a visualizar, definición de filtros, condiciones, etc.
Una vez concluido esto, tener la opción, para la generación automática de los "Tabs", y cada Tabs copie lo que corresponda según cada "Selection" de esa Transacción.
Con esto, aparte de ser mas rápido la generación de los objetos Patterns, también se obtiene mas homogeneidad a la hora de visualizar los datos.
¡Una sola definición de grillas por Transacción!
Si algún tercero lo hace antes que Artech lo lanze, no pido mucho, solo el 1% de las ganancias por 5 años.
Publicadas por Adolfo Vera a la/s 10:42:00 p. m. 2 comentarios
Etiquetas: CASE, Genexus, GenexusX, Idea, K2BWorkWith, Patterns, Rocha, WorkWith
