Показать изображение, загруженное из файлов на сетке Acumatica - PullRequest
0 голосов
/ 21 октября 2019

Мне нужно показать загруженное пользователями изображение и показать его на сетке, как на картинке ниже:

enter image description here

Сначала я использую PXImageUploader для этогоколонка, но это не работает. Я не могу загрузить изображение с помощью кнопки Загрузить , только перетаскивание и некоторые проблемы с ним. Я думаю, что этот способ не годится.

Затем я использую другой способ, который загружает изображения в файлы, копирует Внешняя ссылка из SM202510 и вставляет в этот столбец. Это нормально, но пользователям приходится выполнять слишком много шагов, это сложно для пользователя, поэтому я хочу найти способ получить ссылку на изображение и автоматически вставить.

Проблема в том, что я не могу найти что-токак событие FieldUpdated с NoteID, чтобы получить ссылку на изображение, когда пользователь загрузил изображение.

Есть ли способ сделать это или у вас есть предложение для меня в этой ситуации?

1 Ответ

0 голосов
/ 21 октября 2019

Для контейнера формы используйте PXImageView control.

Для контейнера сетки вы можете использовать элемент PXGridColumn со свойствами DisplayMode и Type:

<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;
                }
            }
        }
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...