PARAMETERS Carpeta as String, TablaCampos as String, TablaDigitacion as String
Public loErr AS Exception
Local loSuccess as Boolean, loTop as Integer
LOCAL loObjeto as String, loOrigenDatos as String, loControl as String, loPrefijo as String &&Prefijo del nombre del Control
LOCAL loTablaAbierta as String &&La tabla que se abrira para el combo
Try
SET MULTILOCKS ON
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaCampos IN 0
loSuccess = CURSORSETPROP("Buffering",5,TablaCampos)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaCampos + " con exito.",64,"Enlace a Datos")
SET ORDER TO Posicion
COPY TO Array loCamposFijos FIELDS nomcampo,etiqueta,tipcontrol,relacion,requerido FOR Aparece = .T.
EndIf
loSuccess = .F.
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaDigitacion IN 0
loSuccess = CURSORSETPROP("Buffering",5)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaDigitacion + " con exito.",64,"Enlace a Datos")
SELECT 2
loTop = 38
FOR I = 1 TO ALEN(loCamposFijos,1)
WAIT WINDOW "Creando los campos para la digitación." NoWait
AdicionControles(ThisForm, 'lbl' + ALLTRIM(loCamposFijos(I,1)), "Label", loTop, 5,;
FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, ALLTRIM(loCamposFijos(I,2)))
IF loCamposFijos(I,3) = "Normal"
IF TYPE(FIELD(ALLTRIM(loCamposFijos(I,1)))) = "L"
loControl = "CheckBox"
loPrefijo = "chk"
ELSE
IF FSIZE(ALLTRIM(loCamposFijos(I,1))) < 49
loControl = "TextBox"
loPrefijo = "txt"
ELSE
loControl = "EditBox"
loPrefijo = "edt"
EndIf
EndIf
ELSE
loControl = "ComboBox"
loPrefijo = "cmb"
EndIf
loObjeto = loPrefijo + ALLTRIM(loCamposFijos(I,1))
loOrigenDatos = '"' + TablaDigitacion + "." + ALLTRIM(loCamposFijos(I,1)) + '"'
AdicionControles(ThisForm, loObjeto, loControl, loTop, 99,;
FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, "")
ThisForm.&loObjeto..ControlSource = &loOrigenDatos
ThisForm.&loObjeto..Tag = IIF(loCamposFijos(I,5) = .F.,"N","S")
IF loControl = "ComboBox"
loTablaAbierta = ALLTRIM(loCamposFijos(I,4))
IF NOT USED(loTablaAbierta)
USE FULLPATH(CURDIR()) + "Globales\" + loTablaAbierta IN 0
EndIf
loOrigenDatos = loTablaAbierta + ".descripcio,codigo"
ThisForm.&loObjeto..ColumnWidths = "190,50"
ThisForm.&loObjeto..BoundColumn = 2
ThisForm.&loObjeto..ColumnCount = 2
ThisForm.&loObjeto..FirstElement = 1
ThisForm.&loObjeto..RowSourceType = 6
ThisForm.&loObjeto..RowSource = loOrigenDatos
EndIf
loTop = loTop + ThisForm.&loObjeto..Height + 5
Next
ThisForm.txtColor1.ControlSource = "Daniel.color"
EndIf
SELECT &TablaDigitacion
EstadoControles(ThisForm, .F.)
Desplazamiento (ThisForm, 92)
Catch To loErr
MESSAGEBOX(loErr.Message,48,"Error")
EndTry