Tengo un datawindow con tres columnas usu_num, usu_nombre y usu_clave Por estética les pongo como texto de cabecera "Codigo", "Nombre" y "Contraseña" Deseo un ddlb con la lista de los nombres de los texto de cabecera (código, nombre y contraseña), en vez de los títulos de las columnas (usu_num, usu_nombre y usu_clave), y que los obtenga automáticamente
1 respuesta
Respuesta de vcmendoza
1
1
vcmendoza, Ing. de Sistemas Herramientas usadas Power Builder 7, 8, 9, 10.5...
No se entiende muy bien tu pregunta, pero lo más recomendable no es usar un DDLB sino un DDDW (DropDownDataWindow), este lo que hace es asignar un DW Grid, y como veras en un dw grid, si es posible cambiar los nombres de la cabecera de los campos por un texto más estético. Si esto no ayuda tu consulta.
Ok Tengo una tabla de Base de Datos que se llama t_clientes En dicha tabla tengo los siguientes campos: - usu_num (se refiere al código del cliente) - usu_nombre (se refiere al nombre del cliente) - usu_clave (se refiere a la contraseña del cliente) Aparte, tengo un DataWindow de tipo Grid con el contenido de dicha tabla (los tres campos) llamado dw_cliente. Este datawindow muestra el contenido de la tabla t_clientes en una tabla de 3 columnas con sus respectivos títulos. Por defecto los títulos de esas columnas eran usu_num, usu_nombre y usu_clave; por ese motivo modifique el "Header" de ese Datawindow para que los títulos se cambien a "Codigo", "Nombre" y "Clave" respectivamente. Resulta que deseo crear una ventana de búsqueda de clientes. La idea es que la búsqueda sea según 3 criterios: búsqueda por código del cliente, búsqueda por nombre del cliente y búsqueda por clave del cliente. Deseo que dicha ventana tenga la siguiente estructura: - En la parte superior deseo poner un dataWindow que muestre el/los resultado(s) que coincida(n) con la búsqueda - En la parte inferior un campo de texto llamado "sle_buscar", en donde el usuario escriba el texto que desea buscar - A la derecha de "sle_buscar" deseo colocar una lista desplegable (un ddlb u otra cosa) que contenga los tres criterios de búsqueda y que estos los saque automáticamente de la Tabla, de tal manera que si agrego un nuevo campo a la tabla t_clientes, este campo se agregue automáticamente a la lista desplegable. Hasta aquí no tengo problemas. La lista desplegable me muestra automáticamente los nombres de los campos (los tipos de búsqueda), obteniedolos de la tabla t_clientes. El problema radica en que la lista desplegable muestra como opciones los nombres de los campos de la tabla w_clientes, pero los nombres de los campos no son muy claros (usu_num, usu_nombre y usu_clave no son muy entendibles). Mi interés es el cambiarles esos nombres por los títulos que les puse en el Datawindow "dw_cliente" (los que les definí en la parte de "Header" de dicho DataWindow) ya que los títulos de la tabla son más claros (la idea es que también lo haga automáticamente). Gracias por paciencia en leer mi consulta y por tu apoyo
Lo que puedes hacer es primero, obtener el numero de columnas de tu datawindow, por que del DW y no de la tabla, pues porque es el DW el que contiene las descripciones claras para el usuario, obtendrás las columnas con este función: string ls_count integer li_count, li_i ls_count = dw_x.object.datawindow.column.count li_count = string(ls_count) Con esto podrás utilizar en un for - to para leer cada columna: ahora se necesita obtener los nombres de la cabecera y luego la misma columna: for li_i = 1 to li_count dw_x.setcolumn(i) ls_nomcol = dw_x.getcolumnname() //Obteniendo el nombre de la columna ls_cabcol = ls_nomcol + "_t" //Generalmente el nombre de obj. cabecera es la nombre de la columna + "_t", esoto si no haz modificado los nombres de los objetos. //Hasta este paso solo temos los nombres de los objetos, ahora falta obtener el nombre de la cabecera: ls_cab_texto = dw_x.describe(ls_cab + ".text") //Ahora cargar el texto a tu DDLB next