Manejo de filas y columnas en un grid

Tengo este código,,
SELECT facturas
    go TOP
    LOCATE FOR ALLTRIM(factura)=ALLTRIM(thisform.GRID1.COLUMN1.TEXT1.value)
    IF FOUND()
        thisform.GRID1.COLUMN2.TEXT2.value=total_factura
        **    ELSE
            **    MESSAGEBOX("Factura No Existe")
        ENDIF
Que cuando lo uso con dos texbox,, ahora mi pregunta como lo puedo aplicar en un grid, el grid lo abro con una base de datos temporal que no me almacenara nada solamente para ingresar los datos en que evento lo puedo mostrar el dato,,
emeplo
column 1 colum2
factura () Total
FAC23654 266.25
Donde factura y total son campos de la base de datos temporal
saludos.

1 Respuesta

Respuesta
1
Veamos si he comprendido tu pregunta.
¿El código que tu pasas es para manejar el comportamiento de dos controles textbox y quieres hacer algo similar con un control grid?
Siendo ese el caso lo que debes hacer es crear un cursor de datos mediante una consulta Select SQL que te devuelva los resultados que necesitas.
Por ejemplo:
select facturas.numero, importe distinct from facturas where alltrim(facturas.numero)==thisform.txtbox.value into cursor _facturas order by 1 asc
Este comando te devolverá tantos registros como facturas coincidentes tengas.
gracias por responder . amigo,, ¿pero en que lugar coloco la consulta o el cursor como lo creo?
¿Para poderlo utilizar el en grid?
Saludos
Tienes básicamente las siguiente opciones.
1) El en mismo control grid: haz clic derecho en el control grid y selecciona la opción "propiedades". Luego de que se abra el panel busca pa propiedad "recordsourcetype" y selecciona el valor "4 - Sentencia SQL". Luego en la propiedad "RecordSource" escribes tu sentencia SQL.
2) Ahora, si tu sentencia es demasiado extensa o con varias combinaciones de tablas no vas a poder hacerlo desde el panel de propiedades debido a una limitación en la extensión de la sentencia.
Entonces te conviene crear un nuevo método en el formulario (Formulario/Modificar Propiedades y Métodos...") donde definirás el control grid mediante programación.
Dependiendo de la necesidad de actualizar el cursor puedes crear un nuevo "método" o simplemente definirlo en el evento init del formulario.
oGrid=thisform.mycontrolgrid
oGrid.recordsourcetype=4
oGrid.recordsource="select facturas.numero, importe distinct from facturas where alltrim(facturas.numero)==thisform.txtbox.value into cursor _facturas order by 1 asc"
oGrid.column1.controlsource="_facturas.numero"
oGrid.column2.controlsource=IIF(ISNULL(_facturas.importe), "Factura No Existe", "_facturas.importe"
Debes tener precaución de poner el origen de datos ControlSource entre comillas si lo defines por programación.
Si optas por definir un nuevo método, al hacer doble clic sobre el formulario se abre el editor de código, en el combo procedimiento busca tu nuevo método y escribe allí tu código.
No elvides hacer un thisform. Refresh al final
Espero te sirva, si tienes inconvenientes no dudes en preguntar nuevamente
Suerte
Me gustaría saber si la respuesta que le envió le ayudó a resolver su problema. Si aún tiene dudas, o la respuesta no es lo que Ud. esperaba puede volver a preguntar. En caso contrario recuerde que es necesaqrio que de por finalizada la pregunta.
Disculpa,, amigo, pues aun no he probado lo que me diste por que esto algo saturado de trabajo,, pues casi no paso en la oficina, pero en esta semana te respondo el tema . que dices aun casi no estoy muy claro de utilizar lo que mencionas,, pero vamos a probar,, y luego te comento.
Gracias
Si me pasas tu mail te paso un formulario con código como el que necesitas.
cejodrake @ gmail . com
Gracias.
Ok.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas