Ok, algo asi, lo he copiado de un ejemplo que tengo, sin comprobar su funcionamiento, pero por lo menos ves lo que quiero decir
Faltaría parametrizar tambien las columnas, pero tal y como están definidas en esta ejemplo, no creo que te sea muy difícil
Static nPorHeight := 1 // Estas son para distintas resoluciones quizás
Static nPorWidth := 1
Function Main()
DlgClient()
Return nil
Function DlgClient( )
local oDlg
local aCtl[ 25 ]
local oFont
local oFontBold
local lRet := .F.
local nFil := 10
local nClrT := CLR_BLUE
local nClrTG := CLR_BLUE
local nClrB := CLR_HGRAY //WHITE
local oChk
local cId := Space( 9 )
local cNombre := Space( 20 )
local cApells := Space( 20 )
local dDateI := Date() //Ctod( "9999/99/99" )
local nF1 := 91 * nPorHeight
local nC1 := 300
local nF2 := 480 * nPorHeight
local nC2 := 720
local aRet := {}
local nOld := Select()
local n := 0
local nInc := 14 * nPorHeight
cId := PadR( aDats[ 1 ], 9 )
cNombre := PadR( aDats[ 2 ], 15 )
cApells := PadR( aDats[ 3 ], 30 )
DEFINE FONT oFont NAME "Calibri" SIZE 0, -14 * nPorHeight
DEFINE FONT oFontBold NAME "Calibri" SIZE 0, -18 * nPorHeight BOLD
DEFINE DIALOG oDlg FROM nF1, nC1 TO nF2, nC2 PIXEL COLORS nClrT, nClrB ;
TITLE "Add/Edit Client" // FONT oFontBold //;
oDlg:lHelpIcon := .F.
oDlg:nOpacity := 240 // 0 .. 255 //oDlg:nSeeThroClr := <nColor>
@ nFil, 5 SAY aCtl[ 1 ] PROMPT "Codigo:" OF oDlg ;
FONT oFont UPDATE ;
COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL
@ nFil, 45 GET aCtl[ 2 ] VAR cId OF oDlg ;
FONT oFont UPDATE PICTURE "@!" ;
COLORS nClrT, nClrB SIZE 56 * nPorWidth, 11 * nPorHeight PIXEL
nFil += nInc
@ nFil, 5 SAY aCtl[ 5 ] PROMPT "Nombre:" OF oDlg ;
FONT oFont UPDATE ;
COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL
@ nFil, 45 GET aCtl[ 6 ] VAR cNombre OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS nClrT, nClrB SIZE 100 * nPorWidth, 11 * nPorHeight PIXEL
nFil += nInc
@ nFil, 5 SAY aCtl[ 11 ] PROMPT "Apellidos:" OF oDlg ;
FONT oFont UPDATE ;
COLORS nClrTG, nClrB SIZE 70 * nPorWidth, 11 * nPorHeight PIXEL
@ nFil, 45 GET aCtl[ 12 ] VAR cApells OF oDlg ;
FONT oFont UPDATE PICTURE "@K" ;
COLORS nClrT, nClrB SIZE 156 * nPorWidth, 11 * nPorHeight PIXEL
nFil += nInc
@ nFil, 83 BUTTON aCtl[ 23 ] PROMPT "&Aceptar" OF oDlg ; //164
FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION ( lRet := .T., oDlg:End() )
@ nFil, 145 BUTTON aCtl[ 24 ] PROMPT "&Cancelar" OF oDlg ;
FONT oFont SIZE 53 * nPorWidth, 14 * nPorHeight PIXEL ACTION oDlg:End()
ACTIVATE DIALOG oDlg VALID ( .T. ) //NOWAIT
oFont:End()
oFontBold:End()
Return nil
//----------------------------------------------------------------------------//