Power Builder - Bajando con Enter para Miguell

 
Vista:

Bajando con Enter para Miguell

Publicado por francisco (43 intervenciones) el 06/12/2009 22:14:18
hola Miguell Gracias por responderme, bueno se que no me entendiste lo que dijo,

Que cuando uno va ingresando Datos el los Campo al presionar la Tecla Enter Va bajando.

Lo que necesito cuando este en el ultimo campo de Ingreso Pres. Enter y me Grabe y Vuelva al Inicio del Ingreso sin cerrar la Ventana de Ingreso me entiendes..
oka

gracias

francisco

desde Chile
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Bajando con Enter para Miguell

Publicado por amilcar (407 intervenciones) el 07/12/2009 11:24:49
hola, lo que puedes hacer es en el utlimo campo de ingreso lanzar el evento clicked del boton grabar, o alguna funcion que haga la grabacion de los datos, o el evento q desees.

if dwo.name="nombre_campo" then cb_grabar.triggerevent(clicked!)

espero te de una idea

saludos desde argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Bajando con Enter para Miguell

Publicado por miguell (108 intervenciones) el 07/12/2009 11:42:37
bueno ya entiendo mejor tu pregunta e incluso he podido deducir qué es lo que hace el send( ) (genera una tecla tab, con lo cual avanzarás a la columna siguiente de tu registro que estás editando)

"send(handle(this),256,9,long(0,0))
esto indica que al presionar enter en los campo uno va bajando" = avanzar a la siguiente columna según los taborders asignadas a las columnas en tu datawindow.

"pero al presionar al inicio del primer campo y segundo o otro llega al final del ingreso."
-> entonces lo primero que tienes que hacer es arreglar los taborders asignados a tus columnas: abres el datawindow y eliges el menú 'Format' y luego 'Taborder': verás que se muestran en rojo el orden de tabulación asignado. Los que están a 0 no podrás editar, por eso a lo mejor te está haciendo los saltos tan raros que tienes.

"lo que yo necesito cuando llega al final del campo me grabe sin tener que elegir el bottom Grabar y cierre la ventana del Ingreso y vuelva a Ingresar otro":
-> entonces lo que tienes que hacer (en tu evento 'tecla_enter', es comprobar si estás en la última columna, grabar los cambios, insertar una nueva fila/registro (si sólo quieres tener una fila en el dw reseteas primero el dw), y te posicionas en la primero columna.

si metes éste código en tu 'tecla_enter' la cosa irá mejor (arregla primero los taborders de tu dw):
evento tecla_enter:
-----------
long ll_fila_nueva

// en mi datawindow, la primera columna es 'nom_primera_col' y la última es 'nom_ultima_col'
if this.getcolumnName() <> 'nom_ultima_col' then
// generar una tecla 'tabuladora'
send(handle(this),256,9,long(0,0)) // no estamos en la última todavía y avanzamos a la siguiente columna
return
end if

// si llegamos aquí es porque estamos en la última columna ( en mi caso 'nom_ultima_col')
// --------
// 1. grabar el registro/fila actual
if this.update() = 1 then
// todo bien
commit;
else
messagebox('debug', 'ha occurrido un error al grabar: ' + sqlca.sqlerrtext )
return
end if

// 2. insertar una nueva fila al final y posicionarte en ella
// si sólo quieres una fila a la vez en el dw entonces haz primero un: "this.reset( )"
ll_fila_nueva = this.insertrow( 0 )
this.scrollToRow( ll_fila_nueva) // ir a la fila insertada

// 3. posicionarte en la primera columna de la nueva fila
this.setcolumn( 'nom_primera_col')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar