MOSTRAR NUMA CELULA DO FLEXGRID VARIOS REGISTRO

WEBIER 04/08/2011 21:33:41
#380871
uso o vb6 e bd access...

uso a sequinte sql para preencher um flexgrid

SQL = [Ô]SELECT (PRODUTOS.CATEGORIA) as var_CAT, (PRODUTOS.FABRICANTE) as var_FAB, (PRODUTOS_ENTRADA_ITENS.CODIGO) as var_CODENT, (PRODUTOS.CODIGO) as var_COD, (PRODUTOS.COD_BARRA) as var_CodBarra,(PRODUTOS.DESCRICAO) as var_desc, (PRODUTOS.QUANT_ESTOQUE) as var_Quant, (PRODUTOS.QUANT_MIN) as var_Min, IIF(ISNULL(PRODUTOS_ENTRADA_ITENS.VENDA),0 ,PRODUTOS_ENTRADA_ITENS.VENDA) AS var_VENDA FROM (PRODUTOS LEFT JOIN ULTIMAS_ENTRADAS ON PRODUTOS.CODIGO = ULTIMAS_ENTRADAS.CODIGO_PRODUTO) LEFT JOIN PRODUTOS_ENTRADA_ITENS ON (ULTIMAS_ENTRADAS.CODIGO_PRODUTO = PRODUTOS_ENTRADA_ITENS.CODIGO_PRODUTO) AND (ULTIMAS_ENTRADAS.ULTENTRADA = PRODUTOS_ENTRADA_ITENS.CODIGO_ENTRADA) WHERE PRODUTOS.ATIVO = TRUE ORDER BY PRODUTOS.descricao[Ô]


ai dei uma modificada na tabela de PRODUTOS.... criei uma nova tabela chamanda de PRODUTOS_COMP...

cada peça de moto que cadastro na tabela PRODUTOS eu armazeno numa outra tabela (PRODUTOS_COMP) os modelos de motos que são COMPartiveis com aquela peça.

exemplo:

tabela = [txt-color=#e80000]PRODUTOS

CODIGO | DESCRICAO |
----------------------------------+
0001 | AGULHA BOIA |
0002 | AMORTECEDOR |[/txt-color]


[txt-color=#0000f0]tabela = PRODUTOS_COMP

CODIGO | COD_PRODUTO | MODELO | ANO |
9991 | 0001 | titan 150c | 2009 |
9992 | 0001 | biz 125c | 2008 |
9993 | 0001 | broz 150c | 2009 |
9994 | 0002 | biz 125c | 2010 |[/txt-color]

então eu queria colocar nessa sql lá se cima de uma forma que no flexgrid ele colocasse numa mesma celular todos os MODELO/ANO das motos compartiveis com aquela peça (produto)

então os campos de relacionamento das duas tabelas serão PRODUTOS_COMP.COD_PRODUTO = PRODUTOS.CODIGO


ai queria que no grid aparecesse assim

DESCRIÇÃO | compartibilidade |
=================================
AGULHA BOIA |[txt-color=#0000f0] titan 150c/2009[/txt-color], [txt-color=#0000f0]biz 125c/2008[/txt-color],[txt-color=#007100] broz 150c/2009[/txt-color] |
AMORTECEDOR | [txt-color=#e80000]biz 125c/2010[/txt-color]

então como ficaria a sql lá de cima?






WEBIER 05/08/2011 13:30:48
#380909
alguem ? to precisando muito!
KERPLUNK 05/08/2011 14:28:21
#380911
Acho que assim deve funcionar...


SQL = [Ô]SELECT (PRODUTOS.CATEGORIA) as var_CAT, (PRODUTOS.FABRICANTE) as var_FAB, (PRODUTOS_ENTRADA_ITENS.CODIGO) as var_CODENT, (PRODUTOS.CODIGO) as var_COD, (PRODUTOS.COD_BARRA) as var_CodBarra,(PRODUTOS.DESCRICAO) as var_desc, (PRODUTOS.QUANT_ESTOQUE) as var_Quant, (PRODUTOS.QUANT_MIN) as var_Min, IIF(ISNULL(PRODUTOS_ENTRADA_ITENS.VENDA),0 ,PRODUTOS_ENTRADA_ITENS.VENDA) AS var_VENDA,
(SELECT Concatenate([Ô]SELECT Modelo FROM PRODUTOS_COMP WHERE COD_Produto = Produtos.Codigo)) AS var_Compativeis FROM (PRODUTOS LEFT JOIN ULTIMAS_ENTRADAS ON PRODUTOS.CODIGO = ULTIMAS_ENTRADAS.CODIGO_PRODUTO) LEFT JOIN PRODUTOS_ENTRADA_ITENS ON (ULTIMAS_ENTRADAS.CODIGO_PRODUTO = PRODUTOS_ENTRADA_ITENS.CODIGO_PRODUTO) AND (ULTIMAS_ENTRADAS.ULTENTRADA = PRODUTOS_ENTRADA_ITENS.CODIGO_ENTRADA) WHERE PRODUTOS.ATIVO = TRUE ORDER BY PRODUTOS.descricao[Ô]
WEBIER 05/08/2011 16:14:54
#380929
ele dar o seguinte erro:

compile error:
expected: end of statement

ai quando dou um clique no OK do erro, ele seleciona o SELECT (vermelho)

...(SELECT Concatenate([Ô][txt-color=#e80000]SELECT[/txt-color] Modelo...
KERPLUNK 05/08/2011 16:50:03
#380932
Tenta assim:

SQL = [Ô]SELECT (PRODUTOS.CATEGORIA) as var_CAT, (PRODUTOS.FABRICANTE) as var_FAB, (PRODUTOS_ENTRADA_ITENS.CODIGO) as var_CODENT, (PRODUTOS.CODIGO) as var_COD, (PRODUTOS.COD_BARRA) as var_CodBarra,(PRODUTOS.DESCRICAO) as var_desc, (PRODUTOS.QUANT_ESTOQUE) as var_Quant, (PRODUTOS.QUANT_MIN) as var_Min, IIF(ISNULL(PRODUTOS_ENTRADA_ITENS.VENDA),0 ,PRODUTOS_ENTRADA_ITENS.VENDA) AS var_VENDA,
(SELECT Concatenate(SELECT Modelo FROM PRODUTOS_COMP WHERE COD_Produto = Produtos.Codigo)) AS var_Compativeis FROM (PRODUTOS LEFT JOIN ULTIMAS_ENTRADAS ON PRODUTOS.CODIGO = ULTIMAS_ENTRADAS.CODIGO_PRODUTO) LEFT JOIN PRODUTOS_ENTRADA_ITENS ON (ULTIMAS_ENTRADAS.CODIGO_PRODUTO = PRODUTOS_ENTRADA_ITENS.CODIGO_PRODUTO) AND (ULTIMAS_ENTRADAS.ULTENTRADA = PRODUTOS_ENTRADA_ITENS.CODIGO_ENTRADA) WHERE PRODUTOS.ATIVO = TRUE ORDER BY PRODUTOS.descricao[Ô]
WEBIER 05/08/2011 17:32:49
#380934
deu o erro:

run-time error [ô]3075[ô]
erro de sintaxe na expressão de consulta [ô](SELECT Concatenate(SELECT Modelo FROM PRODUTOS_COMP WHERE COD_Produto = Produtos.Codigo))[ô]
WEBIER 05/08/2011 19:24:39
#380939
pessoal fiz um modificação e não deu erro nao:

ficou assim:

 SQL = [Ô]SELECT (PRODUTOS.CATEGORIA) as var_CAT, (PRODUTOS.FABRICANTE) as var_FAB, (PRODUTOS_ENTRADA_ITENS.CODIGO) as var_CODENT, (PRODUTOS.CODIGO) as var_COD, (PRODUTOS.COD_BARRA) as var_CodBarra,(PRODUTOS.DESCRICAO) as var_desc, (PRODUTOS.QUANT_ESTOQUE) as var_Quant, (PRODUTOS.QUANT_MIN) as var_Min, IIF(ISNULL(PRODUTOS_ENTRADA_ITENS.VENDA),0 ,PRODUTOS_ENTRADA_ITENS.VENDA) AS var_VENDA, (Select LAST(MODELO) From PRODUTOS_COMP Where PRODUTOS_COMP.COD_PRODUTO = PRODUTOS.CODIGO) as var_COMP FROM (PRODUTOS LEFT JOIN ULTIMAS_ENTRADAS ON PRODUTOS.CODIGO = ULTIMAS_ENTRADAS.CODIGO_PRODUTO) LEFT JOIN PRODUTOS_ENTRADA_ITENS ON (ULTIMAS_ENTRADAS.CODIGO_PRODUTO = PRODUTOS_ENTRADA_ITENS.CODIGO_PRODUTO) AND (ULTIMAS_ENTRADAS.ULTENTRADA = PRODUTOS_ENTRADA_ITENS.CODIGO_ENTRADA) WHERE PRODUTOS.ATIVO = TRUE ORDER BY PRODUTOS.descricao[Ô]


notem que somente acrescentei na minha sql antiga essa parte
(Select LAST(MODELO) From PRODUTOS_COMP Where PRODUTOS_COMP.COD_PRODUTO = PRODUTOS.CODIGO) as var_COMP


na verdade ele pega o ultimo MODELO da tabela PRODUTOS_COMP para aquela peça.

o que queria na verdade era pegar todos os modelos da tabela PRODUTOS_COMP para aquela peça, mas quando eu tiro o LAST, ele me diz q não pode trazer mais de um registro... como devo fazer entao?

WEBIER 05/08/2011 22:08:09
#380948
Citação:

:
Não Ficaria melhor mesclar os dados da grid?

Ou MsHFlexGrid com MSDataShape



tinha até pensado nisso, mas se eu pudesse junto tudo numa celula seria mais pratico para mim, pois já tá tudo pronto aqui
Tópico encerrado , respostas não são mais permitidas