Radio-Button как источник информации.

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Аватара пользователя
Arcady
Администратор
Сообщения: 201
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: Radio-Button как источник информации.

Сообщение Arcady » 12 дек 2017, 19:15

Каждый ответ содержит 1 из 4 вариантов. Вот каким "макаром" разделить эти ответы на 4 варианта, чтобы их впоследствии просуммировать? Как узнать, сколько ответов содержит вариант 1, сколько 2, 3 или 4?
Кажется есть недопонимание, как работает радио-батон
Допустим у вас есть поле, назовем его "Ответ"
На лайауте вы указываете вид отображения поля, как радио-батон и привязываете к нему соотвествующий value-list, в вашем случае как я понимаю, это список 1,2,3,4
Когда пользователь кликает на одну из "точек" в радио-батон в ответ попадает то что он кликнул, то есть либо 1, либо 2, либо 3, либо 4.
То есть в самом ответе будет только ОДНА цифра хранится, а не четыре, как они отображаются на лайауте.

Соответсвенно, суммируя значения полей (где Ответ1 = 1, Ответ2 = 3, Ответ3=2), у вас получится 1+3+2.

Пока писал, подумал, что возможно вам нужно посчитать отдельно количество "единичек", "двоечек" и т.п.
Тут проще всего воспользоваться функцией PatternCount, которое вернет количество вхождений заданного текста в строке.
Например:
PatternCount(Ответ1 ; "1") + PatternCount(Ответ2 ; "1") + PatternCount(Ответ3 ; "1") почитает нам количество "единичек"

Формула выглядит громоздкой, и ее можно записать так
PatternCount( List (Ответ1 ; Ответ2 ; Ответ 3) ; "1" )
То есть мы сначала собрали все ответы "в столбик", а потом посчитали количество "единичек" в нем.

Такой подход не будет работать, если у нас могут быть, например, варианты ответов "1" и "11", так "11" тоже найдется PatternCount, более надежный способ использовать функцию FilterValues с последующим подсчетом количества оставшихся строк

ValuesCount( FilterValues ( List (Ответ1 ; Ответ2 ; Ответ 3) ; "1" ) )
здесь мы сначала собрали "в столбик" все ответы, потом отфильтровали этот список по строке "1" и у нас остались только строки "1", и в финале посчитали количество строк.

Обращаю внимание, что мы в последних двух вариантах используем функцию List для получения списка значений. В принципе в ней можно и просто перечислить поля, но можно собрать список и по нескольким записям одного и того же поля. Что возвращает нас к идее, изложенной выше, где каждый вопрос это отдельная запись.
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Radio-Button как источник информации.

Сообщение andrey volkov » 12 дек 2017, 19:29

Пример (в данном случае один тест, иначе нужно делать таблицу Тесты, нумеровать каждый тест и в Вопросах указывать номер теста)

Сотрудники (КодСотрудника, ФИО, прочее...)
[1] [Иванов Иван Иванович]
[2] [Петров Петр Петрович]

Вопросы (Номер вопроса, Вопрос) - здесь будет 12 записей. Глобальное поле КодСотрудника (на которого оформляется тест)
[1] [Боитесь ли вы мышей?]
[2] [Как часто вы делаете зарядку?]
...
[12] [Испытываете ли вы огорчение, если коллеги не замечают ваши достижения?]


ВариантыОтветов (НомерВопроса, НомерОтвета, Ответ) это матрица 12*4 = 48 записей. Номер ответа - ряд от 1 до 4.
[1] [1] [Да, очень]
[1] [2] [Да, не сильно]
[1] [3] [Нет, не боюсь]
[1] [4] [Вообще не понял вопрос]
[2] [1] [Да, каждый день]
[2] [2] [Да, но не регулярно]
[2] [3] [Нет, очень редко это бывает]
[2] [4] [Нет, никогда]
...
[12] [4] [Нет, мне это безразлично.]

Тест (КодСотрудника, НомерВопроса, НомерОтвета) это матрица Кол-во сотрудников * 12.
[1] [1] [3] (т.е. Иванов не боится мышей)
[1] [2] [1] (т.е. Иванов каждый день делает зарядку)
...
[1] [12] [4] (Иванову безразлично , как коллеги воспринимают его достижения)
[2] [1] [2] (Петров боится мышей, но не сильно)
...
[2] [12] [4] (Петрову безразлично)


Когда вы будете анализировать результаты тестирования, то вы будете делать поиск в таблице Тест. Поиском в НомерОтвета можете определить, сколько там троек, четверок или единиц. Как во всем тесте, так и по конкретному избранному вопросу. Но вообще обработка результатов - это отдельный вопрос. Можно выполнить любым способом. Главное, что все данные в удобном для анализа виде вы получите.

Nikel
Сообщения: 9
Зарегистрирован: 10 дек 2017, 15:57
Откуда: Самара

Re: Radio-Button как источник информации.

Сообщение Nikel » 12 дек 2017, 19:59

andrey volkov писал(а):
12 дек 2017, 19:29
Пример (в данном случае один тест, иначе нужно делать таблицу Тесты, нумеровать каждый тест и в Вопросах указывать номер теста)

Вопросы (Номер вопроса, Вопрос) - здесь будет 12 записей. Глобальное поле КодСотрудника (на которого оформляется тест)
[1] [Боитесь ли вы мышей?]
[2] [Как часто вы делаете зарядку?]
...
[12] [Испытываете ли вы огорчение, если коллеги не замечают ваши достижения?]
Андрей, для меня не понятно, что значит "будет 12 записей" в контексте понимания матрицы. Можно какой-нибудь визуальный пример?

Аркадий, у меня не то, чтобы недопонимание принципа работы Radio-Button... У есть только догадки, то есть у меня незнание. )
Я понимаю, что скрипты дело очень нужное... Но мне бы пока с матрицей разобраться... А то у меня с ней хуже, чем с китайским языком. А китайский я не знаю вообще...))

Аватара пользователя
Arcady
Администратор
Сообщения: 201
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: Radio-Button как источник информации.

Сообщение Arcady » 12 дек 2017, 20:03

Аркадий, у меня не то, чтобы недопонимание принципа работы Radio-Button... У есть только догадки, то есть у меня незнание. )
Я понимаю, что скрипты дело очень нужное... Но мне бы пока с матрицей разобраться... А то у меня с ней хуже, чем с китайским языком. А китайский я не знаю вообще...))
Про скрипты я ничего не писал. Я писал про стандартные функции ФМ которые вы можете вставлять калькулируемые поля. Вообще, мне казалось, я понятно все расписал ...
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

Nikel
Сообщения: 9
Зарегистрирован: 10 дек 2017, 15:57
Откуда: Самара

Re: Radio-Button как источник информации.

Сообщение Nikel » 12 дек 2017, 20:13

Arcady писал(а):
12 дек 2017, 20:03
Вообще, мне казалось, я понятно все расписал ...
Аркадий, я и не сказал, что мне не понятно написанное Вами. Я про то, что мне бы в первую очередь с пониманием построения и структурой матрицы разобраться... А то сложно понять механику работы того, о чем не имеешь представления...

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Radio-Button как источник информации.

Сообщение andrey volkov » 13 дек 2017, 05:30

для меня не понятно, что значит "будет 12 записей" в контексте понимания матрицы. Можно какой-нибудь визуальный пример?
Я достаточно визуально отобразил, как будет выглядеть каждая таблица. Понятно, что я не расписываю все Вопросы целиком и из 12 записей демонстрирую лишь три.
В квадратных скобках - пример того, что будет сохраняться в таблицу в соответствующие поля.

=====
Что такое матрица произвольной размерности в таблицах файлмейкера.
Возьмем для примера шахматную доску. Допустим, нам нужно сохранить информацию о расположении фигур на ней.
Стандартная матрица - это таблица из восьми строк (1-8) и восьми полей (A B C D.... H). В каждое поле записываете описание фигуры.
В файлмейкере делать такое невозможно, да и не нужно.
Шахматную доску можно описать таблицей из 64 строк с полями: Номер ряда(1-8), НомерСтолбца (A-H), ОбозначениеФигуры
В стоклеточной шахматной доске таблица будет состоять из ста строк с теми же тремя полями.

Вам для решения вашей задачи не нужны таблицы с множеством полей.

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Radio-Button как источник информации.

Сообщение andrey volkov » 13 дек 2017, 05:40

Возьмем для примера таблицу Тест. В ней сохраняются результаты тестирования
Каждая строка показывает, как ответил на конкретный вопрос конкретный сотрудник
Первый столбец - код сотрудника. Второй - код вопроса. Третий столбец - выбранный вариант ответа.

Например, сотрудник номер один, отвечая на второй вопрос выбрал вариант ответа 4. Запись выглядит так: [1] [2] [4]

понятно, что в такой реализации вам не важно совершенно, сколько у вас сотрудников, вопросов, вариантов ответов. стопиццотый сотрудник ответит на вопрос 99 вариантом два: [100500] [99] [2]

В таблице Сотрудники вы определите, что сотрудник с кодом 100500 это Пупкин Вася. В таблице Вопросы вопрос 99 звучит как: "Есть ли жизнь на Марсе?" А в таблице ВариантыОтветов ответ 2 для вопроса 99 означает вариант: "Мне столько не выпить!!!".

Сколько сотрудников дало такой же ответ на такой же вопрос? Ищем в таблице тест все записи, в которых НомерВопроса = 99 и ВариантОтвета = 2
Впрочем, обработка результатов - это отдельная песня

Alexei Sytch
Сообщения: 106
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Radio-Button как источник информации.

Сообщение Alexei Sytch » 13 дек 2017, 10:01

Nikel писал(а):
12 дек 2017, 11:21
Как узнать, сколько ответов содержит вариант 1, сколько 2, 3 или 4?
Есть удобная пользовательская функция которая подсчитывает количество вхождений одного или нескольких значений в списке -- Distribution
https://www.briandunning.com/cf/890
После ее установки результат можно будет посчитать по формуле

Код: Выделить всё

// Распределение по вариантам ответов от 1 до 4
Let(  [ 
	  uniqueValueList 	="1¶2¶3¶4"
	; dataList 		= List( Вопрос1 ; Вопрос2 ; Вопрос3 ; Вопрос4 )
       ] 
	; Distribution ( uniqueValueList ; dataList )
       )
 
Результат
1 (7)
2 (8)
3 (20)
4 (7)
Если указать на входе uniqueValueList =4, до будут подсчитаны только это значения - (в моем примере это 7)

Похожей формулой можно рассчитать и итоговую статистику по всем тестам (с использованием SQL - без реляций)

Код: Выделить всё

// Общее распределение
Let(  [
	  uniqueValueList 	="1¶2¶3¶4"
	; dataList 		= ExecuteSQL ( "select \"Вопрос1\",\"Вопрос2\",\"Вопрос3\",\"Вопрос4\" from Tests"; "¶"; "¶" )
       ] 
	; Distribution ( uniqueValueList ; dataList )	
       )

Nikel
Сообщения: 9
Зарегистрирован: 10 дек 2017, 15:57
Откуда: Самара

Re: Radio-Button как источник информации.

Сообщение Nikel » 14 дек 2017, 14:51

Аркадий, Андрей, Алексей - спасибо, буду пробовать и изучать. )

Аватара пользователя
Arcady
Администратор
Сообщения: 201
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: Radio-Button как источник информации.

Сообщение Arcady » 14 дек 2017, 18:12

Nikel писал(а):
14 дек 2017, 14:51
Аркадий, Андрей, Алексей - спасибо, буду пробовать и изучать. )
Вам отвечали люди исключительно на "А" - есть в этом что-то подозрительное ;)
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

Ответить