显示从网格Acumatica上的文件上传的图像

时间:2019-10-21 08:37:36

标签: acumatica acumatica-kb

我需要显示用户上传的图片,并将其显示在网格上,如下图所示:

enter image description here

首先,我将PXImageUploader用于此列,但是它不起作用。我无法使用上传按钮来上传图片,只能进行拖放以及其中的一些问题。我认为这种方式不好。

然后,我使用另一种方式将图像上传到文件,从SM202510复制外部链接并粘贴到此列。可以,但是用户必须执行太多步骤才能做到这一点,这对用户来说有点复杂,因此我想找到一种自动获取图像链接并粘贴的方法。

问题是,当用户上传图像时,我找不到诸如NoteID的FieldUpdated事件来获取图像链接。

在这种情况下有什么办法吗?或者您对我有什么建议?

1 个答案:

答案 0 :(得分:0)

对于表单容器,请使用PXImageView控件。

对于网格容器,您可以将PXGridColumn元素与DisplayModeType属性一起使用:

<px:PXGridColumn DataField="UsrImage" DisplayMode="Value" Type="Icon" />

用文件External Link属性组成UID URL,并将URL字符串分配给显示图像的字段。我测试了此方法,以显示附加到网格记录的第一张图像。

public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
    public void SOLine_UsrImage_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
    {
        PX.SM.UploadFileMaintenance upload = PXGraph.CreateInstance<PX.SM.UploadFileMaintenance>();

        foreach (Guid noteId in PXNoteAttribute.GetFileNotes(sender, e.Row))
        {
            PX.SM.FileInfo fileInfo = upload.GetFile(noteId);

            if (fileInfo != null)
            {
                string fileExtension = System.IO.Path.GetExtension(fileInfo.Name).ToLowerInvariant();

                if (fileExtension == ".png" || fileExtension == ".jpg" || fileExtension == ".jpeg" || fileExtension == ".gif")
                {
                    e.ReturnValue = string.Concat(PXUrl.SiteUrlWithPath(), "/Frames/GetFile.ashx?fileID=", fileInfo.UID.ToString());
                    break;
                }
            }
        }
    }
}

enter image description here