nsouza Postado Março 14, 2009 Denunciar Share Postado Março 14, 2009 Colegastenho um formulario MaterialGastro com os campos edtOrdemServiço (TDEdit)tenho tabem um datagrid com os camposIdOrdemServilo (chave estrangeira)DescricaoValorGostaria que quando eu digita a OS numero 001 no formulario so aparecesse o material da OS 001 no data grindmas esta aparecendo a da OS 002Usei a propriedade Master Source ligando a IDOs (tblOrdemServico-chave primaria) ligando a IDos(chave estrangeira da tblMaterialGasto)mas ainda não esta filtrando, o que fiz de errado?Quando navego e pula para OS 002 não filtra.Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Março 14, 2009 Denunciar Share Postado Março 14, 2009 tenho tabem um datagrid com os camposIdOrdemServilo (chave estrangeira)DescricaoValorVocê fala em datagrid - estamos falando de programação .NET? Se for um programa Win32, o componente seria um DBGrid. Faz diferença saber isto.Gostaria que quando eu digita a OS numero 001 no formulario so aparecesse o material da OS 001 no data grindmas esta aparecendo a da OS 002Usei a propriedade Master Source ligando a IDOs (tblOrdemServico-chave primaria) ligando a IDos(chave estrangeira da tblMaterialGasto)mas ainda não esta filtrando, o que fiz de errado?Quando navego e pula para OS 002 não filtra.O sentido de ligação é do detalhe para o mestre, ou seja, o seu dataset tblOrdemServico deve apontar para o MasterSource do dataset tblMaterialGasto (se não entendi errado quem é mestre e detalhe).Vocês está usando um DBGrid para a edição dos dados? Se for, você quer digitar o número da OS em uma coluna e visualizar os dados dela em outras duas colunas?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Março 14, 2009 Autor Denunciar Share Postado Março 14, 2009 (editado) tenho tabem um datagrid com os camposIdOrdemServilo (chave estrangeira)DescricaoValorVocê fala em datagrid - estamos falando de programação .NET? Se for um programa Win32, o componente seria um DBGrid. Faz diferença saber isto.Gostaria que quando eu digita a OS numero 001 no formulario so aparecesse o material da OS 001 no data grindmas esta aparecendo a da OS 002Usei a propriedade Master Source ligando a IDOs (tblOrdemServico-chave primaria) ligando a IDos(chave estrangeira da tblMaterialGasto)mas ainda não esta filtrando, o que fiz de errado?Quando navego e pula para OS 002 não filtra.O sentido de ligação é do detalhe para o mestre, ou seja, o seu dataset tblOrdemServico deve apontar para o MasterSource do dataset tblMaterialGasto (se não entendi errado quem é mestre e detalhe).Vocês está usando um DBGrid para a edição dos dados? Se for, você quer digitar o número da OS em uma coluna e visualizar os dados dela em outras duas colunas?AbraçosEstou usando o TDBGrid, desculpe.Eu preciso do seguinte:digitar o numero da OS no campo edtOrdemServico e o dbgrid mostrar os dados relacionados a esta OS.Na verdade Micheus, quebrei cabeça e consegui fazer o filtro, adicionei um query no TDBGrid, meu problema agora ´´e o seguinte.Quando a ordem de serviço não existir ele me retornar a mensagem " Ordem de Serviço não existe!"tentei fazer desta forma:if key = #13 then begin dm.tblOrdemServico.Close; dm.tblOrdemServico.open; o formulario onde coloquei este codigo esta acoplado a tblMaterial que tem a chave estrangeira da tabela tblOrdemServico Esta linha consulta na tabela tblOrdemServico, se existe numero da ordem de servico if (StrToInt(edtOrdemSevico.Text)) = dm.tblOrdemServico.FieldByName('IDOS').AsInteger then begin ShowMessage('Ordem de serviço não existe'); dbDescricao.Clear; edtOrdemSevico.SetFocus; exit; end else begin aqui execute uma procedure material; end end;Qual o resultado deste codigo:quando digito a OS 1 retorna a mensagem " Ordem de Serviço não existe!" - Mas esta OS existequando digito a OS 2,3,4,5 o DBGrid atualizaQuando digito uma OS que não existe por exemplo 21, o DBGRID, fica branco ao invés de retornar a mensagem " Ordem de Serviço não existe!" Este agora e o problema! Editado Março 14, 2009 por nsouza Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Março 14, 2009 Denunciar Share Postado Março 14, 2009 Eu preciso do seguinte:digitar o numero da OS no campo edtOrdemServico e o dbgrid mostrar os dados relacionados a esta OS.Na verdade Micheus, quebrei cabeça e consegui fazer o filtro, adicionei um query no TDBGrid, meu problema agora ´´e o seguinte.Quando a ordem de serviço não existir ele me retornar a mensagem " Ordem de Serviço não existe!"tentei fazer desta forma:if key = #13 then begin dm.tblOrdemServico.Close; dm.tblOrdemServico.open;nsouza, vamos em etapas porque acho que tem coisa demais aqui para o que você quer fazer.No DBGrid você vai mostrar o resultado da tal query, certo?Então, esta query deve ter uma parâmetro onde você o iniciliza com o valor digitato no seu edtOrdemServico e depois abre a query. Isto feito, duas coisas podem ocorrer: os dados aparecerem no grid ou não aparecer nada nele.Se aparece alguma coisa, então se "olharmos" a propriedade RecordCount obteremos um valor maior que 0 (zero); caso não apareça nada, este valor será 0.Assim, este seria o teste que você deveria fazer para mostrar a mensagem. Logo após abrir a consulta você testa esta propriedade e se for zero mostra a mensagem.Esta tal tblOrdemServico seria a sua query? É o que parece pelo que você "fala" no post, mas não é o que parece pela nomenclatura - tbl, sugere que seja uma tabela (table).Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Março 15, 2009 Autor Denunciar Share Postado Março 15, 2009 Exatamente, é isso que acontece o grid, você estendeu.Quanto a tblOrdemServico você tb esta certo é uma tabela.>A tblOrdemServico tem a chave primaria IDOS>A tblMaterialGasto tem uma chave primaria IDMaterial e um chave estrangeira IDOs > O campos do meu formulário estão ligados a tblMaterialGasto,no formulário eu digito no campo edtOrdemServico e o grid que esta ligado a qryMaterialGasto, mostra os valores>Eu preciso que quando digito o numero da O.S no campo edtOrdemServico ele atualiza o grid, mas se o numero da OS não existir na tabela principal tblOrdemServico, ele retorna a mensagem conforme lhe expliquei.obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 nsouza, eu não entendi exatamente como esta sua tela está funcionando, já que no formulário estão o campo ligados à tblMaterialGasto e no grid você quer mostrar o resultado da query qryMaterialGasto. Mas, em todos os casos, esta sua query teria que filtrar o campo IDOS da tabela MaterialGasto baseado no valor que você digitou no campo edtOrdemServico - seria uma consulta parametrizada.Então no evento OnExit do edtOrdemServico, voce poderia fechar a consulta, inicializar o parâmetro da query com o valor digitado e depois abrir a consulta. Se a consulta estiver vazia é sinal de que não há informações e você pode mostrar a mensagem do contrário, os itens estarão no grid.É basicamente a mesma "lenga-lenga" que tratamos no seu outro tópico: Impedir número já registrado, especificamente neste postAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Março 17, 2009 Autor Denunciar Share Postado Março 17, 2009 Tá bom,mesmo assim obrigado pelo esforço em me ajudar! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nsouza
Colegas
tenho um formulario MaterialGastro com os campos edtOrdemServiço (TDEdit)
tenho tabem um datagrid com os campos
IdOrdemServilo (chave estrangeira)
Descricao
Valor
Gostaria que quando eu digita a OS numero 001 no formulario so aparecesse o material da OS 001 no data grind
mas esta aparecendo a da OS 002
Usei a propriedade Master Source ligando a IDOs (tblOrdemServico-chave primaria) ligando a IDos(chave estrangeira da tblMaterialGasto)
mas ainda não esta filtrando, o que fiz de errado?
Quando navego e pula para OS 002 não filtra.
Obrigado
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.