Пятница, 11.10.2024, 07:59
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Проблема с выводом идентификаторов при Выводе строк таблицы
medvalexДата: Пятница, 06.08.2021, 14:31 | Сообщение # 1
Майор
Группа: Проверенные
Сообщений: 86
Репутация: 58
Статус: Оффлайн
В версии 6.02.1 было изменено поведение флажка "Колонки идентификаторов" в форме "Параметры вывода строк таблицы":
https://www.hostedredmine.com/issues/931152

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

Мне пришлось откатиться до 6.01.1p.

Я согласен, что иногда может быть нужно вывести дату или число в другом формате, но в каком случае может быть полезным продублировать вывод колонки типа "строка"? Идентификатор строки при выводе таблицы как-то отличается от самой строки? Или потом надо вручную в ТД удалять повторяющиеся колонки с идентификаторами строковых типов?

Я предлагаю добавлять новый функционал, не ломая старый. Например, можно сделать так: в табличное поле со списком выводимых полей кроме колонки "Пометка" добавить ещё колонку "Пометка для ID", что позволит пользователю гибко выбирать, для каких колонок нужно выводить идентификатор, а для каких не нужно; потому что довольно часто бывает нужно в пределах одной таблицы для некоторых колонок вывести идентификатор, а для некоторых не выводить. При этом, иногда даже бывает нужно вывести только идентификатор (не выводя колонку с самим значением).

А этот флажок в шапке "Колонки идентификаторов" мог бы изменять значение в колонке "Пометка для ID" для всех строк.

Ещё полезной была бы возможность быстро включить отметку "Пометка для ID" для колонок всех типов, кроме строковых (либо вообще убрать возможность проставить флажок "Пометка для ID" для строковых колонок).
 
tormozitДата: Пятница, 06.08.2021, 16:20 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Задача по бесполезным строковым колонкам уже есть https://www.hostedredmine.com/issues/931550
 
medvalexДата: Пятница, 06.08.2021, 18:07 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 86
Репутация: 58
Статус: Оффлайн
Это немного улучшит ситуацию.

Но это в любом случае никак не увеличивает управляемость функционала, какие колонки выводить, какие нет..
булево, например, зачем дублировать? Всего два варианта есть.
Для перечислений чаще всего нужно только одну колонку выводить.. всегда до этого приходилось модифицировать запрос, и вместо значения перечисления выбирать представление значения перечисления... Но хотелось бы иметь возможность вывести только имя перечисления, без второй колонки  с синонимом перечисления (причем без танцев с бубнами с текстом запроса)...
Для дат - непонятно, всегда ли нужно выводить именно xml представление даты.. чаще, скорее всего, нужно обычное представление..
И уж точно нет никакой связи между желанием вывести guid ссылки и добавить к одной колонке с числами вторую колонку с альтернативным представлением чисел; это совершенно разные задачи, но они получаются объединены одним флажком настройки, и их никак нельзя по отдельности настроить...
 
tormozitДата: Пятница, 06.08.2021, 20:24 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Цитата
Я предлагаю добавлять новый функционал, не ломая старый.
В то же время нехорошо делать много мало отличающихся настроек, т.к. они будут неоправданно нагружать мозг пользователя.

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

Если мы говорим о выводе в табличный документ то:

В основе такого интерфейса лежит простая идея - пользователь 2 чаще всего решает этим инструментом 2 большие класса задач:
1. Пользователь выводит данные для просмотра (человеком). Тогда ему нужно видеть удобно читаемые значения (человеком) значения.
2. Пользователь выводит данные для их программной обработки. Тогда им важна строгость, т.е. простота и однозначность их преобразования из текста в типизированные значения. Задача https://www.hostedredmine.com/issues/931152 была сделана в первую очередь ради дат и чисел.

Для первого класса задач включаем флажок "Колонки значений", а для второго - "Колонки идентификаторов" и для колонок смешанных типов еще "Колонки типов".
Но иногда пользователь хочет для упрощения навигации по полученной таблице идентификаторов добавлять и представления значений. В зависимости от типа значения полезность этих колонок представлений действительно сильно меняется. Для ссылок БД - она максимальна, для чисел и дат - средняя, а для булевых - минимальна.

Ты пишешь как раз про такой случай. Если у тебя такие большие объемы, то зачем ты выводишь колонки представления значений? Ведь они существенно прибавляют объема данных. Включай флажки "Колонки идентификаторов" и "Колонки типов" и выключай флажок "Колонки значений".

Если мы говорим про таблицу значений то:

Тут довольно редко приносит пользу флажок "Колонки идентификаторов", т.к. при сериализации вся нужная информация будет добавлена автоматически.

Предлагаю тебе описать свою задачу более конкретно, чтобы я мог прочувствовать ее лучше. Например ты мог бы сделать картинки и даже пример выходного файла (из нескольких строк). Опиши, для какой цели ты выводишь данные или каким образом они будут затем использованы.
 
medvalexДата: Среда, 18.08.2021, 18:02 | Сообщение # 5
Майор
Группа: Проверенные
Сообщений: 86
Репутация: 58
Статус: Оффлайн
Про ТЗ согласен, там не нужны колонки идентификаторов. Речь только про вывод в ТД.

Эти два сценария, которые ты привел, они не являются полным множеством всех возможных сценариев использования.
Не знаю, как ты оценивал статистику использования других пользователей (что у них это два наиболее часто встречаемых случая), но лично у меня они в чистом виде практически никогда не встречаются в работе. В основном встречается третий сценарий - это комбинация двух описанных тобой. А именно: нужно вывести из БД некие данные в excel, там с этими данными человек выполняет некие преобразования (уникальные, основанные на экспертном мнении, не алгоритмизируемые, поэтому их нельзя выполнить обработкой), затем файл с измененными данными необходимо загрузить обратно в БД.
Соответственно, мне критически важны оба свойства: удобство чтения человеком и однозначность типизирования (и поиска ссылочного значения) при загрузке. При всем при этом есть также очень существенное ограничение: недопустимо выводить какие-либо лишние колонки (которые не несут новой информации/которые дублируют существующую информацию), потому что тогда более вероятно, что рабочая область файла excel не влезает в один экран монитора, приходится прокручивать экран вправо-влево, а это значительно усложняет работу с файлом, если человеку нужно внести много изменений. Например, если выводится колонка со значением перечисления Статус записи номенклатуры, то мне не нужно выводить две колонки (имя и синоним), а нужно выводить какую-либо одну. Причем желательно выводить было бы синоним перечисления, но поскольку загрузка в ТД в ИР не поддерживает поиск перечисления по синониму значения (хотя можно было бы реализовать универсальный поиск и по имени, и по синониму значения перечисления), то приходится выводить имя (идентификатор) перечисления.

Пример из практики, когда для разных полей нужны разные варианты вывода (идентификатор либо представление):
Просто нужно выгрузить справочник Номенклатура: Ссылку там нужно вывести как идентификатор (чтобы можно было загрузить обратно измененные значения других реквизитов), ЕдиницаИзмерения нужно вывести представлением (т.к. вспомогательный классификатор ЕИ маленький и хорошо нормализованный, элемент может быть однозначно найден по наименованию, и наименование ЕИ гораздо понятней для человека), ОКПД2 также нужно выгрузить как представление (аналогично), а вот Производителя-контрагента нужно выгрузить как GUID. Статус записи, Тип позиции и другие перечисления нужно выгрузить как имена (для дальнейшей загрузки обратно), но при этом не нужно создавать по 2 колонки для каждого перечисления. Также нужно вывести Артикул, Краткое наименование, Полное наименование и ещё 20 строковых колонок, которые недопустимо дублировать просто так (они займут слишком много места, если их выводить по 2 раза).

Цитата tormozit ()
нехорошо делать много мало отличающихся настроек, т.к. они будут неоправданно нагружать мозг пользователя.
Про это думать уже немножко поздно) мозг нового пользователя неизбежно будет взорван при первом взгляде на обилие настроек, а старого пользователя одна-другая лишняя колонка уже не может отпугнуть. Ну, это на мой взгляд.
Если же по делу, то для того, чтобы не перегружать пользователя, можно сделать видимость новой колонки "выводить ИД" зависимой от общего флажка в шапке "Колонки идентификаторов". Таким образом, пользователи, которым это не надо, не будут перегружаться лишней информацией, но зато пользователи, которым востребован вывод идентификаторов, сразу обратят внимание на изменение интерфейса при нажатии на флажок "Колонки идентификаторов" (появление новой колонки с детальной настройкой по отдельным полям), и уж точно поблагодарят за возможность гибкой настройки вывода, которая сможет охватить ДЕЙСТВИТЕЛЬНО большой круг задач.
Ну, это опять же, на мой взгляд. Поручиться, что кто-то за это поблагодарит, могу только за себя)
 
tormozitДата: Среда, 18.08.2021, 21:04 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Теперь я понял твои проблемы.
Получается на самом деле лишние колонки тебе мешают главным образом потому, что съедают ширину таблицы при ее просмотре. Предлагаю эту проблему решить установкой минимальной ширины всем колонкам с идентификаторами, т.к. они при просмотре таблицы не несут пользы. Таким образом
1. Не прибавится сложности настройки вывода строк таблицы.
2. Практически незаметны станут колонки идентификаторов при просмотре в Excel
Цитата medvalex ()
Производителя-контрагента нужно выгрузить как GUID
Это не понял. Зачем тебе видеть целиком этот UID вместо его представления?
 
tormozitДата: Среда, 18.08.2021, 21:12 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Если у тебя очень большие объемы данных, то используй переход из формы настройки вывода строк в консоль компоновки данных. Там ты сможешь детально настроить какие колонки выводить, их ширину и т.д. Причем там ты можешь все эти детальные настройки сохранить и повторно использовать.
 
tormozitДата: Четверг, 19.08.2021, 08:38 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Цитата tormozit ()
решить установкой минимальной ширины всем колонкам с идентификаторами
Создал задачу https://www.hostedredmine.com/issues/932193
 
tormozitДата: Среда, 25.08.2021, 07:47 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Управление шириной колонок реализовано в 6.06
 
  • Страница 1 из 1
  • 1
Поиск: