LARGO MAXIMO CAMPO MEMO

Post Reply
User avatar
lafug
Posts: 185
Joined: Thu Nov 17, 2005 12:48 am
Location: Santiago, Chile

LARGO MAXIMO CAMPO MEMO

Post 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.
Luis Alfonso Fuentes Guerrero
FWH 11.06 xHarbour 1.2.1 BCC55 WorkShop
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: LARGO MAXIMO CAMPO MEMO

Post 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"), )

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: LARGO MAXIMO CAMPO MEMO

Post by antolin »

Editalo en un MGET con el que puedes limitar el número de caracteres.
Peaaaaaso de foro...
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: LARGO MAXIMO CAMPO MEMO

Post 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. )
 
João Santos - São Paulo - Brasil
Post Reply