Cannot update a complex query with more then one table
PESSOAL POR FAVOR ME AJUDEM TENHO UM FORMULARIO ONDE FAÇO AS NOTAS FISCAIS, TENHO UM BOTÃO ONDE EU IMPORTO OS CUPONS FISCAL
POREM QUANDO CLICO NESTE BOTÃO ATE INICIA A CHAMADA DOS ITENS,MAIS AI JA DA ESTE ERRO,(Cannot update a complex query with more then one table).
PESSOAL PRECISO MUITO DA AJUDA DOS COLEGAS POIS PRECISO ENTREGAR ISSO NA SEXTA FEIRA (PARA MUITOS FERIADO).
*************************
TO COLOCANDO MEU CODIGO AQUI PARA DAR OLHADA...
procedure Tfrmnotafiscal_importacupom.ecupomKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then perform(wm_nextdlgctl,0,0);
end;
procedure Tfrmnotafiscal_importacupom.bconfirmaClick(Sender: TObject);
var
vtotal,vsubtotal,vdesconto,vbaseicms,vvaloricms : double;
vitem : integer;
vcodvendedor, vnumero_nota, vcfop, vcodcliente, vcodfilial ,vmodelo,vserie : string;
vemissao , vsaida : TDateTime;
begin
if ecupom.Text <> '' then
begin
vtotal := 0;
vsubtotal := 0;
vdesconto := 0;
vbaseicms := 0;
vvaloricms := 0;
ProgressBar1.Position := 0;
cxMemo1.Text := '';
cxMemo1.Lines.Add('Aguarde, Verificando a Exitência da Nota Fiscal!');
query.Close;
query.SQL.Clear;
query.SQL.Add('select CUPOM_NUMERO,CUPOM_MODELO from c000032 where cupom_numero = '''+ecupom.Text+'''');
query.SQL.Add('and cupom_modelo = ''01''');
query.Open;
if query.RecordCount > 0 then
begin
Application.messagebox('Já Foi Emitido Uma Nota Fiscal Para Esse Cupom!','Atenção!',mb_ok+MB_ICONEXCLAMATION);
ecupom.Text := '';
ecupom.SetFocus;
cxMemo1.Text := '';
exit;
end;
{
qrnotafiscal_item.Close;
qrnotafiscal_item.SQL.Clear;
qrnotafiscal_item.SQL.Add('select * from c000062');
qrnotafiscal_item.Open;
}
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from c000032 where cupom_numero = '''+ecupom.Text+'''');
query.SQL.Add('and ecf_serie = '''+ copy(combo_ecf.Text,7,20) +'''');
query.SQL.Add('and cupom_modelo = ''2D''');
query.SQL.Add('order by cupom_item descending');
query.Open;
if query.RecordCount > 0 then
begin
ProgressBar1.Max := query.RecordCount;
cxMemo1.Text := '';
vnumero_nota := frmnotafiscal.ENUMERO.Text;
vnumero_inclui_cupom := query.fieldbyname('cupom_numero').AsString;
vnumero_inclui_nota := frmprincipal.codifica('000061'); //frmmodulo.qrnotafiscal.fieldbyname('codigo').asstring;
vcfop := frmnotafiscal.ecfop.Text;
vcodcliente := frmnotafiscal.ecliente.Text;
vcodfilial := frmnotafiscal.efilial.Text;
vmodelo := frmnotafiscal.ecodmodelo.Text;
vserie := frmnotafiscal.eserie.Text;
vemissao := frmnotafiscal.edata_cadastro.Date;
vsaida := frmnotafiscal.EDATA_SAIDA.Date;
vcodvendedor := query.fieldbyname('codvendedor').AsString;
while not query.Eof do begin
cxMemo1.Lines.Add(query.fieldbyname('codproduto').AsString+ ' ' +frmmodulo.qrnotafiscal.fieldbyname('numero').asstring+' '+formatfloat('#,###,##0.00',query.fieldbyname('total').AsFloat));
if qrproduto.Locate('codigo',query.fieldbyname('codproduto').AsString,[loCaseInsensitive]) then
begin
frmnotafiscal.qrnotafiscal_item.Insert;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODIGO').ASSTRING := frmprincipal.codifica('000032');
frmnotafiscal.qrnotafiscal_item.FieldByName('CODPRODUTO').ASSTRING := query.fieldbyname('codproduto').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('PRODUTO').ASSTRING := qrproduto.fieldbyname('PRODUTO').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('UNIDADE').ASSTRING := qrproduto.fieldbyname('UNIDADE').AsString;
//frmnotafiscal.qrnotafiscal_item.FieldByName('CODBARRA').Value := ''; //query.fieldbyname('CODBARRA').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('codnota').asstring := vnumero_inclui_nota;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODLANCAMENTO').ASSTRING := frmnotafiscal.qrnotafiscal_item.FieldByName('CODIGO').ASSTRING;
frmnotafiscal.qrnotafiscal_item.FieldByName('PESO_BRUTO').AsFloat := qrproduto.fieldbyname('PESO').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PESO_LIQUIDO').AsFloat := qrproduto.fieldbyname('PESO_LIQUIDO').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('qtde').AsFloat := query.fieldbyname('qtde').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('UNITARIO').AsFloat := query.fieldbyname('unitario').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('TOTAL').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('IPI').AsFloat := query.fieldbyname('ipi').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS').AsFloat := qrproduto.fieldbyname('aliquota').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('CFOP').AsString := frmnotafiscal.ecfop.Text;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODGRADE').AsString := query.fieldbyname('codgrade').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('SERIAL').AsString := query.fieldbyname('serial').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_IPI').AsFloat := query.fieldbyname('valor_ipi').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('CLASSIFICACAO_FISCAL').AsString := '';
frmnotafiscal.qrnotafiscal_item.FieldByName('CST').AsString := qrproduto.fieldbyname('cst').AsString;
if query.fieldbyname('aliquota').AsFloat > 0 then
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_ICMS').AsFloat := query.fieldbyname('total').AsFloat*query.fieldbyname('aliquota').AsFloat/100;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_CALCULO').AsFloat := query.fieldbyname('total').AsFloat;
end
else
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_ICMS').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_CALCULO').AsFloat := 0;
end;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS_REDUZIDO').AsFloat := query.fieldbyname('icms_reduzido').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('MARGEM_AGREGADA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_SUB').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS_SUB').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('ISENTO').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('DESCONTO').AsFloat := 0; //query.fieldbyname('desconto').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('SUBTOTAL').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('ITEM').AsString := query.fieldbyname('cupom_item').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('GRADE').AsString := '';
if qrproduto.FieldByName('piscofins').AsString = 'S' then
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_ALIQUOTA').AsFloat := frmmodulo.qrFilialPIS.AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_BASE').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_VALOR').AsFloat := (query.fieldbyname('total').AsFloat*frmmodulo.qrFilialPIS.AsFloat/100);
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_ALIQUOTA').AsFloat := frmmodulo.qrFilialCOFINS.AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_BASE').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_VALOR').AsFloat := (query.fieldbyname('total').AsFloat*frmmodulo.qrFilialCOFINS.AsFloat/100);
end
else
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_ALIQUOTA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_BASE').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_VALOR').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_ALIQUOTA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_BASE').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_VALOR').AsFloat := 0;
end;
//frmnotafiscal.qrnotafiscal_item.FieldByName('CREDITO_ICMS').AsFloat := query.fieldbyname('credito_icms').AsFloat;
//frmnotafiscal.qrnotafiscal_item.Post;
Application.ProcessMessages;
end;
vtotal := vtotal+(query.fieldbyname('total').AsFloat);
vsubtotal := vsubtotal+(query.fieldbyname('TOTAL').AsFloat-query.fieldbyname('desconto').AsFloat);
vdesconto := vdesconto+(query.fieldbyname('desconto').AsFloat);
if query.fieldbyname('aliquota').AsFloat > 0 then
begin
vbaseicms := vbaseicms+(query.fieldbyname('total').AsFloat-query.fieldbyname('desconto').AsFloat);
vvaloricms := vvaloricms+(vbaseicms*query.fieldbyname('aliquota').AsFloat/100);
end;
query.Next;
vitem := vitem + 1;
ProgressBar1.Position := ProgressBar1.Position + 1;
Application.ProcessMessages;
end;
frmnotafiscal_menu.qrnota.Close;
frmnotafiscal_menu.qrnota.SQL.Clear;
frmnotafiscal_menu.qrnota.SQL.Add('select * from c000061');
frmnotafiscal_menu.qrnota.Open;
frmnotafiscal_menu.qrnota.Insert;
frmnotafiscal_menu.qrnota.FieldByName('codigo').asstring := vnumero_inclui_nota;
frmnotafiscal_menu.qrnota.FieldByName('codfilial').asstring := vcodfilial;
frmnotafiscal_menu.qrnota.FieldByName('numero').asstring := vnumero_nota;
frmnotafiscal_menu.qrnota.FieldByName('cfop').asstring := vcfop;
frmnotafiscal_menu.qrnota.FieldByName('data').AsDateTime := vemissao;
frmnotafiscal_menu.qrnota.FieldByName('data_saida').AsDateTime := vsaida;
frmnotafiscal_menu.qrnota.FieldByName('codcliente').AsString := vcodcliente;
frmnotafiscal_menu.qrnota.FieldByName('hora').AsString := TimeToStr(time);
frmnotafiscal_menu.qrnota.FieldByName('modelo_nf').AsString := vmodelo;
frmnotafiscal_menu.qrnota.FieldByName('serie_nf').AsString := vserie;
frmnotafiscal_menu.qrnota.FieldByName('tipo').AsString := 'S';
frmnotafiscal_menu.qrnota.FieldByName('codvendedor').asstring := vcodvendedor;
frmnotafiscal_menu.qrnota.fieldbyname('situacao').asinteger := 1;
frmnotafiscal_menu.qrnota.fieldbyname('baixa_estoque').asstring := 'S';
frmnotafiscal_menu.qrnota.fieldbyname('sit').asstring := 'N';
frmnotafiscal_menu.qrnota.fieldbyname('movimento').asstring := 'S';
frmnotafiscal_menu.qrnota.FieldByName('INF1').AsString := 'REF. AO CUPOM NÚMERO ' + ecupom.Text;
frmnotafiscal_menu.qrnota.FieldByName('BAIXA_ESTOQUE').AsString := 'N';
frmnotafiscal_menu.qrnota.FieldByName('itens').asinteger := vitem;
frmnotafiscal_menu.qrnota.fieldbyname('BASE_CALCULO').asfloat := vbaseicms;
frmnotafiscal_menu.qrnota.fieldbyname('VALOR_ICMS').asfloat := vvaloricms;
frmnotafiscal_menu.qrnota.FieldByName('VALOR_TOTAL_IPI').asfloat := query.fieldbyname('valor_ipi').asfloat;
frmnotafiscal_menu.qrnota.FieldByName('VALOR_PRODUTOS').asfloat := vtotal;
frmnotafiscal_menu.qrnota.FieldByName('DESCONTO').asfloat := vdesconto;
frmnotafiscal_menu.qrnota.FieldByName('TOTAL_NOTA').asfloat := vtotal-vdesconto;
//frmnotafiscal_menu.qrnota.Post;
ProgressBar1.Position := 0;
close;
end
else
begin
Application.messagebox('Cupom Não Encontrado!','Atenção!',mb_ok+MB_ICONEXCLAMATION);
ecupom.Text := '';
ecupom.SetFocus;
end;
end;
end;
ME AJUDEM AGUARDO...
POREM QUANDO CLICO NESTE BOTÃO ATE INICIA A CHAMADA DOS ITENS,MAIS AI JA DA ESTE ERRO,(Cannot update a complex query with more then one table).
PESSOAL PRECISO MUITO DA AJUDA DOS COLEGAS POIS PRECISO ENTREGAR ISSO NA SEXTA FEIRA (PARA MUITOS FERIADO).
*************************
TO COLOCANDO MEU CODIGO AQUI PARA DAR OLHADA...
procedure Tfrmnotafiscal_importacupom.ecupomKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then perform(wm_nextdlgctl,0,0);
end;
procedure Tfrmnotafiscal_importacupom.bconfirmaClick(Sender: TObject);
var
vtotal,vsubtotal,vdesconto,vbaseicms,vvaloricms : double;
vitem : integer;
vcodvendedor, vnumero_nota, vcfop, vcodcliente, vcodfilial ,vmodelo,vserie : string;
vemissao , vsaida : TDateTime;
begin
if ecupom.Text <> '' then
begin
vtotal := 0;
vsubtotal := 0;
vdesconto := 0;
vbaseicms := 0;
vvaloricms := 0;
ProgressBar1.Position := 0;
cxMemo1.Text := '';
cxMemo1.Lines.Add('Aguarde, Verificando a Exitência da Nota Fiscal!');
query.Close;
query.SQL.Clear;
query.SQL.Add('select CUPOM_NUMERO,CUPOM_MODELO from c000032 where cupom_numero = '''+ecupom.Text+'''');
query.SQL.Add('and cupom_modelo = ''01''');
query.Open;
if query.RecordCount > 0 then
begin
Application.messagebox('Já Foi Emitido Uma Nota Fiscal Para Esse Cupom!','Atenção!',mb_ok+MB_ICONEXCLAMATION);
ecupom.Text := '';
ecupom.SetFocus;
cxMemo1.Text := '';
exit;
end;
{
qrnotafiscal_item.Close;
qrnotafiscal_item.SQL.Clear;
qrnotafiscal_item.SQL.Add('select * from c000062');
qrnotafiscal_item.Open;
}
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from c000032 where cupom_numero = '''+ecupom.Text+'''');
query.SQL.Add('and ecf_serie = '''+ copy(combo_ecf.Text,7,20) +'''');
query.SQL.Add('and cupom_modelo = ''2D''');
query.SQL.Add('order by cupom_item descending');
query.Open;
if query.RecordCount > 0 then
begin
ProgressBar1.Max := query.RecordCount;
cxMemo1.Text := '';
vnumero_nota := frmnotafiscal.ENUMERO.Text;
vnumero_inclui_cupom := query.fieldbyname('cupom_numero').AsString;
vnumero_inclui_nota := frmprincipal.codifica('000061'); //frmmodulo.qrnotafiscal.fieldbyname('codigo').asstring;
vcfop := frmnotafiscal.ecfop.Text;
vcodcliente := frmnotafiscal.ecliente.Text;
vcodfilial := frmnotafiscal.efilial.Text;
vmodelo := frmnotafiscal.ecodmodelo.Text;
vserie := frmnotafiscal.eserie.Text;
vemissao := frmnotafiscal.edata_cadastro.Date;
vsaida := frmnotafiscal.EDATA_SAIDA.Date;
vcodvendedor := query.fieldbyname('codvendedor').AsString;
while not query.Eof do begin
cxMemo1.Lines.Add(query.fieldbyname('codproduto').AsString+ ' ' +frmmodulo.qrnotafiscal.fieldbyname('numero').asstring+' '+formatfloat('#,###,##0.00',query.fieldbyname('total').AsFloat));
if qrproduto.Locate('codigo',query.fieldbyname('codproduto').AsString,[loCaseInsensitive]) then
begin
frmnotafiscal.qrnotafiscal_item.Insert;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODIGO').ASSTRING := frmprincipal.codifica('000032');
frmnotafiscal.qrnotafiscal_item.FieldByName('CODPRODUTO').ASSTRING := query.fieldbyname('codproduto').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('PRODUTO').ASSTRING := qrproduto.fieldbyname('PRODUTO').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('UNIDADE').ASSTRING := qrproduto.fieldbyname('UNIDADE').AsString;
//frmnotafiscal.qrnotafiscal_item.FieldByName('CODBARRA').Value := ''; //query.fieldbyname('CODBARRA').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('codnota').asstring := vnumero_inclui_nota;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODLANCAMENTO').ASSTRING := frmnotafiscal.qrnotafiscal_item.FieldByName('CODIGO').ASSTRING;
frmnotafiscal.qrnotafiscal_item.FieldByName('PESO_BRUTO').AsFloat := qrproduto.fieldbyname('PESO').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PESO_LIQUIDO').AsFloat := qrproduto.fieldbyname('PESO_LIQUIDO').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('qtde').AsFloat := query.fieldbyname('qtde').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('UNITARIO').AsFloat := query.fieldbyname('unitario').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('TOTAL').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('IPI').AsFloat := query.fieldbyname('ipi').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS').AsFloat := qrproduto.fieldbyname('aliquota').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('CFOP').AsString := frmnotafiscal.ecfop.Text;
frmnotafiscal.qrnotafiscal_item.FieldByName('CODGRADE').AsString := query.fieldbyname('codgrade').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('SERIAL').AsString := query.fieldbyname('serial').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_IPI').AsFloat := query.fieldbyname('valor_ipi').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('CLASSIFICACAO_FISCAL').AsString := '';
frmnotafiscal.qrnotafiscal_item.FieldByName('CST').AsString := qrproduto.fieldbyname('cst').AsString;
if query.fieldbyname('aliquota').AsFloat > 0 then
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_ICMS').AsFloat := query.fieldbyname('total').AsFloat*query.fieldbyname('aliquota').AsFloat/100;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_CALCULO').AsFloat := query.fieldbyname('total').AsFloat;
end
else
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('VALOR_ICMS').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_CALCULO').AsFloat := 0;
end;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS_REDUZIDO').AsFloat := query.fieldbyname('icms_reduzido').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('MARGEM_AGREGADA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('BASE_SUB').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('ICMS_SUB').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('ISENTO').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('DESCONTO').AsFloat := 0; //query.fieldbyname('desconto').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('SUBTOTAL').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('ITEM').AsString := query.fieldbyname('cupom_item').AsString;
frmnotafiscal.qrnotafiscal_item.FieldByName('GRADE').AsString := '';
if qrproduto.FieldByName('piscofins').AsString = 'S' then
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_ALIQUOTA').AsFloat := frmmodulo.qrFilialPIS.AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_BASE').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_VALOR').AsFloat := (query.fieldbyname('total').AsFloat*frmmodulo.qrFilialPIS.AsFloat/100);
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_ALIQUOTA').AsFloat := frmmodulo.qrFilialCOFINS.AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_BASE').AsFloat := query.fieldbyname('total').AsFloat;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_VALOR').AsFloat := (query.fieldbyname('total').AsFloat*frmmodulo.qrFilialCOFINS.AsFloat/100);
end
else
begin
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_ALIQUOTA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_BASE').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('PIS_VALOR').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_ALIQUOTA').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_BASE').AsFloat := 0;
frmnotafiscal.qrnotafiscal_item.FieldByName('COFINS_VALOR').AsFloat := 0;
end;
//frmnotafiscal.qrnotafiscal_item.FieldByName('CREDITO_ICMS').AsFloat := query.fieldbyname('credito_icms').AsFloat;
//frmnotafiscal.qrnotafiscal_item.Post;
Application.ProcessMessages;
end;
vtotal := vtotal+(query.fieldbyname('total').AsFloat);
vsubtotal := vsubtotal+(query.fieldbyname('TOTAL').AsFloat-query.fieldbyname('desconto').AsFloat);
vdesconto := vdesconto+(query.fieldbyname('desconto').AsFloat);
if query.fieldbyname('aliquota').AsFloat > 0 then
begin
vbaseicms := vbaseicms+(query.fieldbyname('total').AsFloat-query.fieldbyname('desconto').AsFloat);
vvaloricms := vvaloricms+(vbaseicms*query.fieldbyname('aliquota').AsFloat/100);
end;
query.Next;
vitem := vitem + 1;
ProgressBar1.Position := ProgressBar1.Position + 1;
Application.ProcessMessages;
end;
frmnotafiscal_menu.qrnota.Close;
frmnotafiscal_menu.qrnota.SQL.Clear;
frmnotafiscal_menu.qrnota.SQL.Add('select * from c000061');
frmnotafiscal_menu.qrnota.Open;
frmnotafiscal_menu.qrnota.Insert;
frmnotafiscal_menu.qrnota.FieldByName('codigo').asstring := vnumero_inclui_nota;
frmnotafiscal_menu.qrnota.FieldByName('codfilial').asstring := vcodfilial;
frmnotafiscal_menu.qrnota.FieldByName('numero').asstring := vnumero_nota;
frmnotafiscal_menu.qrnota.FieldByName('cfop').asstring := vcfop;
frmnotafiscal_menu.qrnota.FieldByName('data').AsDateTime := vemissao;
frmnotafiscal_menu.qrnota.FieldByName('data_saida').AsDateTime := vsaida;
frmnotafiscal_menu.qrnota.FieldByName('codcliente').AsString := vcodcliente;
frmnotafiscal_menu.qrnota.FieldByName('hora').AsString := TimeToStr(time);
frmnotafiscal_menu.qrnota.FieldByName('modelo_nf').AsString := vmodelo;
frmnotafiscal_menu.qrnota.FieldByName('serie_nf').AsString := vserie;
frmnotafiscal_menu.qrnota.FieldByName('tipo').AsString := 'S';
frmnotafiscal_menu.qrnota.FieldByName('codvendedor').asstring := vcodvendedor;
frmnotafiscal_menu.qrnota.fieldbyname('situacao').asinteger := 1;
frmnotafiscal_menu.qrnota.fieldbyname('baixa_estoque').asstring := 'S';
frmnotafiscal_menu.qrnota.fieldbyname('sit').asstring := 'N';
frmnotafiscal_menu.qrnota.fieldbyname('movimento').asstring := 'S';
frmnotafiscal_menu.qrnota.FieldByName('INF1').AsString := 'REF. AO CUPOM NÚMERO ' + ecupom.Text;
frmnotafiscal_menu.qrnota.FieldByName('BAIXA_ESTOQUE').AsString := 'N';
frmnotafiscal_menu.qrnota.FieldByName('itens').asinteger := vitem;
frmnotafiscal_menu.qrnota.fieldbyname('BASE_CALCULO').asfloat := vbaseicms;
frmnotafiscal_menu.qrnota.fieldbyname('VALOR_ICMS').asfloat := vvaloricms;
frmnotafiscal_menu.qrnota.FieldByName('VALOR_TOTAL_IPI').asfloat := query.fieldbyname('valor_ipi').asfloat;
frmnotafiscal_menu.qrnota.FieldByName('VALOR_PRODUTOS').asfloat := vtotal;
frmnotafiscal_menu.qrnota.FieldByName('DESCONTO').asfloat := vdesconto;
frmnotafiscal_menu.qrnota.FieldByName('TOTAL_NOTA').asfloat := vtotal-vdesconto;
//frmnotafiscal_menu.qrnota.Post;
ProgressBar1.Position := 0;
close;
end
else
begin
Application.messagebox('Cupom Não Encontrado!','Atenção!',mb_ok+MB_ICONEXCLAMATION);
ecupom.Text := '';
ecupom.SetFocus;
end;
end;
end;
ME AJUDEM AGUARDO...
Rodrigo Bernal
Curtidas 1
Melhor post
Joel Rodrigues
28/03/2013
Além da linha onde ocorre o erro, qual é o SQL da query frmnotafiscal.qrnotafiscal_item?
GOSTEI 1
Mais Respostas
Rafael Cunha
27/03/2013
Cara quando você debugando ele da o erro em que linha.
GOSTEI 0
Bruno Leandro
27/03/2013
Esse erro deve ocorrer ao dar post, me corrija se eu estiver engando. e como o Joel disse sobre o sql da query frmnotafiscal.qrnotafiscal_item acredito que seja essa query que esteja gerando o erro existe inner, left ou outro tipo de amarração nesta tabela ? caso tenha voce precisa inserir ao mesmo tempo em varias tabela, talvez a melhor solução seja um procedure.
GOSTEI 0
Rodrigo Bernal
27/03/2013
no SQL dasta query tenho somente um select
select * from itens
GOSTEI 0
Joel Rodrigues
27/03/2013
Certo, mas o erro dá em que linha?
GOSTEI 0
William
27/03/2013
Colega seria melhor vc debugar e verificar em qual linha está sendo disparado esse erro, pois o código que vc postou possui várias linhas e fica difícil encontrar um erro somente lendo seu código sem conhecer as amarrações existentes.
Não leve a mau, mas poderíamos supor x possibilidades de erros dentro dessa rotina!!!
Não leve a mau, mas poderíamos supor x possibilidades de erros dentro dessa rotina!!!
GOSTEI 0
Rodrigo Bernal
27/03/2013
Pessoal Debuguei o sistema e ele me deu o erro aqui nesta linha:( frmnotafiscal.qrnotafiscal_item.Insert;) isso acontece quando ele passa para o proximo iten do cupom que esta sendo chamado, consigo ate ver no memo o item 1 e 2 do cupom.
coloquei um frmnotafiscal.qrnotafiscal_item.edit; antes e nada o erro continua, ele manda para unit do zeos:
procedure RaiseSQLException(E: Exception);
begin
if E is EZSQLException then
begin
raise EZSQLException.CreateClone(EZSQLException(E)); esta marcando aqui esta linha do Zeos
end
else
begin
raise EZSQLException.Create(E.Message);
end;
end;
coloquei um frmnotafiscal.qrnotafiscal_item.edit; antes e nada o erro continua, ele manda para unit do zeos:
procedure RaiseSQLException(E: Exception);
begin
if E is EZSQLException then
begin
raise EZSQLException.CreateClone(EZSQLException(E)); esta marcando aqui esta linha do Zeos
end
else
begin
raise EZSQLException.Create(E.Message);
end;
end;
GOSTEI 0
William
27/03/2013
Colega após analisar seu código tenho que reforçar as perguntas que o Joel e o Bruno postaram!
Existe outra instrução SQL que envolva (INNER, LEFT ou RIGHT JOIN) inserida diretamente na propriedade SQL do componente?
Pois esse tipo de exception geralmente é disparada quando uma mesma query possui várias tabelas envolvidas na consulta e posteriormente vc inseri registros visando apenas 1 das tabelas.
Sei que é cansativo bater na mesma tecla, mas a mensagem aponta para esse caminho.
Existe outra instrução SQL que envolva (INNER, LEFT ou RIGHT JOIN) inserida diretamente na propriedade SQL do componente?
Pois esse tipo de exception geralmente é disparada quando uma mesma query possui várias tabelas envolvidas na consulta e posteriormente vc inseri registros visando apenas 1 das tabelas.
Sei que é cansativo bater na mesma tecla, mas a mensagem aponta para esse caminho.
GOSTEI 1
Michel Santos
27/03/2013
Caso não tenha resolvido vou ser bem claro, nossos colegas estão analisando de forma correta, porem voce não esta entendendo.
O Componete ZEO que esta no form (frmnotafiscal.qrnotafiscal_item), click em cima dele e veja na aba do delphi OBJECT INSPECTOR em EVENTS.
O Unico campo que deve estar preenchido é o CONNECTION, o resto é só você comentar para testar.
O Componete ZEO que esta no form (frmnotafiscal.qrnotafiscal_item), click em cima dele e veja na aba do delphi OBJECT INSPECTOR em EVENTS.
O Unico campo que deve estar preenchido é o CONNECTION, o resto é só você comentar para testar.
GOSTEI 0
Michel Santos
27/03/2013
Humm Outra coisa, o Componete ZEO que esta no form (frmnotafiscal.qrnotafiscal_item), click em cima dele e veja na aba do delphi OBJECT INSPECTOR em SQL do componente deixa como select * from nome da tabela
PS.: COMENTAR, AS LINHAS, Pois se apagar pode ter problemas com outras funções.
OBS.: Depois disso se não funcionar mesmo te garanto que se duplicar o componente e colocar outro nome funciona, mais lembre se limpa os dados do componente !!!!! (Ideia de Português)
PS.: COMENTAR, AS LINHAS, Pois se apagar pode ter problemas com outras funções.
OBS.: Depois disso se não funcionar mesmo te garanto que se duplicar o componente e colocar outro nome funciona, mais lembre se limpa os dados do componente !!!!! (Ideia de Português)
GOSTEI 0