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?

StackOverflow https://stackoverflow.com/questions/1366333

  •  21-09-2019
  •  | 
  •  

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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top