|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.05.2007, 17:03 | #11 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Работает, спасибо )))
|
12.05.2007, 21:36 | #12 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
begin
k:=0; DShkola.Children.RecNo:=1; for j:=1 to 6 do begin DShkola.Teacher.RecNo:=j; for i:=3 to 6 do begin k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Append; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; exit; end; вот какая процедура у меня в итоге получилась. Она работает, но записывает, то что мне надо в таблицу CHILDREN, добавляя новую строку. А как сделать, чтобы записывалось в туже строку из которой брались данные для подсчета, т.е. вот в эту DShkola.Children.RecNo:=1; |
14.05.2007, 07:42 | #13 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Table1.RecNo:= //Перевести указатель
Table1.Delete;//Стереть строку Table1.InsertRecord([Form2.edit1.Text,Form2.Edit2.Text.. .Все поля через ЗПТ]);//Вставить новую P.S.:Должен быть способ и попроще.
Life is too short, play more...
Как правильно задавать вопросы |
14.05.2007, 13:22 | #14 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
begin
k:=0; DShkola.Children.RecNo:=1; for j:=1 to 6 do begin DShkola.Teacher.RecNo:=j; for i:=3 to 6 do begin k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Append; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; exit; end; Если в этой процедуре заменить строчку DShkola.Children.Append; на строчку DShkola.Children.Edit , тогда оно у меня строку не добавляет, но записывает результат в выделенную строку, а как сделать чтобы оно записывало во все строки подряд, т.е начинало и с первой и автоматически после каждой записи переводило курсор? |
14.05.2007, 13:45 | #15 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Чем неподходит то-что выше?
После Edit надо вобще-то ApplyRange;
Life is too short, play more...
Как правильно задавать вопросы |
14.05.2007, 14:09 | #16 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Странный у Вас алгоритм!
Append - добавляет запись в конец(!) DShkola.Children.RecNo:=i; // переход на нужную строку DShkola.Teacher.RecNo:=j; // переход на нужную строку DShkola.Children.Delete; // удаляем эту строку со старыми записями DShkola.Children.InsertRecord([DShkola.Teacher.Fields[0].text,DShkola.Teacher.Fields[1].text,DShkola.Teacher.Fields[2].text.......]); // вставляем новую Не проверял, но в [ ] должен быть тип String
Life is too short, play more...
Как правильно задавать вопросы |
14.05.2007, 15:07 | #17 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
То что віше не подходит, т.к. у меня неоткуда потом заново данніе в єту строку записывать. Это надо ставить дополнительные компоненты и бросать все туда-сюда. Я потом это пробую, если больше ничего не придумаю )))
А что делает ApplyRange? |
14.05.2007, 15:09 | #18 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
В том-то и дело, что мне не надо всю строку менять, а просто дописать значение в одно поле.
А алгоритм у меня странный, потому что я абсолютно ничего в этом не смыслю и с БД первый раз пришлось дело иметь. ))))) |
14.05.2007, 15:12 | #19 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Я уже тут такого намутила и такими способами, что кошмар!!! Оно уже почти делает то что надо, ну конечно не до конца еще....
|
14.05.2007, 15:15 | #20 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
begin
for s:=1 to DShkola.Children.RecordCount do begin DShkola.Teacher.RecNo:=1; DShkola.Children.RecNo:=1; k:=0; for j:=1 to 6 do begin k:=0; for i:=3 to 6 do k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); //ShowMessage(inttostr(k)); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Edit; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; end else DShkola.Teacher.Next; end; DShkola.Children.Next; DShkola.Teacher.RecNo:=1; end; теперь оно у меня вот так выглядит |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
непонятки с данными | KiSH333 | БД в Delphi | 5 | 01.09.2008 08:36 |
Файл с данными | werser | БД в Delphi | 1 | 24.05.2008 23:40 |
сравнение с данными в таблице | Apo | БД в Delphi | 5 | 31.03.2008 19:24 |
Обмен данными по сети | Altera | Работа с сетью в Delphi | 2 | 23.02.2008 00:13 |
Операции над данными в ListBox | Mr.User | Помощь студентам | 14 | 23.11.2007 03:26 |