Сложить количество строк с данными из букв

Статус
В этой теме нельзя размещать новые ответы.

sem13

Посетитель
Здравствуйте. Есть поля переключатель, в них данные Я, В, РВ, ОТ, Б и таких полей 31. Нужно посчитать сколько полей с буквой Я и РВ, и сколько с буквой В.
Это табель учёта рабочего времени и в зависимости от того что что стоит в поле переключатель ставится в поле число 8 или 0 (Я или РВ = 8, прочее 0).
Я- явка, РВ- рабочий выходной, ОТ- отпуск, Б- больничный.
 

Vladimir

Администратор
Команда форума
Добрый день.
Используйте функцию String в составном поле, которая возвращает число в зависимости от переключателя.
Вот такая формула в составном будет задавать значение 8 для вариантов Я и РВ:
[String(Тип=Я?8:)][String(Тип=РВ?8:)]
Затем в число копировать значение составного поля.
 

sem13

Посетитель
То, есть 31одно составное поле с этой формулой (разными типами и вместо 8, 1 и так же 31 поле число с полученными единицами, а потом итого?
Или есть проще вариант?
 

Vladimir

Администратор
Команда форума
У Вас 31 поле переключателя. Соответственно нужна обработка для каждого поля, т.е. 31 составных поля + 31 числовое поле. И итоговое поле, суммирующие общие данные - в соответствии с Вашей структурой проекта.
 

sem13

Посетитель
Спасибо понял. Сейчас реализовано через условие, но с составным будет строк чуть меньше.
 

sem13

Посетитель
Ещё раз здравствуйте. Попробовал упростить, не очень получается. Сделал Составное Итого дней, в нем прописал [String(1-=Я?1:)][String(1-=РВ?1:)]+[String(2-=Я?1:)][String(2-=РВ?1:)], на выходе получил 1+1. Можно делать дальше и получить 1+1+1+1 и тд., то есть готовая формула. Можно как то получить итого? 1+1+1+1=итого 4 например.
 

sem13

Посетитель
Есть еще вариант [String(1-=Я?1:)][String(1-=РВ?1:)][String(2-=Я?1:)][String(2-=РВ?1:)], на выходе будет 11, ну или 1111111111 итд. Вот это можно скопировать в число. Теперь как то вытащить количество этих единиц. Есть способ?
 

Ирина

Модератор
Здравствуйте, sem13
А такой вариант табеля подойдет?

Т.к. табель составляется на последний день месяца, в родительском объекте в строке "На дату" заполняется последний день нужного месяца, например, 31.08.2020.
Поля "Месяц" и "Год", заполнятся автоматически (эти поля добавлены для быстрого поиска через фильтр). Правда поле "Год" заполнится только после закрытия (сохранения записи). Почему так, не знаю.
Для удобства, еще добавила поле "Дней/месяц" (количество дней в месяце).

После заполнения родительского объекта, точнее только 2 полей: "На дату" и "Сотрудник", можно заполнять дочерний объект "Рабочее время".
В дочернем объекте поле "Число месяца" заполняется автоматически и соответствует дате месяца.
В поле "Рабочее время" выбирается нужный параметр (Я, В, РВ, ОТ, Б). Поле "Кол-во часов" заполняется автоматически в зависимости от выбранного параметра.

В итоге в родительском объекте автоматически считается общее количество полей с буквами Я, В, РВ, ОТ, Б.
Для полей Я и РВ по отдельности считается общее количество полей с этими буквами, а также общее количество часов Я и РВ (только во вкладке). В список выведено итоговое поле (Я+РВ) с общим количеством дней, а также часов.

P.S. У каждого свои цели и задачи, поэтому это просто пример табеля учета рабочего времени.
Не совсем нужные строки (вкладки и т.п.) можно удалить, скрыть, соответственно, нужные строки вывести в список (изменить, переставить местами и т.д.).
Пример создан в версии конструктора 6.0.29 и немного урезан (по каждому сотруднику заполнено только 10 календарных дней в месяце).
 

Вложения

  • Табель учета рабочего времени.rbase
    3.3 KB · Просмотры: 20
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу