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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  SQL x PRINTER
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 25/05/2004 17:25 hs            
Eu (com ajuda de alguns amigos) crei esse codigos e coloquei-o no commandbutton:
'===========MOSTRAR NO GRID===================================
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

    .MoveMax
    .MoveMin

    QTDE = .RecordCount / 6
    
    Formato = Grade.FormatString
    Grade.Clear
    Grade.FormatString = Formato
    
    Grade.Rows = QTDE + 1
    
    For i = 1 To QTDE
        Grade.Row = i
        Grade.Col = 0: Grade.Text = !CODIGO
        Grade.Col = 1: Grade.Text = !NOME
        For j = 2 To 12 Step 2

            Grade.Col = j
            Grade.Text = IIf(IsNull(!pagamento), "", !pagamento)

            Grade.Col = j + 1
            Grade.Text = IIf(!Status, "Pago", "")

            .MoveNext
        Next
    Next
End With

Para que serve?
Quando eu clicar no command ele mostrará no Flexgrid os dados de duas tabelas diferentes (Cliente e Parcelas).
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 imprimir igual está sendo exibido na flexgrid....
Na frexgrid aparece 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
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.

QUERIA IMPRIMIR IGUAL ESTÁ SENDO EXIBIDO NO GRID !!!!


Nightcrawler
(nortuno do filme do X-Men II)
   
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/05/2004 11:11 hs            
Help ai pessoal....

Nightcrawler
(nortuno do filme do X-Men II)
   
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/05/2004 11:11 hs            
Help ai pessoal....

Nightcrawler
(nortuno do filme do X-Men II)
   

SÃO PAULO
SP - BRASIL
Postada em 26/05/2004 11:11 hs            
     
Shadow
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/05/2004 11:53 hs            
Tem 3 possibilidades, ou vc usa o Crytal Reports com o Cross-Table, usa o Objeto Print do vb ou o DataReport do VB.
   
Nortuno
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/05/2004 17:09 hs            
Eu fiz assim:
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

    .MoveMax
    .MoveMin
    PRinter.Print "Cód."; TAB(10);"NOME";tab(40);"1º PAGTO";tab(50);"STATUS"; tab(60);"2º PAGTO";tab(70);"STATUS"
    
    QTDE = .RecordCount / 6
    
     For i = 1 To QTDE
        Printer.Print !CODIGO;tab(10);!NOME;tab(40);! IIf(IsNull(!pagamento), "", !pagamento);tab(50); IIf(!Status, "Pago", "")

           .MoveNext
        Next
    Next
End With
Printer.enddoc
 
Quando executo ele dar o seguinte erro:

Compile error:
Next without For


na janela aparece 02 botões, OK e Cancelar... dou um clique no OK e ele seleciona o ultimo NEXT.

...ai eu apago esse NEXT e quando executo novamente, ele dar o seguinte erro:

Run-time error '3265'
Item not found in this collection


...quando clico no debug ele seleciona a seguinte linha:

Printer.Print !CODIGO;tab(10);!NOME;tab(40);! IIf(IsNull(!pagamento), "", !pagamento);tab(50); IIf(!Status, "Pago", "")

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