FoxPro/Visual FoxPro - ayuda con ejemplo createobject()

 
Vista:

ayuda con ejemplo createobject()

Publicado por manuel mazatl (10 intervenciones) el 21/02/2016 00:06:57
Estoy novateando con los objetos y me surge una duda en el siguiente ejemplo:

1
2
3
4
5
oPersona2 = CREATEOBJECT( "persona" )
oPersona2.cNombre = "Pedro"
oPersona2.cApellidos = "Jiménez Nieto "
oPersona2.dFechaNacimiento = {04-12-69}
oPersona2.cEstadoCivil = "Casado"


Hasta aquí se han definido las propiedades del objeto pero como hago para pasarle los datos de las (Personas) desde una tabla.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

ayuda con ejemplo createobject()

Publicado por Fidel José (657 intervenciones) el 21/02/2016 15:40:44
No sé que es lo que necesitas o quieres hacer.
Sin definir un entorno, oPersona2 = CREATEOBJECT( "persona" ) solamente te dará un error (la definición de clase "persona" no existe).
Para crear un objeto sin que exista una definición de clase:
oPersona = newobject("EMPTY")
Addproperty(oPersona,"Nombre", Tabla.CampoNombre )
Addproperty(oPersona,"Apellidos", tabla.CampoApellidos)
etc.

Luego la referencia al objeto:

lcNombre = oPersona.Nombre

1) Tienes que tener en cuenta la visibilidad del objeto, que depende, en este caso, de la variable oPersona.
2) Lo Puedes parasar como parámetro a cualquier elemento que reciba parámetros.
Supongamos que llamas a un form pasando como parámetro el objeto "Empty"

DO FORM frmPersonas with oPersona

* Init del form frmPersonas
LPARAMETERS to_Persona
WITH THIS
.txt_Nombre.value = to_Persona.Nombre
.txt_Apellido.Value = to_Persona.Apellidos
* etc
ENDWITH

Los objetos "empty" se utilizan también para devolver un conjunto de valores desde un procedimiento.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
* Procedimiento Cualquiera
ln_IdPerson = x
LOCAL loResp as Object
loResp = Buscar_Datos_Personas(ln_IdPerson)
IF loResp.Result
	WITH thisform
		.text1.Value = loREsp.Nombre
		.text2.Value = loREsp.Apellidos
		.text3.value = loResp.FechaNacimiento
		.text4.value = loResp.EstadoCivil
	ENDWITH
ELSE
	MESSAGEBOX("No se encontró el Id buscado")
ENDIF
loResp = null
 
****************************************
PROCEDURE Buscar_Datos_Personas
LPARAMETERS tc_IdPerson,tcTablaPersonas
****************************************
tcTablaPersonas = EVL(m.tcTablaPersonas , "PERSONAS")
 
LOCAL loPersona as Object
LOCAL ARRAY laPersona(1)
 
loPersona = newobject("EMPTY")
ADDPROPERTY(loPersona,"Result",.f.)
Addproperty(loPersona,"Nombre","" )
Addproperty(loPersona,"Apellidos", "")
ADDPROPERTY(loPersona,"FechaNacimiento",CTOD(""))
ADDPROPERTY(loPersona,"EstadoCivil","")
 
SELECT NOMBRE, APELLIDOS,FENACIM,ECIVIL FROM (tcTablaPersonas) ;
	where IdPerson = m.tc_IdPerson ;
	into Array laPersona
IF _Tally > 0
	loPersona.result = .t.
	loPersona.Nombre = TRIM(laPersona[1,1])
	loPersona.Apellidos = TRIM(laPersona[1,2] )
	loPersona.FechaNacimiento = laPersona[1,3]
	loPersona.EstadoCivil = laPersona[1,4]
ENDIF
 
RETURN loPersona
ENDPROC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar