• Domingo 22 de Diciembre de 2024, 07:42

Autor Tema:  Uso de PRINTER  (Leído 1465 veces)

[Zerox]

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: pe
    • Ver Perfil
Uso de PRINTER
« en: Miércoles 20 de Agosto de 2008, 04:49 »
0
Buenas colegas, en esta oportunidad con cierta duda
He terminado de hacer un codigo para Imprimir Factura/Boleta, lo probe en una impresora canon del trabajo y corrio bien, cuando la lleve a otra PC con otra Impresora de la MIsma marca, me sale desalineado, y quisiera saber en que estoy fallando, lo que hago es solo darl en ScaleMode = 4, pero en un foro leí que debería ponerle el tamaño de la Factura o de la Boleta en ScaleHeigh y ScaleWIdth del obj. Printer, pero quisiera saber porque el fallo, el codigo les pongo a continuación:


' ******************************************************************************************************** INICIO

Private Sub CmdImprimir_Click()
  On Error GoTo Impresion
  '*********************************************** Verificando Datos Completos
  'MsgBox Printer.ScaleHeight & " ------ " & Printer.ScaleWidth
'  MsgBox Printer.ScaleMode
  'MsgBox Printer.CurrentX & " ------ " & Printer.CurrentY
  If CboTipoDoc.Text = "FACTURA DE VENTA" Then
    '********************************* Verificando DATOS DEL CLIENTE
    If Trim(TxtCliente.Text) = "" Then
      MsgBox "Ingrese la Razón Social del Cliente", vbInformation, "Faltan Datos"
      TxtCliente.SetFocus
      Exit Sub
    End If
    '********************************* Verificando RUC DEL CLIENTE
    If Len(TxtRUC.Text) = 0 Then
      MsgBox "Ingrese el RUC del Cliente", vbInformation, "Faltan Datos"
      TxtRUC.SetFocus
      Exit Sub
    Else '********************************* Verificando RUC DEL CLIENTE CON 11 CARACTERES
      If Len(TxtRUC.Text) <> 11 Then
        MsgBox "El RUC del Cliente debe tener 11 dígitos", vbInformation, "Faltan Datos"
        TxtRUC.SetFocus
        Exit Sub
      End If
    End If
    'Printer.ScaleHeight = 1600 'Alto
    'Printer.ScaleWidth = 2120 'Ancho
  Else 'Si es BOLETA DE VENTA
    'Printer.ScaleHeight = 1580 'Alto
    'Printer.ScaleWidth = 1060 'Ancho
  End If
  '*********************************************** Imprimiendo
  Printer.ScaleMode = 4
  Printer.FontName = "Microsoft Sans Serif"
  Printer.FontSize = 8
  '************************************************ C A B E Z E R A *************************************
  '///////////////////////////////////////////////Imprimiendo el Nombre del Cliente
  Printer.CurrentX = 10 'Horizontal
  Printer.CurrentY = 9.5 'Vertical
  Printer.Print Trim(TxtCliente.Text)
  '///////////////////////////////////////////////Imprimiendo la Direccion del Cliente
  If Trim(TxtDir.Text) <> "" Then
    Printer.CurrentX = 12 'Horizontal
    Printer.CurrentY = 11 'Vertical
    Printer.Print Trim(TxtDir.Text)
  End If
  '///////////////////////////////////////////////Imprimiendo la Fecha de la Cabezera
  '***********************************************
    Printer.CurrentX = 64.5 'Horizontal
    Printer.CurrentY = 11.5 'Vertical
    Printer.Print CStr(Day(DTFecha.Value))
    '*************************************
    Printer.CurrentX = 73 'Horizontal
    Printer.CurrentY = 11.5 'Vertical
    Printer.Print CStr(MonthName(Month(DTFecha.Value)))
    '*************************************
    Printer.CurrentX = 94 'Horizontal
    Printer.CurrentY = 11.5 'Vertical
    Printer.Print Right(CStr(Year(DTFecha.Value)), 1)
  '***********************************************
  '///////////////////////////////////////////////Imprimiendo el RUC del Cliente
  If Trim(TxtRUC.Text) <> "" Then
    Printer.CurrentX = 11 'Horizontal
    Printer.CurrentY = 12.5 'Vertical
    Printer.Print Trim(TxtRUC.Text)
  End If
  '///////////////////////////////////////////////Imprimiendo los Articulos
  RsTemp.MoveFirst
  Dim x As Single
  x = 16 'Vertical para todo el item
  Do While Not RsTemp.EOF
    '************************************
    'Cantidad
    Printer.CurrentY = x 'Vertical para todo el item
    Printer.CurrentX = 6 'Horizontal
    Printer.Print RsTemp(0)
    'Descripción
    Printer.CurrentY = x 'Vertical para todo el item
    Printer.CurrentX = 15 'Horizontal
    Printer.Print RsTemp(1)
    'Precio Unitario
    Printer.CurrentY = x 'Vertical para todo el item
    Printer.CurrentX = 73 'Horizontal
    Printer.Print RsTemp(2)
    'Importe
    Printer.CurrentY = x 'Vertical para todo el item
    Printer.CurrentX = 85 'Horizontal
    Printer.Print RsTemp(3)
    '************************************
    x = x + 1.5
    RsTemp.MoveNext
  Loop
  '///////////////////////////////////////////////Imprimiendo los Letras-Precio
  Printer.CurrentX = 10 'Horizontal
  Printer.CurrentY = 31 'Vertical
  Printer.Print Trim(LblMsje.Caption)
  '///////////////////////////////////////////////Imprimiendo Subtotal
  Printer.CurrentX = 85 'Horizontal
  Printer.CurrentY = 31 'Vertical
  Printer.Print Trim(TxtSubtotales.Text)
  '///////////////////////////////////////////////Imprimiendo IGV
  If Val(TxtIgv.Text) > 0 Then
    Printer.CurrentX = 85 'Horizontal
    Printer.CurrentY = 32.5 'Vertical
    Printer.Print Trim(TxtIgv.Text)
  End If
  '///////////////////////////////////////////////Imprimiendo Total
  Printer.CurrentX = 85 'Horizontal
  Printer.CurrentY = 34 'Vertical
  Printer.Print Trim(TxtTotal.Text)
  '///////////////////////////////////////////////Imprimiendo la Fecha del Detalle
  '***********************************************
    Printer.CurrentX = 25 'Horizontal
    Printer.CurrentY = 34 'Vertical
    Printer.Print CStr(Day(DTFecha.Value))
    '*************************************
    Printer.CurrentX = 32 'Horizontal
    Printer.CurrentY = 34 'Vertical
    Printer.Print Right("0" & CStr(Month(DTFecha.Value)), 2)
    '*************************************
    Printer.CurrentX = 37.5 'Horizontal
    Printer.CurrentY = 34 'Vertical
    Printer.Print Right(CStr(Year(DTFecha.Value)), 2)
  '***********************************************
  '******************************************************************************************************
  Printer.EndDoc
  Exit Sub
Impresion:
  If Err.Number = 482 Then
    MsgBox "No Existe ninguna Impresora instalada en su PC", vbExclamation, "Fallo la Impresión"
  Else
    MsgBox Err.Description, vbExclamation, "Fallo la Impresión"
    TxtCliente.SetFocus
  End If
End Sub
TP-Systems
Our Knowledge is our power...