Ayuda en impresión

Hola, no sé si me puedas dar una ayudita, estoy haciendo un reporte utilizando la sentencia print mostrando datos numéricos, cuando envío a imprimir sale descuadrado el reporte.He intentando poniéndole el format al número, utilizando el space. Te envío un ejemplo para que me entiendas mejor:
Printer.Print "INGRESOS"
Printer.Print
Printer.Print Space(33) & "1 Sem." & Space(9) & "2 Sem." & Space(9) & "3 Sem." & Space(9) & "4 Sem." & Space(9) & "TOTAL"
Printer.Print
Do While Not tablafm.EOF
tfila = tablafm!primera + tablafm!segunda + tablafm!tercera + tablafm!cuarta
Printer.Print Trim(tablafm!des_servicio) & Space(33 - Len(Trim(tablafm!des_servicio))) & Format(tablafm!primera, "##,##0.00") & Space(5) & Format(tablafm!segunda, "##,##0.00") & Space(5) & Format(tablafm!tercera, "##,##0.00") & Space(5) & Format(tablafm!cuarta, "##,##0.00") & Space(5) & Format(tfila, "##,##0.00")
tiprimera = tiprimera + tablafm!primera
tisegunda = tisegunda + tablafm!segunda
titercera = titercera + tablafm!tercera
ticuarta = ticuarta + tablafm!cuarta
tingreso = tiprimera + tisegunda + titercera + ticuarta
tablafm.MoveNext
Loop
Printer.Print
Printer.Print "*********************************************************************************"
Printer.Print "Total Ingresos:" & Space(19) & Format(tiprimera, "##,##0.00") & Space(5) & Format(tisegunda, "##,##0.00") & Space(5) & Format(titercera, "##,##0.00") & Space(5) & Format(ticuarta, "##,##0.00") & Space(5) & Format(tingreso, "##,##0.00")
Gracias por la ayuda.

1 respuesta

Respuesta
1
Lamento la tardanza ... mucho trabajo.
Sería más sencillo si me envías el Proyecto completo, el código tiene muchas variables.
Puedes enviármelo a:
[email protected]
En cuanto llegue lo estudio y te contesto.
Suerte !
Rogers R.
Hola, mira lo que ocurre es que estoy haciendo un reporte pero no estoy haciendo el data report, sino estoy enviando a impresora usando la sentencia print.
El problema es que el reporte me sale de esta manera:
xxxxxxxx 31,250 2,450
xxxxxxxx 1,251 4,520
xxxxxxxx 32,460 4,260
xxxxxxxx 5,895 2,615
xxxxxxxx -4560 5,623
xxxxxxxx 0 982
Donde xxxxxxxx son caracteres con longitud fija, pero por el tipo de letra algunos caracteres ocupan más espacio que otros por ejemplo "o" es más ancho que "i"
1.- En la primera fila el texto es: "Convenios Comerc" como es más ancho a las demás lineas avanza el monto con un tab adicional, moviendo todo el contenido de la fila.
2.- En la segunda fila el texto es: "Gastos operativos" y los montos se imprimen en el lugar correcto.
3.-En la tercera fila como la longitud del primer monto es superior a 8 dígitos entonces mueve el monto siguiente con un tab adicional.
He intentado cambiar la letra a Arial, adicionar más chr(9) y nada.
La sentencia que uso es :
Printer.Print left(descripcion,16) & chr(9) & format(monto1,"##,##0.00") & chr(9) & format(monto2,"##,##0.00")
Gracias por la ayuda.
Julissa
Al fin ... :)
El problema es sencillamente por el tamaño de la fuente, lo que debes hacer es cambiar el tipo de letra por uno que siempre ocupe el mismo espacio para todos los caracteres, por ejemplo "Curier New".
Te recomiendo listar las fuentes disponibles para Printer y buscar cuál se acomoda a tus necesidades.
Para obtener el listado creas un ListBox y un CommandButton en el Form, y agregas el siguiente código en el Evento Click del CommandButton:
Private Sub Command1_Click()
Dim i
For i = 0 To Printer.FontCount - 1
List1.AddItem Printer.Fonts(i)
Next i
End Sub
Luego tendrás que probar cuál te sirve.
Si en la lista aparece "Courier New" entonces estableces la Propiedad Font del Printer:
Printer.Font = "Courier New"
Eso servirá.
Suerte !
Rogers R.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas