Respondendo a pergunta do Gerson, não tinha nenhum valor negativo.

Lairton, estou enviando o código da função onde o erro acontece. Mas queriaa 
deixar claro que essa função funciona, só quando alguma linha da tabela é 
apagada é que o erro ocorre.

De qualquer forma a solução que eu encontrei foi somar a coluna por meio de um 
While.

Obrigado pela atenção e ajuda de todos.


######################################################################

Function: fPegaRetencoes
 Description: Seta as retenções de acordo com o cadastro do cliente e com a
   parametrização das retenções.
 Returns
 Parameters
 Static Variables
 Local variables
  String: sRetIss
  String: sRetInss
  String: sRetIrrf
  String: sRetCofins
  String: sRetPis
  String: sRetContrib
  String: sRetRetencRc1
  String: sRetRetencRc2
  Number: nIss
  Number: nInss
  Number: nIrrf
  Number: nCofins
  Number: nPis
  Number: nContrib
  Number: nRetencRc1
  Number: nRetencRc2
 Actions
  If NOT bRetencoes
   Return FALSE
  !
  If dfAlterouRetencoes != 'S'
   !
   ! Se for venda de Serviço do tipo Fatura, não pega as retenções do cliente
   If sServicoFatura = 'F'
    Call fInicializaRetencoes( )
    Return FALSE
   ! O SELECT QUE APARECE NA MENSAGEM DO ERRO
   Call SqlImmediate(
"Select
      clie_ind_inss,
      clie_ind_ir,
      clie_ind_iss,
      clie_ind_pis,
      clie_ind_cofins,
      clie_ind_contrib_social,
     clie_ind_retencRc,
     clie_ind_retencRc2,
      clie_aliquota_inss,
      clie_aliquota_ir,
      clie_aliquota_iss,
      clie_aliquota_pis,
      clie_aliquota_cofins,
      clie_aliquota_contribsocial,
      clie_aliquota_retencRc1,
     clie_aliquota_retencRc2
     
from  cliente

into :sRetInss,
      :sRetIrrf,
      :sRetIss,
      :sRetPis,
     :sRetCofins,
      :sRetContrib,
      :sRetRetencRc1,
      :sRetRetencRc2,
      :nInss,
      :nIrrf ,
           :nIss,
      :nPis,
           :nCofins,
      :nContrib,
      :nRetencRc1,
      :nRetencRc2
     where clie_cod = :dfnVendClieCod " )
   Call SqlClearImmediate( )
   !
   If sRetInss = 'S'
    Set cbINSS = TRUE
    Set dfSecuridadePerc = nInss
   If sRetIrrf = 'S'
    Set cbIRRF = TRUE
    Set dfIRRFPerc = nIrrf
   If sRetPis = 'S'
    Set cbPIS = TRUE
    Set dfPISPerc = nPis
   If sRetCofins = 'S'
    Set cbCOFINS = TRUE
    Set dfCOFINSPerc = nCofins
   If sRetContrib = 'S'
    Set cbContribuicaoSoc = TRUE
    Set dfContribuicaoPerc = nContrib
   If sRetIss = 'S'
    Set cbISS = TRUE
   If sRetRetencRc1 = 'S'
    Set cbRetencRc1 = TRUE
    Set dfAliquotaRetencRc1 = nRetencRc1
   If sRetRetencRc2 = 'S'
    Set cbRetencRc2 = TRUE
    Set dfAliquotaRetencRc2 = nRetencRc2
  ! nPercInssTemp
  If cbINSS
   Set dfsVendRetInss = 'S'
   If ( dfSecuridadePerc = NUMBER_Null or dfSecuridadePerc = 0 ) and
        dfSecuridade != NUMBER_Null
    Call SalSendMsg( dfSecuridade, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsVendRetInss, SAM_AnyEdit, wParam, lParam )
   ! aki
   Call SalSendMsg( dfSecuridadePerc, SAM_Validate, wParam, lParam )
   ! Call SalSendMsg( dfSecuridadePerc, SAM_FieldEdit, wParam, lParam )
  ! If cbINSS
   Set dfsVendRetInss = 'S'
   If ( dfSecuridadePerc = NUMBER_Null or dfSecuridadePerc = 0 ) and
        dfSecuridade != NUMBER_Null
    Call SalSendMsg( dfSecuridade, SAM_FieldEdit, wParam, lParam )
   Call SalSendMsg( dfsVendRetInss, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfSecuridadePerc, SAM_FieldEdit, wParam, lParam )
  If cbIRRF
   Set dfsVendRetIrrf = 'S'
   If ( dfIRRFPerc = NUMBER_Null or dfIRRFPerc = 0 ) and
        dfIRRF != NUMBER_Null
    Call SalSendMsg( dfIRRF, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsVendRetIrrf, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfIRRFPerc, SAM_Validate, wParam, lParam )
  If cbPIS
   Set dfsVendRetPis = 'S'
   If ( dfPISPerc = NUMBER_Null or dfPISPerc = 0 ) and
        dfPIS != NUMBER_Null
    Call SalSendMsg( dfPIS, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsVendRetPis, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfPISPerc, SAM_Validate, wParam, lParam )
  If cbCOFINS
   Set dfsVendRetCofins = 'S'
   If ( dfCOFINSPerc = NUMBER_Null or dfCOFINSPerc = 0 ) and
        dfCOFINS != NUMBER_Null
    Call SalSendMsg( dfCOFINS, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsVendRetCofins, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfCOFINSPerc, SAM_Validate, wParam, lParam )
  If cbContribuicaoSoc
   Set dfsRetVendContribSoc = 'S'
   If ( dfContribuicaoPerc = NUMBER_Null or dfContribuicaoPerc = 0 ) and
        dfContribuicao != NUMBER_Null
    Call SalSendMsg( dfContribuicao, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsRetVendContribSoc, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfContribuicaoPerc, SAM_Validate, wParam, lParam )
  If cbISS
   Set dfsVendRetIss = 'S'
   If NOT bNavegacao
    Call SalSendMsg( dfsVendRetIss, SAM_AnyEdit, wParam, lParam )
   ! Set dfISS = (dfTotalServico + dfTotalMercadoria) *
      nIss / 100
  If cbRetencRc1
   Set dfsRetRetencRc1 = 'S'
   If ( dfAliquotaRetencRc1 = NUMBER_Null or dfAliquotaRetencRc1 = 0 ) and
        dfRetencRc1 != NUMBER_Null
    Call SalSendMsg( dfRetencRc1, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsRetRetencRc1, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfAliquotaRetencRc1, SAM_Validate, wParam, lParam )
  If cbRetencRc2
   Set dfsRetRetencRc2 = 'S'
   If ( dfAliquotaRetencRc2 = NUMBER_Null or dfAliquotaRetencRc2 = 0 ) and
        dfRetencRc2 != NUMBER_Null
    Call SalSendMsg( dfRetencRc2, SAM_FieldEdit, wParam, lParam )
   If NOT bNavegacao
    Call SalSendMsg( dfsRetRetencRc2, SAM_AnyEdit, wParam, lParam )
   Call SalSendMsg( dfAliquotaRetencRc2, SAM_Validate, wParam, lParam )
  !
  Set dfnVendTotal = 0
  Set nLinha = -1
  If SalTblAnyRows( tblItens, 0, 0 )
   ! Set dfnVendTotal = SalTblColumnSum( tblItens, SalTblQueryColumnID( 
tblItens.colVendTotalMerc ), 0, 0 ) - SalTblColumnSum( tblItens, 
SalTblQueryColumnID( tblItens.colValorSimBahia ), 0, 0 ) -
      dfnVendDesconto + dfValorIPI + dfnVendEmbalagem + dfValorICMSSub
   While SalTblFindNextRow( tblItens, nLinha,  0, 0 )
    Call SalTblSetContext( tblItens, nLinha )
    Set dfnVendTotal = dfnVendTotal + (tblItens.colVendTotalMerc) - 
(tblItens.colValorSimBahia) - dfnVendDesconto + dfValorIPI + dfnVendEmbalagem + 
dfValorICMSSub
  Set nLinha = -1
  If SalTblAnyRows( tblServico, 0, ROW_MarkDeleted|ROW_Edited|ROW_Selected)
   ! Set dfnVendTotal = dfnVendTotal + SalTblColumnSum( tblServico, 
SalTblQueryColumnID( tblServico.colValorTotal ), 0, 0 )
   While SalTblFindNextRow( tblServico, nLinha,  0, 0 )
    Call SalTblSetContext( tblServico, nLinha )
    Set dfnVendTotal = dfnVendTotal + (tblServico.colValorTotal)
  If dfsVendTipoFrete = 'FOB'
   Set dfnVendTotal = dfnVendTotal + dfnVendFrete
  If cbIRRF
   Set dfnVendTotal = dfnVendTotal - dfIRRF
  If cbPIS
   Set dfnVendTotal = dfnVendTotal - dfPIS
  If cbCOFINS
   Set dfnVendTotal = dfnVendTotal - dfCOFINS
  If cbINSS
   Set dfnVendTotal = dfnVendTotal - dfSecuridade
  If cbContribuicaoSoc
   Set dfnVendTotal = dfnVendTotal - dfContribuicao
  If cbRetencRc1
   Set dfnVendTotal = dfnVendTotal - dfRetencRc1
  If cbRetencRc2
   Set dfnVendTotal = dfnVendTotal - dfRetencRc2
  If cbISS
   Set dfnVendTotal = dfnVendTotal - dfISS
  If bRetencoes = FALSE
   If cbPIS
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnPis / 100)
   If cbCOFINS
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnCofins / 100)
   If cbContribuicaoSoc
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnContribuicaoSocial / 100)
   If cbINSS
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnInss / 100)
   If cbRetencRc1
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnAliqRetencRc / 100)
   If cbRetencRc2
    Set dfnVendTotal = dfnVendTotal -
      ((dfTotalServico + dfTotalMercadoria) * gbnAliqRetencRc2 / 100)
  !
  Set dfnVendTotal = dfnVendTotal + dfnEncargos + dfnDespesas + dfnSeguro
  !
  ! AQUI É ONDE O ERRO ACONTECE
  Set dfTotalPagamento = SalTblColumnSum( tblParcelas, SalTblQueryColumnID( 
tblParcelas.colValor ), 0, 0 )
  Set dfnJuros = oPlanoPagamento.nJuros
  Set dfnTotalPag = dfnVendTotal + (dfnVendTotal * oPlanoPagamento.nJuros / 100)
  Set dfnTotalPagto = dfnTotalPag
  Call fTotalBruto()
  !
  Set bNavegacao = FALSE
  !
###############################################################################################

Responder a