PEPINO DATASET
Citação:então a melhor forma seria assim? ou o uso de SubReports?
eu uso command com SubReport e supre minha necessidade.....você implementa o command do SubReport também.....
Citação:eu uso command com SubReport e supre minha necessidade.....você implementa o command do SubReport também.....
só não entendo como devo chamar o relatório e passar os parâmetros no caso eu quero passar apenas o parametro OS .. então quero mostrar todos os dados relacionados a OS (pk) ..
Ficaria então:
Select * From tb_queda_descricao Where OS =@OS
Só que estive pensando aqui em um problema, se eu fizer um UNION ou um JOIN também pode não dar certo, pois se eu fizer um INNER JOIN por ex com uma tabela sem a PK OS ele imprime em branco o relatório no caso tbm né?
Preciso dos dados de 10 tabelas por ex para formar o relatório completo só que nem sempre todas essas 10 tabelas estarão preenchidas pq em diversas situações tem várias variantes pois o relatório pode ser completo, parcial, apenas 2 dos items requeridos etc ..
Citação:Então mais dai como ficaria se eu tivesse por ex 1 nome para vários endereços nesse caso?
Utilize INNER JOIN nas consultas e crie o list com os campos que serão necessário.
Ex:
Tab clientes tem os campos Codcli e Nome
Tab Produtos tem os campos codprod e Prod
No seu list vc cria os campos Codcli, Nome, codprod, Prod.
e depois carrega eles como no exemplo que postei na outra página.
Porque quando vc faz a consulta com INNER JOIN, traz com ela os campos das duas tabelas, basta vc ter esses campos no list.
Se em algumas tabelas o campo OS pode estar vazio, pq tu não usa o LEFT JOIN?
Galera consegui fazendo um POG .. (Orientado a Gato)..
Ele checa meu DataTable se tem algum registro, se não tiver ele adiciona, porque mesmo sendo chave estrangeira ele dava pal quando ficava Null ou diferente e meu relatório saia completamente em branco.. agora ele ta carregando.. é um gato mas ta resolvido, vocês me aconselham a eu continuar fazendo assim ou buscar outra alternativa?
Segue o POG
Ele checa meu DataTable se tem algum registro, se não tiver ele adiciona, porque mesmo sendo chave estrangeira ele dava pal quando ficava Null ou diferente e meu relatório saia completamente em branco.. agora ele ta carregando.. é um gato mas ta resolvido, vocês me aconselham a eu continuar fazendo assim ou buscar outra alternativa?
Segue o POG
sql = [Ô]SELECT * FROM tb_quedaprojeto_14626 WHERE OS = 123456[Ô]
DA4 = New MySqlDataAdapter(sql, objConexao)
DA4.Fill(dsAltura, [Ô]tb_quedaprojeto_14626[Ô])
[ô]POG abaixo
Dim testeRegistro2 As Integer = dsAltura.Tables([Ô]tb_quedaprojeto_14626[Ô]).Rows.Count
If testeRegistro2 = 0 Then
Dim tb_quedaprojeto_14626 = dsAltura.Tables([Ô]tb_quedaprojeto_14626[Ô])
Dim drAtual As DataRow
drAtual = tb_quedaprojeto_14626.NewRow()
drAtual([Ô]OS[Ô]) = OS
tb_quedaprojeto_14626.Rows.Add(drAtual)
End If
[ô]Fim do POG
Dim oRPxz As ReportDocument
oRPxz = New Rel_14626_Completo
oRPxz.SetDataSource(dsAltura)
Dim tela2 As New Impressao14626
tela2.Tag = [Ô]CRPT --> ALTURA[Ô]
tela2.CrptAltura.ReportSource = oRPxz
tela2.CrptAltura.RefreshReport()
tela2.ShowDialog()
DA1.Dispose()
DA2.Dispose()
DA3.Dispose()
Catch ex As Exception
MsgBox(ex.ToString)
[ô] Response.Write([Ô]Erro Conexão![Ô])
Finally
objConexao.Close()
End Try
Citação:Galera consegui fazendo um POG .. (Orientado a Gato)..
conheço como POG (Orientado a Gambiarra) .....
Citação:conheço como POG (Orientado a Gambiarra) .....
hahaha isso mesmo, gato e gambiarra a mesma coisa..
Só que agora estou com outro problema.. no caso pra eu atualizar o dataset se entrar um campo a mais na tabela do banco como ficaria?
Essa gambiarra chegou a me dar câncer.
Ainda acho que tu deveria usar SQL com LEFT JOIN.
é simples:
Ainda acho que tu deveria usar SQL com LEFT JOIN.
é simples:
SELECT *
FROM TABELA_PRINCIPAL
LEFT JOIN TABELA_SECUN ON TABELA_PRINCIPAL.OS = TABELA_SECUN.OS
LEFT JOIN TABELA TERC ON TABELA_PRINCIPAL.OS = TABELA_TERC.OS
LEFT JOIN TABELA_QUART ON TABELA_PRINCIPAL.OS = TABELA_QUART.OS
MESTRE
Acho que o LEFT JOIN é a melhor solução, pois ele irá trazer os registros independente se a outra tabela tem ou não tem.
Contudo, acredito que utilizar o list é melhor que o dataset, pois caso haja alteração na mesma, basta criar a propriedade na classe. As vantagens são muitas, e a questão da velocidade pode ser resolvida utilizando uma thread.
Acho que o LEFT JOIN é a melhor solução, pois ele irá trazer os registros independente se a outra tabela tem ou não tem.
Contudo, acredito que utilizar o list é melhor que o dataset, pois caso haja alteração na mesma, basta criar a propriedade na classe. As vantagens são muitas, e a questão da velocidade pode ser resolvida utilizando uma thread.
O Problema do List é que talvez eu acabe me perdendo porque são muitas informações, ai vou ter que ter uma superclasse List, são dados de 10 tabelas, sendo vários grid, texto único etc..
Consegui adicionar o comando ai ficou :
só que minha duvida é a clausula WHERE, como vou colocar o parametro pra clausula e depois adicionar o parametro?
Consegui adicionar o comando ai ficou :
SELECT *
FROM labdados.tb_quedadescr_14626
LEFT JOIN labdados.tb_quedaprojeto_14626 ON labdados.tb_quedadescr_14626.OS = labdados.tb_quedaprojeto_14626.OS
só que minha duvida é a clausula WHERE, como vou colocar o parametro pra clausula e depois adicionar o parametro?
Tópico encerrado , respostas não são mais permitidas