zoukankan      html  css  js  c++  java
  • Using X++ code display an image from Resources in a grid Forms or Reports control

    Axapta provides a very handy feature to allow developers to ship their solution with Axapta built-in image files. In Application Object Tree, you can find resources node. Select resources node and right click; select Create from File, specify the file location for the new resource file. After that you can use this resource file in Axapta without specifying an absolute file path in your hard disk. Then let’s see how to use this kind of files in Axapta. First, pick up the resource node from AOT;

    SysResource::getResourceNode(); 

    Then generate a temporary file for this resource file;

    SysResource::saveToTempFile();

     

    Finally specify the temporary file path for controls. Here comes an example to show how to use a resource file as a background image of  a given form. If you don't want to indicate the path to display an imge in a grid you can use : Resources in the AOT and call your image as following :

    public display FilePath ShowMyResource()
    {
    #AOT
    ResourceNode resourceNode;
    FilePath filePathLogo;
    ;
    resourceNode
    = SysResource::getResourceNode('NameOfTheResource');
    if (resourceNode)
    {
    resourceNode.AOTload();
    filePathLogo
    = SysResource::saveToTempFile(resourceNode);
    }
    return filePathLogo;
    }

    Otherwise, you can use this 

    display Bitmap bitmap()
    {
    Bitmap bitmap;
    Bindata binData
    = new BinData();
    ;
    if (binData.loadFile('c:\\1.bmp'))
    bitmap
    = binData.getData();
    return bitmap;
    }
    display Bitmap loadImage()
    {
    ResourceNode resourceNode;
    Container imageContainer;
    Image image;
    ;
    resourceNode
    = SysResource::getResourceNode(ResourceStr(ResourceName));
    resourceNode.AOTload();
    imageContainer
    = SysResource::getResourceNodeData(resourceNode);
    image
    = new Image(imageContainer);

    return image.getData();
    }

    Container to temporary files path

    void showItemPicture(InventstdPic _InventstdPic)
    {
    Image Image
    = new Image();
    BinData BinData
    = new BinData();
    container PicCon;
    real PicRate;
    filePath filePath;
    int height,width,FixLen;
    name labelStr;
    #WinAPI
    /*
    //Filename method uder the InventstdPic table
    display Filename Filename(FilePath path = '')
    {
    str endSlash(str _str)
    {
    return (strscan(_str, '\\',strlen(_str),-1)) ? _str : _str + '\\';
    }
    ;
    if (!this.PicsName)
    {
    return '';
    }

    return endSlash(path) + this.PicsName + this.PicsExtension;
    }
    */

    ;
    FixLen
    = 205;
    filePath
    = WinAPI::getFolderPath(#CSIDL_INTERNET_CACHE);
    filePath
    = _InventstdPic.Filename(filePath);
    PicCon
    = _InventStdPic.Images;

    Image.setData(PicCon);
    height
    = Image.height();
    width
    = Image.width();

    BinData.setData(PicCon);
    BinData.saveFile(filePath);

    if (height > FixLen || width > FixLen)
    {
    if (height > width)
    PicRate
    = FixLen / height;
    else
    PicRate
    = FixLen / width;
    }

    ItemImage.width( width
    * PicRate, Units::mm);
    ItemImage.height(height
    * PicRate, Units::mm);
    if(_InventStdPic.ConfigId)
    labelStr
    = _InventStdPic.ItemId + " (" + _InventStdPic.ConfigId + ")";
    else
    labelStr
    = _InventStdPic.ItemId;
    ItemImage.label(labelStr);
    //ItemImage.showPicAsText(Noyes::Yes);
    ItemImage.showLabel(Noyes::Yes);
    ItemImage.imageName(filePath);
    }
  • 相关阅读:
    ZLL网关程序分析
    ZLL主机接口的信息处理流程
    TI Zigbee Light Link 参考设计
    基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2
    office excel 装Visual Studio后报错解决方案
    php随机生成验证码
    Mysql添加外键约束
    hdu 1232 畅通工程
    hdu 1162 Eddy's picture (Kruskal 算法)
    hdu 1102 Constructing Roads (Prim算法)
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2063095.html
Copyright © 2011-2022 走看看