Clipper/FiveWin - Dos Listbox filtrados dentro de un dialog

   
Vista:

Dos Listbox filtrados dentro de un dialog

Publicado por David (40 intervenciones) el 16/12/2008 23:27:46
Hola, quisiera poner dentro de un DIALOG dos Folder con un listbox en cada uno, cada listbox filtra datos desde una misma base de datos, pero no me funciona. Alguien me puede ayudar. Gracias.

DEFINE DIALOG Ver FROM 3,4 TO 40,170 TITLE OemToAnsi("SITUACION ACTUAL DE LOS VEHICULOS") COLOR "R+/W"

@ 0,0 FOLDER oFolder PROMPT "DISPONIBLES", "ALQUILADOS" OF VER SIZE 660,250 // COLUMNA,FILA

SELECT VEHICULO
SET ORDER TO 3
SET FILTER TO VEHICULO->VNUMCARGOS = vnNum

VEHICULO->(dbGoTop())

@ 1, 1 LISTBOX oLbx1 ;
FIELDS OemToAnsi(VEHICULO->VMATRICULA),;
OemToAnsi(VEHICULO->VVEHICULO),;
OemToAnsi(VEHICULO->VRENTING),;
OemToAnsi(VEHICULO->VPROPIEDAD),;
OemToAnsi(DTOC(VEHICULO->VFEALQ)),;
OemToAnsi(VEHICULO->VCONDUC),;
OemToAnsi(VEHICULO->VCARGO1),;
OemToAnsi(VEHICULO->VCARGO2),;
OemToAnsi(VEHICULO->VCARGO3),;
OemToAnsi(VEHICULO->VCARGO4),;
OemToAnsi(VEHICULO->VCARGO5),;
OemToAnsi(VEHICULO->VCARGO6),;
OemToAnsi(STR(VEHICULO->VBENEFICIO));
HEADERS "MATRICULA", "VEHICULO", "R", "P", "FE-ALQ" , "CONDUCTOR", "CARGO-1", "CARGO-2", "CARGO-3", "CARGO-4", "CARGO-5", "CARGO-6", "BENEFICIO";
FIELDSIZES 80, 100, 15, 15, 70, 150, 150, 150, 150, 150, 150, 150, 100;
SELECT VEHICULO->VNUMCARGOS FOR vnNum TO vnNum;
ON LEFT DBLCLICK (SW0:=.T., MOSTRARVEHI(oLbx,SW0,SW1));
SIZE 638, 165; // Tama¤o del TBrowse
OF oFolder:aDialogs[2]

SELECT VEHICULO
SET ORDER TO 4
SET FILTER TO VEHICULO->VCONDUC = vcConduc

VEHICULO->(dbGoTop())

@ 1, 1 LISTBOX oLbx ;
FIELDS OemToAnsi(VEHICULO->VMATRICULA),;
OemToAnsi(VEHICULO->VVEHICULO),;
OemToAnsi(VEHICULO->VRENTING),;
OemToAnsi(VEHICULO->VPROPIEDAD),;
OemToAnsi(DTOC(VEHICULO->VFEALQ)),;
OemToAnsi(VEHICULO->VCONDUC),;
OemToAnsi(VEHICULO->VCARGO1),;
OemToAnsi(VEHICULO->VCARGO2),;
OemToAnsi(VEHICULO->VCARGO3),;
OemToAnsi(VEHICULO->VCARGO4),;
OemToAnsi(VEHICULO->VCARGO5),;
OemToAnsi(VEHICULO->VCARGO6),;
OemToAnsi(STR(VEHICULO->VBENEFICIO));
HEADERS "MATRICULA", "VEHICULO", "R", "P", "FE-ALQ" , "CONDUCTOR", "CARGO-1", "CARGO-2", "CARGO-3", "CARGO-4", "CARGO-5", "CARGO-6", "BENEFICIO";
FIELDSIZES 80, 100, 15, 15, 70, 150, 150, 150, 150, 150, 150, 150, 100;
SELECT VEHICULO->VCONDUC FOR vcConduc TO vcConduc;
ON LEFT DBLCLICK (SW0:=.T., MOSTRARVEHI(oLbx,SW0,SW1));
SIZE 638, 165; // Tama¤o del TBrowse
OF oFolder:aDialogs[1]


@ 14.4,02 BUTTON "Aceptar" OF Ver;
ACTION (Ver:END())
@ 14.4,13 BUTTON "Cancelar" OF Ver;
ACTION (SW := .T., Ver:End());
CANCEL

@18.5,24 ICON oIco1 OF Ver;
FILENAME "C:SOTECVEUTILValid.ICO"

oLbx:Refresh()
oLbx1:Refresh()

ACTIVATE DIALOG VER CENTER;
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:Dos Listbox filtrados dentro de un dialog

Publicado por RenOmaS (3 intervenciones) el 17/12/2008 13:36:12
Solo vas a poder ver el ultimo filtro..
Puedes solucionar
1) Abrir un area para filtro que haces.
2) colocar an el Action del Foder el Order y Filtro que quieres activar.
es decir oFld:bAction := { |n| DbSetear(n) } // n es el numero de la pestanha.

Function DbSetear( n )

If n == 1
......
Else
.....
EndIf

Return Nil
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:Dos Listbox filtrados dentro de un dialog

Publicado por David (40 intervenciones) el 18/12/2008 08:48:22
Hola, gracias por la respuesta, lo he mirado pero me muestra una error al ejecutar: Objects/6 No Exp. Method: TFOLDER:_ACTION

El códifo fuente es:

FUNCTION INDEX(N)
LOCAL vcConduc := space(40)
LOCAL vnNum := 1

vcConduc := " "

IF N = 1
SET ORDER TO 4
SET FILTER TO VEHICULO->VCONDUC = vcConduc
ELSE
SET ORDER TO 3
SET FILTER TO VEHICULO->VNUMCARGOS = vnNum
ENDIF
RETURN Nil

FUNCTION PRUEBA()
LOCAL ver,oIco1,oFolder,oLbx
LOCAL SW := .F.
LOCAL SW0 := .F.
LOCAL SW1 := .F.
LOCAL vcConduc := space(40)
LOCAL vnNum := 1
LOCAL n := 1

SET 3DLOOK ON

vcConduc := " "

SET ORDER TO 4
SET FILTER TO VEHICULO->VCONDUC = vcConduc

DEFINE DIALOG Ver FROM 3,4 TO 40,170 TITLE OemToAnsi("SITUACION ACTUAL DE LOS VEHICULOS") COLOR "R+/W"

@ 0,0 FOLDER oFolder PROMPT "DISPONIBLES", "ALQUILADOS" OF VER SIZE 660,250 // COLUMNA,FILA
oFolder:ACTION := {[N],INDEX(N)}
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:Dos Listbox filtrados dentro de un dialog

Publicado por RenOmaS (3 intervenciones) el 18/12/2008 11:13:39
Sorry
experimenta asi:

@ 0,0 FOLDER oFolder PROMPT "DISPONIBLES", "ALQUILADOS" OF VER SIZE 660,250 // COLUMNA,FILA
oFolder:bChange := { |nOption, nOldOption| INDEX(nOption) }
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:Dos Listbox filtrados dentro de un dialog

Publicado por David (40 intervenciones) el 18/12/2008 13:04:20
Gracias por la solución, ya empieza hacer algo sin que me de error, pero mi duda es ahora, nOption y nOldOption que variables son y de donde saca el valor??

Gracias,
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