GRID - CAMBIAR COLOR

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 230
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 5 times
Been thanked: 6 times

GRID - CAMBIAR COLOR

Post by SALINETAS24 » Mon Jul 09, 2018 10:09 pm

Hola a todos, estoy con el ejemplo GRID.38, le he hecho unas modificaciones para que cambien del color toda la fila dependiendo de un valor del fichero, en este caso si esta casado o soltero, pero no lo consigo.
He utilizado esta linea
fColor := { || IF(Test->Married, RED, BLUE ) }
pero al parecer no lee el registro, he probado con otros ficheros y otros valores y el resultado es el mismo.
Me pueden indicar como puedo cambiar de color toda la linea de un GRID dependiendo de un valor del fichero que muestra el grid.
Muchas Gracias.

Code: Select all

/*
* HMG Data-Bound Grid Demo
* (c) 2010 Roberto Lopez
*/

#include "hmg.ch"

Function Main

Local aValue := { Nil , Nil }

	* Grid Column Controls Definitions

	aCtrl_1 := {'TEXTBOX','NUMERIC','9999999999'}
	aCtrl_2 := {'TEXTBOX','CHARACTER'}
	aCtrl_3 := {'TEXTBOX','CHARACTER'}
	aCtrl_4 := {'DATEPICKER','UPDOWN'}
	aCtrl_5 := { 'CHECKBOX' , 'Yes' , 'No' }
	aCtrl_6 := { 'EDITBOX' }

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 800 ;
		HEIGHT 510 ;
		TITLE 'LockColumns Property Test' ;
		MAIN 

		DEFINE MAIN MENU 
			POPUP 'File'
				ITEM 'Append (Alt+A)'				ACTION Form_1.Grid_1.Append
				ITEM 'Set RecNo'				ACTION Form_1.Grid_1.RecNo := val(InputBox('','')) 
				ITEM 'Get RecNo'				ACTION MsgInfo( Str(Form_1.Grid_1.RecNo) )
				ITEM 'Delete (Alt+D)'				ACTION Form_1.Grid_1.Delete
				ITEM 'Recall (Alt+R)'				ACTION Form_1.Grid_1.Recall
				ITEM 'Get Value'				ACTION ( aValue := Form_1.Grid_1.Value , MsgInfo( Str( aValue [1] ) + ' , ' + Str( aValue [2] ) ) )
				ITEM 'Set Value'				ACTION ( aValue [ 1 ] :=  val(InputBox('New Row','Selected Cell (Value)')) , aValue [ 2 ] :=  val(InputBox('New Col','Selected Cell (Value)')) , Form_1.Grid_1.Value := { aValue [ 1 ] , aValue [ 2 ] } )
				ITEM 'Save Pending Changes (Alt+S)'		ACTION Form_1.Grid_1.Save
				ITEM 'Clear Changes Buffer (Undo) (ALt+U)'	ACTION Form_1.Grid_1.ClearBuffer
			END POPUP
		END MENU

		USE TEST // SHARED

		INDEX ON CODE TO CODE

		GO TOP
		
		fColor      := { || IF(Test->Married, RED, BLUE ) }
		
		@ 10,10 GRID Grid_1 ;
			WIDTH 770 ;
			HEIGHT 440 ;
			HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5','Column 6'} ;
			WIDTHS {140,140,140,100,100,100};
			EDIT ;
			VALUE { 1 , 1 } ;
			COLUMNCONTROLS { aCtrl_1 , aCtrl_2 , aCtrl_3 , aCtrl_4 , aCtrl_5 , aCtrl_6 } ;
			ROWSOURCE "Test" ;
			COLUMNFIELDS { 'Code' ,  'First' , 'Last' ,  'Birth' , 'Married' , 'Bio' } ;
			DYNAMICFORECOLOR {fColor, fColor, fColor, fColor, fColor, fColor};
			ALLOWAPPEND ;
			ALLOWDELETE ;
			LOCKCOLUMNS 1

		
	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return



User avatar
SALINETAS24
Posts: 230
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 5 times
Been thanked: 6 times

Post by SALINETAS24 » Mon Jul 09, 2018 10:33 pm

Solucionado

Code: Select all

fColor      := { || IF(GetProperty( "Win_1", "Grid_1", "CellEx", This.CellRowIndex, 6 )="D",BLACK,RED)  }
En lugar de "D" hay que poner .T., pero eso es lo de menos.

User avatar
andyglezl
Posts: 1058
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 24 times
Been thanked: 48 times
Contact:

Post by andyglezl » Wed Jul 11, 2018 4:17 am

Andrés González López
Desde Guadalajara, Jalisco. México.

Post Reply