Power Builder - DATOS ENTRE VENTANAS

 
Vista:

DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 16/02/2006 22:05:12
HOLA A TODOS.

PRIMERO LES EXPLICO LO QUE ESTOY HACIENDO Y LUEGO EL PROBLEMA:

EXPLICACION:
TENGO UNA VENTANA FRAME, VARIAS VENTANAS SHEET Y DOS VENTANAS RESPONSE. EN UNA DE LAS VENTANAS SHEET ESTOY ADMINISTRANDO LOS ARTÍCULOS QUE TIENE LA EMPRESA, Y PARA ELLO NECESITO DE LA UBICACION
EN LA QUE SE ENCUENTRA EL ARTÍCULO, LO QUE HAGO ES QUE EN LA VENTANA RESPONSE ELIJO EL AREA, LA DIVISION Y ACEPTO. ES DECIR A L MOMENTO DE ELEGIRLOS ESTOY ALMACENANDO EL AREA Y LA DIVISION EN VARIABLES GLOBALES.

PROBLEMA:
MI PROBLEMA ES QUE EN LA VENTANA SHEET DE ADMINISTRACION DE ARTICULOS TENGO 2 SLE, UNA DE AREA Y OTRA DE DIVISION, Y QUIERO QUE ESAS VARIABLES SE RECUPEREN DENTRO DE ESTOS SLE'S, EL CÓDIGO QUE PUSE EN EL BOTÓN ACEPTAR DE LA VENTANA RESPONSE ES:

W_SHEET_ARTICULO.SLE_AREA.TEXT = GS_AREA
W_SHEET_ARTICULO.SLE_DIVISION.TEXT = GS_DIVISION

Y ME SALE UN ERROR.

LES AGRADEZCO SU AYUDA ANTICIPADAMENTE
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:DATOS ENTRE VENTANAS

Publicado por amilcar (327 intervenciones) el 16/02/2006 23:57:51
hola, un par de cositas, te recomiendo q uses variables globales solo si es necesario, si son variables q usaras en toda tu aplicacion, como por ejemplo el id del usuario, ubicacion de la carpeta de sistemas, etc, a los efectos de no consumir recursos innecesarios

pero si deseas usar variables globales, no es necesario q desde tu ventana response intentes asignar esos datos a tus sle de la sheet,
directamente en la sheet despues de hacer open de la response asignas tus variables a los sle , ya q al ser globales tus variables las puedes leer en todas partes en tu aplicacion.

si no quieres usar variables globales, puedes usar structuras para pasar datos de una ventana a otra o en esta caso tambien puedes devolver un string usando closewithreturn(parent,ls_respuesta)
ls_respuesta tendria el area+"-"+division, luego en tu sheet despues del open de la response lees este string usando message.stringparm

seria algo asi

long ll_pos
string ls_respuesta,ls_area,ls_division

ls_respuesta=message.stringparm

ll_pos=pos(ls_respuesa,"-")

ls_area=mid(ls_respuesta,1,ll_pos - 1)
ls_division=mid(ls_respuesta,ll_pos + 1,len(ls_respuesta) - ll_pos)

sle_1.area.text=ls_area
sle_1.division.text=ls_division

bueno espero te sirva
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:DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 17/02/2006 12:50:35
OTRA PREGUNTA AMILCAR, ESTE CÓDIGO EN QUE EVENTO DE MI VENTANA SHEET LO UBICO.

long ll_pos
string ls_respuesta,ls_area,ls_division

ls_respuesta=message.stringparm

ll_pos=pos(ls_respuesta,"-")

ls_area=mid(ls_respuesta,1,ll_pos - 1)
ls_division=mid(ls_respuesta,ll_pos + 1,len(ls_respuesta) - ll_pos)

sle_1.area.text=ls_area
sle_1.division.text=ls_division

YA QUE LA VENTANA SHEET NUNCA SE CERRÓ.
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:DATOS ENTRE VENTANAS

Publicado por Cocolina (1 intervención) el 17/02/2006 08:48:26
Es verdad, no uses variables globales innecesariamente, usa el paso de parametros, te ahorraras un monton de problemas.

Asigna los valores despues de la llamana a tu ventana response que es cuando tendras cargada la ventana sheet y los valores asignados, asi no te dara error, ademas te evitas declararte la ventana sheet en la response y todo te funcionara mejor y mas rapido.

Quedaria algo asi (en la ventan sheet):

open(w_response)
[Asigancion de valores]
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:DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 17/02/2006 12:36:06
GRACIAS POR LAS REPUESTAS, PERO LO QUE HACE MI APLICACION ES LLAMAR DE LA VENTANA SHEET A LA VENTANA RESPONSE DONDE SE ELEGIRÁ EL AREA Y LA DIVISION, LUEGO AL ACEPTAR LA UBICACION DEBE CERRARSE ESTA VENTANA RESPONSE Y EN LA VENTANA SHEET EN LOS SLE_AREA, SLE_DIVISION DEBE DE APARECER EL AREA Y LA DIVISION QUE SE HA ELEGIDO EN LA VENTANA RESPONSE.

SALUDOS
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:DATOS ENTRE VENTANAS

Publicado por amilcar (407 intervenciones) el 17/02/2006 13:20:28
hola augusto, por si no quedo claro los pasos son estos
en el scrip de la sheet donde abres tu ventana response
seria asi

linea 1) open(w_response) // en la response eliges area y division y la cierras usando closewithreturn(ventana,parametros) // como te explique antes

volvemos a la sheet , en la linea debajo del open ,digamos linea 2 va todo el codigo q pase en post anteriores, es alli donde se toman los valores q devolvio la response y se asignan a los sle

espero ser claro
un saludo 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:DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 17/02/2006 14:33:21
Gracias por la respuesta, pero al momento de abrir el sheet, me sale el nombre de la ventana w_sheet_articulo en el sle_division.

¿Cómo hago para que no me salga impresa el nombre de la ventana en el segundo sle_division?
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:DATOS ENTRE VENTANAS

Publicado por amilcar (407 intervenciones) el 17/02/2006 17:21:34
hola, mira no te comprendo mucho,
dices q cuando abres el sheet en sle_division.text te queda el nombre de la ventana? si es asi en algun lado se lo estas asingnado.
fijate en el open de tu ventana , si tienes ese codigo o quizas pueda ser un codigo heredado de otra ventana
.
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:DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 17/02/2006 18:54:46
NO EL PROBLEMA ES QUE EL CÓDIGO QUE ME DISTE LE PUSE AL FINAL DEL EVENTO OPEN DE LA VENTANA SHEET, POR ESO ES QUE ME SALE,

NO SE EN QUE EVENTO SE PODRÍA ASIGNAR LOS VALORES A LOS SLE, CUANDO VUELVA DE LA VENTANA RESPONSE CON EL CODIGO
CLOSEWITHRETURN(W_SHEET_ARTICULO,LS_UBICACION)
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:DATOS ENTRE VENTANAS

Publicado por amilcar (327 intervenciones) el 17/02/2006 22:15:49
hola, veamos si nos entendemos,
tu abres tu sheet, luego en algun lugar , un boton seguramete llamas a tu ventana response, en ese mismo evento de ese mismo objeto, en la linea siguiente va el scipt en cuestion

ejemplo:

boton cb_abre_response
evento clicked

open(w_ventana_response) // linea 1 :
script q te envie // linea2

nota: como la ventana es response al hacer click en el boton solo se ejecuta la linea1 , luego el control pasa a la ventana response, cuando cierras esta , recien alli sigue con la linea 2 del boton, para entonces ya tendras los valores q necesitas

bueno espero haber sido mas claro
un saludo 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:DATOS ENTRE VENTANAS

Publicado por augusto (124 intervenciones) el 18/02/2006 12:49:46
Gracias Amilcar.

Me salió.

Saludos
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