PROCEDURE FormConf(poSource) PUBLIC goConfForm, goCtrlForm LOCAL lcTable LOCAL loSource goConfForm = NULL IF TYPE('poSource.cTable') = "C" lcTable = poSource.cTable ELSE lcTable = SUBSTR(poSource.NAME, 2) ENDIF lcTable = TRIM(lcTable) SELECT FieldName AS tmpFld1, User1 AS tmpFld2, * FROM DBStruct ; WHERE UPPER(DBName) = lcTable AND Visible AND !EMPTY(Control) ; INTO CURSOR cTmpCursor SELECT cTmpCursor USE DBF() IN 0 AGAIN ALIAS cDynaForm USE IN cTmpCursor SELECT cDynaForm ALTER TABLE cDynaForm DROP COLUMN FieldName ALTER TABLE cDynaForm RENAME COLUMN tmpFld1 TO FieldName ALTER TABLE cDynaForm DROP COLUMN User1 ALTER TABLE cDynaForm RENAME COLUMN tmpFld2 TO User1 INDEX ON FieldName TAG FieldName SELECT FieldName AS tmpFld1, User1 AS tmpFld2, * FROM DBStruct ; WHERE UPPER(DBName) = lcTable AND !Visible AND !EMPTY(Control) ; INTO CURSOR cTmpCursor SELECT cTmpCursor USE DBF() IN 0 AGAIN ALIAS cAvailCtrls USE IN cTmpCursor SELECT cAvailCtrls ALTER TABLE cAvailCtrls DROP COLUMN FieldName ALTER TABLE cAvailCtrls RENAME COLUMN tmpFld1 TO FieldName ALTER TABLE cAvailCtrls DROP COLUMN User1 ALTER TABLE cAvailCtrls RENAME COLUMN tmpFld2 TO User1 INDEX ON FieldName TAG FieldName DO FORM FLayout.SCX WITH lcTable goCtrlForm = _SCREEN.ACTIVEFORM loSource = poSource IF UPPER(loSource.NAME) = "WARTICLE" loSource = loSource.PageFrame1.PMain ENDIF goConfForm = NEWOBJECT("ConfForm", "", "", loSource, lcTable) poSource.RELEASE IF goConfForm.lInit goCtrlForm.combObject.REQUERY ENDIF goCtrlForm.REFRESH goConfForm.Show RETURN ENDPROC && FormConf()