Jump to content

[Resolvido] Filtro no report viewer


Helcos
 Share

Recommended Posts

vb 2013 pro

Tenho este comando no relatório

select C.Ticket, C.Carreta, B.Balanca, C.DataSaida, C.Liquido, T.Transportadora

from EntradaSaida C inner join CadBalanca B on C.idBalanca = B.idBalanca

inner join Transportadora T on C.idTransportadora = T.idTransportadora

quando faço o query builder funciona certinho, mas quando gero o relatório os campos balanca e transportadora saem em branco.

Se não colocar o inner join aparece a idbalanca e idtransportadora, mas no relatório não quero a id e sim os nomes,

Sabem o que está de errado?

Link to comment
Share on other sites

Ningeum?

Parece que o problema esta no formato, ou seja, na tabela EntradaSaida este campo idBalanca é intege, mas para ler e mostrar no report busco da tabela CadBalanca onde o campo é string.

quando coloco no select assim:

select C.Ticket, C.Carreta, B.idBalanca, C.DataSaida, C.Liquido, T.idTransportadora

o report me mostras os campos idbalanca e idtransportadora como os id dos campos. Quero mostrar os nomes "string".

Ajudem por favor.

Alguma dica...

Link to comment
Share on other sites

A query parece-me ok, não será dos dados que tens?

Os campos id são chaves estrangeiras? Podem levar null?

Ou seja, todos os registos da tabela EntradaSaida têm preenchidos os campos idBalanca e idTransportadora, com ids existentes nas respetivas tabelas?

Link to comment
Share on other sites

Nelsonr, grato pelo interesse.

- Esta query funciona certinho quando faço os testes no "builder", no relatório não saem os campos idbalanca e idtransportaodra, quando coloro na query para chamar os nomes dos campos id. desta forma:

Tabela CadBalanca - idbalanca(chave primária, auto incremento); Balanca(string, 50)

Tabela Transportadora - idTransportadora(chave primária, auto incremento); Transportadora(string, 50)

Tabela EntradaSaida - ticket(chave primária, auto incremento); DataSaida(date); idBalanca(integer); idTransportadora(integer).

Quero que saia no relatório os nomes das balanças e transportadora e não as id's, para isto usei o inner join, e no dataset.xsd está com o relacionamento entre estas três tabelas,

- Não tem nenhum campo nulo,

Tenho as imagens dos 02 processos para melhor visualizar, mas consegui incluir as imagens.

Link to comment
Share on other sites

Pessoal, como não encontrei forma de gerar o relatório com a 03 tabela, resolvi gerar uma outra tabela recebendo os dados que precisava, depois gerei o relatório desta tabela temporária.

Private Sub CarregaRelatTemp()

Dim linha As Integer = 0

Dim coluna As Integer = 0

Dim RelTicket As String

Dim RelCarrta As String

Dim RelDataSaida As Date

Dim RelBalanca As String

Dim RelTransportadorra As String

Dim RelLiquido As String

Dim ContaLinha As Integer = dvgTemp.Rows.Count

ExcluirTabela()

For Each row As DataGridViewRow In dvgTemp.Rows

For Each cell As DataGridViewCell In row.Cells

If (linha + 1) >= ContaLinha Then Exit Sub

RelTicket = CInt(dvgTemp.Rows(linha).Cells(coluna).Value)

coluna += 1

RelCarrta = dvgTemp.Rows(linha).Cells(coluna).Value

coluna += 1

RelDataSaida = dvgTemp.Rows(linha).Cells(coluna).Value

coluna += 1

RelBalanca = dvgTemp.Rows(linha).Cells(coluna).Value

coluna += 1

RelTransportadorra = dvgTemp.Rows(linha).Cells(coluna).Value

coluna += 1

RelLiquido = dvgTemp.Rows(linha).Cells(coluna).Value

sql = ""

sql += " insert into Temp "

sql += " (Ticket, Carreta, Datasaida, Balanca, Transportadora, Liquido) "

sql += " Values ( '" + RelTicket + "', '" + RelCarrta + "', '" + Format(RelDataSaida, "yyyy-MM-dd") + "', "

sql += " '" + RelBalanca + "', '" + RelTransportadorra + "', '" + RelLiquido + "')"

cx.Conectar()

Dim cd As New SqlCommand()

cd.Connection = cx.c

cd.CommandText = sql

cd.ExecuteNonQuery()

' MessageBox.Show("Cliente incluído!")

coluna = 0

linha += 1

cx.Desconectar()

Next

Next

End Sub

Private Sub ExcluirTabela()

Dim sql As String = ""

sql += " delete from Temp "

Dim cx As New Conexao()

cx.Conectar()

Dim cd As New SqlCommand()

cd.Connection = cx.c

cd.CommandText = sql

Try

cd.ExecuteNonQuery()

' MessageBox.Show("Tabela excluída!")

Catch ex As Exception

MsgBox(ex.Message)

End Try

cx.Desconectar()

End Sub

A única forma que encontrei.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.