Array
(
)

Filtros em dentro de filtros

Gigatel
   - 17 nov 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....

#Código


_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...


#Código

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

#Código


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].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].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..