CRIAR UM PRINTER DESTA SQL
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
.MoveLast
.MoveFirst
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 !!!!
'===========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
.MoveLast
.MoveFirst
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 !!!!
Compare os campos especificados na linha
com o nome dos campos existentes em sua base de dados, se estão grafados de forma correta. Por exemplo Cód é diferente de Cod.
Boa sorte e t+
Printer.Print !CODIGO;tab(10);!NOME;tab(40);! IIf(IsNull(!pagamento), "", !pagamento);tab(50); IIf(!Status, "Pago", "")
com o nome dos campos existentes em sua base de dados, se estão grafados de forma correta. Por exemplo Cód é diferente de Cod.
Boa sorte e t+
Me responda uma coisa, por que você dividiu seu RecordCount por 6
Deixe o RecordCount deve permanecer inteirinho. Ele deverá te retornar 14 (pelo que você narrou acima).
Eu não manjo de DAO, mas o seu código
Não deveria ser
com o simbolo [!] antes do campo?
Boa sorte e t+
QTDE = .RecordCount / 6
Deixe o RecordCount deve permanecer inteirinho. Ele deverá te retornar 14 (pelo que você narrou acima).
Eu não manjo de DAO, mas o seu código
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
Não deveria ser
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
com o simbolo [!] antes do campo?
Boa sorte e t+
Tópico encerrado , respostas não são mais permitidas