在网格 Acumatica 上显示从文件上传的图像
Show image uploaded from Files on grid Acumatica
我需要显示用户上传的图片,并在网格上显示如下图:
一开始,我为这个专栏使用了PXImageUploader,但它不起作用。我无法使用 Upload 按钮上传图片,只能拖放,但存在一些问题。我觉得这样不好。
然后,我用另一种方式,上传图片到文件,从SM202510复制External link粘贴到这一栏。没关系,但用户必须执行太多步骤才能做到这一点,这对用户来说有点复杂,所以我想找到一种获取图像 link 并自动粘贴的方法。
问题是当用户上传图片时,我找不到类似事件 FieldUpdated with NoteID 来获取图片的东西 link。
在这种情况下有什么办法吗?或者您对我有什么建议吗?
对于表单容器,使用 PXImageView
控件。
对于网格容器,您可以使用具有 DisplayMode
和 Type
属性的 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;
}
}
}
}
}
我需要显示用户上传的图片,并在网格上显示如下图:
一开始,我为这个专栏使用了PXImageUploader,但它不起作用。我无法使用 Upload 按钮上传图片,只能拖放,但存在一些问题。我觉得这样不好。
然后,我用另一种方式,上传图片到文件,从SM202510复制External link粘贴到这一栏。没关系,但用户必须执行太多步骤才能做到这一点,这对用户来说有点复杂,所以我想找到一种获取图像 link 并自动粘贴的方法。
问题是当用户上传图片时,我找不到类似事件 FieldUpdated with NoteID 来获取图片的东西 link。
在这种情况下有什么办法吗?或者您对我有什么建议吗?
对于表单容器,使用 PXImageView
控件。
对于网格容器,您可以使用具有 DisplayMode
和 Type
属性的 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;
}
}
}
}
}