Jump to content
Fivewin Brasil

Problema com variável numérica


rubensma

Recommended Posts

Boa-tarde

// definição do número do boletim e registro no arquivo
dbSelectArea( "num" )      // registro dos numeros dos boletins
num->( dbGoBottom() )      // capturar o ultimo boletim registrado
cNumbol := num->numero + 1 // proxino numero    <---------- aqui é numerérica
cSay1 := strzero(val(cNumbol),4)+str(year(date()),4)  // nro. sequencial dos boletins
num->( dbAppend() )
num->( rLock() )
num->data    := date()
num->hora    := time()
num->numero  := val(substr(cSay1,1,4))   // guarda o numero gerado
num->tipo    := STR(nRad,1)              // boletim de inclusao ou exclusão
num->status  := "L"                      // boletim gerado pelo programa
num->usuario := cUsuario                 // usuario que logou
num->( dbUnlock() )

// captura o numero inicial e final dos boletins para impressão
do case
   case w = 1
        boleini := str(cNumbol) // passar para caracter
        boleano := year(date())
   case w = 3
        bolefim := str(cNumbol)
        boleano := year(date())
endcase
   ? type(boleini),boleini,bolefim

Estou passando a variável "boleini" para caracter porém continua numérica e o type() diz "N". Elas são publicas

Alguém saberia dizer o que acontece

 

 

Link to comment
Share on other sites

O "W" é um FOR w = 1 to 3 NEXT que está sendo executado.

O que eu quero é passar uma variável que é numerica para caracter, mas o STR() não está fazendo isso, ela continua numérica

boleini := str(cNumbol) // passar para caracter  

cNumbol é numérica e boleini continua numérica na linha seguinte

Link to comment
Share on other sites

Boa noite,

Valeu o cValToChar() resolveu.

Toda vida usei o STR() para mudar de numero para caracter, mas nesse não deu, depois vou tentar descobrir o que houve.

Obrigado pelas respostas parceiros.

// captura o numero inicial e final dos boletins para impressão
do case
   case w = 1
        boleini := cValToChar(nNumbol) //str(nNumbol)
        boleano := year(date())
   case w = 3
        bolefim := cValToChar(nNumbol) //str(nNumbol)
        boleano := year(date()) 
endcase        

 

Link to comment
Share on other sites

 

Boa noite,

Valeu o cValToChar() resolveu.

Toda vida usei o STR() para mudar de numero para caracter, mas nesse não deu, depois vou tentar descobrir o que houve.

Obrigado pelas respostas parceiros.

// captura o numero inicial e final dos boletins para impressão
do case
   case w = 1
        boleini := cValToChar(nNumbol) //str(nNumbol)
        boleano := year(date())
   case w = 3
        bolefim := cValToChar(nNumbol) //str(nNumbol)
        boleano := year(date()) 
endcase        

 

Rubens

 

Não entendi abaixo:

cNumbol := num->numero + 1 // proxino numero    <---------- aqui é numerérica
cSay1 := strzero(val(cNumbol),4)+str(year(date()),4)  // nro. sequencial dos boletins , se acima é numérica , pq vc usa o VAL() pra transformar em número no STRZERO(), acho que aqui já deveria ocorrer erro de tipo.

Se estiver errado, me desculpe.

[]s,

 

 

Link to comment
Share on other sites

Sim Jorge, com certeza daria erro, também não sei acho que modifiquei no tópico, mas agora está assim e funcionando,

 

// definição do número do boletim e registro no arquivo
dbSelectArea( "num" )      // registro dos numeros dos boletins
num->( dbGoBottom() )      // capturar o ultimo boletim registrado
nNumbol := num->numero + 1 // proxino numero
cSay1 := strzero(nNumbol,4)+str(year(date()),4)  // nro. sequencial dos boletins
num->( dbAppend() )
num->( rLock() )
num->data    := date()
num->hora    := time()
num->numero  := val(substr(cSay1,1,4))   // guarda o numero gerado
num->tipo    := STR(nRad,1)              // boletim de inclusao ou exclusão
num->status  := "L"                      // boletim gerado pelo programa
num->usuario := cUsuario                 // usuario que logou
num->( dbUnlock() )

// captura o numero inicial e final dos boletins para impressão
do case
   case w = 1
        boleini := cValToChar(nNumbol) //strzero(nNumbol,4)
        boleano := year(date())
   case w = 3
        bolefim := cValToChar(nNumbol) //strzero(nNumbol,4)
        boleano := year(date())
endcase        
 

Bem observado, tá ligado heim

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...