Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Faccruz

Insuficient Memory

Recommended Posts

Boa tarde...

 

Estou com problema de Insuficient Memory for this operation já mudei o SHAREDMEMSIZE (no BDE) para 8192, mas mesmo assim continua dando o erro...

 

Esse erro está ocorrendo na montagem de uma NF com vários itens (fechamento de mês) de uma papelaria, ou seja, o cliente vai compra, "marca" e no final do mês a papelaria faz um fechamento para esse cliente, gerando uma unica NF com todos os pedidos realizados no mês. Existem pedidos com mais de 100 itens... Tentei colocar um limite de 10 pedidos por NF, mas mesmo assim deu estouro de memória. Alguém teria alguma ideia de como resolver esse erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ficou dando program reset???então cara, reinicia o teu micro que isso passa...é q o programa ñ saiu da memo do pc...reinicia que aki tb sempre da isso quando eu do program reset...flw aew!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente isto não é estouro de memória. Este erro é comum. Coloque um breakpoint e descubra em qual linha está ocorrendo o erro e cole para nós o trecho onde está o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente isto não é estouro de memória. Este erro é comum. Coloque um breakpoint e descubra em qual linha está ocorrendo o erro e cole para nós o trecho onde está o erro.

O erro dá no momento da gravação... se eu selecionar apenas um pedido, faz normal... porem se eu escolher vários, dá esse erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código do seu botão Novo e do botão salvar

Código onde eu pego os itens do pedido e mando pra NF
procedure TFMontarNotaGeral.AdicionartemdoPedido1Click(Sender: TObject);begin   if frmPesquisaGeral=nil then   begin	   frmPesquisaGeral:=TfrmPesquisaGeral.create(self);	   frmPesquisaGeral.Caption			:= 'Pesquisa de Vendas de Produtos';	   frmPesquisaGeral.FsTabelaPesquisa   := 'CADPEDIDO A LEFT JOIN CADCLICOMERCIO B ON A.Cod_Cli = B.Cod_Cli';	   frmPesquisaGeral.FsCamposPesquisa   := 'A.Cod_Pedido,B.Nome_Cli,B.DDD,B.fone_cli,A.Data_Pedido,A.Total_Pedido';	   frmPesquisaGeral.FsCampoRetorno	 := 'Cod_Pedido';	   frmPesquisaGeral.FsCondicaoPesquisa := 'A.Emitiu is null and a.Cancelada is null and A.Cod_Cli = ' + QuotedStr(DMDados2.TCadNotaFiscalCodCli.AsString);	   frmPesquisaGeral.FsCamposOrdem	  := 'Cod_Pedido';	   frmPesquisaGeral.FsOnExit		   := 10;	   frmPesquisaGeral.FsCamposOnExit	 := frmPesquisaGeral.FsCamposOrdem;	   frmPesquisaGeral.FsCamposData	   := VarArrayOf(['','','','','Data_Pedido','Total_Pedido']);	   frmPesquisaGeral.FsCamposMask	   := VarArrayOf(['','','','','99/99/9999','##,###,##0.00']);	   frmPesquisaGeral.FvTitulos		  := VarArrayOf(['Cód.Pedido', 'Nome Cliente','DDD','Telefone','Data Pedido','Total Pedido']);	   frmPesquisaGeral.ShowModal;	   if frmPesquisaGeral.ModalResult = mrOk then		  scodpedido := frmPesquisaGeral.FvValorRetorno	   else		  scodpedido := '';	   frmPesquisaGeral.Free;   end;   frmPesquisaGeral:= nil;   //sai fora   if sCodPedido = '' then	  exit;   if (MessageDlg('O Pedido ' + sCodPedido + ' vai ser marcado como Nota Fiscal emitida. Deseja continuar ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then   begin	   qryPesqPedido2.ParamByName('PARCOD_PEDIDO').AsString := scodpedido;	   qryPesqPedido2.Open;	   qryPesqPedido2.First;	   while not qryPesqPedido2.Eof do	   begin		 if (DMDados2.TCadNotaFiscal2.Locate('CODPROD', qryPesqPedido2COD_PROD.AsString, [])) and			(DMDados2.TCadNotaFiscal2VlrUnit.AsFloat = qryPesqPedido2VLRUNIT.AsFloat) then		 begin			DMDados2.TCadNotaFiscal2.Edit;			DMDados2.TCadNotaFiscal2Qtde.AsFloat := DMDados2.TCadNotaFiscal2Qtde.AsFloat + qryPesqPedido2QTDE.AsFloat;		 end		 else		 begin			DMDados2.TCadNotaFiscal2.Append;			DMDados2.TCadNotaFiscal2CodProd.AsString	:= qryPesqPedido2COD_PROD.AsString;			DMDados2.TCadNotaFiscal2Qtde.AsFloat		:= qryPesqPedido2QTDE.AsFloat;			DMDados2.TCadNotaFiscal2VlrUnit.AsFloat	 := qryPesqPedido2VLRUNIT.AsFloat;			DMDados2.TCadNotaFiscal2VlrDesconto.AsFloat := qryPesqPedido2DESCONTO.AsFloat;		 end;		 DMDados2.TCadNotaFiscal2.Post;		 qryPesqPedido2.Next;	   end;	   qryPesqPedido2.Close;	   UpdateTabela('CADPEDIDO', ['EMITIU'], ['S'], ['COD_PEDIDO'], [scodpedido]);	   FPrincipal.vquem := 'notageral';	   DMDados2.CalculaTotalNotaProd;	   DMDados2.TCadNotaFiscal.Edit;	   DMDados2.TCadNotaFiscalDESCONTO.AsFloat := DMDados2.VlrCredCli;   end;end;
Botão Salvar
procedure TFMontarNotaGeral.BSalvarPClick(Sender: TObject);var vvaloripi:real;	vbaseipi:real;	vbaseicms:real;	vvaloricms:real;	vlricm:real;	vlrtotal:real;	vconta1:integer;	vnota1:string;	vnota2:string;	TotalLiquido:real;	TotalParcial:real;	vtotliq:real;	vqtde:real;	vtemprod:string;	Total:real;	Iss:real;	vpesoBr:real;	vpeso:real;	eVlrIPIClassFiscal,	vIRRF,	eVlrDescontoServico,	vCofins,	vContribSocial,	vPis,	vISS : Extended;begin	vIRRF := 0;	vCofins := 0;	vContribSocial := 0;	vPis := 0;	vISS := 0;	if DMDados.TCadConfigTipoServ.AsString = 'P' then	begin	   if DMDados2.TCadNotaFiscal2.IsEmpty then	   begin		 MessageDlg('Nota Fiscal sem Produtos! Escolha os Produtos.', mtWarning, [mbOK], 0);		 DBGrid1.SetFocus;		 exit;	   end;	end	else	if DMDados.TCadConfigTipoServ.AsString = 'S' then	begin	   if DMDados2.TCadNotaFiscal2Serv.IsEmpty then	   begin		 MessageDlg('Nota Fiscal sem Serviços! Escolha os Serviços.', mtWarning, [mbOK], 0);		 DBGrid2.SetFocus;		 exit;	   end;	end	else	begin	   if DMDados2.TCadNotaFiscal2.IsEmpty then	   begin		 PageControl1.ActivePage := tsProd;		 MessageDlg('Nota Fiscal sem Produtos! Escolha os Produtos.', mtWarning, [mbOK], 0);		 DBGrid1.SetFocus;		 exit;	   end;	   if DMDados2.TCadNotaFiscal2Serv.IsEmpty then	   begin		 PageControl1.ActivePage := tsServ;		 MessageDlg('Nota Fiscal sem Serviços! Escolha os Serviços.', mtWarning, [mbOK], 0);		 DBGrid2.SetFocus;		 exit;	   end;	end;	//--------------------------------------------------------------------------	vtemprod:='';	vpesoBr:=0;	vpeso:=0;	if (DMMontarNotaGeral.qryCadTransComercioConsMaterial_Transc.Value = 'S') and	   (DMDados2.TCadNotaFiscalNotaCompl.Value = 'N') then	begin		if DMDados2.TCadNotaFiscal2CodProd.Value = '' then		   vtemprod := 'N';	end;	vbaseicms:=0;	vbaseipi:=0;	vvaloricms:=0;	vvaloripi:=0;	vlricm:=0;	vlrtotal:=0;	TotalLiquido:=0;	TotalParcial:=0;vtotliq:=0;vqtde:=0;	Total:=0;Iss:=0;	vlocal:='salvar';	try		//Serviço		DMDados2.TCadNotaFiscal2Serv.First;		While not DMDados2.TCadNotaFiscal2Serv.Eof  do		begin			DMDados2.TCadNotaFiscal2Serv.Edit;			DMDados2.TCadNotaFiscal2ServIss.Value			:= Lookup('CADSERVICOS', ['COD_SERV'], [DMDados.TCadPedido2ServCod_serv.Value], 'COALESCE(Iss,0)');			DMDados2.TCadNotaFiscal2ServVlrTotal_Calc.Value := (DMDados2.TCadNotaFiscal2ServVlrUnit.Value * DMDados2.TCadNotaFiscal2ServQtde.Value);			Total := Total + DMDados2.TCadNotaFiscal2ServVlrTotal_Calc.Value;			Iss   := Iss   + (DMDados2.TCadNotaFiscal2ServVlrTotal_Calc.Value * (DMDados2.TCadNotaFiscal2ServIss.Value/100));			DMDados2.TCadNotaFiscal2Serv.Post;						DMDados2.TCadNotaFiscal2Serv.Next;		end;		//Produto		DMDados2.TCadNotaFiscal2.First;		While not DMDados2.TCadNotafiscal2.Eof  do		begin		   DMDados2.TCadNotaFiscal2.Edit;		   DMDados2.TCadNotaFiscal2VlrTotalBruto.Value	:= (DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2qtde.Value);		   DMDados2.TCadNotaFiscal2VlrTotalLiquido.Value  := ((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)-((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)*(DMDados2.TCadNotaFiscal2VlrDesconto.Value/100)));		   vqtde										  := vqtde + DMDados2.TCadNotaFiscal2Qtde.Value;		   ////		   vtotliq := 0;		   DMDados2.TCadNotaFiscal2VlrTotalLiquido.Value  := DMDados2.TCadNotaFiscal2VlrTot_Calc.Value;		   vtotliq  := round((DMDados2.TCadNotaFiscal2VlrTotalLiquido.Value - (DMDados2.TCadNotaFiscal2VlrTotalLiquido.Value*(DMDados2.TCadNotaFiscalPercento_Desc.Value/100)))*100)/100;		   vtotliq  := vtotliq - DMDados2.TCadNotaFiscalDesconto.Value;		   vlrtotal := vlrtotal + DMDados2.TCadNotaFiscal2VlrTotalLiquido.Value;		   ///		   TotalLiquido := TotalLiquido + ((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)-((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)*(DMDados2.TCadNotaFiscal2VlrDesconto.Value/100)));		   /// pesos		   if DMDados.TCadConfigUsaPeso.Value='S' then		   begin			  vpeso  := vpeso   +( Lookup('CADPRODUTO', ['COD_PROD'], [DMDados2.TCadNotaFiscal2CodProd.Value], 'COALESCE(Peso_Prod,0)') * DMDados2.TCadNotaFiscal2Qtde.Value);  // calucla o peso			  vpesoBr:= vpesoBr +( Lookup('CADPRODUTO', ['COD_PROD'], [DMDados2.TCadNotaFiscal2CodProd.Value], 'COALESCE(PesoBruto,0)') * DMDados2.TCadNotaFiscal2Qtde.Value);  // calucla o peso br		   end;		   ///		   DMDados2.TCadNotaFiscal2SitTributaria.Value := DMMontarNotaGeral.qryCadTransComercioSitTrib_Transc.Value;		   // para calcular ipi utiliza o vlr. bruto		 if DMDados2.TCadNotaFiscalNotaCompl.Value='N' then  //// nf complementar não calcula impostos		 begin		   if DMMontarNotaGeral.qryCadTransComercioCalcIPI_Transc.Value='S' then		   begin				if VarToStr(Lookup('CADCLASSFISCAL', ['COD_CLASSF'], [VarToStr(Lookup('CADPRODUTO', ['COD_PROD'], [DMDados2.TCadNotaFiscal2CodProd.AsString], 'ClassFiscal'))], 'Isento_ClassF')) = 'N' then				begin				   eVlrIPIClassFiscal := Lookup('CADCLASSFISCAL', ['COD_CLASSF'], [VarToStr(Lookup('CADPRODUTO', ['COD_PROD'], [DMDados2.TCadNotaFiscal2CodProd.AsString], 'ClassFiscal'))], 'COALESCE(IPI_ClassF,0)');				   vvaloripi := vvaloripi + round((( DMDados2.TCadNotaFiscal2VlrUnit.Value * DMDados2.TCadNotaFiscal2Qtde.Value)*( eVlrIPIClassFiscal /100))*100)/100; // valor do ipi que é a % do ipi sobre o vlr. bruto				   DMDados2.TCadNotaFiscal2ValorIPI.Value			:= round(((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)*( eVlrIPIClassFiscal /100))*100)/100; // valor do ipi que é a % do ipi sobre o vlr. bruto				   DMDados2.TCadNotaFiscal2ClassificacaoFiscal.Value := VarToStr( Lookup('CADCLASSFISCAL', ['COD_CLASSF'], [VarToStr(Lookup('CADPRODUTO', ['COD_PROD'], [DMDados2.TCadNotaFiscal2CodProd.AsString], 'ClassFiscal'))], 'CodR_Classf') );				   DMDados2.TCadNotaFiscal2PercentualIPI.Value	   := eVlrIPIClassFiscal;	// % de ipi do cadastro de produtos				end;		   end		   else		   begin				vvaloripi := vvaloripi + round(((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)*( DMMontarNotaGeral.qryCadTransComercioPorcentoIPI_Transc.Value/100))*100)/100; // valor do ipi que é a % do ipi sobre o vlr. bruto				DMDados2.TCadNotaFiscal2ValorIPI.Value	  := round(((DMDados2.TCadNotaFiscal2VlrUnit.Value*DMDados2.TCadNotaFiscal2Qtde.Value)*( DMMontarNotaGeral.qryCadTransComercioPorcentoIPI_Transc.Value/100))*100)/100; // valor do ipi que é a % do ipi sobre o vlr. bruto				DMDados2.TCadNotaFiscal2PercentualIPI.Value := DMMontarNotaGeral.qryCadTransComercioPorcentoIPI_Transc.Value;		   end;		   DMDados2.TCadNotaFiscal2BaseCalculoIpi.Value := DMDados2.TCadNotaFiscal2VlrTotalBruto.Value; // base de calculo do ipi por produto mesmo valor do produto		   vbaseipi := vbaseipi + DMDados2.TCadNotaFiscal2BaseCalculoIpi.Value; // valor total da base de claculo do ipi;		   if DMMontarNotaGeral.qryCadTransComercioIsentoIcm_Transc.Value='N' then		   begin			 if DMMontarNotaGeral.qryCadTransComercioIcmsEstado_Transc.Value='N' then  // caso utilize o cadastro de transação comercial para valor do icms			 begin				  vlricm := DMMontarNotaGeral.qryCadTransComercioPorcentoIcms_Transc.Value;				  DMDados2.TCadNotaFiscal2PercentualICMS.Value	:= DMMontarNotaGeral.qryCadTransComercioPorcentoIcms_Transc.Value;				  DMDados2.TCadNotaFiscal2PercentualReducao.Value := DMMontarNotaGeral.qryCadTransComercioPorcentoReduz_Transc.Value;				  if (DMMontarNotaGeral.qryCadTransComercioPorcentoReduz_Transc.AsString <> '') and					 (DMMontarNotaGeral.qryCadTransComercioPorcentoReduz_Transc.Value <> 0) then				  begin					   DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value := round(((vtotliq-(vtotliq*(DMMontarNotaGeral.qryCadTransComercioPorcentoReduz_Transc.Value/100)))+DMDados2.TCadNotaFiscal2ValorIPI.Value)*100)/100; // base de calclulo total do icms com reducao					   DMDados2.TCadNotaFiscal2ValorICMS.Value	   := round((DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotafiscal2PercentualIcms.Value/100))*100)/100;					   vbaseicms  := round((vbaseicms  + (vtotliq - (vtotliq*(DMMontarNotaGeral.qryCadTransComercioPorcentoReduz_Transc.Value/100)))+DMDados2.TCadNotaFiscal2ValorIPI.Value)*100)/100; // base de calclulo total do icms com reducao					   vvaloricms := round((vvaloricms + (DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotafiscal2PercentualIcms.Value/100)))*100)/100;				  end				  else				  begin					   DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value := vtotliq + DMDados2.TCadNotaFiscal2ValorIPI.Value; // base de calculo total do icms sem reducao					   DMDados2.TCadNotaFiscal2ValorICMS.Value	   := round((DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value * (DMMontarNotaGeral.qryCadTransComercioPorcentoIcms_Transc.Value/100))*100)/100; // valor do icms por produto sem reducao					   vbaseicms  := vbaseicms + vtotliq + DMDados2.TCadNotaFiscal2ValorIPI.Value; // base de calculo total do icms sem reducao					   vvaloricms := round(( vvaloricms + (DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMMontarNotaGeral.qryCadTransComercioPorcentoIcms_Transc.Value/100)))*100)/100; // valor total do icms sem reducao				  end;			 end			 else  // valor para icms por estado			 begin				   DMDados2.TCadNotaFiscal2PercentualICMS.Value	:= Lookup('CADESTADO', ['UF_EST'], [DMDados2.TCadNotaFiscalEstNota.Value], 'COALESCE(Icms_Est,0)');				   DMDados2.TCadNotaFiscal2PercentualReducao.Value := Lookup('CADESTADO', ['UF_EST'], [DMDados2.TCadNotaFiscalEstNota.Value], 'COALESCE(Reduz_Est,0)');				   if (DMDados2.TCadNotaFiscal2PercentualReducao.AsString <> '') and					  (DMDados2.TCadNotaFiscal2PercentualReducao.Value <> 0) then				   begin						DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value := round(((vtotliq - (vtotliq * (DMDados2.TCadNotaFiscal2PercentualReducao.Value/100)))+DMDados2.TCadNotaFiscal2ValorIPI.Value)*100)/100;						DMDados2.TCadNotaFiscal2ValorICMS.Value	   := round((DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotafiscal2PercentualIcms.Value/100))*100)/100;						vbaseicms  := round((vbaseicms  + (vtotliq - (vtotliq * (DMDados2.TCadNotaFiscal2PercentualReducao.Value/100)))+DMDados2.TCadNotaFiscal2ValorIPI.Value)*100)/100;						vvaloricms := round((vvaloricms + (DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotafiscal2PercentualIcms.Value/100)))*100)/100;				   end				   else				   begin						DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value := vtotliq + DMDados2.TCadNotaFiscal2ValorIPI.Value;						DMDados2.TCadNotaFiscal2ValorICMS.Value	   := round((DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotaFiscal2PercentualIcms.Value/100))*100)/100;						vbaseicms  := vbaseicms + vtotliq + DMDados2.TCadNotaFiscal2ValorIPI.Value;						vvaloricms := round((vvaloricms + (DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotaFiscal2PercentualIcms.Value/100)))*100)/100;				   end;			 end;		   end		   else		   begin			  DMDados2.TCadNotaFiscal2PercentualICMS.Value:=0;			  DMDados2.TCadNotaFiscal2PercentualReducao.Value:=0;			  DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value:=0;			  DMDados2.TCadNotaFiscal2ValorICMS.Value:=0;			  vbaseicms  := vbaseicms + vtotliq + DMDados2.TCadNotaFiscal2ValorIPI.Value;			  vvaloricms := round(( vvaloricms + (DMDados2.TCadNotaFiscal2BaseCalculoICMS.Value*(DMDados2.TCadNotaFiscal2PercentualIcms.Value/100)))*100)/100;		   end;   //		 end; // fim complementar		 DMDados2.TCadNotaFiscal2.Next;	   end;	   //Altera o nota fiscal	   DMDados2.TCadNotaFiscal.Edit;	   DMDados2.TCadNotaFiscalDataDaMontagem.Value:=date;	   if DMMontarNotaGeral.qryCadTransComercioForCli_Transc.Value='C' then	   begin		  DMDados2.TCadNotaFiscalNome.Value	:= DBLComboBoxCliProd.Text;		  DMDados2.TcadNotaFiscalEstNota.Value := VarToStr( Lookup('CADCLICOMERCIO', ['COD_CLI'], [DMDados2.TcadNotaFiscalCodCli.Value], 'Est_Cli') );	   end else begin		  DMDados2.TCadNotaFiscalNome.Value	:= DBLComboBoxForProd.Text;		  DMDados2.TcadNotaFiscalEstNota.Value := VarToStr( Lookup('CADFORNECEDOR', ['COD_FOR'], [DMDados2.TcadNotaFiscalFornecedor.Value], 'Uf_For') );	   end;	   DMDados2.TCadNotaFiscalCodNatureza.Value  := DMMontarNotaGeral.qryCadTransComercioNaturezaOp_Transc.Value;	   DMDados2.TCadNotaFiscalENFDeEntrada.Value := DMMontarNotaGeral.qryCadTransComercioENFEntrada_Transc.Value;	   DMDados2.TCadNotaFiscalVrIss.Value	  := Iss;	   DMDados2.TCadNotaFiscalVrServicos.Value := Total;	   if DMDados.TCadConfigUsaPeso.Value='S' then	   begin		  DMDados2.TCadNotaFiscalPesoLiquido.Value:=vpeso;		  DMDados2.TCadNotaFiscalPesoBruto.Value  :=vpesoBr;	   end;	   if DMDados2.TCadNotaFiscalNotaCompl.Value='N' then  //// ver isabel	   begin		   DMDados2.TCadNotaFiscalValorIPI.Value	   := vvaloripi;		   DMDados2.TCadNotaFiscalBaseCalculoIPI.Value := vbaseipi;		   DMDados2.TCadNotaFiscalPercentualICMS.Value := vlricm;		   DMDados2.TCadNotaFiscalValorICMS.Value	  := vvaloricms;		   DMDados2.TCadNotaFiscalBaseCalculoICMS.Value:= vbaseicms;	   end;	   DMDados2.TCadNotaFiscalVlrTotal.Value	 := TotalLiquido;	   DMDados2.TCadNotaFiscalQtde_Pecas.Value   := vqtde;	   DMDados2.TCadNotaFiscalVlrTotalNota.Value := round((vlrtotal - (vlrtotal * (DMDados2.TCadNotaFiscalPercento_Desc.Value/100)))*100)/100;	   DMDados2.TCadNotaFiscalVlrTotalNota.Value := (DMDados2.TCadNotaFiscalVlrTotalNota.Value - DMDados2.TCadNotaFiscalDesconto.Value);	   DMDados2.TCadNotaFiscalVlrTotalNota.Value := (DMDados2.TCadNotaFiscalVlrTotalNota.Value + DMDados2.TCadNotaFiscalValorFrete.Value + DMDados2.TCadNotaFiscalValorSeguro.Value+DMDados2.TCadNotaFiscalOutrasDespesas.Value+DMDados2.TCadNotaFiscalValorIpi.Value);	   if DMDados2.TCadNotaFiscalNotaCompl.Value='N' then	   begin		  if DMMontarNotaGeral.qryCadTransComercioIsentoIcm_Transc.Value='N' then		  begin			  if (DMDados2.TCadNotaFiscal2PercentualReducao.AsString <> '') and				 (DMDados2.TCadNotaFiscal2PercentualReducao.Value > 0) then			  begin				  DMDados2.TCadNotaFiscalBaseCalculoICMS.Value := round(((DMDados2.TCadNotaFiscalVlrTotalNota.Value-(DMDados2.TCadNotaFiscalVlrTotalNota.Value*(DMDados2.TCadNotaFiscal2PercentualReducao.Value/100)))+DMDados2.TCadNotaFiscalValorIPI.Value)*100)/100;				  DMDados2.TCadNotaFiscalValorICMS.Value	   := round((DMDados2.TCadNotaFiscalBaseCalculoICMS.Value*(DMDados2.TCadNotaFiscal2PercentualIcms.Value/100))*100)/100;			  end			  else			  begin				  DMDados2.TCadNotaFiscalBaseCalculoICMS.Value := DMDados2.TCadNotaFiscalVlrTotalNota.Value;				  DMDados2.TCadNotaFiscalValorICMS.Value	   := round((DMDados2.TCadNotaFiscalBaseCalculoICMS.Value*(DMDados2.TCadNotaFiscal2PercentualIcms.Value/100))*100)/100;			  end;		  end		  else		  begin			  DMDados2.TCadNotaFiscalBaseCalculoICMS.Value:=0;			  DMDados2.TCadNotaFiscalValorICMS.Value:=0;		  end;	   end;	   ///	   DMDados2.TCadNotaFiscalVlrTotalNota.Value := DMDados2.TCadNotaFiscalVlrTotalNota.Value + DMDados2.TCadNotaFiscalVrServicos.Value;	   DMDados2.CalculaTotalImpNotaServico;	   DMDados2.TCadNotaFiscal.Post;	   if FPrincipal.DatabaseSistema.InTransaction then		  FPrincipal.DatabaseSistema.Commit;   except	  if FPrincipal.DatabaseSistema.InTransaction then		 FPrincipal.DatabaseSistema.Commit;	  Raise;   end;   MessageDlg('Nota Processada e prontas para impressão !', mtInformation, [mbOK], 0);   visivelprod;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando assim por cima não achei nenhum erro. Só não achei nenhum FPrincipal.DatabaseSistema.StartTransaction; Coloque um break point e diga a linha onde está ocorrendo o erro e volte a postar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.