|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.06.2009, 10:02 | #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;
Спят усталые админы, мышки спят.Флешки и клавиатуры ждут ребят.Windows тоже спать ложится, Чтобы ночью нам приснитьсяАську закрывай. Баю-бай.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма вычисляемого поля TTable | Anton.sev | Общие вопросы Delphi | 1 | 10.05.2010 20:31 |
Изменение функции поля сводной таблицы | Lal | Microsoft Office Excel | 3 | 05.03.2009 16:47 |
Изменение связаного поля (Delphi, BDE, Paradox) | Шульц | БД в Delphi | 4 | 08.01.2009 06:51 |
Ошибка в коде | hacknet | Компоненты Delphi | 12 | 07.12.2008 14:23 |
изменение содержимого поля edit | truel | Win Api | 1 | 21.04.2008 12:31 |