Helcos Posted July 20, 2014 at 02:05 AM Report Share #562889 Posted July 20, 2014 at 02:05 AM 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 More sharing options...
Helcos Posted July 20, 2014 at 03:41 PM Author Report Share #562899 Posted July 20, 2014 at 03:41 PM 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 More sharing options...
nelsonr Posted July 20, 2014 at 08:48 PM Report Share #562910 Posted July 20, 2014 at 08:48 PM 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 More sharing options...
Helcos Posted July 21, 2014 at 10:29 PM Author Report Share #562971 Posted July 21, 2014 at 10:29 PM 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 More sharing options...
Helcos Posted July 27, 2014 at 12:49 AM Author Report Share #563468 Posted July 27, 2014 at 12:49 AM Ola pessoal, já que desta forma está difícil de resolver, será que é possivel gerar um relatório no report viewer atraves de um datagrid? Link to comment Share on other sites More sharing options...
Helcos Posted August 3, 2014 at 11:08 AM Author Report Share #563921 Posted August 3, 2014 at 11:08 AM Finalizando tópico. Link to comment Share on other sites More sharing options...
nelsonr Posted August 3, 2014 at 11:10 AM Report Share #563924 Posted August 3, 2014 at 11:10 AM Então, e o que estava a causar o problema? Como resolveste? Link to comment Share on other sites More sharing options...
Helcos Posted August 4, 2014 at 05:43 PM Author Report Share #564001 Posted August 4, 2014 at 05:43 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now