Разбиение числа на группы - PullRequest
0 голосов
/ 29 января 2012

Я пытаюсь сделать формулу в Infopath:

Скажем, у меня есть 3 поля с именами singles, 10's и 25's.

У меня также есть другое поле, гдепользователь набрал номер.

Если пользователь, например, наберет 15, это должно заполнить 10, заполненные 1, а поле синглов - 5.

Если пользователь набрал 49 в поле, то 25будет заполнено 1, 10 - 2, а одиночные - 4.

Если они наберут 50, то поле 25 заполнится 2.

Кто-нибудь имеет представлениегде я мог бы начать делать это?

Большое спасибо заранее.

Джейсон

1 Ответ

0 голосов
/ 01 февраля 2012

Вот основы решения (которое было быстро проверено в IP).Я оставляю математические особенности на ваше усмотрение, на случай, если это проблема HW.Если у вас есть определенные проблемы, отправьте сообщение назад, и мы можем помочь.

Установите правило для вашего поля ввода без каких-либо условий, поэтому оно будет срабатывать при каждом изменении поля.

Использование числовой функции в полечтобы иметь возможность использовать его в расчетах.У Infopath нет функции мода, поэтому делите на пол и вычитание.

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

Так, например, ваши 25действие поля было бы floor (число (поле ввода) / 25).
Ваше действие 10s было бы floor (число (поле ввода) - число (поле 25) * 25) / 10).
и т. д. для каждого (и примечаниечто поле с единицами - это то, что осталось - без разрыва или минимума).

...