Resolvido,
Código: Selecionar todos
select fornec
go top
do while .not. eof()
select forbas
go top
seek fornec->cgc
if found()
if rlock()
forbas->nr_cgcpf:= pdal(strtran(strtran(strtran(fornec->cgc,"."),"-"),"/"),15," ")
bla bla bla
unlock
endif
else
append blank
if rlock()
forbas->nr_cgcpf:= pdal(strtran(strtran(strtran(fornec->cgc,"."),"-"),"/"),15," ")
bla bla bla
unlock
endif
endif
select fornec
skip
enddo
Se não fosse pelos caracteres ".", "/" e "-" que estou retirando pelo strtran ficaria assim.:
Código: Selecionar todos
select fornec
go top
do while .not. eof()
select forbas
go top
seek fornec->cgc
if found()
if rlock()
forbas->nr_cgcpf:= pdal(fornec->cgc),15," ")
bla bla bla
unlock
endif
else
append blank
if rlock()
forbas->nr_cgcpf:= pdal(fornec->cgc),15," ")
bla bla bla
unlock
endif
endif
select fornec
skip
enddo
Para funcionar com o seu exemplo Maligno, ficaria assim.:
Código: Selecionar todos
select forbas
go top
do while .not. eof()
dbEval({||forbas->nr_cgcpf := PadL(RTrim(forbas->nr_cgcpf),15," ")})
enddo
help do vfp 5
Retorna uma seqüência de uma expressão preenchida com espaços ou caracteres até o comprimento especificado no lado direito, esquerdo ou nos dois lados.
Sintaxe
PADL(eExpressão, nTamanhoResultado [, cCaracterePreenchimento])
– Ou –
PADR(eExpressão, nTamanhoResultado [, cCaracterePreenchimento])
– Ou –
PADC(eExpressão, nTamanhoResultado [, cCaracterePreenchimento])
Tipos de retorno
Caractere
Argumentos
eExpressão Especifica a expressão a ser preenchida. Esta expressão pode ser de qualquer tipo, exceto expressão lógica ou um campo de figura ou geral.
nTamanhoResultado Especifica o número total de caracteres na expressão depois que ela foi preenchida.
cCaracterePreenchimento Especifica o valor a ser utilizado no preenchimento. Este valor é repetido, de acordo com a necessidade, para preencher a expressão até o número especificado de caracteres.
Se você omitir cCaracterePreenchimento, espaços (caractere ASCII 32) serão utilizados no preenchimento.
Comentários
PADL( ) insere preenchimento à esquerda, PADR( ) insere preenchimento à direita e PADC( ) insere preenchimento nos dois lados.
Exemplo.:
Código: Selecionar todos
m.campo = ' 1'
m.campo = padl(alltrim(campo),8,'0')
campo ficara assim '00000001'
Fonte.:
http://www.vfpbrasil.com.br/modules/new ... ic_id=1926
Valeu Maligno pela ajuda