VB E VISUAL REPORTX - IMPRIMIR 2 RELATORIO

WEBIER 17/04/2010 17:22:10
#339671
Possuo o relatorio (anexado a imagem dele) feito em Visual Reportx

trata-se de um relatorio onde junto dados de varias tabelas... inclussive os produtos feito naquele [Ô]pedido[Ô]

Seria algo fo genero, imprimir os dados do cliente que comprou.... como foi feita a venda... e todos os produtos que ele comprou.

Fiz e ficou redodinho... ai meu primeiro problema foi no limite de produtos por impressão, ou seja, nesse relatorio somente cabe 17 produtos... (meu cliente usa impressora matricial com papel carta carbonado onde a folha é picotada no meio, sendo assim uma folha vira 2 folhas).... entao fiz tudo justinho!

voltando ao assunto de imprimir 17 produtos por pedido (folha)... resolvi assim... quando ele alcança os 17 produtos... ele imprimir outro relatorio com os produtos que faltaram na primeira folha... ufa!

Resolvi o problema desse cliente! Eba!

Agora vendi o mesmo sistema para outro cliente que possui tanto uma matricial como tb uma laser... ai esse novo cliente me pediu para sair 2 copias do mesmo pedido na folha A4 na impressora laser....

como eu faria para imprimir 2 copias do mesmo formulario, já q na propriedades [Ô]copias[Ô] do componente visual reportx eu fiz aquela programação de quando ele chegar em 17 produtos ele deve continuar no relatorio seguinte?

Olha os código ai:

 
[ô]general_declaration
[ô]Dim BD As DAO.Database
Dim rsCliente As DAO.Recordset
Dim rsPedidos As DAO.Recordset
Dim rsItens As DAO.Recordset
Dim rsParcelas As DAO.Recordset
Public Sub loadPedidos(Pedido As Integer)

Call ABRIR_BD
Set rsPedidos = BD.OpenRecordset([Ô]select * from PEDIDOS where COD_PEDIDO = [Ô] & Pedido)
Set rsCliente = BD.OpenRecordset([Ô]select * from Cliente where CODIGO = [Ô] & rsPedidos!COD_CLIENTE)
Set rsItens = BD.OpenRecordset([Ô]Select * from PEDIDOS_ITENS where COD_PEDIDO = [Ô] & Pedido)
Set rsParcelas = BD.OpenRecordset([Ô]Select * from Parcelas where COD_PEDIDO = [Ô] & Pedido)

[ô]VERIFICAR SE A IMPRESSAO é IMPRESSA DO PEDIDO OU DO MENU IMPRIMIR
[ô]Dim NUMERO_COD_PEDIDO As Long
[ô]NUMERO_COD_PEDIDO = 0 [Ô]Nº [Ô] & cboMes.Text
[ô]txtNumero.Caption = [Ô]PEDIDO Nº [Ô] & Format(Pedido, [Ô]000000[Ô])
If Imp_Pedidos.cboPedido.Text = [Ô][Ô] Then
txtNumero.Caption = [Ô]Nº [Ô] & Format(Pedido, [Ô]000000[Ô])
[ô]txtNumero.Caption = Format(Pedido, [Ô]000000[Ô])
Else
txtNumero.Caption = [Ô]Nº [Ô] & Format(Mid(Imp_Pedidos.cboPedido.Text, 1, InStr(1, Imp_Pedidos.cboPedido.Text, [Ô]->[Ô], vbTextCompare) - 1), [Ô]000000[Ô])
End If

[ô]If IsNull(Imp_Pedidos.cboPedido.Text) = True Then
[ô] txtNumero.Caption = [Ô]PEDIDO Nº [Ô] & Format(Pedido, [Ô]000000[Ô])
[ô]Else
[ô] txtNumero.Caption = NUMERO_COD_PEDIDO
[ô]End If

[ô]DADOS DO CLIENTE
txtCliente.Caption = rsCliente!NOME
txtEnd.Caption = IIf(IsNull(rsCliente![ENDERECO]) = True, [Ô][Ô], rsCliente![ENDERECO])
txtRef.Caption = IIf(IsNull(rsCliente!ponto_de_referencia) = True, [Ô][Ô], rsCliente!ponto_de_referencia)
[ô]txtCep.Caption = IIf(IsNull(rsCliente!CEP) = True, [Ô][Ô], rsCliente!CEP)
txtTel.Caption = IIf(IsNull(rsCliente!TELEFONE1) = True, [Ô][Ô], rsCliente!TELEFONE1)
txtCidade.Caption = IIf(IsNull(rsCliente!cidade) = True, [Ô][Ô], rsCliente!cidade)
txtEstado.Caption = IIf(IsNull(rsCliente!estado) = True, [Ô][Ô], rsCliente!estado)
txtCPF.Caption = IIf(IsNull(rsCliente!cpf) = True, [Ô][Ô], rsCliente!cpf)
txtRG.Caption = IIf(IsNull(rsCliente!CI) = True, [Ô][Ô], rsCliente!CI)
txtBairro.Caption = IIf(IsNull(rsCliente!BAIRRO) = True, [Ô][Ô], rsCliente!BAIRRO)

[ô]DADOS DO PEDIDO
txtData.Caption = Format(rsPedidos!DATA_COMPRA, [Ô]dd/mm/yy[Ô])
txtVendedor.Caption = rsPedidos!VENDEDOR
txtVenda.Caption = rsPedidos!TIPO_PAGAMENTO
txtPagamento.Caption = rsPedidos!PAGAMENTO

If rsPedidos!TIPO_PAGAMENTO = [Ô]À Vista[Ô] Then
txtData.Mostrar = True
txtVendedor.Mostrar = True
txtVenda.Mostrar = True
txtPagamento.Mostrar = True
txtSubtotal.Mostrar = True
txtDesconto.Mostrar = True
txtTotal.Mostrar = True
txtQtdParcelas.Mostrar = False
txtEntrada.Mostrar = False
txtValorParcelas.Mostrar = False
txtJuros.Mostrar = False
txtAPrazo.Mostrar = False
txtinicio.Mostrar = False
txtTermino.Mostrar = False

lblData.Mostrar = True
lblVendedor.Mostrar = True
lblVenda.Mostrar = True
lblPagamento.Mostrar = True
lblSubTotal.Mostrar = True
lblDesconto.Mostrar = True
lblTotalAvista.Mostrar = True
lblQuantParcelas.Mostrar = False
lblEntrada.Mostrar = False
lblValorParcela.Mostrar = False
lblJuros.Mostrar = False
lblTotal.Mostrar = False
lblInicio.Mostrar = False
lblTermino.Mostrar = False
Else
txtData.Mostrar = True
txtVendedor.Mostrar = True
txtVenda.Mostrar = True
txtPagamento.Mostrar = True
txtSubtotal.Mostrar = True
txtDesconto.Mostrar = True
txtTotal.Mostrar = False
txtQtdParcelas.Mostrar = True
txtEntrada.Mostrar = True
txtValorParcelas.Mostrar = True
txtJuros.Mostrar = True
txtAPrazo.Mostrar = True
txtinicio.Mostrar = True
txtTermino.Mostrar = True

lblData.Mostrar = True
lblVendedor.Mostrar = True
lblVenda.Mostrar = True
lblPagamento.Mostrar = True
lblSubTotal.Mostrar = True
lblDesconto.Mostrar = True
lblTotalAvista.Mostrar = False
lblQuantParcelas.Mostrar = True
lblEntrada.Mostrar = True
lblValorParcela.Mostrar = True
lblJuros.Mostrar = True
lblTotal.Mostrar = True
lblInicio.Mostrar = True
lblTermino.Mostrar = True
End If

txtSubtotal.Caption = IIf(IsNull(rsPedidos!SubTotal), [Ô]0,00[Ô], Format(rsPedidos!SubTotal, [Ô]##,##0.00[Ô]))
txtDesconto.Caption = IIf(IsNull(rsPedidos!Valor_desc) = True, [Ô]0,00[Ô], Format(rsPedidos!Valor_desc, [Ô]##,##0.00[Ô]))
txtTotal.Caption = Format(rsPedidos!Total, [Ô]##,##0.00[Ô])
txtEntrada.Caption = IIf(IsNull(rsPedidos!ENTRADA) = True, [Ô]0,00[Ô], Format(rsPedidos!ENTRADA, [Ô]##,##0.00[Ô]))
txtQtdParcelas.Caption = rsPedidos!Parcelas
txtinicio.Caption = rsParcelas!Data
rsParcelas.MoveLast
txtTermino.Caption = rsParcelas!Data
txtValorParcelas.Caption = IIf(IsNull(rsParcelas!Valor) = True, [Ô]0,00[Ô], Format(rsParcelas!Valor, [Ô]##,##0.00[Ô]))
txtJuros.Caption = IIf(IsNull(rsPedidos!JUROS) = True, [Ô]0,00[Ô], Format((rsParcelas!Valor * rsPedidos!Parcelas) + IIf(IsNull(rsPedidos!ENTRADA), [Ô]0,00[Ô], Format(rsPedidos!ENTRADA, [Ô]##,##0.00[Ô])) - rsPedidos!Total, [Ô]##,##0.00[Ô]))
txtAPrazo.Caption = IIf(IsNull(rsPedidos!JUROS) = True, Format(rsPedidos!Total, [Ô]##,##0.00[Ô]), Format((rsParcelas!Valor * rsPedidos!Parcelas) + IIf(IsNull(rsPedidos!ENTRADA) = True, [Ô]0,00[Ô], Format(rsPedidos!ENTRADA, [Ô]##,##0.00[Ô])), [Ô]##,##0.00[Ô]))

[ô]INSIRO OS ITENS
If Not rsItens.EOF Then rsItens.MoveLast
If Not rsItens.BOF Then rsItens.MoveFirst

Relatorio.NumeroRegistros = Round((rsItens.RecordCount / 17) + 0.49)
Relatorio.Ativar

End Sub

Private Sub Relatorio_IniciarSecao(ByVal Secao As ReportX.TSecao, ByVal Ordem As Byte)
For i = 0 To 16
txtDesc(i).Caption = [Ô][Ô]
txtQuant(i).Caption = [Ô][Ô]
txtUnit(i).Caption = [Ô][Ô]
txtDs(i).Caption = [Ô][Ô]
txtTot(i).Caption = [Ô][Ô]

If Not rsItens.EOF Then

txtDesc(i).Caption = rsItens!DESCRICAO
txtQuant(i).Caption = Format(rsItens!QUANTIDADE, [Ô]00[Ô])
txtUnit(i).Caption = Format(rsItens!Preco, [Ô]##,##0.00[Ô])
txtTot(i).Caption = Format((rsItens!Preco * rsItens!QUANTIDADE), [Ô]##,##0.00[Ô])

rsItens.MoveNext
End If
Next
Exit Sub
End Sub
JESUEL.OLIVEIRA 17/04/2010 19:41:56
#339672
Resposta escolhida
Amigo, eu fiz no print executar quantas vezes for, desde que parametrizada.



Do While QTDVIAS <> 0

CODIGO DE IMPRESSÃO DE RELATÓRIO

QTDVIAS = QTDVIAS - 1
Loop


WEBIER 19/04/2010 15:15:54
#339727
E como eu defino a quantidade de copias do formulário?
Tópico encerrado , respostas não são mais permitidas