Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/09/2011, 14:58
Avatar de lokoman
lokoman
 
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: No me aclaro con el data report

Bueno, continuando con el codigo que te mostré, aqui te traigo una solucion no muy profesional, pero debe servir para la necesidad:

• CREA un FORM por cada resolución!

Como ya tienes uno funcionando, solo debes CLONARLO para no estar haciendo todo desde cero; asi es como lo haces:

• Selecciona el FORM ORIGINAL (el que ya tienes funcionando) y CAMBIALE el nombre en las PROPIEDADES, ej.: frmImprime800x600
• En el explorador del proyecto, le das clic derecho y despues GUARDAR FORM COMO...
• Le pones un nombre, digamos que "frmImprime800x600" para que vaya acorde con el nombre que le pusimos en las PROPIEDADES del FORM
• Diseñas el FORM "frmImprime800x600" para que se ajuste a esa resolución, o sea, pones los LABELS, y CONTROLES mas juntos, mueves de lugar una que otra cosa, etc...
• Haces lo mismo para cada FORM que vas a CLONAR, es decir, GUARDAS el FORM, CAMBIAS el nombre en PROPIEDADES, GUARDAS el FORM COMO..., DISEÑAS para otra resolución y empiezas otra vez

Ahora, solo falta volver a AÑADIRLOS:
• En el explorador del proyecto, le das clic derecho y agregar FORM
• Te va a salir un cuadro con DOS PESTAÑAS, selecciona la pestaña FORM EXISTENTE y seleccionas los FORMS que ya guardaste y no estan incluidos en tu proyecto

Y ya los tienes todos!!

Este es el code en el FORM que va a llamar a los otros dependiendo de la resolución:

Código vb:
Ver original
  1. Public bImpreso As Boolean
  2.  
  3. Private Sub cmdImprimeForm_Click()
  4.     Dim X As Double
  5.     Dim Y As Double
  6.    
  7. 'CALCULO DE LA RESOLUCION ACTUAL
  8.    X = Screen.Width / Screen.TwipsPerPixelX
  9.     Y = Screen.Height / Screen.TwipsPerPixelY
  10.    
  11.     MsgBox "Resolucion actual :" & X & " x " & Y 'PRESENTA LA RESOLUCION ACTUAL EN UN MENSAJE
  12.    
  13. 'PRESENTA UN FORM DISEÑADO PARA LA RESOLUCION
  14.    If X = 800 And Y = 600 Then frmImprime800x600.Show vbModal
  15.     If X = 1024 And Y = 768 Then frmImprime1024x768.Show vbModal
  16.     If X = 1152 And Y = 864 Then frmImprime1152x864.Show vbModal
  17.     If X = 1280 And Y = 600 Then frmImprime1280x600.Show vbModal
  18.     If X = 1280 And Y = 720 Then frmImprime1280x720.Show vbModal
  19.     If X = 1280 And Y = 768 Then frmImprime1280x768.Show vbModal
  20.     If X = 1280 And Y = 960 Then frmImprime1280x960.Show vbModal
  21.     If X = 1280 And Y = 1024 Then frmImprime1280x1024.Show vbModal
  22.    
  23.     If bImpreso = False Then
  24.         MsgBox "Resolución de la pantalla no soportada!!" _
  25.             & "Para ver este reporte debe tener una de estas resoluciones:" _
  26.             & vbNewLine & "[800 x  600]" _
  27.             & vbNewLine & "[1024 x  768]" _
  28.             & vbNewLine & "[1152 x  864]" _
  29.             & vbNewLine & "[1280 x  600] " _
  30.             & vbNewLine & "[1280 x  720]" _
  31.             & vbNewLine & "[1280 x  768]" _
  32.             & vbNewLine & "[1280 x  960]" _
  33.             & vbNewLine & "[1280 x 1024] ", vbInformation
  34.     Else
  35.         bImpreso = False
  36.     End If
  37. End Sub

En el boton de IMPRIMIR de los FORMS llamados, pones el codigo:

Código vb:
Ver original
  1. Sub cmdImprime_Click()
  2.     Printer.Zoom = 100 'SI DESEAS PUEDES AJUSTAR EL ZOOM
  3.    
  4.     PrintForm
  5.    
  6.     bImpreso = True
  7. End Sub

Espero que se haya entendido

Última edición por lokoman; 30/09/2011 a las 15:03