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

Show image uploaded from Files on grid Acumatica

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

一开始,我为这个专栏使用了PXImageUploader,但它不起作用。我无法使用 Upload 按钮上传图片,只能拖放,但存在一些问题。我觉得这样不好。

然后,我用另一种方式,上传图片到文件,从SM202510复制External link粘贴到这一栏。没关系,但用户必须执行太多步骤才能做到这一点,这对用户来说有点复杂,所以我想找到一种获取图像 link 并自动粘贴的方法。

问题是当用户上传图片时,我找不到类似事件 FieldUpdated with NoteID 来获取图片的东西 link。

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

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

对于网格容器,您可以使用具有 DisplayModeType 属性的 PXGridColumn 元素:

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

External Link URL 与文件UID 属性 组合在一起,并将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;
                }
            }
        }
    }
}