FoxPro/Visual FoxPro - Formulario para selección de informes

   
Vista:

Formulario para selección de informes

Publicado por Nelson Miltos (9 intervenciones) el 11/04/2012 19:57:41
Muy buenas desde ya agradezco por sus comentarios, soy novato y me encuentro programando un formulario para seleccion de informes:

Tratare de explicar como funciona y con que objetos trabajo

Objetos

a) list ( se visualiza el nombre de las tablas al cual deseamos consultar los datos)

b) combo box ( como rangos de inicio y fin )

c) boton de comando ( aceptar y cerrar )

d) grupo de opciones ( el cual permite ser odenado por codigo o descripcion)
Funcion
--------------

En tiempo de ejecucion en el campo list despliega los nombres de la tablas al cual deseamos consultar, al posicionarnos en una de ella ya en los combo box de inicio y fin despliega el primer y ultimo valor de cada tabla por si queramos claro esta imprimir todo el contenido de la tabla, al darle aceptar me impirme en pantalla el contenido en un listado.

Obervacion: El formulario me funciona bien cuando el valor de mi pk es numerico


Problema: no me funciona con cadena de caracteres, no importanto si los valores tambien son 1, 2. 4, 5; tambien el caso que detallo a continuacion



Tabla PROVEEDORES


CAMPOS


RUC NOMBRE



13815865 HUGO ACUÑA



6325879 FERNANDO MIRANDA



TABLA USUARIO



CAMPOS



USUARIO NOMBRE



Hacuna HUGO ACUÑA

Pcuevas PABLO CUEVAS


OBJETO LIST 1 EVENTO CLICK

--------------------------------------------------


IF ALLTRIM( this.Value) = "proveedor" && pregunta si el item seleccionado es igual a ciudad



thisform.combo1.Value = ""

thisform.combo2.Value = ""



thisform.combo1.RowSource = "proveedor.nomraz,ruc" && define los valores del combo con los campos de la tabla ciudad

thisform.combo1.RowSourceType = 6

thisform.combo2.RowSource = "proveedor.nomraz,ruc"

thisform.combo2.RowSourceType = 6



thisform.combo1.ListIndex = 1 && al primer combo le asigna el primer valor del combo

thisform.combo2.ListIndex = thisform.combo2.ListCount && al segundo combo del ultimo elemento cargado en el combo



endif



IF ALLTRIM( this.Value) = "usuario" && pregunta si el item seleccionado es igual a ciudad


thisform.combo1.Value = ""

thisform.combo2.Value = ""


thisform.combo1.RowSource = "usuario.nombre,clave" && define los valores del combo con los campos de la tabla ciudad

thisform.combo1.RowSourceType = 6

thisform.combo2.RowSource = "usuario.nombre,clave"

thisform.combo2.RowSourceType = 6



thisform.combo1.ListIndex = 1 && al primer combo le asigna el primer valor del combo

thisform.combo2.ListIndex = thisform.combo2.ListCount && al segundo combo del ultimo elemento cargado en el combo



ENDIF

thisform.Refresh



OBJETO BOTOM ACEPTAR

---------------------


IF ALLTRIM( thisform.list1.value) = "proveedor"



IF thisform.VOrden.value = 1

SELECT * FROM proveedor;

WHERE proveedor.ruc between thisform.combo1.value AND thisform.combo2.value;

ORDER BY proveedor.ruc;

into cursor tmp

ELSE

SELECT * FROM proveedor;

WHERE proveedor.ruc between thisform.combo1.value AND thisform.combo2.value;

ORDER BY proveedor.nomraz;

into cursor tmp

ENDIF

ENDIF


IF ALLTRIM( thisform.list1.value) = "usuario"


IF thisform.VOrden.value = 1

SELECT * FROM usuario;

WHERE usuario.clave between thisform.combo1.value AND thisform.combo2.value;

ORDER BY usuario.clave;

into cursor tmp

ELSE

SELECT * FROM usuario;

WHERE usuario.clave between thisform.combo1.value AND thisform.combo2.value;

ORDER BY usuario.nombre;

into cursor tmp

ENDIF

ENDIF



IF _tally = 0



= MESSAGEBOX( "No existen datos para listar", 0+64+0, "Informacion del Sistema")

ELSE

thisform.salida ()

ENDIF

SELECT tmp

USE
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