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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2014, 17:25   #1
nastena_r_v
Пользователь
 
Регистрация: 22.05.2012
Сообщений: 30
По умолчанию Автозаполнение полей по нажатию кнопки

Здравствуйте, подскажите как можно выставить автозаполнение полей по нажатию кнопки, по количеству выполненных дней в эдите?
Т.е. если я в эдите1 ввела 9, а в эдите 2 ввела 31 то в полях с id1 по id31 будет стоять число 9, а если в эдите ввела 28, то с id1 по id28 будет стоять 9.
максимум полей id - 31, это дни месяца.
а число для автозаполнения (я привела пример 9) - это количество часов.
nastena_r_v вне форума Ответить с цитированием
Старый 03.06.2014, 07:30   #2
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

В эдит2, насколько я понял, вводится количество дней в месяце? январь - 31, февраль 28 или 29?
Возможно, стоит просто вычислять количество дней в зависимости от месяца
Код:
КолДней:=MonthDays[IsLeapYear(Год)][Месяц]
Запрос можно формировать примерно так:
Код:
with Query do begin
 SQL.Clear;
 SQL.Add('UPDATE Таблица SET');
 for i:=1to КолДней do
  SQL.Add('id'+IntToStr(i)+'=:Param1');
 SQL.Add('WHERE');
 SQL.Add(' id=:id');
 ParamByName('Param1').AsInteger:=StrToInt(Edit1.Text);
 ParamByName('id').AsInteger:=id;
 Prepare;

 & etc
end
superedward вне форума Ответить с цитированием
Старый 03.06.2014, 08:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Запрос можно формировать примерно так:
Неа. Не так. У нее idXX это имена полей. Соответственно:
Код:
var v,s:string; k,i,j:integer;
...
s:='';
if TryStrToInt(Edit1.text,i) and TryStrToInt(Edit2.text,j) then begin
 for k:=i to j do begin 
  if s<>'' then s:=','+s;
  if v<>'' then v:=','+v;
  s:=s+'id'+IntToStr(k); 
  v:=v+IntToStr(k); 
 end;
 s:='insert into таблица ('+s+') values ('+v+');
 И уже запрос в переменке s скармливать в Query
end;
Это если использовать Query. А что там у настены крутится не известно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2014, 09:46   #4
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Неа. Не так. У нее idXX это имена полей.
Вы слишком на себя берёте.
Просто у меня запрос UPDATE, у вас INSERT
superedward вне форума Ответить с цитированием
Старый 03.06.2014, 10:41   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ну да, сорри, это я видимо не туда глянул.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозаполнение полей на сайте Dima170792 Работа с сетью в Delphi 0 27.11.2013 23:50
Автозаполнение полей формы Forest62 Microsoft Office Access 1 08.07.2013 10:27
Как сделать автозаполнение полей В WebBrowser Deryagtev Помощь студентам 2 18.04.2012 12:49
FormCloseQuery по нажатию кнопки bulldog5293 Общие вопросы Delphi 3 17.10.2011 15:37
Автозаполнение полей Максим_Леонидович Общие вопросы Delphi 5 17.08.2008 00:51