Clipper/FiveWin - Folders

 
Vista:

Folders

Publicado por Gabriel Martin (10 intervenciones) el 31/01/2006 12:05:13
Otra vez yo.

Intento que un Folder carge una u otra pantalla Dialogs, en funcion de una condicion

FUNCTION MenuPol()

LOCAL oFld,oDlg
LOCAL aDlgs:="PRISCAT"

DEFINE DIALOG oDlg RESOURCE "POLIZAS"

REDEFINE GET aPoli[2] VAR aPoli[1] ;
ID 2101 OF oDlg ;
VALID BuscPoli(@aDlgs,oFld,oDlg) ;
UPDATE
.
.
REDEFINE FOLDER oFld ID 9900 OF oDlg ;
PROMPTS "&Descripcion Riesgo" ;
DIALOGS aDlgs
.
.
ACTIVATE DIALOG oDlg CENTERED

RETURN (NIL)

//---------------------------------------------------------------------------------------------------------------------//
// BUSQUEDA DE LA POLIZA

FUNCTION BuscPoli(aDlgs,oFld,oDlg)

IF !EMPTY(aPoli[1])

DBSelectArea("Polizas")
DBSetOrder(2)
DBSeek(aPoli[1])
IF FOUND()
DatosPoli() // Obtengo aPoli[3]

DO CASE
CASE aPoli[3]="A"
aDlgs:="PRISCAT" // Nombre en Resource

CASE aPoli[3]="I"
aDlgs:="PRISCIN" // Nombre en Resource

CASE aPoli[3]="P"
aDlgs:="PRISCPE" // Nombre en Resource

CASE aPoli[3]="V"
aDlgs:="PRISCCO" // Nombre en Resource

ENDCASE
oFld:SHOW()
oFld:aDialogs[1]:SHOW()
SysRefresh()
oFld:Refresh()
oDlg:UPDATE()
ELSE
IF MsgYesNo(OemToAnsi("no Existe. Alta?"),OemToAnsi('Elija opcion SI/NO'))
AltaPoli()
ELSE
RETURN(.F.)
ENDIF
ENDIF
ENDIF

oDlg:UPDATE()


RETURN (.T.)

//---------------------------------------------------------------------------------------------------------------------//

¿Porque el Dialogs que me abre es siempre PRISCAT, declarado por LOCAL?

Me tiene de los nervios

Mil gracias

LPV Gabriel
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:Folders

Publicado por manuramos (19 intervenciones) el 31/01/2006 19:57:21
Primero: ¿Dónde defines aPoli? según el código que has mandado no aparece por ningún lado.
Segundo: Me haría falta saber como obtienes aPoli[3] dentro de la función DatosPoli(), o como devuelves ese valor.
Después ya veremos.....
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:Folders

Publicado por Gabriel Martin (3 intervenciones) el 01/02/2006 00:10:02
Mil perdones

aPoli es un Array STATIC

aPoli[3]:=Polizas->RAMO

Por si acaso:
Clipper 5.3
FW 2.3
Blinker7

LPV Gabriel
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:Folders

Publicado por Gabriel Martin (3 intervenciones) el 01/02/2006 00:14:35
El problema no radica en la obtencion de aPoli[3], pues ese proceso y el de cambiar del dato de aDlgs, esta comprobado mediante un msgInfo(). El problema radica en que al volver a Menupol, aDlgs no tiene el valor adquirido en BuscaPoli, sino el que se definió en Menupol mediante LOCAL

LPV Gabriel
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:Folders

Publicado por manuramos (1 intervención) el 02/02/2006 23:28:11
La verdad es que visto así, tiene que devolver un valor distinto. Aparentemente no hay fallos.
Intenta poner aDlgs como un array: aDlgs := {"PRISCAT"}
y en el valid:
VALID BuscPoli(aDlgs,oFold,oDlg)
Despues, en la funcion:
aDlgs[1] := "....." etc
A ver si hay suerte
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:Folders

Publicado por Gabriel Martin (10 intervenciones) el 03/02/2006 09:28:49
Buenas Manuramos:

Si en aDlgs[1] := "....." , pones espacios en blanco, el marco destino sale en lo altao de la pantalla, totalmente descentrado. cualquier otro valor provoca error en el programa.

Los otros cambio que propones, ya los habia tenido en cuenta y no surgen efecto

Esto si que es un dilema !!!

Gracias no obstante por tu interes

LPV Gabriel
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:Folders

Publicado por manuramos (19 intervenciones) el 03/02/2006 20:00:36
Por lo que me estás contando, es posible que se trate de un problema de coordenadas y no de adquisicion de datos. A lo mejor el dialogo se está pintando fuera de tu vista y sólo ves lo que ya había en pantalla. Eso me ha ocurrido con algunos POPUP's sobre dialogos CHILD NOWAIT, se me desplazaban arriba y a la izquierda, sólo se veía un cacho.
Prueba a forzar las coordenadas del dialogo del folder. Por ejemplo oDlg:Move(10,10). O intenta quitarle el "OF" a ver que pasa.

Suerte...
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:Folders

Publicado por Gabriel Martin (10 intervenciones) el 06/02/2006 17:59:49
Gracias de verdad Manu por tu interés. Pero no hay manera. Lo unico que he podido constatar es lo siguiente.

Creo las variables :

// Para el nombre del diaolgo
aDlgs:={"PRISCAT","PRISCIN","PRISCPE","PRISCCO"}
// Para el titulo del folder
aPlgs:={"&Descripcion","&Descripcion","&Descripcion","&Descripcion "}
// Para seleccionar el numero de dialogo
nLdg:=1

Pues bien, envío nLdg a BuscaPoli para obtener el nuemro del dialogo que quiero ver, compruebo que realiza el cambio y lo hace. Pero al volver al Main principal el comando del listbox sigue sin hacer nada más que enseñarme el primer dialogo 'PRISCAT'

REDEFINE FOLDER oFld ID 9900 OF oDlg ;
PROMPTS aPlgs[nLdg] ;
DIALOGS aDlgs[nLdg]

Si por el contrario a esta misma sentencias lo cambio a

PROMPTS aPlgs[3] ;
DIALOGS aDlgs[3]

me muestra perfectamente el diagolo 3 'PRISCPE', de la otra manera solo el 1

¿Alguien lo entiende? Porque yo no !!

LPV Gabriel
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:Folders

Publicado por manuramos (19 intervenciones) el 10/02/2006 16:49:48
Has Probado oDlg:Update(). Tendras que definir los folder con UPDATE.
Otra cosa no se me ocurre. Los siento
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