|
20.02.2020, 12:51 | #1 |
Участник
|
Значение CheckBox, mandatory
Доброго времени суток. Новичок в dax, не могу разобраться.
Есть чекбоксы со значениями аналитик. При выборе любой необходимо делать поля аналитик обязательными к заполнению. Как сделать проверку чекбоксов с последующим выставлением mandatory? |
|
20.02.2020, 13:26 | #2 |
Участник
|
Где хранятся значения чекбоксов? Где происходит заполнение аналитик?
|
|
20.02.2020, 13:53 | #3 |
Участник
|
Значения чекбоксов в именах журналов inventJournalName (они слинкованы с inventDimParm)
Аналитики в журналах проводки / строки журнала inventJournalMovement Версия 12 Последний раз редактировалось Earl1; 20.02.2020 в 14:05. |
|
20.02.2020, 13:42 | #4 |
Участник
|
Да, опишите детальнее.
Что у вас - форма связанная с таблицей? просто диалог? И укажите версию DAX |
|
20.02.2020, 15:44 | #5 |
Участник
|
Вообще в системе свойство mandatory может быть задано на разных уровнях.
- на поле таблицы - на поле источника данных - на элементе управления Для вашего случая подойдёт уровень источника данных. Уровень таблицы будет недостаточным, так как не позволит динамически включать и выключать это свойство, а уровень элемента управления будет избыточным. Вообще обращаться напрямую к элементу управления не принято, разве что когда он не связан с источником данных. 1) Нужно уметь из кода менять свойства у полей источника данных. Это делается так: FormDataSourceName_ds.object(FieldId).mandatory(value), где FieldId - это идентификатор поля. Он у вас либо уже есть, раз вы используете inventDimParm, либо его можно получить при помощи функции fieldNum(). 2) Нужно понимать в какой момент это делать. Где написать этот код? Самый простой вариант - это метод Active источника данных. Он срабатывает каждый раз при получении строкой фокуса ввода. Если интересно то почитайте ещё про событие LinkActive. В вашем случае подойдёт и оно. |
|
20.02.2020, 17:13 | #6 |
Участник
|
А если как то перебрать в цикле?
|
|
20.02.2020, 17:24 | #7 |
Участник
|
|
|
20.02.2020, 17:40 | #8 |
Участник
|
Мне кажется, вам лучше описать всю вашу задачу подробнее.
С учетом того что у вас уже используется inventDimParm - возможно, используется и стандартный движок обязательности складских аналитик. Ну или его можно подключить. |
|
20.02.2020, 22:39 | #9 |
Участник
|
На форме строк журнала добавить метод, который в зависимости от выбранных аналитик делает поля аналитик обязательными
|
|
21.02.2020, 10:57 | #10 |
Роман Долгополов (RDOL)
|
Цитата:
Складская аналитика и ее доступность и обязательность это в первую очередь настройки номенклатуры. Ваши дополнительные проверки должны работать вместе со стандартными. Иначе, например, может получиться что будете требовать обязательность неактивной для конкретной номенклатуры аналитики. |
|
23.02.2020, 19:38 | #11 |
Участник
|
Если по-боцмански и без исследования связанного стандартного функционала (о котором вам писали уже выше):
при открытии строк журнала идете в наименование, смотрите какие там стоят флажки для ваших обязательных аналитик, делаете InvetDim_ds.object(fieldnum(InventDim, XXX)).mandatory(true) для нужных также имеет смысл в validateWrite для строки аналогичную проверку прописать Как-то такой вариант работать будет, но это не самое верное решение, скорее всего (но вам, видимо, сгодится). |
|
24.02.2020, 16:19 | #12 |
Участник
|
А как можно реализовать проверку checkbox'ов в цикле? проверяется с value() же?
Table.Field = CheckBoxName.value() |
|
24.02.2020, 19:33 | #13 |
Участник
|
А почему в цикле? они у вас хранятся в массиве?
Если нет, если отдельным полями - то так и берите отдельные проверки, у вас их, как и складских аналитик, определенное заранее известное и практически неизменное количество |
|
24.02.2020, 22:20 | #14 |
Участник
|
А как их брать?)
|
|
25.02.2020, 05:21 | #15 |
Участник
|
Я понятия не имею, как у вас хранятся эти данные в InventJournalName
Вероятно, отдельными полями типа InventJournalName.InventDimSizeMandatory, InventJournalName.InventDimSiteMandatory и т.д. Или массивом InventJournalName.InventDimMandatory[] |
|
25.02.2020, 09:42 | #16 |
Участник
|
Есть сhbox на форме. Как их проверить на true/false? как обратиться не пойму. Нужны названия выбранных на chbox'ах аналитик.
|
|
25.02.2020, 10:00 | #17 |
Участник
|
Мне кажется, вы взялись за слишком сложную для вас задачу, не понимая даже базовых основ.
У вас контролы на форме привязаны, наверно, к каким-то полям таблицы? тогда эти значения хранятся в соответствующих полях таблицы или контролы просто так созданы, без привязки? но тогда их значение нигде не сохраняется, если форма уже закрыта |
|
25.02.2020, 13:05 | #18 |
Участник
|
Просто, как проверить чекбокс?)
|
|
25.02.2020, 13:22 | #19 |
Участник
|
Нельзя просто так взять и проверить чекбокс )
Как я понял с ваших слов у вас чекбоксы расположены на одной форме (в именах журналов inventJournalName), а проверять вы их хотите находясь в контексте другой формы (в строках журнала)? Вас ничего не смущает? |
|
25.02.2020, 17:40 | #20 |
Участник
|
Проверять собираюсь на форме, которой находятся они)
|
|