FoxPro/Visual FoxPro - ayudaaaa

   
Vista:

ayudaaaa

Publicado por luciano spagnoli (10 intervenciones) el 16/09/2010 00:03:34
hola gente de la web, necesito su ayuda, estamos haciendo un programa par aun club... el tema es que nos trabamos que no sabemos como pasar los datos del formulario a la base de datos, y de ahi al reporte para imprimir un recibo... y aca nos surge una duda... cuando hacemos eso... ¿podemos imprimir de a uno de los recibos, con sus correspondientes socios o nos imprime todos? bueno... espero ser claro con lo que pregunte... muchas gracias
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:ayudaaaa

Publicado por victor perez (278 intervenciones) el 16/09/2010 01:55:13
Luciano,

Bueno, pasar los datos del formulario a la Base de datos es sencillo. Si pones los control source (propiedades) de cada campo empezando con la letra "m" y un ".".

Ejemplo, supon que tu base de datos tenga los campos
USUARIO
NOMBRE
APELLIDOS

En el control source de cada campo pondrias asi:
USUARIO (m.usuario)
Nombre (m.nombre)
Apellidos (m.apellidos)

Asi le dices a Fox que estás usando variables de memoria que se pueden rescatar mediante el comando "GATHER MEMVAR"

Cuando ya introduces los datos, le dices al "BOTON GRABAR" en el eVENTO "CLICK"

Sele DATABASE && Previamente ya la habias abierto en el Init del form
Append Blank
Gather memvar

Asi pasas los datos del formulario a la Base de Datos.

Ahora, para imprimir, hay dos formas.

Si quieres imprimir de uno a uno entonces en el comando REPORT form del Evento Click del Boton Imprimir, colocas
REPO FORM nombredelreporte.frx for Usario=m.usuario

Si esto es lo que quieres, en tu reporte pon todos los campos en la Seccion de Encabezado, no en la sección de detalle para evitar mas de una copia.

-----
si lo que quieres es imprimir todos los registros de la BAse de Datos, entonces cuando creas el formulario pones la información de tus campos en la parte de DETALLE.

Yo lo hago asi porque me pasaba que siempre se me imprimia los datos dos veces para cada expediente de paciente y lo corregi poniendo todo en el encabezado del reporte.

----
Otra opcion si quieres imprimir todos los registros es poner lo siguiente:

SELE BASEDEDATOS
REPORT FORM NOMBREDELREPORTE.FRX FOR !EMPTY(USUARIO)

----
Es asunto de ensayar que es lo que te conviene. En facturacion, yo uso Cursores asi el cursor solo contiene la informacion de la factura actual y no necesito ponerle condiciones para imprimir. Siempre imprimira la factura actual.

Tambien ten cuidado con las Secciones del informe. Trata de no dejar espacios en blanco al final antes de la seccion de Pie de Pagina porque eso tambien da errores.

Saludos y si necesitas mas consulta me dices...Yo tengo solo 2 años con Fox, soy medico de profesion y programo el sistema de mi clinica..je je je
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:ayudaaaa

Publicado por Juanma Cruz (508 intervenciones) el 16/09/2010 10:47:25
Apunte al margen:

No entiendo... porqué muchos programadores no enlazan directamente los campos de la tabla con los controles del formulario.

Al entrar a crear/modificar el campo, activar el almacenamiento por buffer, y al terminar de editar, dependiendo de si das 'Grabar' o 'Cancelar' hacer un TableUpdate() o TableRevert() como corresponda.

No sé, serán modos diferentes de programar, pero no veo la ventaja en ignorar las ventajas del ControlSource y en general del data binding....
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