Clipper On Line • Ver Tópico - Alinhar GET numérico à DIREITA

Alinhar GET numérico à DIREITA

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Mensagempor janio » 26 Out 2007 15:59

Pessoal,

Esse getsys.prg que estamos construindo não está levando em consideração o SET CONFIRM ON/OFF, ou seja, mesmo estando setado como SET CONFIRM OFF ele não está pulando pro próximo GET.

Eu particularmente gostaria que isso fosse controlado por esses SET's. Se SET CONFIRM estiver ON, será necessário <enter> pra prosseguir. Se SET CONFIRM estiver OFF, pula pro próximo get quando preenchido totalmente.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor clodoaldomonteiro » 26 Out 2007 22:54

Jânio!

O getsys que eu alterei foi o que o Daniel postou aqui nesse tópico, se voce quiser em mando para você, pois ele tá perfeito.

Ten também o getsys da GAS que é melhor e tem todas as pictures dos outros getsys.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar de usuário

clodoaldomonteiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 30 Dez 2006 12:17
Cidade/Estado: Teresina-PI
Curtiu: 110 vezes
Mens.Curtidas: 31 vezes

Mensagempor TerraSoftware » 27 Out 2007 07:22

Caros colegas.

Depois que este novo getsys estiver pronto, seria interessante coloca-lo na sessao de download deste forum, assim mais pessoas poderiam utilizar, visto que ele vai funcionar tanto para clipper como para (x)Harbour.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar de usuário

TerraSoftware
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 353
Data de registro: 28 Jul 2004 13:14
Cidade/Estado: Cianorte-PR
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor janio » 27 Out 2007 09:30

clodoaldomonteiro escreveu:Jânio!
O getsys que eu alterei foi o que o Daniel postou aqui nesse tópico, se voce quiser em mando para você, pois ele tá perfeito.


Se quero!??

manda! manda! manda! manda!

:% :% :% :% :% :% :%

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor asimoes » 27 Out 2007 22:28

Clodoaldo,
Blz.

Você poderia mandar o getsys.prg que você otimizou para o meu email.
asimoesluz@gmail.com

[]´s


[
quote="clodoaldomonteiro"]Jânio!

O getsys que eu alterei foi o que o Daniel postou aqui nesse tópico, se voce quiser em mando para você, pois ele tá perfeito.

Ten também o getsys da GAS que é melhor e tem todas as pictures dos outros getsys.[/quote]
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Mensagempor asimoes » 28 Out 2007 00:11

Alamino,

Fiz umas adaptações para o getcalc onde o usuário não precise digitar a virgula ou ponto decimal, por exemplo o valor 35,48 o getcalc que eu modifiquei já posiciona o 48 na casa decimal.

Estou disponibilizando para criticas e melhorias.


/***
* GetCalc.prg
*
* Calculator style input
*/

#include "Getexit.ch"
#include "Inkey.ch"
#include "Getcalc.ch"

PROCEDURE GetCalc( oGet )

// read the GET if the WHEN condition is satisfied
IF ( GetPreValidate(oGet) )
// activate the GET for reading
oGet:SetFocus()

// RS added this
// Start at last position
oGet:end()
// Just to here

DO WHILE ( oGet:exitState == GE_NOEXIT )
// check for initial typeout (no editable positions)
IF ( oGet:typeOut )
oGet:exitState := GE_ENTER
ENDIF

// apply keystrokes until exit
DO WHILE ( oGet:exitState == GE_NOEXIT )
GetCalcApplyKey(oGet, InKey(0))
ENDDO

// disallow exit if the VALID condition is not satisfied
IF ( !GetPostValidate(oGet) )
oGet:exitState := GE_NOEXIT
ENDIF
ENDDO
// de-activate the GET
oGet:KillFocus()
ENDIF

RETURN


/***
* GetCalcApplyKey()
* Apply a single Inkey() keystroke to a GET.
*
* NOTE: GET must have focus.
* Standard stuff. RS changed only BS and otherwise
*/

#define K_UNDO K_CTRL_U

proc GetCalcApplyKey(oGet, nKey)

local cKey
local bKeyBlock
local cTemp
local nTemp

// check for SET KEY first
IF (bKeyBlock := SetKey(nKey)) <> NIL
GetDoSetKey(bKeyBlock, oGet)
RETURN // NOTE
ENDIF

DO CASE
CASE nKey == K_UP
oGet:exitState := GE_UP

CASE nKey == K_SH_TAB
oGet:exitState := GE_UP

CASE nKey == K_DOWN
oGet:exitState := GE_DOWN

CASE nKey == K_TAB
oGet:exitState := GE_DOWN

CASE nKey == K_ENTER
oGet:exitState := GE_ENTER

CASE nKey == K_ESC
IF Set(_SET_ESCAPE)
oGet:undo()
oGet:exitState := GE_ESCAPE
ENDIF

CASE nKey == K_PGUP
oGet:exitState := GE_WRITE

CASE nKey == K_PGDN
oGet:exitState := GE_WRITE

CASE nKey == K_CTRL_HOME
oGet:exitState := GE_TOP

// both ^W and ^End terminate the READ (the default)
CASE nKey == K_CTRL_W
oGet:exitState := GE_WRITE

CASE nKey == K_UNDO
oGet:Undo()

CASE ( nKey = 32 ) // Barra de espaço para limpar o campo
IF oGet:type == "C"
cTemp := oGet:unTransform()
cTemp := ""
oGet:buffer := Transform(cTemp, oGet:picture)
ELSE
nTemp := oGet:unTransform()
nTemp := 0
oGet:buffer := Transform(nTemp, oGet:picture)
ENDIF
oGet:display()
oGet:SetFocus()
CASE nKey == K_BS .OR. nKey == K_DEL
oGet:delete()
IF oGet:type == "C"
cTemp := oGet:unTransform()
cTemp := " " + Substr(cTemp, 1, Len(cTemp) - 1)
oGet:buffer := Transform(cTemp, oGet:picture)
ELSE
nTemp := oGet:unTransform()
nLen:=LEN(LTRIM(STR(nTemp,30,2)))
cTemp := STR(nTemp,nLen,2)
cTemp := Substr(cTemp, 1, Len(cTemp)-1)
nTemp := VAL(cTemp) / 10
IF At(".", oGet:buffer) != 0
// There is a decimal point
//nTemp := nTemp / 10
ELSE
// No decimal point, division already taken place
// by deleting last character
ENDIF
oGet:buffer := Transform(nTemp, oGet:picture)
ENDIF
oGet:display()

OTHERWISE
IF (nKey >= Asc('0') .AND. nKey <= Asc('9')) .OR. ;
(nKey == Asc('.') .AND. ;
oGet:type == "C" .AND. At(".", oGet:buffer) == 0)

cKey := Chr(nKey)
IF oGet:type == "C"
cTemp := oGet:unTransform()
cTemp := SubStr(cTemp, 2) + " "
oGet:buffer := Transform(cTemp, oGet:picture)
ELSE
nTemp := oGet:unTransform()
nTemp := nTemp * 10
oGet:buffer := Transform(nTemp, oGet:picture)
ENDIF
// NOTE - important to use OverStrike here to set changed
// Alternative is to stuff key yourself. However, that does
// not set changed, therefore var is not updated.
oGet:overStrike(cKey)
oGet:end()
oGet:display()
ENDIF
ENDCASE

RETURN


alaminojunior escreveu:Desculpem a pequena demora, mas ta aí a danada ( a rotina e o header ), foi o Rick Spence quem escreveu.

/***
* GetCalc.prg
*
* Calculator style input
*/

#include "Getexit.ch"
#include "Inkey.ch"
#include "Getcalc.ch"

FUNCTION GetCalcTest

LOCAL nVar1 := 0,  ;
      nVar2 := 0,  ;
      cVar2 := Space(12), ;
      nVar3 := 0

LOCAL GetList := {}

  CLEAR SCREEN
  @ 10, 10 SAY "Enter nVar1" GET nVar1 CALC
  @ 11, 10 SAY "Enter nVar2" GET nVar2 CALC
  @ 12, 10 SAY "Enter cVar2" GET cVar2 CALC
  @ 13, 10 SAY "Enter nVar3" GET nVar3

  READ

RETURN NIL

proc GetCalc( oGet )

  // read the GET if the WHEN condition is satisfied
  IF ( GetPreValidate(oGet) )
    // activate the GET for reading
    oGet:SetFocus()

    // RS added this
    // Start at last position
    oGet:end()
    // Just to here

    DO WHILE ( oGet:exitState == GE_NOEXIT )
      // check for initial typeout (no editable positions)
      IF ( oGet:typeOut )
        oGet:exitState := GE_ENTER
      ENDIF

      // apply keystrokes until exit
      DO WHILE ( oGet:exitState == GE_NOEXIT )
        GetCalcApplyKey(oGet, InKey(0))
      ENDDO

      // disallow exit if the VALID condition is not satisfied
      IF ( !GetPostValidate(oGet) )
        oGet:exitState := GE_NOEXIT
      ENDIF
    ENDDO
    // de-activate the GET
    oGet:KillFocus()
  ENDIF

RETURN

/***
* GetCalcApplyKey()
* Apply a single Inkey() keystroke to a GET.
*
* NOTE: GET must have focus.
* Standard stuff. RS changed only BS and otherwise
*/

#define K_UNDO          K_CTRL_U

proc GetCalcApplyKey(oGet, nKey)

local cKey
local bKeyBlock
local cTemp
local nTemp

  // check for SET KEY first
  IF (bKeyBlock := SetKey(nKey)) <> NIL
    GetDoSetKey(bKeyBlock, oGet)
    RETURN                              // NOTE
  ENDIF

  DO CASE
    CASE nKey == K_UP
      oGet:exitState := GE_UP

    CASE nKey == K_SH_TAB
      oGet:exitState := GE_UP

    CASE nKey == K_DOWN
      oGet:exitState := GE_DOWN

    CASE nKey == K_TAB
      oGet:exitState := GE_DOWN

    CASE nKey == K_ENTER
      oGet:exitState := GE_ENTER

    CASE nKey == K_ESC
      IF Set(_SET_ESCAPE)
        oGet:undo()
        oGet:exitState := GE_ESCAPE
      ENDIF

    CASE nKey == K_PGUP
      oGet:exitState := GE_WRITE

    CASE nKey == K_PGDN
      oGet:exitState := GE_WRITE

    CASE nKey == K_CTRL_HOME
      oGet:exitState := GE_TOP

    // both ^W and ^End terminate the READ (the default)
    CASE nKey == K_CTRL_W
      oGet:exitState := GE_WRITE

    CASE nKey == K_UNDO
      oGet:Undo()

    CASE nKey == K_BS .OR. nKey == K_DEL
      oGet:delete()
      IF oGet:type == "C"
        cTemp := oGet:unTransform()
        cTemp := " " + Substr(cTemp, 1, Len(cTemp) - 1)
        oGet:buffer := Transform(cTemp, oGet:picture)
      ELSE
        nTemp := oGet:unTransform()
        IF At(".", oGet:buffer) != 0
          // There is a decimal point
          nTemp := nTemp / 10
        ELSE
          // No decimal point, division already taken place
          // by deleting last character
        ENDIF
        oGet:buffer := Transform(nTemp, oGet:picture)
      ENDIF
      oGet:display()

    OTHERWISE
      IF (nKey >= Asc('0') .AND. nKey <= Asc('9')) .OR. ;
          (nKey == Asc('.') .AND. ;
           oGet:type == "C" .AND. At(".", oGet:buffer) == 0)

        cKey := Chr(nKey)
        IF oGet:type == "C"
          cTemp := oGet:unTransform()
          cTemp := SubStr(cTemp, 2) + " "
          oGet:buffer := Transform(cTemp, oGet:picture)
        ELSE
          nTemp := oGet:unTransform()
          nTemp := nTemp * 10
          oGet:buffer := Transform(nTemp, oGet:picture)
        ENDIF
        // NOTE - important to use OverStrike here to set changed
        // Alternative is to stuff key yourself. However, that does
        // not set changed, therefore var is not updated.
        oGet:overStrike(cKey)
        oGet:end()
        oGet:display()
    ENDIF
  ENDCASE

RETURN


/***
* Getcalc.ch
*
* Definition of GET CALCULATOR command.
*/

#command @ <row>, <col> GET <var>                             ;
                        [<clauses,...>]                       ;
                        CALCULATOR                            ;
                        [<moreClauses,...>]                   ;
                                                              ;
      => @ <row>, <col> GET <var>                             ;
                        [<clauses>]                           ;
                        SEND reader := {|oGet|                ;
                                        GetCalc(oGet) }       ;
                        [<moreClauses>]
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Mensagempor janio » 29 Out 2007 08:35

Clodoaldo,

O seu getsys tá idêntico ao meu. E continua com o mesmo problema que relatei: Ele não tá pulando para o próximo get quando preenchido totalmente, isso em campos/variáveis NUMERICAS, pois em campos/variáveis CARACTERE tá sendo (como deve ser) obedecido o SET CONFIRM ON/OFF.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor clodoaldomonteiro » 29 Out 2007 10:47

Janio!

Se quiser eu mando por email para você, pois aqui tá funcionando muito bem.

Teve um problema, se usar valid no get de senha e eu só consegui corrigir no getsys da GAS que é melhor e pode muito bem ser usado com qualquer sistema clipper.
Posso mandar prá você também.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar de usuário

clodoaldomonteiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 30 Dez 2006 12:17
Cidade/Estado: Teresina-PI
Curtiu: 110 vezes
Mens.Curtidas: 31 vezes

Mensagempor janio » 02 Nov 2007 17:21

Clodoaldo,

O problema a que estou me referindo ocorre somente com variáveis NUMÉRICAS sem CASAS DECIMAIS.

Quando há casas decimais ele tá pulando para o próximo get quando preenchido totalmente, mas quando não tem casas decimais não pula.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor clodoaldomonteiro » 02 Nov 2007 22:34

Janio!

A deficiência do getsys está nessa parte do código:

IF ( oGet:typeOut )
   IF ( SET( _SET_BELL ) )
      ?? CHR(7)
   ENDIF

   IF ( !SET( _SET_CONFIRM ) )
      oGet:exitState := GE_ENTER
   ENDIF
ENDIF


... só num tô conseguindo fazer com que os gets numéricos sem casa decimal entrem aqui.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar de usuário

clodoaldomonteiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 30 Dez 2006 12:17
Cidade/Estado: Teresina-PI
Curtiu: 110 vezes
Mens.Curtidas: 31 vezes

Mensagempor janio » 05 Nov 2007 14:32

Clodoaldo,

Fiz uma modificação na função GetApplyKey e FUNCIONOU como eu queria, veja:

   ...
   ...
   OTHERWISE

      IF ( nKey >= 32 .AND. nKey <= 255 )

         cKey := CHR( nKey )

         IF !EMPTY(oGet:picture)
           IF AT("@M",oGet:picture)>0
             cKey := LOWER( cKey )
           ENDIF
         ENDIF

         IF ( oGet:type == "N" .AND. ( cKey == "." .OR. cKey == "," ) )
            oGet:toDecPos()
         ELSE

            IF ( oGet:type != "N" )

               IF ( SET( _SET_INSERT ) )
                  oGet:insert( cKey )
               ELSE
                  oGet:overstrike( cKey )
               ENDIF

            ELSE

               IF !Empty(cKey)

                  IF ( nKey < 48 .OR. nKey > 57 )
                     *
                     IF nKey <> 45
                        *
                        RETURN
                        *
                      ELSEIF Val( oGet:Buffer ) <> 0
                        *
                        RETURN
                        *
                     ENDIF
                     *
                   ENDIF
                  *
                  IF Len(oGet:buffer) > oGet:DecPos .And. oGet:pos < oGet:DecPos

                     valor  := oGet:buffer

                     If Len(Ltrim(valor)) < Len(original)

                        valor  := Substr(valor,2,oGet:Pos-1)
                        valor  := If( Val(valor) == 0 .AND. !("-"$valor),Substr(valor,1,Len(valor)-1)+' ',valor)
                        valor  += ' ' + Substr(oGet:buffer,oGet:DecPos,Len(oGet:buffer))

                     Endif

                     If !Len(valor) > Len(original)

                        oGet:buffer := valor

                     Endif

                     oGet:display()

                     IF Empty(SubStr(oGet:Buffer,oGet:pos,1))
                        oGet:overstrike(cKey)
                        oGet:left()
                     Else
                        ? Chr(7)
                     Endif

                     MostraValor(oGet)

                  ELSE

                     IF ( oGet:DecPos > Len( oGet:buffer )  )

                        valor  := oGet:buffer

                        If Len(Ltrim(valor)) < Len(original)
                           valor  := Substr(valor,2,oGet:Pos)
                           valor  := If(Val(valor) = 0,Substr(valor,1,Len(valor)-1)+' ',valor)
                           valor  += ' '
                        Endif

                        If !Len(valor) > Len(original)
                           oGet:buffer := valor
                        Endif

                        oGet:display()

                        oGet:overstrike(cKey)

                        MostraValor(oGet)

                        oGet:Pos := Len( oGet:buffer ) + 1
                        oGet:End()
                       
                        ////////////////////////////////////////////////////
                        ////////////////////////////////////////////////////
                        // janio
                        // ir para o prox. GET qndo preenchdo totalmente
                        If ( !SET( _SET_CONFIRM ) )
                           If Len(Ltrim(valor)) = Len(original)
                              Keyboard Chr(13)
                           Endif
                        Endif

                        ////////////////////////////////////////////////////
                        ////////////////////////////////////////////////////

                     ELSE

                        oGet:overstrike(cKey)

                     ENDIF

                  ENDIF
                 
               ENDIF

            ENDIF

            IF ( oGet:typeOut )
               IF ( SET( _SET_BELL ) )
                  ?? CHR(7)
               ENDIF

               IF ( !SET( _SET_CONFIRM ) )
                  oGet:exitState := GE_ENTER
               ENDIF           
            ENDIF

         ENDIF

      ENDIF

   ENDCASE
Editado pela última vez por janio em 05 Nov 2007 15:49, num total de 1 vezes
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor janio » 05 Nov 2007 15:00

Só falta agora incluirmos um TEMPORIZADOR para get's, não acham??

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor fladimir » 27 Jan 2008 00:15

Olá Colegas... Eu peguei o GetSys inicial do tópico e compilei e linkei junto com meu software rodou blz qto a relação do alinhamento só q ta esquisito numa questão exemplo:

Proc Main
cls
x:=0
@ 15,10 say "Teste...:" get x Pict "@E 99.99%"
read


Meu sistema tem muitas e muitas linhas com a máscara "@E 99.99%"

E se vcs compilarem e linkarem com o GetSys postado no iníco do tópico, digitem por exemplo 25 (como se fosse 25%) vcs verão que ao pressionar ENTER vai ficar 5,00%. Será que tenho que fazer mais alguma coisa....

Outra coisa qdo vc começa a digitar ele fica 0,000 (3 casas decimais) mas ao pressionar ENTER retorna para conforme a máscara 2 casas decimais, mas independente do valor inteiro ele corta o primeiro digito...

Só que se vc digitar 49,58% fica 49,58%. Aparentemente o problema ocorre qdo NÃO é utilizada a vírgula. Tô perdido.... não sei por onde começar.

Testei tirando da máscara o Símbolo de Percentual deixando a máscara assim: "@E 99.99" aí ele funciona, mas tenho muitas e muitas linhas de código com essa máscara sem contar q tenho outros prgs para outros tipos de segmentos do mercado então acredito q a melhor solução seria corrigir... ou implementar... no GETSYS algo q pudesse corrigir tal questão, mas como tentei e não consegui, resolvi apelar para os colegas que já tem mais horas de Vôo no GETSYS.

Grato

Fladimir


:)Pos
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Mensagempor Maligno » 27 Jan 2008 05:53

fladimir escreveu:[Testei tirando da máscara o Símbolo de Percentual deixando a máscara assim: "@E 99.99" aí ele funciona, mas tenho muitas e muitas linhas de código com essa máscara

Parece certo pensar, então, que o problema está nesse símbolo %. Eu também tenho muita utilidade pra ele, em vários programas. Coloco cada % em um "SAY" separado. A solução realmente é alterar o GETSYS para quando for encontrado um "@E" com % já contar quantos dígitos o número tem e imprimir o % automaticamente no final do número e, claro, em seguida eliminar o % da máscara.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Mensagempor fladimir » 28 Jan 2008 00:12

Realmente Maligno pelo que analisei do simples exemplo que coloquei realmente o mais prático e vamos dizer assim o "X" da questão mora no GETSYS.PRG, só que dei uma olhada mas acredito que vou levar muito, mas muito tempo para resolver tal problema e como aki no fórum já tem alguns colegas EXPERT´s no GETSYS, pensei em recorrer aos mesmos....

Se algum desses colegas se canditar a resolver este problema se acharem que é algo que não venha tomar muito tempo dos colegas, agradecemos.


Grato

Fladimir

:)Pos
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Anterior Próximo



Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro