Jump to content

Erro em relatório: não permite visualizar determinada página

From Meta, a Wikimedia project coordination wiki

O relatório SandraFIN_Bookingjournal.rpt estava a impedir a visualização de uma das páginas. Quando isto acontece deve-e abrir o relatório com o Crystal e fazer um refresh, colocando os mesmos parâmetros que deram origem ao "erro" no cliente. Andar página a página até encontrar uma em que surja um erro numa fórmula.

Neste caso, estava a ser feito um InStr a uma string que não continha o caracter a procurar.

Anteriormente a fórmula era:

if InStr({V_BT_REP_BOOKINGJOURNAL.PrintDescription}, "[") + InStr({V_BT_REP_BOOKINGJOURNAL.PrintDescription}, "]") > 0 then
   Mid({V_BT_REP_BOOKINGJOURNAL.PrintDescription}, InStr({V_BT_REP_BOOKINGJOURNAL.PrintDescription}, "[") , Length({V_BT_REP_BOOKINGJOURNAL.PrintDescription}))
else
   ""

Alterei para:

stringVar strPrint := Trim({V_BT_REP_BOOKINGJOURNAL.PrintDescription});
numberVar intStart := InStr(strPrint, "[");
numberVar intEnd := InStr(strPrint, "]");
if intStart > 0 and intEnd > 0 then
    Mid(strPrint, intStart, intEnd)
else
    ""

Desta forma, se a string de procura for nula ou estiver vazia não vai fazer o mid e não causa o erro.