![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма для добавления поля в 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]Вопрос самим угадать?