Jump to content
Fórum Script Brasil
  • 0

Report Viewer - TableAdapter


Lucas Conceição

Question

Bom pessoal,

estou desenvolvendo consultas agora,

porém existem vários erros acontecendo e eu realmente não faço idéia do porque,

Eu criei meu dataSet e arrastei o dataAdapter pra la,

Ai começei a configurar até chegar na parte de colocar a consulta,

Coloquei a seguinte consulta:

SELECT HELPDESK.nome_help_desk as Helpdesk,

TIPO_SOFTWARE.nome_software as Software,

TAREFA.tarefa_desc as Tarefa,

Tarefa.prioridade as Prioridade, Tarefa.duracao as Duracao, Tarefa.status as Status

FROM CATEGORIA C

INNER JOIN (HELPDESK INNER JOIN (TIPO_SOFTWARE INNER JOIN TAREFA ON TAREFA.id_software = TIPO_SOFTWARE.id)

INNER JOIN TIPO_SOFTWARE AS TS ON TS.id_helpdesk = HELPDESK.id)

ON TAREFA.id_software = TIPO_SOFTWARE.id

AND TIPO_SOFTWARE.id_helpdesk = HELPDESK.id

AND HELPDESK.id_categoria = C.id

WHERE C.id = 11

GROUP BY TAREFA.id

ORDER BY HELPDESK.nome_help_desk

Ela roda normalmente no meu banco de dados,

Porém dei um next e me apareceu 4 erros impedindo a criação do dataAdapter,

São eles:

Error in ON clause near ')'.

Error in ON clause near 'GROUP'.

Error in ON clause near 'ORDER'.

Unable to parse query text.

Alguém teve esse erro alguma vez?

está aparecendo em várias consultas que eu faço,

as vezes eu tenho até que tirar o group e o order, mas ai a consulta não vem correta.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Nunca vi e não entendi esse INNER JOIN seu rapaz :o

O Join faz a ligação entre as tabelas por um campo em comum, com mesmo valor (as chaves estrangeiras com chaves primárias).

Nesse caso, você tem que ligar a tabela Categoria com alguma que tenha relacionamento com ela, e assim por diante. Para ficar de fácil manutenção, sempre estruture da seguinte forma:

SELECT
    t5.campo1,
    t2.campo2,
    t3.campo3
FROM          tabela1  AS t1
INNER JOIN tabela2  AS t2 ON (t1.id = t2.id)
INNER JOIN tabela3  AS t3 ON (t1.id = t3.id)
INNER JOIN tabela4  AS t4 ON (t2.id = t4.id) --Perceba que o relacionamento não é obrigatório com a primeira tabela
LEFT   JOIN  tabela5  AS t5 ON (t3.id = t5.id)
WHERE t1.campo1 = 2
AND ...

O group by e order by estão dando erro devido a estruturação do seu JOIN

Link to comment
Share on other sites

  • 0

Mas então Xistyle,

Essa consulta funciona perfeitamente no banco de dados (MySql), e na minha aplicação tam´bém,

só não funcionou agora que fui adiconar ao dataAdapater, e por exemplo, minhas tabelas vão referenciando a próxima exemplo:

Tabelas t1,t2 e t3

t1 é a tabela mãe, t2 referencia t1, e t3 referencia t2, e assim por diante,

Vou tentar arrumar essa tabela para aparecer os mesmos valores com uma estrutura de join diferente.

Obrigado pela resposta =)

Link to comment
Share on other sites

  • 0

Aew Xistyle,

refiz a minha consulta ficando assim:

SELECT H.nome_help_desk as Helpdesk,

TS.nome_software as Software,

T.tarefa_desc as Tarefa,

T.prioridade as Prioridade, T.duracao as Duracao, T.status as Status

FROM CATEGORIA C

INNER JOIN HELPDESK as H ON (h.id_categoria = C.id)

INNER JOIN TIPO_SOFTWARE as TS ON (TS.id_helpdesk = H.id)

INNER JOIN TAREFA AS T ON (T.id_software = TS.id)

WHERE C.id = 11

GROUP BY T.id

ORDER BY H.nome_help_desk;

E funcionou direitinho no DataAdapter, muito obrigado mais uma vez por esse motne de ajuda que você está me dando. =D

Link to comment
Share on other sites

  • 0

A isso é verdade,

no momento estou procurando como fazer pra mudar o valor que aparece no report viewer,

se você tiver alguma idéia,

Não sei se preciso colocar alguma instrução no report ou via código mesmo.

Por exemplo: eu tenho os dados la no meu report de prioridade, porém no banco está gravado como 0, 1, e 2, sendo:

0 - prioridade baixa

1 - prioridade média

2 - prioridade alta,

Ai queria colocar esses valores no report,

Começeui a procurar agora,

se eu encontrar algo^que resolva eu já posto aqui.

Link to comment
Share on other sites

  • 0

Lucas, você deve criar uma fórmula e colocar no lugar do campo, no layout do seu report.

A fórmula vai ser algo mais ou menos assim:

If ({@prioridade}) = 0 Then
 "Prioridade Baixa"
ElseIf ({@prioridade}) = 1 Then
 "Prioridade Média"
ElseIf ({@prioridade}) = 2 Then
 "Prioridade Alta"
End If

Não lembro ao certo a sintaxe, mas acho que é similar ao VB.

Link to comment
Share on other sites

  • 0

EDIT. OLha Xistyle estou pensando em algo aqui mas não sei como realizar,

Eu precisaria de uma consulta geralzona (não sei se existe),

por exemplo: No meu form eu seleciona os cmapos que eu quero eu vão para o Relatório e clico em gerar relatório,

Ai gera um relatório dos campos que eu coloquei para serem gerados.

Você sabe de algo assim?

*-*-*-*-*-**-*-*-*-*-*-*-*-*-

Você foi mais rápido mas eu consegui aqui agora também hahahah,

Eu fiz o testo com 2 colunas, uma eu precisava trocar 2 valores mas a outra eram 3 valores,

A condição da coluna com 3 valores ficou assim

=IIF(Fields!Prioridade.Value = "0", "Baixa", IIF(Fields!Prioridade.Value = "1", "Média", "Alta"))

Ai esse código ficou no Value da Célula que ta dento do Meu Report.

Ai funcionou direitinho.

Ta ficando bom o negócio hahahaha

Edited by Lucas Conceição
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...