desaprendi transform help?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

desaprendi transform help?

Mensagem por pena »

pessoal tenho uma variavel

"1110013", e uma pict "9.9.9.9999."

desta variavel como transformo com a pict

1.1.1.0013.

testei assim no clipper tb e nao consegui

clear screen
proximo="1110013"
@ 10,10 say "proximo " get m->proximo
read
? TRAn(val(proximo),"@K 9.9.9.9999.")
? TRAn(proximo,"@K 9.9.9.9999.")
? TRAn(proximo,"9.9.9.9999.")

de jeito algum vai
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

desaprendi transform help?

Mensagem por sygecom »

Tente:
pict "@R 9.9.9.9999."
ou
pict "@e 9.9.9.9999."
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

desaprendi transform help?

Mensagem por pena »

eh ae Leonardo blz, na verdade nao posso usar pict, e sim transform, pq estou usando a minigui, e é um codigo contabil, portanto depois que ja preenchi o campo na tela, estou buscando o proximo codigo da estrutura 1.1.1., e preciso devolver formatado isso, so que eu preciso uma mascara para transformar a mascara e nao na digitacao dos dados, nao sei se consegui passar meu problema, coloquei aqui no clipper e nao no minigui, pq testei com o codigo clipper e tive o mesmo problema.
um abraço,




ps: vi que continua sua procura pela vaga, não me liberaram pra tirar férias, o sped esta dando muito trabalho, ai ficaria complicado pra mim, talvez em outra oportunidade
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

desaprendi transform help?

Mensagem por alxsts »

Olá!

O Leonardo (Sygecom) matou. A questão é o "@R"

Juntando tudo:

Código: Selecionar todos

CLS
LOCAL cProximo := "1110013"
@ 10,10 Say "Proximo:" ;
             Get cProximo ;
             Pict "@R 9.9.9.9999"
READ
- ou -
LOCAL cProximo := "1110013"

@ 10,10 Say Transform( Val( cProximo ), "@R 9.9.9.9999" )
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

desaprendi transform help?

Mensagem por sygecom »

É só usar com Transform() a mascara que lhe passei, da na mesma.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

desaprendi transform help?

Mensagem por pena »

putz cara, o problema é a gente trabalhar com outras linguagens, da um nó na cabeça, estava fazendo assim
proximo := TRans(val(oProximo:Fields["Id_Conta"]:value)+ 1,"@R 9.9.9.9999.")

for a:=1 to len(estruturacontabil)
if substr(estruturacontabil,a,1)= "."
pt++
endif
next
ctt=( pt +len(alltrim(conta)))

masc:="@R "+estruturacontabil

assim funcionou

proximo := TRans(Str(val(oProximo:Fields["Id_Conta"]:value)+ 1,ctt),masc)

vlw, obg
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

desaprendi transform help?

Mensagem por tonyx »

tenho sistema contabil -- estou usando estas funcoes -- ve se serve

:D

Código: Selecionar todos

//----------------------//
FUNCTION CTA_STR(STR_CONTA)  && *** TRANSFORMA A CONTA EM STRING NUMERICO **
 S_CONTA = ''
 POS=AT('-',STR_CONTA) - 1
 FOR I=1 TO POS
  IF SUBSTR(STR_CONTA,I,1) # '.'
   S_CONTA = S_CONTA+SUBSTR(STR_CONTA,I,1)
  ENDIF
 NEXT
 S_CONTA = S_CONTA+SPACE(15-LEN(S_CONTA))
RETURN(S_CONTA)
*--------------------------------------------
*
FUNCTION STR_CTA(STR_CONTA)   && *** TRANSFORMA STRING NUMERICO EM CONTA **
 PRIVATE S_CONTA,STR2_CONTA,STR2_CONTA,TAM_CONTA,POS,I
 STRU2_CONTA = SUBSTR(STRU_CONTA,2,LEN(STRU_CONTA)-2)
 IF AT('-',STR_CONTA) # 0
  STR2_CONTA = RTRIM(CTA_STR(STR_CONTA))  && QUANDO BATE NO  '-' LEITURA
 ELSE
  STR2_CONTA = RTRIM(STR_CONTA) && CASOS SO PARA MOSTRAR
 ENDIF
 TAM_CONTA = LEN(STR2_CONTA)
 S_CONTA = ''
 POS = 0
 FOR I=1 TO TAM_CONTA
  POS = POS + 1
  CARACT = SUBSTR(STRU2_CONTA,POS,1)
  IF CARACT = '9'
   S_CONTA = S_CONTA+SUBSTR(STR2_CONTA,I,1)
  ELSE
   IF CARACT = '.'
    S_CONTA = S_CONTA+'.'+SUBSTR(STR2_CONTA,I,1)
    POS = POS + 1
   ELSE
    I = TAM_CONTA + 5 && PARA SAIR DO LOOP
   ENDIF
  ENDIF
 NEXT
 S_CONTA = S_CONTA+'-'
RETURN(S_CONTA)
Editado pela última vez por sygecom em 14 Jul 2011 12:30, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder