Dynamics ax 4.0, abriendo formulario sin aplicar filtro en registro actual
-
19-09-2019 - |
Pregunta
Tengo un formulario con la cuadrícula VendTable, por ejemplo, que tiene el campo CustAccount.
Quiero colocar un botón; haga clic en él para abrir el formulario CustTable donde todos los clientes son visibles.
Si solo coloco el elemento del menú CustTable, al hacer clic en él se abrirá el formulario CustTable, pero en este formulario solo se muestra un registro, uno que tiene el mismo AccountNum que en vendTable.CustAccount.
¿Cómo abrir custTable completo?¿Existe una solución mejor que crear el botón y luego usar ClassFactory::FormRunOnClient para mostrar el formulario?
PD.Necesito un botón, por lo que RMB->"Ir al formulario de la tabla principal" no cuenta.
Solución
El problema es que el registro VendTable
se aplica como un argumento a la forma CustTable
, que a su vez crea una dynalink. La solución es evitar el argumento.
Reemplazar el método clicked
en el elemento de menú pantalla CustTable
como esto:
void clicked()
{
this.menufunction().run(new Args(element));
}
Esto exige la forma CustTable
con la persona que llama objeto sólo y sin el argumento registro.
Otros consejos
Sé que esto es una pregunta bastante viejo, pero si alguien viene aquí en busca de la respuesta, simplemente llamar al método clearDynalinks()
en el QueryBuildDataSource objeto.
Por ejemplo, se ha creado un formulario y que es filtrado automáticamente el origen de datos debido a las Dynalinks que la dinámica crea de forma automática, a resolverlo poniendo el siguiente código dentro del método init()
, en el formulario de origen de datos:
QueryBuildDatasource qbds;
;
qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();
// Next line is optional, it clears initial ranges
qbds.clearRanges();
// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges
Espero que ayuda ...
Tienes 2 opciones, puede crear un botón y anular su método se ha hecho clic (), o utilizar un MenuItemButton y asignar una acción Menultem a él.
El uso de MenuItems es una buena práctica, ya que le permite utilizar el marco de seguridad y configuración de AX. Puede asociar una clase a la Menultem y en el método principal de la clase () puede ejecutar el FormRunOnClient () cosas como sea necesario.