Faccruz 0 Denunciar post Postado Dezembro 7, 2006 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
Hugo Slepicka 0 Denunciar post Postado Dezembro 7, 2006 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
Vinicius Callegaro 0 Denunciar post Postado Dezembro 7, 2006 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
Faccruz 0 Denunciar post Postado Dezembro 7, 2006 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
Vinicius Callegaro 0 Denunciar post Postado Dezembro 7, 2006 Poste o código do seu botão Novo e do botão salvar Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Dezembro 7, 2006 Poste o código do seu botão Novo e do botão salvarCódigo onde eu pego os itens do pedido e mando pra NFprocedure 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 Salvarprocedure 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
Vinicius Callegaro 0 Denunciar post Postado Dezembro 7, 2006 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
marcio.theis 3 Denunciar post Postado Dezembro 7, 2006 Realmente, teria de fazer um teste sem os try except e sem as transações, pode ser que mostre algum erro que se possa ter noção do que ocorre... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Dezembro 12, 2006 Resolvido... Estava calculando o preço total sempre que se insiria um pedido novo... assim tbm não tem memória que aguente... eheh Valeu http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Dezembro 12, 2006 beleza... houhouhou http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif Compartilhar este post Link para o post Compartilhar em outros sites