MOSTRAR NUMA CELULA DO FLEXGRID VARIOS REGISTRO
uso o vb6 e bd access...
uso a sequinte sql para preencher um flexgrid
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?
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?
alguem ? to precisando muito!
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[Ô]
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[Ô]
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...
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...
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[Ô]
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[Ô]
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))[ô]
run-time error [ô]3075[ô]
erro de sintaxe na expressão de consulta [ô](SELECT Concatenate(SELECT Modelo FROM PRODUTOS_COMP WHERE COD_Produto = Produtos.Codigo))[ô]
pessoal fiz um modificação e não deu erro nao:
ficou assim:
notem que somente acrescentei na minha sql antiga essa parte
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?
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?
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