COMBOBOX - VALOR INICIAL

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 494
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 49 times
Been thanked: 71 times

COMBOBOX - VALOR INICIAL

Post by SALINETAS24 »

Hola a todos,

Una curiosidad que me lleva por un mal querer. ;)

Adjunto un ".zip" que reproduce un "extraño" resultado.
Cuando iniciamos el programa el campo se muestra vacio " " , no hay nada seleccionado.
Cuando se selecciona un valor se muestra correctamente.
Pero como podemos inicializar el valor a vacio " ". :?:

Ya no es posible, siempre tiene un valor. :|

Muchas gracias por la atención prestada...
Attachments
COMBO_6.rar
(1.21 MiB) Downloaded 21 times
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:

JALMAG
Posts: 226
Joined: Sun Jan 10, 2010 7:05 pm
DBs Used: DBF
Location: España - Spain
Has thanked: 2 times
Been thanked: 4 times

Post by JALMAG »

Hola, no entiendo lo que deseas, que siempre muestre vacío según dices textualmente: "Pero como podemos inicializar el valor a vacío " ". :?" simplemente lo dejes como está ahora bien si lo que deseas es que te muestre el primer valor quita la propiedad VALUE
Si lo que quieres es que se posicione en el hipotético valor guardado VALUE deberá obtener la posición en el archivo del valor guardado.

User avatar
SALINETAS24
Posts: 494
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 49 times
Been thanked: 71 times

Post by SALINETAS24 »

JALMAG wrote:
Tue Jan 05, 2021 5:39 pm
Hola, no entiendo lo que deseas, que siempre muestre vacío según dices textualmente: "Pero como podemos inicializar el valor a vacío " ". :?" simplemente lo dejes como está ahora bien si lo que deseas es que te muestre el primer valor quita la propiedad VALUE
Si lo que quieres es que se posicione en el hipotético valor guardado VALUE deberá obtener la posición en el archivo del valor guardado.
Hola JALMAG,

Es que no se como explicarlo, Imaginate un mantenimiento de una DBF de clientes, tienes en la pantalla un grid y vas pasando por los registros de una DBF y a la vez muestras los campos para poder modificarlos.., si uno de ellos es un COMBOBOX, mientras este en blanco se mostrará en blanco, pero si lee alguno con valor, los que ya no tienen valor asumirán este último cuando vuelvas sobre ellos.

Un tonteria, que se arregla poniendo un registro "1 - SINDEFINIR", pero queria ver si era posible inicializarlo tal y como se muestra al principio.

Gracias por constestar.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:

franco
Posts: 526
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Been thanked: 27 times

Post by franco »

I use a the same idea for returning information from a combo or list box. So if you want to return nothing I have a blank record in table.
I tried it in yours.
Just add a blank record then .
CHANGE MENUITEM 'Inicializa' ACTION gt()
ADD
function gt
go top
Form_1.Combo_1.Value := recno()
return
All The Best,
Franco
Canada

JALMAG
Posts: 226
Joined: Sun Jan 10, 2010 7:05 pm
DBs Used: DBF
Location: España - Spain
Has thanked: 2 times
Been thanked: 4 times

Post by JALMAG »

Hola compañero, puedes poner el primer campo de la tabla como campo vacío en la descripción o en su código según sea el campo a visualizar.
Igualmente lo que dice Franco está igualmente bien, es lo mismo de otra forma.
Lamentablemente no hay otra forma a no ser que en vez de leer la tabla directamente en el combo hagas un array de la tabla y el combo muestre el array, en este caso si no está dirigido a un elemento del array creo que te lo mostrará en blanco.
Saludos

edk
Posts: 631
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland
Has thanked: 150 times
Been thanked: 556 times

Post by edk »

SALINETAS24 wrote:
Tue Jan 05, 2021 4:54 pm
Hola a todos,

Una curiosidad que me lleva por un mal querer. ;)

Adjunto un ".zip" que reproduce un "extraño" resultado.
Cuando iniciamos el programa el campo se muestra vacio " " , no hay nada seleccionado.
Cuando se selecciona un valor se muestra correctamente.
Pero como podemos inicializar el valor a vacio " ". :?:

Ya no es posible, siempre tiene un valor. :|

Muchas gracias por la atención prestada...
Aquí está mi sugerencia:

Code: Select all

#Include "hmg.ch"
#include "common.ch"

* When ITEMSOURCE property is set to a fieldname, 'Value' property 
* uses the physical record number.
* If you set the VALUESOURCE property to a fieldname, its containt is
* returned instead the physical record number.

Function Main() 		

	DEFINE WINDOW Form_1			;
		AT 0,0				;
		WIDTH 365			;  
		HEIGHT 120			;
		TITLE "Exemplos ComboBox New"	;		
		MAIN				;      
		NOMAXIMIZE			;
		NOSIZE				;
		ON INIT OpenTables()		;
		ON RELEASE CloseTables()

		DEFINE MAIN MENU
			DEFINE POPUP '&Test'
				MENUITEM 'Get Value' ACTION MsgInfo( Form_1.Combo_1.Value ) 
				MENUITEM 'Set Value' ACTION Form_1.Combo_1.Value := 2
				MENUITEM 'Refresh'   ACTION Form_1.Combo_1.Refresh
				MENUITEM 'Inicializa' ACTION ComboSetCursel ( Form_1.Combo_1.Handle , 0 )
			END POPUP
		END MENU


		@010,010 COMBOBOX Combo_1		;
			ITEMSOURCE CIDADES->DESCRICAO	; 
			VALUE 0  ;
			WIDTH 200			;
			FONT "Arial" SIZE 9		;
			TOOLTIP "Combo Cidades" 	
			
	END WINDOW		

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return

Procedure Opentables()

	Use Cidades Alias Cidades New
	Index On Descricao To Cidades1

Return

Procedure CloseTables()

	Use

Return 
Nota adicional: esta solución no activa el evento OnChange :!:

franco
Posts: 526
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Been thanked: 27 times

Post by franco »

Edk,
Works perfect on menu item.
Still nice to have blank record to pick from drop down.
All The Best,
Franco
Canada

User avatar
SALINETAS24
Posts: 494
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 49 times
Been thanked: 71 times

Post by SALINETAS24 »

edk wrote:
Tue Jan 05, 2021 10:43 pm


Aquí está mi sugerencia:
.... /....

Magnifica sugerencia, es justo lo que buscaba. Buen regalo de Reyes, yo pongo la cervecita fresquita.
Un abrazo virtual
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:

Post Reply