Как я могу заставить Acumatica, многострочную PXGridColumn отображать новые строки? - PullRequest
2 голосов
/ 05 июня 2019

Я настраиваю поле описания в форме предложений проекта (экран PM304500). Мне нужно, чтобы поле описания было многострочным, и оно должно сохранять новые строки.

Я настроил само поле для учета очень длинных строк, и я настроил соответствующий PXGridColumn с Multiline = "true". Благодаря этому я могу редактировать значение поля, а с помощью shift-enter я могу вставлять в строку новые строки. Кроме того, столбец сетки, если он не редактируется, будет отображать строку в несколько строк, но новые строки игнорируются, как если бы значение отображалось в виде HTML. Я знаю, что новые строки сохраняются, поскольку при повторном редактировании значения новые строки появляются.

Кроме того, я смог использовать консоль разработчика в Chrome, чтобы перейти к результатам, полученным из PXGridColumn. Это оформлено с помощью «белого пространства: нормальный». Если я изменю это на «white-space: pre-wrap», столбец будет выглядеть так, как я хочу.

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

В идеале я хотел бы просто изменить стиль элементов, которые получаются из PXGridColumn, на "white-space: pre-wrap". Есть ли атрибут / свойство для PXGridColumn, которое позволит мне это сделать? В качестве альтернативы, я бы согласился с заменой новых строк на
, если бы я мог получить значение для отображения в виде HTML. Конечно, я открыт для других подходов.

1 Ответ

1 голос
/ 05 июня 2019

Это можно сделать следующим образом:

  1. Скопируйте папку по умолчанию в папку App_Themes Acumatica: enter image description here
  2. Откройте файл 00_Controls.css в скопированной папке и класс css ниже в конец файла и сохраните файл

    .MyTable table:not([class~=GridRowForm]) tbody tr td{
        white-space: pre-wrap !important;
    }
    
  3. В редакторе экрана выберите сетку, которую вы хотите иметьприменяется стиль css для пробелов и добавляется MyTable как CssStyle.enter image description here

  4. Теперь перейдите на страницу «Настройки сайта» (SM200505) и выберите «По умолчанию» - «Копировать как тему интерфейса» enter image description here

После этих шагов вы сможете получить следующий интерфейс в деталях заказов клиента: enter image description here

...