Transform para o campo CT1_CONTA

Como vocês fazem para mascarar o campo CT1_CONTA.

O meu MV_MASCARA é 11224, logo, meu plano de contas está.

2

2.1

2.1.01

2.1.01.01

2.1.01.01.0001

Quando eu faço um relatório, eu uso.

Transform(CT1->CT1_CONTA) , "@R 9.9.99.99.9999")

Daí está sendo impresso assim:

  1. . . .

2.1. . .

2.1.01. .

2.1.01.01.

2.1.01.01.0001

Existe alguma forma de mascarar sem usar o TRANSFORM?

Não conheço outra forma de aplicar uma picture, já pensou em criar sua própria função para tratar esse caso em específico?

Não precisa usar o tranforme, o sistema utiliza o parametro MV_MASCARA para formatar. usa o exemplo abaixo, utilizo aqui na empresa e sai formatado

TRCell():New( oSection1, "CCONTACT1" , ,STR0009/Titulo/,/Picture/,aTamConta[1]+10/Tamanho/,/lPixel/,{|| EntidadeCTB(CT1->CT1_CONTA ,0,0,70,.F.,iif( Empty( mv_par08 ) , GetMv("MV_MASCARA") , RetMasCtb( mv_par08,@cSeparador) ) ,cSeparador,,,,,.F.) }/CodeBlock/)

Você pode criar uma função para definir a marcara dinamicamente. Por exemplo:


.
.
  Transform(CT1->CT1_CONTA, U_MaskPC(CT1->CT1_CONTA))
.
.

User Function MaskPC(cPlanCts)
    Local cMask := ''

    DO CASE
        CASE Len(cPlanCts) == 1
            cMask :=  "@R 9"

        CASE Len(cPlanCts) == 2
            cMask :=  "@R 9.9"

        CASE Len(cPlanCts) == 4
            cMask :=  "@R 9.9.99"

        // e por ai vai..

    ENDCASE


Return cMask

Espero ter ajudado!