Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/10/2008, 03:41
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 9 meses
Puntos: 37
Respuesta: Imprimir recordset - expertos en el objeto printer

Cita:
Iniciado por KingColt Ver Mensaje
Bueno quiero imprimir una lista pero lo que necesito por ahora es imprimir un recorset igual a esta imagen.

El codigo que tengo es este, se manejar un poco el objeto printer pero me atasque con esto, quiero hacer lo mismo de imagen, pero los campos codprod y precioVenta quedan juntos en una misma fila y las cabeceras esta descuadradas(podria usar currentx y currentY pero seria mucho trabajo y repetir las cordenadas muchas veces), para separarlas intente separar con espacios en blanco pero debe haber otra forma
Para alinear los importes en la misma columna, prueba así:

Código:
Private Sub cmdImprimir_Click()
Dim iCol As Integer, iFila As Integer, sImp As String
    
iCol = 5        ' margen izquierdo
iFila = 2       ' 1ª línea de págima

' inicializamos la impresora
Printer.Print "";
With Printer
    .ScaleMode = vbCharacters
    .FontName = "LinePrinter"
    .FontSize = 8
    .CurrentY = iFila
    .CurrentX = iCol
End With

' encabezado del informe
Printer.CurrentX = iCol
Printer.Print "Descripción";
Printer.CurrentX = iCol + 75
Printer.Print "Precio"
Printer.Print

' impresión de los datos
rsTemporal.MoveFirst
Do Until rsTemporal.EOF
    With rsTemporal
        Printer.CurrentX = iCol
        Printer.Print !nomprod;
        sImp = Format(!precioventa, "#,##0.00")
        Printer.CurrentX = 80 - (Printer.TextWidth(sImp))
        Printer.Print sImp
        Printer.CurrentY = Printer.CurrentY + 0.3
    End With
    rsTemporal.MoveNext
Loop
Printer.EndDoc
End Sub
Nota: 80 es la posición derecha (en caracteres) de la columna a imprimir el campo 'precioventa'. Atento al punto y coma después del campo 'nomprod' para que imprima en la misma línea.