Crystal Report - URGENTE

Tengo realizado un informe en Crystal Report cuyo objetivo es imprimir unos determinados importes sobre unas casillas que vienen en un documento del estado. El caso es que por medio de ese informe se calcularían los importes, después se metería el documento con las casillas en blanco en la impresora matricial, se ajustaría y se mandaría imprimir, de forma que los importes deberían coincidir sobre las casillas en blanco del documento. Los importes coinciden perfectamente sobre las casillas en blanco de la hoja si lo hago con una impresora NEC PINWRITER P60, pero si lo hago con otra, sin embargo, no coincide y lo desbarata todo; ¿Te ha pasado alguna vez?, ¿Sabes cómo resolverlo?.
Respuesta
1
Si me ha pasado. Normalmente como trabajo este tipo de reportes es con los métodos de impresión CurrentX y CurrentY y le digo que la escala de medida será en milímetros
Printer.ScaleMode = vbMillimeters
'Eje de las X a los 20 mm
Printer.CurrentX = 20
'Eje de las Y a los 27 mm
Printer.CurrentY = 27
'Ya formé la coordenada, imprimo el valor.
Printer. Print rsTabla! Campo1
Aún así varía un poco, lo que hago es un formulario donde le doy opción al usuario para que indique si quiere el reporte más a la derecha o izquierda o más arriba o abajo.
En él le muestro un campo para las POR y uno para las Y que comienzan en cero. Si introducen algún valor lo guardo en un archivo de texto(para que sea personalizado para cada PC).
De manera que cuando imprimes el reporte y no quedó exactamente como debía, accedo a ese formulario y modifico sus valores.
En el código de impresión del informe sobre el documento queda así:
Open "InformeX.txt" For Input As #1 'Abre archivo de texto
if Not EOF(1)
Input #1, ValorX,ValorY
End if
Close #1 ' Cierra el archivo.
Printer.ScaleMode = vbMillimeters
Printer.CurrentX = 20 + ValorX
Printer.CurrentY = 27 + ValorY
Printer. Print rsTabla! Campo1
Desde luego que ValorX y ValorY pueden tener valores negativos.
Espero que te sirva. Si tienes alguna duda dímelo
Muchas gracias por la información, aunque tengo otra duda, que si me pudieses de igual forma resolver estaría encantado. De la forma que me dices los valores de los importes a cuadrar en las casillas por tanto tendría que calcularlos por código y enviarlos a la impresora por medio del "Printer.Print"; respecto a eso tengo varias preguntas:
1- ¿De esa forma sale bien por todas las impresoras (exceptuando el tema de los margenes, que se corregiría con el CurrentX y CurrentY), o también hay problema con que se descuadren las casillas en función de la impresora que se emplee?
2- ¿Hay alguna forma de indicarle que entre una linea y otra hay 1.75 mm, o por el contrario hay que imprimir una linea en blanco de un tamaño determinado para que deje el espacio correspondiente?
3- ¿Respecto al espacio en horizontal entre 2 casillas que no tienen siempre el mismo número de caracteres, se pueden decir de forma automática a qué distancia está, o hay que andar jugando con los espacios en blanco y esas cosas?
4- ¿Respecto a la alineación a derecha o izquierda de las casillas, cómo puedo hacerlo?.
Entonces, respecto al uso de los informes de Crystal Report, tu consejo es que no lo emplee a menos que se impriman en hojas que no tengan formato ni nada por el estilo, como A4 en blanco, ¿no?.
Muchas gracias de antemano.
Un saludo, Pablo.
Una disculpa Pablo, me confundí con la pregunta.
Sobre las preguntas:
1. También hay problemas de desubicación de los campos en la posición que deberían tener.
2. No hay que imprimir líneas en blanco ya que cada campo ubicado con POR y Y son como un objeto.
3. Si hay que entrarle al asunto de los espacios en blanco y aún así no es garantía que funcione.
4. No hay alineación de ningún tipo, hay que hacerlo "a pie" y en ocasiones aún así no funciona.
No quise decir que era mejor que usar Crystal Reports.
Lo que pasa es que leí la pregunta y tiempo después la contesté y me confundí pensando que el reporte lo estabas haciendo "a pie", olvidé que mencionaste el crystal, así que una disculpa nuevamente por esta confusión.
Bueno, retomando de nuevo la pregunta(ahora si correctamente) quiero decirte que cuando he tenido que hacer algún reporte sobre documentos pre-impresos ha habido diferencias entre impresoras pero solo en la línea sobre la cual comienza a imprimir, no en general en la ubicación en que se imprime el reporte(la cual es resuelta configurando la impresora para que la línea primera sea avanzando n número de líneas). Una vez bien posicionado en su línea inicial el resto se imprime correctamente.
Hay una propiedad en el informe que pueda afectar y está en el menú "Archivo>Preparar impresora" y es una casilla de verificación que se llama "Propiedades predefinidas" y es mejor que no lo tenga seleccionado ya que asume que tomará la configuración que tenga la impresora.
Es común que se quiera imprimir reportes en diferentes marcas de impresoras y crystal lo hace correctamente, sin embargo, en ocasiones nos afecta la configuración de la impresora, puedes probar con "resetear" la impresora para que deje la configuración de fábrica.
Bueno Pablo, es lo que te puedo decir sobre este tipo de reportes. Las diferencias existen pero no deberían ser muy marcadas, sino más bien pequeñas.
Espero que te sirva y una disculpa de nuevo. Si tienes algún comentario escríbeme de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas