[RESUELTO]Duda sobre la palabra reservada "Parent"
Publicado: Mié Sep 08, 2010 3:30 pm
CITA1:
Re: Asignar Fecha a un campo mediante un boton
por Cascabel » Jue May 27, 2010 5:26 pm
(...). Para obtener el formulario, debes trepar por el modelo del botón y más arriba, hasta llegar a Evento.Source.Model.Parent, que es el formulario en sí.
En esquema:
Código:
Evento.Source--->Botón
.Model--->Modelo del botón
.Parent--->Formulario
.GetByName("datk_fecha_sal")--->Campo de fecha
CITA2:
(Trozo de código de GESTFACTURA.ODB de Ramón Muñoz)
Sub PonerCampos( Evento )
Dim oFrm As Object
oFrm = Evento.Source.Model.Parent
'Hay que pasar el foco a otro control y hacer una pausa en el Runtime (0 milisegundos es suficiente)
'para que el listbox guarde el valor correcto en el origen de datos
'yo paso el control al campo "Nota"
Dim oCtrl As Object
oCtrl = oFrm.Parent.Parent.GetByName("Nota")
oCtrl = oFrm.Parent.Parent.Parent.Parent.CurrentController.GetControl(oCtrl)
oCtrl.SetFocus
(...)
Estoy aprendiendo OOo. (intentando, al menos).En Access lo sabia hacer casi todo, pero mi empresa ha decidido pasarse al software libre. Writer y Calc está ya practicamente superado. Casi todas las macros que tenía en Excel/Word ya las he podido transformar. Pero en Base... Puf, Eso es harina de otro costal... El libro de Mauricio me está ayudando pero en algunos apartados me quedo un pelín corto.
Uno de estos momentos es en la duda que me surge: La palabra reservada “Parent” hace referencia al formulario, pero corregidme si me equivoco:
NO puedo coger una macro creada para un formulario específico y acoplarlo a otro, pues el árbol o la dependencia de ese formulario puede ser diferente a la macro origen.¿es así, no? En Access el código era tan sencillo como Me.Marcas!CodMarca.SetFocus pero aquí...Si veis lo que he puesto en negrita en la CITA2 se me hace un poco cuesta arriba...
Si hago un formulario que llama a otro formulario y este a su vez a otro. (Por ejemplo, el menu principal en un formulario llamado “MAIN”, que llama a un formulario llamado “Vehiculos” y este a otro que se llama “Marcas”) Cuando hago un SetFocus en el campo CodMarca del ultimo formulario debo de poner... ¿Cuantos “Parent”? y... ¿Me valdría la macro si ese mismo formulario es llamado desde “MAIN”?
Ante todo: Gracias!
Re: Asignar Fecha a un campo mediante un boton
por Cascabel » Jue May 27, 2010 5:26 pm
(...). Para obtener el formulario, debes trepar por el modelo del botón y más arriba, hasta llegar a Evento.Source.Model.Parent, que es el formulario en sí.
En esquema:
Código:
Evento.Source--->Botón
.Model--->Modelo del botón
.Parent--->Formulario
.GetByName("datk_fecha_sal")--->Campo de fecha
CITA2:
(Trozo de código de GESTFACTURA.ODB de Ramón Muñoz)
Sub PonerCampos( Evento )
Dim oFrm As Object
oFrm = Evento.Source.Model.Parent
'Hay que pasar el foco a otro control y hacer una pausa en el Runtime (0 milisegundos es suficiente)
'para que el listbox guarde el valor correcto en el origen de datos
'yo paso el control al campo "Nota"
Dim oCtrl As Object
oCtrl = oFrm.Parent.Parent.GetByName("Nota")
oCtrl = oFrm.Parent.Parent.Parent.Parent.CurrentController.GetControl(oCtrl)
oCtrl.SetFocus
(...)
Estoy aprendiendo OOo. (intentando, al menos).En Access lo sabia hacer casi todo, pero mi empresa ha decidido pasarse al software libre. Writer y Calc está ya practicamente superado. Casi todas las macros que tenía en Excel/Word ya las he podido transformar. Pero en Base... Puf, Eso es harina de otro costal... El libro de Mauricio me está ayudando pero en algunos apartados me quedo un pelín corto.
Uno de estos momentos es en la duda que me surge: La palabra reservada “Parent” hace referencia al formulario, pero corregidme si me equivoco:
NO puedo coger una macro creada para un formulario específico y acoplarlo a otro, pues el árbol o la dependencia de ese formulario puede ser diferente a la macro origen.¿es así, no? En Access el código era tan sencillo como Me.Marcas!CodMarca.SetFocus pero aquí...Si veis lo que he puesto en negrita en la CITA2 se me hace un poco cuesta arriba...
Si hago un formulario que llama a otro formulario y este a su vez a otro. (Por ejemplo, el menu principal en un formulario llamado “MAIN”, que llama a un formulario llamado “Vehiculos” y este a otro que se llama “Marcas”) Cuando hago un SetFocus en el campo CodMarca del ultimo formulario debo de poner... ¿Cuantos “Parent”? y... ¿Me valdría la macro si ese mismo formulario es llamado desde “MAIN”?
Ante todo: Gracias!