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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 16:22   #1
Анастас
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 35
По умолчанию Вычисляемое поле в dbgride

я сделала вычисляемое поле в dbgride, затем вызвала событие CalcFields компонента table и записала код, запускаю прогу и она автоматически подсчитывает поля в dbgride, а мне надо чтобы при нажатии кнопки подсчитывалось в dbgride...как вызвать в кнопке событие CalcFields????
Анастас вне форума
Старый 18.10.2011, 16:29   #2
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Your_Dataset.Open на кнопку поставьте, и измените свойство Active на False, your_dataset. Либо просто поставьте поле как fkData, а на кнопку проведите вычисления.

Последний раз редактировалось Drugnir; 18.10.2011 в 16:34.
Drugnir вне форума
Старый 18.10.2011, 16:32   #3
Анастас
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 35
По умолчанию

не поняла, это как
Анастас вне форума
Старый 18.10.2011, 16:35   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Анастас Посмотреть сообщение
а мне надо чтобы при нажатии кнопки подсчитывалось в dbgride...как вызвать в кнопке событие CalcFields????
Поставьте свойство AutoCalcFields вашей таблицы в False по умолчанию.
А по событию нажатия кнопки сделайте примерно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MyTable.AutoCalcFields:=True;
Application.ProcessMessages;
MyTable.AutoCalcFields:=False;
end;
mihali4 вне форума
Старый 18.10.2011, 16:38   #5
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Согласен с mihali4

Только AutoCalcFields выставляется в Dataset.

Последний раз редактировалось mihali4; 18.10.2011 в 19:13.
Drugnir вне форума
Старый 18.10.2011, 16:48   #6
Анастас
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 35
По умолчанию

сделала так, программа запускается, но при нажатии кнопки ничего не появляется...

а что это значит "Только AutoCalcFields выставляется в Dataset"?

Последний раз редактировалось mihali4; 18.10.2011 в 19:13.
Анастас вне форума
Старый 18.10.2011, 16:51   #7
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Конечно, ведь
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MyTable.AutoCalcFields:=True;
Application.ProcessMessages;
MyTable.AutoCalcFields:=False;
end;
Эта кнопка отключает, вычисляемые поля.
Свойство AutoCalcFields поставьте изначально в False. А на кнопку

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MyTable.AutoCalcFields:=False;
Application.ProcessMessages;
MyTable.AutoCalcFields:=True;
end;
Цитата:
Сообщение от Анастас Посмотреть сообщение
а что это значит "Только AutoCalcFields выставляется в Dataset"?
У компоненты Dataset, свойство AutoCalcFields. А не у DBGrid.

Последний раз редактировалось mihali4; 19.10.2011 в 23:21.
Drugnir вне форума
Старый 18.10.2011, 16:54   #8
Анастас
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 35
По умолчанию

я так и сделала, но ничего не происходит.
Анастас вне форума
Старый 18.10.2011, 16:55   #9
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Покажите код кнопки
Drugnir вне форума
Старый 18.10.2011, 16:56   #10
Анастас
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 35
По умолчанию

так у меня всего три компонента, тэйбл, соурсе и грид, и свойство автокал только у компонента тэйбл

Код:
procedure TForm24.tb_detailsCalcFields(DataSet: TDataSet);
begin
if ComboBox1.Text='1'
then
tb_detailsAmortizaciya.Value:=(tb_detailsPrice.Value*25)/100;
begin
if
ComboBox1.Text='2'
then
tb_detailsAmortizaciya.Value:=(tb_detailsPrice.Value*25*1.5)/100;
end;
  end;

procedure TForm24.Button1Click(Sender: TObject);
begin
tb_details.AutoCalcFields:=False;
Application.ProcessMessages;
tb_details.AutoCalcFields:=true;

end;
Пора бы уже и прочесть правила раздела...
Там написано, как правильно нужно оформлять код.

Последний раз редактировалось mihali4; 19.10.2011 в 23:20.
Анастас вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисляемое поле Jekonea Помощь студентам 0 21.05.2011 22:00
Вычисляемое поле в DBgride ккостя БД в Delphi 7 10.06.2010 11:25
Вычисляемое поле в таблице ACCESS, создать вычисляемое поля в таблице аксес artlayers Microsoft Office Access 2 04.11.2009 19:29
Вычисляемое поле goodwinrock БД в Delphi 5 30.01.2009 15:27