rubensma Posted June 13, 2017 Report Share Posted June 13, 2017 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 registradocNumbol := 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2017 Report Share Posted June 13, 2017 Passe para private e inicialize-a com 0.00 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2017 Report Share Posted June 13, 2017 boleini := 0.00 cNumbol := ( num )->numero + 1 boleini := str(cNumbol) // passar para caracter Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 13, 2017 Author Report Share Posted June 13, 2017 Também não deu certo, o STR() não muda de numerica para caracter, ela continua sendo numérica Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2017 Report Share Posted June 13, 2017 ? ALLTRIM(STR( variavel ) ) Quote Link to comment Share on other sites More sharing options...
frkiko Posted June 13, 2017 Report Share Posted June 13, 2017 Verifique o conteúdo de W ? W Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 13, 2017 Author Report Share Posted June 13, 2017 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted June 13, 2017 Report Share Posted June 13, 2017 Veja a integridade do banco de dados num->( dbGoBottom() ) // capturar o ultimo boletim registrado DbSkip( -1 ) ? cNumbol Quote Link to comment Share on other sites More sharing options...
Theotokos Posted June 13, 2017 Report Share Posted June 13, 2017 Tente ValToPrg() ou cValToChar() Acho que umas dessa duas consegue... Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 14, 2017 Author Report Share Posted June 14, 2017 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 Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted June 21, 2017 Report Share Posted June 21, 2017 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, Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 21, 2017 Author Report Share Posted June 21, 2017 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.