Загрузка изображения в столбец Table

Тогда я смогу выбирать нужное мне изображение с компьютера?

Не могли бы Вы подробнее описать задачу? И сообщения выше сложилось впечатление, что Вы загружаете изображение в экране редактирования и нужно отобразить его на экране просмотра в таблице.

Глеб

Да, именно это мне и нужно

В таком случае, не могли бы Вы подробнее описать, что в данный момент не получилось/не работает?

Как отобразить изображение в таблице, я описал выше, а загрузка в экране редактирования делается через FileUpload, который по умолчанию генерируется для полей сущности с типом FileDescriptor.

Глеб

Я просто не знаю с чего начать
А как отображать изображения Вы мне объяснили

Вам нужно добавить сущности поле типа FileDescriptor, например:

42

Studio в экране редактирования сгенерирует поле типа upload:

<form id="form" dataContainer="newEntityDc">
    <column width="250px">
...
        <upload id="imageField" fileStoragePutMode="IMMEDIATE" property="image" showFileName="true"/>
    </column>
</form>

В экране просмотра необходимо создать генерируемую колонку, как показано в примере выше, например:

@Inject
private UiComponents uiComponents;

@Install(to = "newEntitiesTable.image", subject = "columnGenerator")
private Component newEntitiesTableImageColumnGenerator(NewEntity entity) {
    Image image = uiComponents.create(Image.NAME);
    image.setHeight("40px");
    image.setScaleMode(Image.ScaleMode.SCALE_DOWN);
    image.setSource(FileDescriptorResource.class)
            .setFileDescriptor(entity.getImage());
    return image;
}

Дополнительно можно прочитать следующую статью: https://www.cuba-platform.com/guides/working-with-images

Глеб

В сервере выдает ошибку на newEntitiesTableImageColumnGenerator, что якобы не можете найти @Install target.

Проверьте, что значение параметра to имеет формат <table_id>.<fileDescriptor_attribute_name>.

А где можно посмотреть это?

И подскажите, пожалуйста, как реализовать поиск в окне просмотра не пользуясь фильтром.
Если не трудно, распишите подробно.

id таблицы можно найти в дескрипторе экрана (XML). Имя атрибута Вы придумываете сами, когда создаете сущность.

Добрый вечер
Всё настроено правильно, но ошибка все равно осталась.

Не могли бы Вы приложить демо проект или, хотя бы, код контроллера и дескриптора экрана?

image

image

Вы прислали дескриптор edit экрана и контроллер экрана просмотра. Я так не могу определить, правильно ли вы подключаете генерируемую колонку к таблице. Прикрепите пожалуйста дескриптор и контроллер экрана просмотра.

image

Не могли бы Вы прислать полный дескриптор экрана. И лучше присылать код в виде текста обернутого тройными обратными косыми чертами (```), а не скриншотами, так как это затрудняет работу с ним.

<window xmlns="http://schemas.haulmont.com/cuba/screen/window.xsd"
        caption="msg://browseCaption"
        focusComponent="newEntitiesTable"
        messagesPack="com.company.er.web.screens.newentity">
    <data readOnly="true">
        <collection id="newEntitiesDc"
                    class="com.company.er.entity.NewEntity"
                    view="_local">
            <loader id="newEntitiesDl">
                <query>
                    <![CDATA[select e from er_NewEntity e]]>
                </query>
            </loader>
        </collection>
    </data>
    <dialogMode height="600"
                width="800"/>
    <layout expand="newEntitiesTable"
            spacing="true">
        <filter id="filter"
                applyTo="newEntitiesTable"
                dataLoader="newEntitiesDl">
            <properties include=".*"/>
        </filter>
        <groupTable id="newEntitiesTable"
                    width="100%"
                    dataContainer="newEntitiesDc">
            <actions>
                <action id="create" type="create"/>
                <action id="edit" type="edit"/>
                <action id="remove" type="remove"/>
            </actions>
            <columns>
            </columns>
            <rowsCount/>
            <buttonsPanel id="buttonsPanel"
                          alwaysVisible="true">
                <button id="createBtn" action="newEntitiesTable.create"/>
                <button id="editBtn" action="newEntitiesTable.edit"/>
                <button id="removeBtn" action="newEntitiesTable.remove"/>
            </buttonsPanel>
        </groupTable>
        <hbox id="lookupActions" spacing="true" visible="false">
            <button action="lookupSelectAction"/>
            <button action="lookupCancelAction"/>
        </hbox>
    </layout>
</window>

У вас в таблице нет колонок, соотвественно невозможно добавить генератор для несуществующей колонки.