Jogando valor
tenho um form de produto e nele tem um edit que eu coloco o ncm de tal produto....e nesse sistema tenho uma tabela com todos os ncm ..Queria saber como poderia fazer para na hora que eu digitir o ncm no edit ele verificar se tal ncm existi ou nao na tabela que importei......e assim ele joga o valor da aliquota de imposto que ta na tabela de ncm no campo de aliquota que tambem tem no form do produto...Como fazeria isso????
Alan
Curtidas 0
Respostas
Mateus Ribeiro
22/12/2016
Boa tarde! Considerando que essa "Tabela Importada" que você se refere, seja banco de dados, no evento "OnExit" do seu Edit, faça a seguinte verificação:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Trim(Edit1.Text) <> EmptyStr then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT VALOR_ALIQUOTA' );
ADOQuery1.SQL.Add(' FROM TABELA ');
ADOQuery1.SQL.Add(' WHERE NCM = '+Edit1.Text );
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
Edit2.Text:= ADOQuery1.FieldByName('VALOR_ALIQUOTA').AsString;
end;
end;
GOSTEI 0
Raimundo Pereira
22/12/2016
qryNCM.OPEN;
IF qryNCM.locate('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) THEN //Verifica se na tabela de ncm possui o ncm informado no edit
BEGIN
qryNCM.locate('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
qryPRODUTO.OPEN;
if qryPRODUTO.('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) then //Verifica se na tabela de de produtos possui o ncm pesquisado
begin
qryPRODUTO.('TBL_PRODUTOS_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
qryPRODUTO.edit;// edita o campo aliq_icms para o mesmo que consta na tabela de NCM
qryPRODUTO.fielbyname('ALIQ_ICMS').asstring:= qryNCM.fielbyname('ALIQ_ICMS').asstring;
qryPRODUTO.post;
END;
END;
Caso eu não esteja ajudando ou esteja te deixando confuso é só falar, que paro de tentar ajudar
IF qryNCM.locate('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) THEN //Verifica se na tabela de ncm possui o ncm informado no edit
BEGIN
qryNCM.locate('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
qryPRODUTO.OPEN;
if qryPRODUTO.('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) then //Verifica se na tabela de de produtos possui o ncm pesquisado
begin
qryPRODUTO.('TBL_PRODUTOS_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
qryPRODUTO.edit;// edita o campo aliq_icms para o mesmo que consta na tabela de NCM
qryPRODUTO.fielbyname('ALIQ_ICMS').asstring:= qryNCM.fielbyname('ALIQ_ICMS').asstring;
qryPRODUTO.post;
END;
END;
Caso eu não esteja ajudando ou esteja te deixando confuso é só falar, que paro de tentar ajudar
GOSTEI 0
Alan
22/12/2016
Não você ta me ajudando muito....muito obrigado P2....tá igual professor...muito bom...muito obrigado mesmo!!!!
GOSTEI 0
Alan
22/12/2016
Nessa parte aqui na frente do "." eu colocaria o Locate??
if qryPRODUTO.('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) then //Verifica se na tabela de de produtos possui o ncm pesquisado
begin
qryPRODUTO.('TBL_PRODUTOS_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
if qryPRODUTO.('TBL_NCM_CAMPO_NCM',EDIT_NCM.TEXT,[]) then //Verifica se na tabela de de produtos possui o ncm pesquisado
begin
qryPRODUTO.('TBL_PRODUTOS_CAMPO_NCM',EDIT_NCM.TEXT,[]); //Permanece no registro localizado
GOSTEI 0
Raimundo Pereira
22/12/2016
Correto qryPRODUTO.locate
GOSTEI 0