USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Printer repetindo o 1º de uma lista na impressão
Nortuno
SÃO PAULO
SP - BRASIL
Postada em 27/05/2004 12:13 hs            
A ideia é a seguinte: tenho uma tabela chamada CLIENTE e outra chamada PARCELAS.
Toda vez que cadastramos um cliente é automaticamente criado 06 (seis) registros na tabela PARCELAS, sendo 01 matricula e 05 mensalidades.

O que eu quero?
Queria que fosse impresso assim(unir as duas tabelas):
COD   NOME    MATRICULA   STATUS    1º PGTO    STATUS   2º PGTO   STATUS
0001  JOSE     10/02/04       PAGO        10/03/04    PAGO
0320  PEDRO   10/02/04        PAGO       15/03/04    PAGO
0420  JOAO     11/02/04        PAGO       17/03/04    PAGO    16/04/04    PAGO
e assim sucessivamente...
sendo que o codigo e o nome do cliente vem da tabela CLIENTE e as datas dos pagamentos vem da tabela PARCELAS
 
Ai eu fiz esse codigo:
    Dim S_Codigo As String
    Dim S_Nome As String
    Dim S_Pagamento As String
    Dim S_Status As String
Dim QTDE As Integer
Dim PGTO As String, Status As String
If Combo1.Text = "" Or Combo2.Text = "" Then
    MsgBox "DIAS e/ou HORARIO INEXISTENTE!" & vbCrLf & "Verifique e digite novamente.", vbInformation, "Aviso do Sistema"
    Exit Sub
End If
ABRIR_BD_com_Data Me.Data1
Data1.RecordSource = "SELECT CLIENTE.CODIGO, CLIENTE.NOME, CLIENTE.MODULO, PARCELAS.* " & _
                     "FROM CLIENTE INNER JOIN PARCELAS ON CLIENTE.CODIGO = PARCELAS.CODIGO_ALUNO " & _
                     "WHERE (DIAS = '" & Combo1.Text & "') and (HORARIO = '" & Combo2.Text & "') and (MODULO = '" & cboModulo.Text & "') " & _
                     "ORDER BY CLIENTE.CODIGO,  PARCELAS.MES"
Data1.Refresh

With Data1.Recordset
  
    If .BOF And .EOF Then
        MsgBox "Não existe esse Módulo para esse horário!", , "Aviso do Sistema"
        Exit Sub
    End If
   
Printer.FontName = "Arial"
Printer.FontSize = 8
   
    .MoveMax
    .MoveMin
    Printer.Print "CÓD."; Tab(7); "NOME"; Tab(55); "1º PGTO"; Tab(70); "STATUS"; Tab(85); "2º PAGTO"; Tab(100); "STATUS"
    
    QTDE = .RecordCount / 6
S_Codigo = Data1.Recordset.Fields("CODIGO")
S_Nome = Data1.Recordset.Fields("NOME")
S_Pagamento = Data1.Recordset.Fields("PAGAMENTO")
S_Status = Data1.Recordset.Fields("STATUS")
     For i = 1 To QTDE
       
    Printer.CurrentX = 80
    Printer.Print Tab(1); S_Codigo;
    Printer.Print Tab(7); S_Nome;
    Printer.Print Tab(55); IIf(IsNull(S_Pagamento), "", S_Pagamento);
    Printer.Print Tab(70); IIf(S_Status, "Pago", "")
   
    .MoveNext
    Next
End With
Printer.EndDoc
 
Só que apareceu um novo problema!
Deveria aparecer o nome de 14 pessoas diferentes com sua datas de pagamento e quando eu coloco para imprimir ele imprime só o nome da primeira pessoa 14 vezes com a data do 1º pagamento dele(falta os outros pagamentos dele) tambem 14 vezes....
Não aparece o nome das outras 13 pessoas, nem a datas de pagamentos delas e nem as outras datas do primeiro....
Só Nome e 1º pgto do primeiro da lista e repete varias vezes e nada mais.
Quem puder me ajudar serei grato!!

Nightcrawler
(nortuno do filme do X-Men II)
     
ACG1504
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
Postada em 27/05/2004 14:04 hs            
vc esta dando o movenext , mas nao esta atualizando as variaveis... faça isso!
 
     For i = 1 To QTDE
       
    Printer.CurrentX = 80
    Printer.Print Tab(1); S_Codigo;
    Printer.Print Tab(7); S_Nome;
    Printer.Print Tab(55); IIf(IsNull(S_Pagamento), "", S_Pagamento);
    Printer.Print Tab(70); IIf(S_Status, "Pago", "")
    S_Codigo = Data1.Recordset.Fields("CODIGO")
    S_Nome = Data1.Recordset.Fields("NOME")
    S_Pagamento = Data1.Recordset.Fields("PAGAMENTO")
    S_Status = Data1.Recordset.Fields("STATUS")
    
          .MoveNext
    Next
End With
Printer.EndDoc
     
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 27/05/2004 17:26 hs            
Eu fiz igual vc me disse!
inves de ele imprimir assim:
COD   NOME    MATRICULA   STATUS    1º PGTO    STATUS   2º PGTO   STATUS
0001  JOSE     10/02/04       PAGO        10/03/04    PAGO
0320  PEDRO   10/02/04        PAGO       15/03/04    PAGO
ele tá imprimindo assim:
COD   NOME    MATRICULA   STATUS    1º PGTO    STATUS   2º PGTO   STATUS
0001  JOSE     10/02/04       PAGO        
0001  JOSE     10/03/04       PAGO
0001  JOSE    
0001  JOSE    
0001  JOSE    
0001  JOSE    
0320  PEDRO   10/02/04        PAGO       
0320  PEDRO   15/03/04        PAGO
0320  PEDRO  
0320  PEDRO  
0320  PEDRO  
0320  PEDRO  
 
ou seja, não está ficando num só linha os pagamentos daquele aluno...
O aluno tendo 06 pagamentos (01 matricula + 05 parcelas) ele vai imprimir 06 linhas (uma para cada pagamento) mesmo que o pagamento ainda não tenha sido efetuado ele imprimirá uma linha.
 
O que devo fazer?

Nightcrawler
(nortuno do filme do X-Men II)
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página