Axapta: ¿Cómo puede el nombre de tabla, no el ID de la tabla, puede utilizar como una selección en el cuadro de diálogo Seleccionar base de datos del registro de informes?
Pregunta
Actualmente, sólo el ID de la tabla se puede utilizar que no tiene sentido, ya que es un número. Un poco de código de ejemplo sería realmente grande.
Solución
Crea una nueva clase RunBaseReport
y recordar para nombrar el informe SysDatabaseLog
en el método lastValueElementName
.
Símbolo del nombre de la tabla en el método dialog
; utilizar el TableName
extendido tipo de datos para permitir las operaciones de búsqueda.
Object dialog()
{
DialogRunbase dlg = super();
;
dialogTableName = dlg.addFieldValue(typeId(TableName),tableId2Name(tableId));
return dlg;
}
Actualizar el rango de la tabla Identificación del queryRun.query()
en el método getFromDialog
después de llamar super()
. Utilice la función tableName2Id
para convertir a la tabla de ID.
boolean getFromDialog()
{
boolean ret = super();
;
tableId = tableName2Id(dialogTableName.value());
this.queryrun().dataSourceNo(1).findRange(fieldNum(SysDatabaseLog,Table)).value(queryValue(tableId));
return ret;
}
En el método validate
, validar que el nombre de tabla es válida (tabla ID No 0, tabla no temporal, etc.).
Por último cambia el elemento de menú de salida para apuntar a la clase en lugar del informe.
Advertencia: código no ha sido probado