estou com um problema na geração de um relatório no DataReport, é o seguinte:
Eu tenho uma lista de alunos (Ex: 100 alunos), eu tenho um form onde o usuário pode distribuir esses nomes em salas (Ex: 5 salas = 20 alunos por sala), até aí beleza, o problema é que preciso imprimir um relatório por sala.
Eu tenho uma tabela chamada "relsort" onde eu embaralho os alunos, depois eu crio uma tabela para cada sala, com a qtde de alunos desejada.
O problema ocorre, quando eu eu faço o for para mandar pro DataReport as informação, cada vez que eu entro no "IF" eu teria que mostrar uma nova página no DataReport, mas isso não está ocorrendo.
SEGUE CÓDIGO:
For x = 0 To 9
If gQtClasses(x) <> 0 Then 'gQtClasse(x) vetor do tipo integer - para armazenar a qtde de alunos em cada sala.
Pergunta
cfa
Bom dia amigos do Fórum,
estou com um problema na geração de um relatório no DataReport, é o seguinte:
Eu tenho uma lista de alunos (Ex: 100 alunos), eu tenho um form onde o usuário pode distribuir esses nomes em salas (Ex: 5 salas = 20 alunos por sala), até aí beleza, o problema é que preciso imprimir um relatório por sala.
Eu tenho uma tabela chamada "relsort" onde eu embaralho os alunos, depois eu crio uma tabela para cada sala, com a qtde de alunos desejada.
O problema ocorre, quando eu eu faço o for para mandar pro DataReport as informação, cada vez que eu entro no "IF" eu teria que mostrar uma nova página no DataReport, mas isso não está ocorrendo.
SEGUE CÓDIGO:
For x = 0 To 9
If gQtClasses(x) <> 0 Then 'gQtClasse(x) vetor do tipo integer - para armazenar a qtde de alunos em cada sala.
If x = 0 Then
Set db = New ADODB.Connection
db.Execute "drop table listas_provas_" & x & ""
vlSQL = ""
vlSQL = "SELECT * INTO listas_provas_" & x & ""
vlSQL = vlSQL & " FROM relsort "
vlSQL = vlSQL & "ORDER BY sort "
vlSQL = vlSQL & "LIMIT " & gQtClasses(x) & " OFFSET " & x & ""
CNN.Execute vlSQL
Else
Set db = New ADODB.Connection
db.Execute "drop table listas_provas_" & x & ""
vlSQL = ""
vlSQL = "SELECT * INTO listas_provas_" & x & ""
vlSQL = vlSQL & " FROM relsort "
vlSQL = vlSQL & "ORDER BY sort "
vlSQL = vlSQL & "LIMIT " & gQtClasses(x) & " OFFSET " & (gQtClasses(x) * (x)) & ""
CNN.Execute vlSQL
End If
End If
Next x
Set rs = New ADODB.Recordset
vl_sLogoTipo = "logo" & tbPara!id & ".jpg"
With rpt_PresAleatoria
.Caption = "Lista de Presença em Prova - " & vl_sNomeColegio
For x = 0 To 9
If gQtClasses(x) <> 0 Then
rs.Open "select * from listas_provas_" & x & " ORDER BY sort", CNN, adOpenForwardOnly, adLockReadOnly
Set .DataSource = Nothing
.DataMember = ""
Set .DataSource = rs
.Sections("Section4").Controls.Item("lbl_ano").Caption = gAnoAtivo
Set .Sections("Section4").Controls.Item("img_logo").Picture = LoadPicture(App.Path & "\logotipos\" & vl_sLogoTipo)
With .Sections("Section1").Controls
.Item("Text1").DataField = "sort"
.Item("Text2").DataField = "nome"
.Item("Text3").DataField = "classe"
End With
End If
Next x
.Refresh
.Show
End With
Tentei utilizar o comando ForcePageBreak, só que ou ele imprimi uma sala só, eu imprimi um nome em cada página!
Se alguém puder me ajudar agradeço!!!
valeu!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.