Автоматическая расстановка флажков по значению.

Thorr
Дата: 05.03.2008 12:47:46
Есть "функция" напр. (stage), которая высчитывает стаж, и выдает дополнительные отпускные дни в зависимости от него (стажа).
Например: стаж < 10 лет => +0 дней; стаж > 10 лет, но < 15 лет => +2 дня; стаж > 15 лет => +4 дня.
Но на выходе простая цифирь не устроила – требуется три флажка в ряд, с соответствующими значениями.
Помогите, пожалуйста написать этот код =)
im_vooov
Дата: 05.03.2008 12:51:39
Thorr

Помогите, пожалуйста написать этот код =)

а где код?
Анатолий ( Киев )
Дата: 05.03.2008 12:58:35
Если имеется ввиду элемент "Группа переключателей", то проще всего задать свойству OptionValue 3-х флажков значения 0, 2 и 4 соответственно.
В программе достаточно присвоить результат функции св-ву Value группы.
im_vooov
Дата: 05.03.2008 13:17:33
im_vooov
Thorr

Помогите, пожалуйста написать этот код =)

а где код?

ооох, прошу прощения, прочитал ваши слова как "переписать этот код"... Поторопился.
Thorr
Дата: 05.03.2008 14:32:08
Анатолий ( Киев )
Если имеется ввиду элемент "Группа переключателей", то проще всего задать свойству OptionValue 3-х флажков значения 0, 2 и 4 соответственно.
В программе достаточно присвоить результат функции св-ву Value группы.


Не получается =( стоят себе заштрихованные и не чешутся =((
Вот функция вычисления дополнительных дней:

Function AddVac(Date_Labour_Contract As Date) As Integer
Dim YB As Integer
Dim MB As Byte
Dim DB As Byte
Dim K As Integer
Dim M As Integer

YB = Year(Date_Labour_Contract)
MB = Month(Date_Labour_Contract)
DB = Day(Date_Labour_Contract)
K = Year(Date) - YB

If (DateSerial(Year(Date), MB, DB) > Date) Then K = K - 1

M = K

If K < 10 Then M = 0
If K > 10 And K < 15 Then M = 2
If K > 15 Then M = 4

AddVac = M
End Function


Ставлю ее "данные" в свойствах группы. Ну и соответственные значения флажкам.
Что я упустил?
Karfaqen
Дата: 05.03.2008 14:58:10
Thorr
Что я упустил?
Если вы в эту функцию передаете значения поля/контрола, рекомендую параметр функции описать как Variant (чтобы работало для пустых значений), а в функции обработать случай IsNull.
Ну и там в сравнениях числа лет учесть все же случаи равенства для значений 10 и 15.
В остальном все нормально, должно работать.
Thorr
Дата: 05.03.2008 15:31:37
Karfaqen
Если вы в эту функцию передаете значения поля/контрола, рекомендую параметр функции описать как Variant (чтобы работало для пустых значений), а в функции обработать случай IsNull.

А не затруднит ли Вас исполнить небольшой пример для меня ;)
Честно признаться, я не настолько силен в басе, что бы воспринимать столь непринужденный тон =)

Karfaqen
Ну и там в сравнениях числа лет учесть все же случаи равенства для значений 10 и 15.

Да. Спасибо.
Анатолий ( Киев )
Дата: 05.03.2008 15:40:00
Thorr
Дата: 05.03.2008 16:30:43
Анатолий, в вашем примере, значения вводятся в ручную, я же хотел бы иметь их (значения) из функции.
Прикрепляю пример.
Karfaqen
Дата: 05.03.2008 16:44:35
Ваша база данных у меня "имеет неизвестный формат", так что смотрите сами.