FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour LARGO MAXIMO CAMPO MEMO
Posts: 185
Joined: Thu Nov 17, 2005 12:48 AM
LARGO MAXIMO CAMPO MEMO
Posted: Fri Nov 20, 2015 05:18 PM

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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: LARGO MAXIMO CAMPO MEMO
Posted: Fri Nov 20, 2015 05:50 PM
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 (fw): Select all Collapse
   oMemo:bChange   := { | o | if( Len( o:GetText() ) > 500, MsgInfo("longitud maxima excedida","Atencion"), )
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Re: LARGO MAXIMO CAMPO MEMO
Posted: Mon Nov 23, 2015 03:36 PM

Editalo en un MGET con el que puedes limitar el número de caracteres.

Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: LARGO MAXIMO CAMPO MEMO
Posted: Fri Nov 27, 2015 01:04 PM
Code (fw): Select all Collapse
   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 - Phone: +55(11)95150-7341

Continue the discussion