Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форма для добавления поля в DBGrid(Eh) [D6, Paradox]


Brain Force ©   (2004-04-05 11:16:00) 

Доброе время суток.

Имеется следующая задача. В DBGrig(Eh) существует несколько полей. Часть из них заполняется непосредственно в таблице. Для поля "Info" необходимо вызвать форму, которая позволит заполнить часть скрытых полей данной записи и выведет в соотв. колонку суммарное значение.

Заранее благодарен всем, кто отликнется :)


Vlad   (2004-04-05 18:54:00) [1]


> Brain Force   (05.04.04 16:18) [5]

Нда.. как быстро тема вопроса поменялась ;-)
Добрый совет, так не делай:

>  table1['info'] := tabel1['field1'] + tabel1['field2'];

делай так:
table1.FieldByName('info').AsInteger := table1.FieldByName('field1').AsInteger + table1.FieldByName('field2').AsInteger;

По теме. Ты уверен, что после того как форма закрывается, данные на самом деле вставляются в таблицу ?
Если да, то после этого происходит Post ?
На оба вопроса ответ д.б. положительный.


Andriy Tysh   (2004-04-05 18:43:00) [2]

Тоесть Calculated-Field, а не сумарное. Тоесть оно у вас "суммарное", а называется калькулятивное(исчесляемое). Попробуйте такой примитив: програмно сделать скролл по записям взад-вперёд.
К тому же у ДБГридЕх есть свойство ExternalRecalc. Попробуйте его поставить в тру.
Иль вызывайте пересчёт самостоятельно. Чего дожидаться пока его сделает кто-то за вас?


Brain Force   (2004-04-05 16:18:00) [3]

Разумеется Edit-Post я делаю... однако проблема в следующем - не расчитывается суммарное поле. У меня это реализовано следущим образом:

procedure TDM.Table1CalcFields((DataSet: TDataSet);
begin
 table1['info'] := tabel1['field1'] + tabel1['field2'];
end;

однако, после того, как форма ввода закрывается и вставляются значения в таблицу, значение 'info' = NULL (проверял на трассировке) и в соотв. ячейке ничего не отображается


Andriy Tysh   (2004-04-05 14:12:00) [4]

Конечно, а Edit-Post кто делать будет?


Brain Force   (2004-04-05 12:37:00) [5]

Вызвать форму - не проблема. Проблема - в том как вставить введенные значения в текущую запись... При нажатие на кнопку, БД находится в режиме редактирования, однако если попытаться напрямую вставить значения:
table1['field1'] := xxxx;
программа вываливается с сообщением об ошибке 'Dataset not in edit or insert mode'


Vlad   (2004-04-05 11:24:00) [6]


> Brain Force   (05.04.04 11:16)  

Ну так сделай у поля Info ButtonStyle=cbsEllipsis, и в этом поле (при фокусе ввода) будет отображаться кнопка. По нажатию на которой ты можешь показать какую угодно форму.


DenK_vrtz   (2004-04-05 11:19:00) [7]

Вопрос самим угадать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо