Page 1 of 1

LARGO MAXIMO CAMPO MEMO

Posted: Fri Nov 20, 2015 5:18 pm
by lafug
HOLA A TODOS!

Tengo un campo MEMO para la glosa de una factura, donde el larga máximo es de 500, por la dimensión física de la factura, el problema es que al ingresar información en el MEMO este acepta más de los 500 caracteres. Entonces como puedo limitar el largo máximo ? he buscado la forma sin éxito.

Gracias de antemano por sus respuestas.

Re: LARGO MAXIMO CAMPO MEMO

Posted: Fri Nov 20, 2015 5:50 pm
by cnavarro
lafug wrote:HOLA A TODOS!

Tengo un campo MEMO para la glosa de una factura, donde el larga máximo es de 500, por la dimensión física de la factura, el problema es que al ingresar información en el MEMO este acepta más de los 500 caracteres. Entonces como puedo limitar el largo máximo ? he buscado la forma sin éxito.

Gracias de antemano por sus respuestas.
Luis Alfonso

Más o menos creo que lo podrías hacer asi ( ojo, que no lo he probado )

Code: Select all


   oMemo:bChange   := { | o | if( Len( o:GetText() ) > 500, MsgInfo("longitud maxima excedida","Atencion"), )

 

Re: LARGO MAXIMO CAMPO MEMO

Posted: Mon Nov 23, 2015 3:36 pm
by antolin
Editalo en un MGET con el que puedes limitar el número de caracteres.

Re: LARGO MAXIMO CAMPO MEMO

Posted: Fri Nov 27, 2015 1:04 pm
by karinha

Code: Select all

   REDEFINE GET oGet[17] VAR wTEXTO MULTILINE ID 217 OF oDlg  ;
            COLOR CLR_BLUE, CLR_WHITE UPDATE FONT oFont      ;
            WHEN( lLigaCombo )                                ;
            ON CHANGE( SB_LimitText( oGet[17], oSay, oTransmite )


FUNCTION SB_LimitText( oGet, oSay, oTransmite )

   ///////////////////////////////////////////////////////////////////////////
   // Autor..........: Peguei no Forum FiveWin Brasil                       //
   // Modificaçoes...: Ale SB - Soft Camus                                  //
   // Descricao......: Restringe o Tamanho de um Texto.                     //
   // Parametros ==>                                                        //
   //  - oGet  : oBjeto Get.                                                //
   //  - nSize : Tamanho que deve ter o Texto.                              //
   // Dependencias ==>                                                      //
   // Retorno ==> nil                                                       //
   ///////////////////////////////////////////////////////////////////////////

   LOCAL nTam, nSize
  
   DEFAULT nSize := 999  // maximo e 1000 caracteres

   nTam := LEN( ALLTRIM( oGet:cText ) )

   IF nTam > nSize

      MsgInfo( "A Mensagem da Carta já Alcançou o Tamanho Limite de " + ;
               "1000 Caracteres Permitidos Pela Sefaz!",                ;
               "..:: Atenção ::.." )

      oGet:cText := Substr(oGet:cText, 1, nTam-1)

      RETURN( .F. )

   ENDIF

   // Mostra a qtde de caracteres digitados na carta de correcao
   oSay:VarPut( Strzero( nTam, 3, 0 ) )
   oSay:Refresh()

   IF nTam <= 14 // caracteres

      lLigaBotao := .F.

      // Botao da Transmissao
      oTransmite:Disable()
      oTransmite:Refresh()

   ELSE

      lLigaBotao := .T.

      // Botao da Transmissao
      oTransmite:Enable()
      oTransmite:Refresh()

   ENDIF

RETURN( .T. )