Como Llenar un campo de un datawindow

Quisiera saber si es que hay alguna manera de llenar un campo de un datawindon ... Usando sentencia sql ... Te Paso A explicar lo que quiero hacer:
Lo que quiero hacer es que al hacer click en button "nuevo" me llame a una función o evento que me llene un campo de un datawindow; por ejemplo que me llene el campo con los id de los 10 últimos presupuestos registrados ...
Mi Consulta Es si esto se puede hacer o no...
Gracias de antemano por tu respuesta...

1 Respuesta

Respuesta
1
Podrías Crear un cursor en el ppower builder. Esto en base a una sentencia Sql.
Y los resultados de tu select insertarlos en tu dw.
//Ejemplo:
string ls_campo1,ls_campo2
long ll_fila
declare C_nombrecursor cursor for
select campo,campo2
from tabla;
OPEN C_nombrecursor ;
FETCH C_nombrecursor  INTO :ls_campo1,:ls_campo2;
DO WHILE sqlca.sqlcode = 0
        ll_fila = dw_comision.insertrow(0)
        dw_comision.setitem(ll_fila,'campo1',ls_campo1)
        dw_comision.setitem(ll_fila,'campo2',ls_campo2)
        dw_comision.Accepttext( )
    FETCH C_nombrecursor  INTO :ls_campo1,:ls_campo2;
LOOP
CLOSE C_nombrecursor ;
//Esto lo vería bien en el dw tipo grid.. asumiendo que es un detalle. No se cual sera tu caso. Pero bueno, te dejo. Este ejemplo de un cursor.
Bueno lo que quiero hacer yo es que al hacer click en el button nuevo me llene un campo de mi datawindow(freeform) y de ese listado seleccionar uno ...
Lo que quiero hacer que el campo de mi datawindow se llene como un dropdownlisbox pero solo con los 10 últimos presupuestos registrados en la bd,...
No Se Mi Doy A entender... Házmelo saber...
Bueno creo que ahora si.
Tendrias que crear otro dw tipo grid, llamemoslo dw_combo para evitar confuciones, en este dw tendrias que hacer el select necesario para obtener lo que quieres de tu tabla presupuestos, recomiendo jalar la llave primaria de la tabla y si hay un campo descripcion; esto para que descripcion sea el campo a mostrar y la llave primaria sea para guardar en la tabla.
Esto no servirá para enlazar dw_combo con el campo del dw_freeform.
Luego en tu dw freeform, en el campo que quieres enlazar, asumiendo que se trata de un código de presupuestos (es preferible que sea el mismo campo o mejor dicho llave foránea de la tabla presupuestos), en el paint del dw, seleccionas tu campo que deseas enlazar y vas a la pestaña Edit (de propiedades a la derecha), en Style type, eliges DropDownDW, luego esto cambiara un poco las opciones de esta pestaña Edit, si te ubicas al final de esta pestaña, noataras que apareció un parámetro DATAWINDOW, aquí tienes que seleccionar el dw_combo, una vez hecho esto aparecerán dos parámetros más, Display Column, este viene a ser el campo de tu dw_combo que se visualizara en el dw_freeform y Data Column viene a ser el campo de tu Dw_combo que dw_freeform grabara en la tabla cuando le des Update.
En caso hayas trabajado con visual6.. te dras cuenta que esto es similar a un Datacombo.
Olvidaba algo.. cuando enlaes el dw_combo a tu campo.. en Edit hay un opción que dice Autoretrieve.. asegurate que de este seleccionada.
Bueno Hice lo que sugeriste pero use un datawindow tabular ... ahora quisiera saber si puedo que en ese tabular listar solo los 10 últimos códigos registrados en mi tabla presupuesto (llave primaria)... ¿se podrá hacer o not?
Use top.. y un order by por la fecha .. obviamente descendiente para que tome los últimos registrados.
Select top 10 idpresupuesto from presupuesto order by fecha desc
Disculpa en donde pongo ese código del Select top 10 idpresupuesto from presupuesto order by fecha desc me podrías guiar maso menos
en dw_combo..
Bueno hice todo lo que me recomendaste... en mi datawindow freeform en un campo lo puse el tabular creado pero ahora quiero como poder listar solo 10 últimos registrados ... no entiendo mucho de power builder y no si me podrías orientar en donde lo coloco la sentencia que más pasado
Tienes 2 dw.
El 1ro lo llamaremos dw_combo. Este sera de tipo grid, este se generara en base a la sentencia "Select top 10 idpresupuesto from presupuesto order by fecha desc". Este dw me mostrara los 10 primeros registro de presupuesto ordenado por fecha de manera descendente, es decir desde el más reciente al más antiguo. Verificar que estén activadas las opciones "Autoretrieve" y "Always show arrow".
El 2do es tu dw freeform en donde esta idpresupuesto como campo, a este campo lo editare y lo enlazare a dw_combo, en displaycolumn y en datacolumn le asignare la única columna que indique en el select de dw_combo, idpresupuesto.
Todo esto en tiempo de diseño.
Ya en tiempo de ejecución cuando de insertrow a dw_freeform. La columna idpresupuesto se mostrar como un combo. mostrando los resultados del select de dw_combo.
Si en caso aun no me entiendes. Agrega al msn que estoy conectado. [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas