Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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 тоже спать ложится, Чтобы ночью нам приснитьсяАську закрывай. Баю-бай.
Земляника вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма вычисляемого поля 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