Filtros em dentro de filtros

17/11/2005

E aí galera...aproveitando a volta da normalidade do fórum vamos as velhas dúvidas que matam....é o seguinte, tenho em um cadastro de estoque o cadastro de produtos e tbm o cadastro de serviço tudo integrado em uma talela....más aí veio a dúvida como separar em grids diferentes os produtos e os serviço ?

Daí fiz isso quase deu certo más queria menos ganbiarrado...ou entaum colocar esta funcionado....

No form onde recebo as informações do estoque coloquei duas IBQuery uma com o nome de BD_ORCA_ITENS_A e BD_ORCA_ITENS_B, uma é cópia da outra...

Minha Ordem de serviço é integrada ao estoque, onde faço um relacionamento por códigos entre o cadastro de equipamentos e os ítens que que quero colocar no orçamento aaaaaaaaaaaaíiiiiiiiiiii que entra as complicações...

se eu tenho uma Ordem de serviço com o código 10, este código é gravado em um campo especifico para posterior localização dos ítens...o código é este....

   _FORM_OS_OR.BD_ORCA_ITENS_AGS_OOEI_CODACES.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODIGO.value; ///Aki recebe o código da Ordem de serviço


este é o filtro que serve para determinar para onde o ítens vão...


var
e:integer;
Begin
e:= E:=_FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODIGO.Value; ////aki pega o código da O.S.
     _FORM_OS_OR.BD_ORCA_ITENS_A.Close;
     _FORM_OS_OR.BD_ORCA_ITENS_A.SQL.Clear;
     _FORM_OS_OR.BD_ORCA_ITENS_A.SQL.Add(´select * from ORCAMENTO_OFIC_ELET_ITENS where GS_OOEI_CODACES=´+inttostr(E));
     _FORM_OS_OR.BD_ORCA_ITENS_A.Open;

     _FORM_OS_OR.BD_ORCA_ITENS_B.Close;
     _FORM_OS_OR.BD_ORCA_ITENS_B.SQL.Clear;
     _FORM_OS_OR.BD_ORCA_ITENS_B.SQL.Add(´select * from ORCAMENTO_OFIC_ELET_ITENS where GS_OOEI_CODACES=´+inttostr(E));
     _FORM_OS_OR.BD_ORCA_ITENS_B.Open;




Agora e que vamos ao problema...ele filtra vamos supor 5 Produtos e 2 Serviço ( cadastrados )usando a função acima...vai ficar na tabela somente os produtos filtrados pelo código...Até aí funciona...fiz este filtros para poder definir os produtos e serviços...fiz assim


procedure T_FORM_OS_OR.calcular;
var
r,i,A,B: integer;
n,C,D : real;
begin
//  with BD_ORCA_ITENS_A do
//  begin
//    Close;
//    SQL.Clear;
//    SQL.Add(´SELECT * FROM ORCAMENTO_OFIC_ELET_ITENS´);
//    SQL.Add(´WHERE UPPER(GS_OOEI_PRO_SER) LIKE:GS_OOEI_PRO_SER´);
//    BD_ORCA_ITENS_A.Params[0&93;.AsString :=  UpperCase(´Produto´) + ´¬´;
//    BD_ORCA_ITENS_A.Open;
//  end;

//  with BD_ORCA_ITENS_B do
//  begin
//    Close;
//    SQL.Clear;
//    SQL.Add(´SELECT * FROM ORCAMENTO_OFIC_ELET_ITENS´);
//    SQL.Add(´WHERE UPPER(GS_OOEI_PRO_SER) LIKE:GS_OOEI_PRO_SER´);
//    BD_ORCA_ITENS_B.Params[0&93;.AsString :=  UpperCase(´Serviço´) + ´¬´;
//    BD_ORCA_ITENS_B.Open;
//  end;


o campo GS_OOEI_PRO_SER recebe duas informação... Produto e Serviço
más simplismente naum funciona.... este código parece que refás os filtros aí separa os produtos e serviço...más ignorando o primeiro filtro feito...ou seja se entrar va lista todos os ítens cadastrados da tabela e não os ítens filtrados....Ufaaaaaa que bom que o fórum voltou a funcionar...hehehehe t+...vlw..


Gigatel