Problema con propiedad MAXLENGTH de control TEXTBOX

HMG en Español

Moderator: Rathinagiri

Post Reply
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Problema con propiedad MAXLENGTH de control TEXTBOX

Post by citro »

Estoy queriendo lograr pasar de un TEXTBOX a otro control, cuando el mismo se autocomplete, o sea, si en un TEXTBOX tengo definido el MAXLENGTH como 7, al llegar al 7mo caracter pase al siguiente control, pongo un ejemplo más abajo.

Code: Select all

#include "hmg.ch"

/***/
function Main()

local DesCli

DesCli:=space(5)
cArti :=space(16)

DEFINE WINDOW frmNombObje ;
  AT 0,0 ;
  WIDTH 550 ;
  HEIGHT 400 ;
  TITLE 'Paso a otro control automáticamente' ;
  MAIN
  
  @ 35,15 LABEL lblDesCli ;
	      VALUE 'Desde' ;
		  WIDTH 50
			
  @ 35,75 TEXTBOX txtDesCli ;
		  VALUE DesCli ;
		  WIDTH 70 ;
		  TOOLTIP 'Ingrese el Cliente desde el cual desea que se emita el informe' ;
		  MAXLENGTH 7 		  ;
		  UPPERCASE ;
		  ON CHANGE if( PasaCtrl(),frmNombObje.txtArti.setfocus,Nil ) 
		  
  @ 65,15 LABEL lblArti ;
	      VALUE 'Artículo' ;
		  WIDTH 50
			
  @ 65,75 TEXTBOX txtArti ;
		  VALUE cArti ;
		  WIDTH 130 ;
		  TOOLTIP 'Ingrese el Artículo desde el cual desea que se emita el informe' ;
		  MAXLENGTH 17 		  ;
		  UPPERCASE 

  @ 230,340 COMBOBOX cbo_Orden1 ;
			WIDTH 100 ;
			ITEMS { "Cliente","Saldo","Descripción" } ;
			VALUE 1 
  		
  DEFINE BUTTON btnAcepta
	ROW	300
	COL	10
	CAPTION	'Aceptar'
	ACTION	Procesar()
	WIDTH	100
  END BUTTON
  
  DEFINE BUTTON btnSalir
	ROW	300
	COL	120
	CAPTION	'Salir'
	ACTION	frmNombObje.release()
	WIDTH	100
  END BUTTON
  
END WINDOW

CENTER WINDOW frmNombObje
ACTIVATE WINDOW frmNombObje

Return Nil

/***/
static Function Procesar()

msgbox( "En desarrollo" )

retu Nil
  
/***/
static Function PasaCtrl()

local cForm,cCtrl

cForm:=thiswindow.name
cCtrl:=This.name

if len( getproperty( cForm,cCtrl,"value" ) ) = getproperty( cForm,cCtrl,"maxlength" )
  retu .t.
end if

retu .f.
La función PasaCtrl(), devuelve siempre falso, y cuando quise comprobar si tenia algún valor la propiedad maxlength del textbox, hice algo como esto dentro de la función PasaCtrl()

msgbox( valtype( getproperty( cForm,cCtrl,"maxlength" ) ) )

y me devolvió "U"

Es un bug de HMG o hay alguna otra forma de saber la longitud de un TEXTBOX previamente definido con MAXLENGTH.
Antonio
Sistemas
Resipol
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Problema con propiedad MAXLENGTH de control TEXTBOX

Post by Javier Tovar »

Checa este post... viewtopic.php?f=9&t=3590

Saludos
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Re: Problema con propiedad MAXLENGTH de control TEXTBOX

Post by citro »

Gracias Javier, es el ejemplo que necesitaba e incluso con más detalles porque veo que también contempla el caso de sobreescritura. Gracias.
Antonio
Sistemas
Resipol
Post Reply