Impresión

Hola, necesito saber como puedo imprimir lo que tengo en mi escritorio, he hecho algunos cálculos y búsquedas los cuales despliego en formularios quisiera saber como imprimo estos, también hago despliegues en grillas como puedo imprimir la información que se despliega en estas.

1 respuesta

Respuesta
1
Existen dos formas de mandar a imprimir:
1. @fila,columna say "texto a desplegar"
2. A través de un reporte.
La primera es muy poco utilizada, al menos por mi. Pero puedes utilizarla para imprimir algunos o todos los campos que son desplegados en tu formulario.
Ejemplo:
SET DEVICE TO PRINTER
SET PRINTER TO LPT1
SET PRINTER ON
SET PRINTER FONT 'Courier', 9 STYLE 'N'
@1, 05 SAY "Calculo 1:"
@2, 16 SAY calculo1
@3, 05 SAY "Calculo 2:"
@4, 16 SAY calculo2
SET DEVICE TO SCREEN
SET PRINTER OFF
SET PRINTER TO
RETURN
Calculo1 y calculo2 son variables de memoria que deberán tener los valores que tu obtienes en tu formulario.
La otra opción, el reporte, debes crear un nuevo reporte y en el espacio de detalles, colocar las variables de memoria que tu quieras, con la ayuda de las herramientas de controles de reporte. Creo que ya tu sabes de que hablo.
Para lo del grid, primero debo saber como almacenas los valores en el grid, es una tabla libre o una consulta sql...
Como le hago para vincular los que despliego en mi formulario con un reporte. También quisiera pedirte si me puedes decir como pregunto en código si después de hacer mi consulta tengo mi tabla vacía. Gracias
En lo personal, para vincular, primero almaceno los valores que están en los textbox's en variables de memoria.
Por ejemplo, Si en mi Formulario tengo los siguientes text's, con sus respectivos valores:
Thisform.text1-->"Devilzito" thisform.text2-->"Devil"
Thisform.text3-->"Diablo" thisform.text4-->"6-666-666"
Guardo en variables de memoria esos valores:
nombre = thisform.text1.value
apellido = thisform.text2.value
apellido2 =thisform.text3.value
numero = thisform.text4.value
Luego, creo un nuevo reporte (no con el wizard), y coloco tantos campos necesite en ese reporte, con la herramienta de texto (la que tiene las letras "ab|"). Hago dos clic sobre cada uno y voy colocando, en el espacio donde dice expresión: la variable correspondiente.
Recuerda declarar todas esas variables como públicas:
public nombre,apellido, etc.
Luego llamas al reporte y listo.
Cualquier duda, escríbeme.
--Devilzito--
Hola. Disculpa la tardanza para volver a preguntarte pues he tenido problemas para conectarme a Internet y es por ello que también no he podido finalizar la pregunta.
Ya hice uso de las variables de memoria lo que sucede es lo siguiente:
Cuando yo hago mi consulta con select y la guardo en un cursor "into cursor tabla" después coloco en mis cuadros de texto la variable por ejemplo:
Tabla.variable1
Al ejecutar mi reporte, sí me despliega los valores correspondientes pero me genera muchas hojas de reporte, ¡Muchísimas!, y es hasta que voy a abrir mi cursor "tabla" cuando me genera el número correcto de reportes. Cómo puedo abrir mi cursor al momento de generar mi reporte para que así me genere solo el número exacto de acuerdo al número de registros que tengo en mi cursor. Gracias
Muchísimas páginas... uhmm!
1. Verifica en tu entorno de datos->Menú:
Windows-datasession (en inglés), y verifica si el resultado de la consulta es correcto.
ó
2. La altura de la sección "detalles" de tu reporte debe ser de la misma altura de los campos a desplegar, para que no exista mucha distancia entre una línea y la otra.
Yo hago la secuencia así (por ejemplo):
1. sql
select no_recibo,fecha,nombre_cli,nombre_sup,no_fac_sup,no_mov_com,num_piezas,kgs_bruto,vol_m3,valor_usd,tipo_merc;
from recibo_bodega;
where nombre_cli = thisform.text1.value and between(fecha,thisform.text2.value,thisform.text3.value) and salida = .T.;
into cursor paty
2. Luego
report form reporte_2 preview noconsole in screen
colocando en los campos del reporte:
paty.no_recibo
paty.fecha
paty.nombre_cli...etc
--Devilzito--
Fíjate que es lo mismo que yo hago, de hecho ya había realizado un reporte y todo sale perfectamente, pero ahora con este reporte que intento hacer tengo que abrir mi cursor en la sección de datos y solamente así me imprime el número de registros correcto ¿Por qué crees que sea?
Cuando haces la consulta, pones en los cuadros de texto del formulario, el resultado de la consulta, haciendo referencia a cada uno de los campos. Si es así, pon en el reporte esas mismas referencias:tabla1. Variable1.
Si no funciona, Bueno me parece que no podré ayudarte desde acá. Sin embargo. Puedes escribirme a mi correo:
[email protected], mandándome tu proyecto. Si quieres.
--Devilzito--
Hola, fijate que puse "select temporalito" despues de estas sentencias y ya no me mando ningun error: thisform.pageframe1.page1.grid1.recordsource=xsql
THISFORM.PAGEFRAME1.PAGE1.COMMAND1.ENABLED=.T.
select temporalito
Bueno te felicito...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas