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.

1 comentario: