Asignar Value a control label

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
edufloriv
Posts: 247
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Asignar Value a control label

Post by edufloriv »

Saludos amigos,

Se me ha encargado realizar un módulo para cubicar el almacén de la empresa. Se me pide que represente cada espacio de almacenamiento del almacén en pantalla asi que escribí esto:

Code: Select all

#include <hmg.ch>

FUNCTION MAIN()

PUBLIC nScrW  := GetDesktopWidth()
PUBLIC nScrH  := GetDesktopHeight() - 30
PUBLIC nSpcW  := INT( nScrW / 10 )
PUBLIC nSpcH  := INT( nScrH / 7 )
PUBLIC nSpcX  := INT( nSpcH / 4 )
PUBLIC aSpcs  := {'Spc01','Spc02','Spc03','Spc04'}
PUBLIC aCoos  := { {10,10},{10+nSpcH,10},{10+(nSpcH*2),10},{10+(nSpcH*3),10} }
PUBLIC aUbis  := {'D1A1','D1A2','D1B1','D1B2'}

   DEFINE WINDOW Win_Main ;
      AT 0 , 0 ;
      WIDTH nScrW HEIGHT nScrH ;
      TITLE "Almacenes" ;
      FONT "Arial" SIZE 9 ;
      MAIN

      FOR nSpcs = 1 TO LEN(aSpcs)

         cSpE := aSpcs[nSpcs]+'E'
         cSpU := aSpcs[nSpcs]+'U'
         cSpD := aSpcs[nSpcs]+'D'
         cSpC := aSpcs[nSpcs]+'C'

         @aCoos[nSpcs,1],aCoos[nSpcs,2] LABEL &cSpE ;
         WIDTH nSpcW ;
         HEIGHT nSpcX ;
         VALUE aUbis[nSpcs] ;
         ACTION RackClick() ;
         FONTCOLOR {255,255,000} ;
         BACKCOLOR {105,105,105} ;
         CENTERALIGN

         @aCoos[nSpcs,1]+nSpcX,aCoos[nSpcs,2] LABEL &cSpU ;
         WIDTH nSpcW ;
         HEIGHT nSpcX ;
         FONTCOLOR {255,255,000} ;
         BACKCOLOR {255,000,000} ;
         CENTERALIGN

         @aCoos[nSpcs,1]+(nSpcX*2),aCoos[nSpcs,2] LABEL &cSpD ;
         WIDTH nSpcW ;
         HEIGHT nSpcX ;
         FONTCOLOR {255,255,255} ;
         BACKCOLOR {038,139,034} ;
         CENTERALIGN

         @aCoos[nSpcs,1]+(nSpcX*3),aCoos[nSpcs,2] LABEL &cSpC ;
         WIDTH nSpcW ;
         HEIGHT nSpcX ;
         FONTCOLOR {255,255,000} ;
         BACKCOLOR {105,105,105} ;
         CENTERALIGN

      NEXT

   END WINDOW

   ACTIVATE WINDOW Win_Main

RETURN


*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------

PROC AlmacenIniciar()


RETURN


*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------

PROC RackClick()

LOCAL cEspacio := This.Value
LOCAL nEspacio := ASCAN( aUbis , cEspacio )
LOCAL cControl := aSpcs[nEspacio]+'U'

   MsgInfo( 'Espacio: '+cEspacio+chr(13)+'Control: '+cControl )
   cLabel := 'Win_Main.'+cControl+'.Value'
   &cLabel := '25m3'

RETURN
La idea es no tener que dibujar cada espacio de almacenamiento en el código fuente, como pueden ver metí el diseño de un espacio en un buclé. Después de diseñar todo el almacén como asigno los valores a cada control label sabiendo solo el nombre del control.

Mucho agradeceré su ayuda.


Reciban mis cordiales saludos.

Eduardo Flores Rivas


LIMA - PERU
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Asignar Value a control label

Post by andyglezl »

Hola Eduardo

Prueba así:

Code: Select all

PROC RackClick()
	LOCAL cEspacio := This.Value
	LOCAL nEspacio := ASCAN( aUbis , cEspacio )
	LOCAL cControl := aSpcs[nEspacio]+'U'
	
	MsgInfo( 'Espacio: '+cEspacio+chr(13)+'Control: '+cControl )
	*cLabel := 'Win_Main.'+cControl+'.Value'
	*&cLabel := '25m3'
	Win_Main.&cControl..Value := '25m3'		//    <=============
RETURN
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
edufloriv
Posts: 247
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Re: Asignar Value a control label

Post by edufloriv »

Andrés,

Amigo, mil gracias, funcionó !!

Un cordial saludo, gracias por tu tiempo.

Eduardo Flores Rivas


LIMA - PERU
Post Reply