Asignar Value a control label
Posted: Thu Jul 16, 2015 6:10 pm
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:
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.
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
Mucho agradeceré su ayuda.
Reciban mis cordiales saludos.