![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 13
|
![]()
Люди добрые подскажите:
У меня есть поле Начисленная зарплата и дата заболевания и выздоровления. Как правильно написать код, чтоб считался больничный в процедуре ComboBoxChange(выбор месяца). Я все написала, а он не считает, говорят надо что-то добавить в начале и в конце, чтоб таблица запоминала это. Вот эта процедура: procedure TBaseForm.ComboBox1Change(Sender: TObject); var Year,Month,Day{дата заболевания},Year2,Month2,Day2{дата выздоровления},Year3,Month3,Day3{да та поступления на работу}:Word; den{стоимость одного дня},denbol{стоимость одного дня по больничному}:word; begin den:=0; denbol:=0; SysUtils.DecodeDate(DataModule2.Boo kTableDateTimeField2.Value,Year,Mon th,day); //Процедура превода типа TDateTime в прееменные дата, день, год SysUtils.DecodeDate(DataModule2.Boo kTableDateTimeField3.Value,Year2,Mo nth2,day2); SysUtils.DecodeDate(DataModule2.Boo kTableDateTimeField.Value,Year3,Mon th3,day3); case ComboBox1.ItemIndex of 0,2,4,6,7,9,11en:=round(DataModul e2.BookTableBCDField2.AsInteger/31); 3,5,8,10: den:=round(DataModule2.BookTableBCD Field2.AsInteger/30); 1: den:=round(DataModule2.BookTableBCD Field2.AsInteger/28); //находим стоимость рабочего дня относительно от месяца end; if god-Year3<2 then denbol:=round(den*0.5); if (god-Year3>2) and (god-Year3<4) then denbol:=round(den*0.8); //находим стоимость дня по больничному относительно стажа работы if ComboBox1.ItemIndex+1=Month then begin if Month<>Month2 then case ComboBox1.ItemIndex of 0,2,4,6,7,9,11: DataModule2.BookTableBCDField2.Valu e:=Day*den+(31-Day)*denbol; 3,5,8,10:DataModule2.BookTableBCDFi eld2.Value:=Day*den+(30-Day)*denbol; 1:DataModule2.BookTableBCDField2.Va lue:=Day*den+(28-Day)*denbol; end; if Month=Month2 then case ComboBox1.ItemIndex of 0,2,4,6,7,9,11:DataModule2.BookTabl eBCDField2.Value:=(31-(Day2-Day))*den+(Day2-Day)*denbol; 3,5,8,10:DataModule2.BookTableBCDFi eld2.Value:=(30-(Day2-Day))*den+(Day2-Day)*denbol; 1: DataModule2.BookTableBCDField2.Valu e:=(28-(Day2-Day))*den+(Day2-Day)*denbol; end; end; if ComboBox1.ItemIndex+1=Month2 then case ComboBox1.ItemIndex of 0,2,4,6,7,9,11:DataModule2.BookTabl eBCDField2.Value:=Day2*denbol+(31-Day2)*den; 3,5,8,10: DataModule2.BookTableBCDField2.Valu e:=Day2*denbol+(30-Day2)*den; 1: DataModule2.BookTableBCDField2.Valu e:=Day2*denbol+(28-Day2)*den; end; end; //DataModule2.BookTableBCDField2-начисленная зарплата
Спят усталые админы, мышки спят.Флешки и клавиатуры ждут ребят.Windows тоже спать ложится, Чтобы ночью нам приснитьсяАську закрывай. Баю-бай.
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
под словом "чтоб таблица запоминала это" видимо имеется ввиду сохранение на диск? Или вычислимое поле?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 13
|
![]()
Имеется ввиду, чтобы это поле меняло свое значение с учетом этих вычислений
Спят усталые админы, мышки спят.Флешки и клавиатуры ждут ребят.Windows тоже спать ложится, Чтобы ночью нам приснитьсяАську закрывай. Баю-бай.
|
![]() |
![]() |
![]() |
#4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Если изменения должны сохраняться примени метод post.
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 13
|
![]()
Это написать в конце всей этой процедуры?
Спят усталые админы, мышки спят.Флешки и клавиатуры ждут ребят.Windows тоже спать ложится, Чтобы ночью нам приснитьсяАську закрывай. Баю-бай.
|
![]() |
![]() |
![]() |
#6 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]()
кагтотаг
Код:
1) каменты к коду принято писать до описываемых действий 2) у вас такая специфика или вы не знаете чем кол-во рабочих дней в месяце отличается от кол-ва дней в месяце?! 3) алгоритм будет условно рабочим (с учетом п.2) каждые 3 года из 4х |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма вычисляемого поля TTable | Anton.sev | Общие вопросы Delphi | 1 | 10.05.2010 20:31 |
Изменение вычисляемого поля в коде | Земляника | SQL, базы данных | 0 | 04.06.2009 10:02 |
Изменение функции поля сводной таблицы | Lal | Microsoft Office Excel | 3 | 05.03.2009 16:47 |
Изменение связаного поля (Delphi, BDE, Paradox) | Шульц | БД в Delphi | 4 | 08.01.2009 06:51 |
изменение содержимого поля edit | truel | Win Api | 1 | 21.04.2008 12:31 |