martes, 31 de mayo de 2011

Exportar excel desde table browser

Para poder exportar el contenido de las tablas (mediante el AOT, función abrir tabla) a Excel, debemos activar la funcionalidad de la barra de herramientas estándar de DAX. Para ello haremos lo siguiente:


1. Ir al formulario SysTableBrowser

2. Ir al nodo SysTableBrowser/Design/design

3. Click derecho y seleccionar propiedades

4. Cambiar la propiedad WindowsType = PopUp por Estándar

Antes
Despues

Saludos.

viernes, 27 de mayo de 2011

Opcion "Ir al formulario de la tabla principal"

Hay veces que necesitamos utilizar esta opcion para hacer referencia a tablas que hemos creado y necesitamos llenar informacion, para el logro del llenado utilizando esta opcion, estamos obligados a crear formularios.
  1. Crear tabla a llenar (campos).
  2. Crear formulario (datasource, grid).
  3. Crear menuitem (jalar el formulario a menuitem/display).
  4. En las propiedad "FormRef" de la  tabla, poner el menuitem creado.  
Saludos.

jueves, 26 de mayo de 2011

Almacenar imagenes en dynamics AX

Hola, aqui les dejo un ejemplo de como almacenar imagenes dentro del AX, esta funcionalidad es una copia de la carga de logotipo de la empresa (Base/Configurar/Informacion de la empresa/Logotipo de la empresa).


  1. Abrir el AOT/Menu Items/Display/CompanyImage.
  2. Abrir otro AOT/Forms/CustTable.
  3. Abrir formulario : CustTable/Design/Design/ButtonGroup.
  4. Jalar el menu item CompanyImage en el ButtonGroup.
  5. Click derecho en el nuevo MenuItemButtom e ir a sus propiedades. En Texto escribir "Imagen Cliente".
  6. Salvar los cambios.
  7. Abrir el formulario CustTable, veremos que tenemos un nuevo boton (Imagen Cliente).
  8. Dar click al boton "Imagen Cliente".
  9. Cargar Imagen.
Si se quisiera ver esta imagen en un reporte, lo que se debe hacer es crear un método display:


• En este ejemplo estoy simulando tener un datasouce custInvoiceJour
x++:
display Bitmap mostrarImagen()
{
     CustTable custTable = CustTable::find(custInvoiceJour.InvoiceAccount);
     ;

     custTable = CustTable::find(custInvoiceJour.InvoiceAccount);
     return CompanyImage::find(custTable.dataAreaId, custTable.TableId, custTable.RecId).Image;
}
-----------------------------------------------------------------------
Para las personas un poquito mas tecnicas, aqui les dejo lo explicado en codigo:
static void ImagenCarga(Args _args)

{
     Image image = new Image();
     str filename;
     CustTable custTable;
     CompanyImage companyImage;
     ;
     filename = "C:\\Rosarojadespedida.jpg";
     select custTable
     where custTable.AccountNum == '1101';
     if (Image::canLoad(filename))
    {
          image.loadImage(filename);
          companyImage.Image = image.getData();
          companyImage.RefTableId = 77;
          companyImage.RefRecId = custTable.RecId;
          companyIMage.RefCompanyId = 'con';
          companyImage.insert();
     }
}


Saludos.

miércoles, 18 de mayo de 2011

Terminar una sesion de un cliente

  • Terminar la sesion de un cliente en específico

    static void TerminateSession(UserId UserId)
    {
    xSession xSession;
    int xSessionId;
    ;
    xSessionId = (select * from SysClientSessions where SysClientSessions.userId==UserId && SysClientSessions.Status==1).SessionId;
    xSession = new xSession(xSessionId);
    if (xSession)
    xSession.terminate(xSession.loginDate(), xSession.loginTime());
    }
  • Terminar la actual sesion

    static void ShutDown(Args _args)

    {
    Info Info = new Info();
    ;
    Info.shutDown(true);
    }
Saludos.

Borrar todas las transacciones de una Cia

Simplemente se debe hacer lo siguiente:
  • Ubicar la clase Clase SysDatabaseTransDelete
  • Ejecutar la clase

Saludos.