|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2012, 17:40 | #1 |
Регистрация: 21.02.2012
Сообщений: 3
|
Выполнение расчета по одному нажатию Кнопки.
Привет всем! помогите пожалуйста разобраться. Я делаю расчеты по Таблице. Но мне приходиться
2 раза нажимать на одну и ту же кнопку, чтобы весь расчет был полностью завершен. при втором нажатии на кнопку срабатывает эта функция. DataSource2->DataSet->FieldByName("Plastik")->Value = floor(Plastik); Как избежать двойного нажатия на кнопку? я даже в конце кода поставил Button3->OnClick; чтобы он сам себя кликал. Button3->OnClick; Но не срабатывает. Вот мой пример Кода: void __fastcall TForm1::Button3Click(TObject *Sender) { float Nalog,S,S2,Zarplata,Plastik,Nalichk a; Table2->First(); while(!Table2->Eof) { S = (Table2Oklad->Value)/(Table2PrivChasi->Value); S2 = S*(Table2OtRChasi->Value); Nalog = (Table2PodohodNalog->Value + Table2PenFond->Value + Table2ProFsouz->Value+Table2Alimenti->Value+Table2PenNak->Value)*(0.01)* S2; Zarplata = S2-(Nalog)-(Table2Svet->Value+Table2Gaz->Value+Table2Subbotnik->Value); Plastik = Zarplata*(0.01)*(StrToInt(Table2Pla stic->Text)); Nalichka = Zarplata -Plastik; DataSource2->DataSet->Edit(); DataSource2->DataSet->FieldByName("Plastik")->Value = floor(Plastik); DataSource2->DataSet->FieldByName("KViplate")->Value = floor(Nalichka); // if (DataSource2->DataSet->FieldByName("KViplate")->Value <=0 ) { DataSource2->DataSet->FieldByName("KViplate")->Value = 0; } // DataSource2->DataSet->FieldByName("PodSum")->Value = floor(S2*(Table2PodohodNalog->Value)*(0.01)); DataSource2->DataSet->FieldByName("PenFSum")->Value = floor(S2*(Table2PenFond->Value)*(0.01)); DataSource2->DataSet->FieldByName("ProFSum")->Value = floor(S2*(Table2ProFsouz->Value)*(0.01)); DataSource2->DataSet->FieldByName("PenNakSum")->Value = floor(S2*(Table2PenNak->Value)*(0.01)); DataSource2->DataSet->FieldByName("AlimSum")->Value = floor(S2*(Table2Alimenti->Value)*(0.01)); DataSource2->DataSet->FieldByName("Nachisleno")->Value = floor(S2); if (Table2PodohodNalog->Text == Form3->DBEdit8->Text) { DataSource2->DataSet->FieldByName("PodSum")->Value = floor((0.01)*(S2)*StrToInt(Form3->DBEdit8->Text)); } if (Table2PodohodNalog->Text == Form3->DBEdit9->Text) { DataSource2->DataSet->FieldByName("PodSum")->Value = floor((S2)*(0.01)*StrToInt(Form3->DBEdit9->Text)) - floor((0.3)*StrToInt(Form3->DBEdit7->Text)); } if (Table2PodohodNalog->Text == Form3->DBEdit10->Text) { DataSource2->DataSet->FieldByName("PodSum")->Value = floor((S2)*(0.01)*StrToInt(Form3->DBEdit10->Text)) - floor((0.9)*StrToInt(Form3->DBEdit7->Text)); } DataSource2->DataSet->Post(); Table2->Next(); } Table2->First(); Button3->OnClick; Button3->OnClick; } Все ровно приходиться 2 раза нажимать. Помогите советами. Заранее Благодарю. Даже в базе Acces тоже самое приходиться два раза нажимать на кнопку, чтобы расчет полностью выполнился. Может сам DataSet не рассчитан для таких операций. Может есть другой способ задать цикл для всей таблице. |
22.02.2012, 17:43 | #2 |
Регистрация: 21.02.2012
Сообщений: 3
|
Ну это явно не в компиляторе и не в операционке дело. Помогите советами очень прошу.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FormCloseQuery по нажатию кнопки | bulldog5293 | Общие вопросы Delphi | 3 | 17.10.2011 15:37 |
по нажатию кнопки на 2 форме перезагружалась 1 | Linore | Общие вопросы .NET | 2 | 28.02.2010 22:20 |
Показать окно по нажатию кнопки | L.A.M.E.R. | Общие вопросы Delphi | 6 | 20.07.2009 22:22 |
Передача фокуса по нажатию кнопки | Ch00kan0ff | Общие вопросы C/C++ | 2 | 27.03.2009 20:53 |
Сортировка по нажатию кнопки | Nate-p | Microsoft Office Access | 2 | 25.06.2008 08:35 |