VISUALIZADOR DE RELATORIOS NO PRINTER
Gente, é o seguinte:
Já và muita gente indagando a respeito de visuzalizadores de impressão para o Objeto Printer, e decidi que é possÃvel dentro de
um form do próprio vb a visuzalização de impressão através de pictures criadas dinamicamente.
Meu código abaixo cria as pictures dinamicamente, mas estou conseguindo na label apresentar o nome da última picture criada
mas na mesma picture não tô conseguindo imprimir, e o intuito é criar uma picture, fazer a impressão nela pra visualização e no final
da picture, havendo a necessidade de mais informações outra picture é criada e continua a impressão, até terminado as informações.
Meu código:
Option Explicit
Private WithEvents PicPreview As PictureBox
Dim intNumPicture As Integer
Dim intDeslocamento As Integer
Private Sub Command1_Click()
DoEvents
Set PicPreview = Controls.Add([Ô]VB.Picturebox[Ô], [Ô]PicPreview[Ô] & Format(intNumPicture, [Ô]0000[Ô]), Me)
With PicPreview
.Width = 5000
.Height = 1000
.BackColor = &HFFFFFF
.Font = [Ô]Arial[Ô]
.Move 10 + intDeslocamento, 10 + intDeslocamento
.Visible = True
End With
PicPreview.CurrentX = 200
PicPreview.CurrentY = 200
PicPreview.Print PicPreview.Name
intDeslocamento = intDeslocamento + 20
Label1.Caption = PicPreview.Name
intNumPicture = intNumPicture + 1
End Sub
Private Sub Command2_Click()
Unload FrmVariousPrintPreview
End Sub
Private Sub Form_Load()
intDeslocamento = 0
intNumPicture = 1
End Sub
é nessa linha que tá faltando algo pra identificar a picture para a impressão (tô esquecendo de algo):
PicPreview.Print PicPreview.Name
Se alguém puder ajudar, agradeço e quando estiver funcionando disponho geral.
Blz . . .
Seguinte:
Já estou conseguindo na criação dinâmica das pictures e imprimir dados nelas:
Ficou assim meu código:
Option Explicit
Private WithEvents PicPreview As PictureBox
Dim intNumPicture As Integer
Dim strNamePicture As String
Private Sub Command1_Click()
DoEvents
If intNumPicture > 1 Then PicPreview.Visible = False
Set PicPreview = Controls.Add([Ô]VB.Picturebox[Ô], [Ô]PicPreview[Ô] & Format(intNumPicture, [Ô]0000[Ô]), Me)
With PicPreview
.AutoRedraw = True
.BackColor = &HFFFFFF
.Font = [Ô]Arial[Ô]
.FontSize = 18
.Height = 16830
.Visible = True
.Width = 11900
End With
strNamePicture = [Ô]PicPreview[Ô] & Format(intNumPicture, [Ô]0000[Ô])
If PicPreview.Name = strNamePicture Then
PicPreview.CurrentX = ((PicPreview.ScaleWidth - PicPreview.TextWidth([Ô]Imprimindo na Picture: [Ô] & strNamePicture)) / 2)
PicPreview.CurrentY = ((PicPreview.ScaleHeight - PicPreview.TextHeight([Ô]Imprimindo na Picture: [Ô] & strNamePicture)) / 2)
PicPreview.Print [Ô]Imprimindo na Picture: [Ô] & strNamePicture
End If
intNumPicture = intNumPicture + 1
End Sub
Private Sub Command2_Click()
Unload FrmVariousPrinterPreview
End Sub
Private Sub Form_Load()
intNumPicture = 1
End Sub
Agora é o seguinte:
pra variavel i = 1 cria a picture de nome picpreview0001
pra variavel i = 5 cria a picture de nome picpreview0005
pra variavel i = 10 cria a picture de nome picpreview0010
. . .
pra variavel i = 29 cria a picture de nome picpreview0029
O que preciso de lembrar e se alguém puder ajudar, preciso ter acesso a propriedade visible de cada picture aleatóriamente, pra poder
visualizar aleatoriamente as pictures criadas, o problema que não consegui achar solução ainda porque a variavel i está embutida
no nome da picture e não funciona como uma array.
Blz . . .
Outra coisa, quando terminado, espero que breve, vou precisar aprender como criar uma ocx com esse projeto pra poder disponibilizar
mas isso é só pra depois, o meu problema agora é acessar as picpreview aleatoriamente deixando visivel e/ou escondendo.
Blz . . .
Já estou conseguindo na criação dinâmica das pictures e imprimir dados nelas:
Ficou assim meu código:
Option Explicit
Private WithEvents PicPreview As PictureBox
Dim intNumPicture As Integer
Dim strNamePicture As String
Private Sub Command1_Click()
DoEvents
If intNumPicture > 1 Then PicPreview.Visible = False
Set PicPreview = Controls.Add([Ô]VB.Picturebox[Ô], [Ô]PicPreview[Ô] & Format(intNumPicture, [Ô]0000[Ô]), Me)
With PicPreview
.AutoRedraw = True
.BackColor = &HFFFFFF
.Font = [Ô]Arial[Ô]
.FontSize = 18
.Height = 16830
.Visible = True
.Width = 11900
End With
strNamePicture = [Ô]PicPreview[Ô] & Format(intNumPicture, [Ô]0000[Ô])
If PicPreview.Name = strNamePicture Then
PicPreview.CurrentX = ((PicPreview.ScaleWidth - PicPreview.TextWidth([Ô]Imprimindo na Picture: [Ô] & strNamePicture)) / 2)
PicPreview.CurrentY = ((PicPreview.ScaleHeight - PicPreview.TextHeight([Ô]Imprimindo na Picture: [Ô] & strNamePicture)) / 2)
PicPreview.Print [Ô]Imprimindo na Picture: [Ô] & strNamePicture
End If
intNumPicture = intNumPicture + 1
End Sub
Private Sub Command2_Click()
Unload FrmVariousPrinterPreview
End Sub
Private Sub Form_Load()
intNumPicture = 1
End Sub
Agora é o seguinte:
pra variavel i = 1 cria a picture de nome picpreview0001
pra variavel i = 5 cria a picture de nome picpreview0005
pra variavel i = 10 cria a picture de nome picpreview0010
. . .
pra variavel i = 29 cria a picture de nome picpreview0029
O que preciso de lembrar e se alguém puder ajudar, preciso ter acesso a propriedade visible de cada picture aleatóriamente, pra poder
visualizar aleatoriamente as pictures criadas, o problema que não consegui achar solução ainda porque a variavel i está embutida
no nome da picture e não funciona como uma array.
Blz . . .
Outra coisa, quando terminado, espero que breve, vou precisar aprender como criar uma ocx com esse projeto pra poder disponibilizar
mas isso é só pra depois, o meu problema agora é acessar as picpreview aleatoriamente deixando visivel e/ou escondendo.
Blz . . .
é que vou ter que chamar a picture através da formação de uma váriavel string composta de [Ô]PicPreview[Ô] & Format(variavel i, [Ô]0000[Ô])
pra poder fazer sua propriedade visibel true ou false
Seria isso:
VariavelPic = [Ô]PicPreview[Ô] & Format(Variavel i, [Ô]0000[Ô])
Ai seria variavelPic.visible = True ou False, ou seja a chamada pela variavel
. . .
Vlw. . .
Tópico encerrado , respostas não são mais permitidas