Power Builder - Campos de un DW + Inherit

 
Vista:

Campos de un DW + Inherit

Publicado por Kevin (6 intervenciones) el 30/09/2008 07:03:56
Hola!! Saludos con tod@s!!!
Estaba haciendo una ventana de mantenimiento el cúal próximamente voy a aplicarle herencia para poder reutilizar código, pero, me di con la sorpresa de algo. Procederé a explicarles:

Tengo una ventana que contiene un objeto datawindows, el cúal, jala datos de una determinada tabla. Ademas, hay un botón "Nuevo" para ingresar un nuevo registro. Los códigos de esta ventana son estos

Evento Open de la ventana:
dw_1.settransobject(sqlca)
dw_1.retrieve( )

Evento Clicked del botón "Nuevo"
dw_1.reset( )
dw_1.insertrow(0)

dw_1.setfocus( )
dw_1.setcolumn(1)

Y un Evento de Usuario en el objeto datawindows de nombre "tecla_enter" cuyo Event ID es "pbm_dwnprocessenter" que contiene este código:
string ls_campo

dw_1.accepttext( )

ls_campo = dw_1.object.id_clie[dw_1.getrow()]

//Ahora verificamos el valor q contiene la variable
If isnull(ls_campo) or trim(ls_campo)="" then
messagebox("","Ingrese un código")
else
Send(Handle(this),256,9,Long(0,0))
end if

El código precedente me permite capturar el contenido del campo "ide_clie" el cúal verifico si es un espacio en blanco o es nulo. Si es así, me manda un mensaje indicamdome aquello, sino, pasa al siguiente campo con la línea de código despues del else.

Ahora, si esta ventana con todos estos controles deseo hacerle un Inherit, obviamente me funcionaria con un dw que contenga el campo "ide_clie". Y es aquí donde radica mi problema:

¿Cómo puedo implementar un código estandar que me permita verificar los campos en el que yo haya ingresado un dato? Es este código el que quisiera volver standar:

ls_campo = dw_1.object.id_clie[dw_1.getrow()]

Principalmente con el object.id_clie, volverlo object.nombre_del_campo_que_contiene_el_dw

Espero me hayan etendido y espero haber sido claro. De antemano les agradezco por la ayuda prestada.
Saludos desde Perú.
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:Campos de un DW + Inherit

Publicado por amilcar (407 intervenciones) el 01/10/2008 17:31:05
hola, en mi caso tengo una variable instance llamada
por ejemplo is_campo_clave tipo string a la cual le asigno en nombre del campo que deseo leer, y en mis ventanas heredadas en el open seteo dicha variable

is_campo_clave="nombre campo del dw"

il_clave=this.getitemnumber(1,is_campo_clave)

luego sigues con el codigo de validacion

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
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Campos de un DW + Inherit

Publicado por Antonio (1271 intervenciones) el 07/10/2008 05:22:32
Hola Kevin;

mira, edita tu datawindow con el painter, en los campos que son requeridos entra a las propiedades de cada uno y selecciona la cejilla que dice Edit, en las propiedades de Edit marca las opciones de Empty string is null y tabien el que dice Required (ojo, cuando son camps de entradas numericas, la opcion de Empty is null cambia a solo Requerid.

despues seleccion la cejilla de General y en el campo de tag, pon el texto que deseas que aparezca al usuario cuando es requierido el dato... ejemplo:

Falta valor de entrada (ojo este texto no debe llevar comillas)

guardas los cambios, ahora entra al scrip del datawindow y selecciona el evento Itemerror y coloca el siguiente codigo:

/* Valida el campo de Edición */
string ls_campo
ls_campo = Describe(this,dwo.Name+'.tag')
MessageBox('Dato Requerido..',ls_campo,Stopsign! )

return 1

por ultimo, en el evento "tecla_enter" cuyo Event ID es "pbm_dwnprocessenter" solo debe llevar este código:

Send(Handle(this),256,9,Long(0,0))
return 1

con esto haz tu inherit y todo el código se ira al otro datawindow...

Espero que te sirva,

Saludos desde México
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