Me parece que ya se ha tocado este tema, pero no lo recuerdo y tampoco lo encuentro. Se trata de lo siguiente:
Tengo un control Objeto en un formulario que disparo una rejilla, en dicha rejilla le asigno una toolbar con los comando de Alta, Edición , eliminación, etc..., pues bien, no se como puedo refrescar el control objeto de la rejilla que tengo en el formulario.
No me sirve, ya que desde una toolbar asociada a una rejilla no puedo recalcular un control. Esta rejilla se puede llegar a utilizar en varios formularios.
Yo, tengo todas las rejillas de líneas de documentos con una toolbar común y en ella tengo el alta, modificación ,baja, filtrado, etc.
La acción que tengo, por ejemplo para las altas es: en la acción no le pongo la tabla asociada, en el comando:ficha formulario de alta y no le asigno ningún formulario. Así te coge el que tenga la rejilla asociado.
Haciéndolo así te refresca la rejilla al dar altas, modificaciones y bajas.
A esto es a lo que me refería antes. Hace tiempo probé pero no conseguí nada.
Hice como dice Juan, lanzar señales y recogerlas desde la rejilla pero no vi la manera de procesar el control con las seleccionadas. Una posible opción?? sería marcar los registros con un campo para poder diferenciarlos.
Además tuve algún problema de bloqueos que no vi como resolver y desestimé la opción de hacerlo así.
En la actualidad, hasta que se me ocurra algo mejor esos botones que actúan sobre la multiselección los tengo en el formulario,no en la toolbar.
La instruccion PedirFormulario no lleva los cambios a disco, trabaja con la ficha en memoria, y te devuelve el ok para que hagas el alta/baja/modificacion o nada.
Creas la ficha en disco primero con lo cual si cancelan la tienes que borrar.
Te adjunto lo correcto: (en el ejemplo hay una instrucción nueva de la v7.2 "Añadir ficha a la lista")
El ejemplo anterior es un evento de una rejilla por lo que al añadir la ficha a la lista que nos pasan equivale a pasarsela al control principal, la rejilla.
Igualmente si ordenamos la lista, al salir del evento nos aparece la lista ordenada en el control.
En eventos de controles de lista (rejilla, casillero, informe...) lo que se haga en la lista se le hace al control
Overall: Si no me equivoco, lo que quieres es que desde una toolbar te de altas, modificaciones y bajas igual que si lo hicieras con el botón derecho del ratón y pulsaras altas, etc... no?
Haz lo que te dije. 3 acciones te servirán para poner en infinidad de toolbars. En la rejilla ponle los formualrios de alta, modif y baja. Y crea las acciones sin tabla, como te dije antes.
3 acciones sin proceso conseguirán lo que pretendes.
Pero sigue sin refrescarme la rejilla, cuando doy de alta un registro, éste no aparece en la rejilla. Lo he probado de todas las formas y no sale. Estoy haciendo algo mal,o es que no se puede?
He hecho el proceso para dar de alta un registro tal y como has indicado en el post de mas arriba y en el inspector de objetos me da error, aunque en tiempo real funciona bien (adjunto imagen). Me indica que por debajo de Alta ficha no está asociada ninguna tabla, pero insisto el proceso funciona.
El funcionamiento es correcto, pero en la versión 7.1.1 existe una incidencia que provoca que el inspector de errores informe de ese error inexistente. En la 7.2 esta solucionado y el inspector no da ese mensaje.