Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизФорма для добавления поля в DBGrid(Eh) Найти похожие ветки
← →
Brain Force (2004-04-05 11:16) [0]Доброе время суток.
Имеется следующая задача. В DBGrig(Eh) существует несколько полей. Часть из них заполняется непосредственно в таблице. Для поля "Info" необходимо вызвать форму, которая позволит заполнить часть скрытых полей данной записи и выведет в соотв. колонку суммарное значение.
Заранее благодарен всем, кто отликнется :)
← →
DenK_vrtz © (2004-04-05 11:19) [1]Вопрос самим угадать?
← →
Vlad © (2004-04-05 11:24) [2]
> Brain Force (05.04.04 11:16)
Ну так сделай у поля Info ButtonStyle=cbsEllipsis, и в этом поле (при фокусе ввода) будет отображаться кнопка. По нажатию на которой ты можешь показать какую угодно форму.
← →
Brain Force (2004-04-05 12:37) [3]Вызвать форму - не проблема. Проблема - в том как вставить введенные значения в текущую запись... При нажатие на кнопку, БД находится в режиме редактирования, однако если попытаться напрямую вставить значения:
table1["field1"] := xxxx;
программа вываливается с сообщением об ошибке "Dataset not in edit or insert mode"
← →
Andriy Tysh © (2004-04-05 14:12) [4]Конечно, а Edit-Post кто делать будет?
← →
Brain Force (2004-04-05 16:18) [5]Разумеется Edit-Post я делаю... однако проблема в следующем - не расчитывается суммарное поле. У меня это реализовано следущим образом:
procedure TDM.Table1CalcFields((DataSet: TDataSet);
begin
table1["info"] := tabel1["field1"] + tabel1["field2"];
end;
однако, после того, как форма ввода закрывается и вставляются значения в таблицу, значение "info" = NULL (проверял на трассировке) и в соотв. ячейке ничего не отображается
← →
Andriy Tysh © (2004-04-05 18:43) [6]Тоесть Calculated-Field, а не сумарное. Тоесть оно у вас "суммарное", а называется калькулятивное(исчесляемое). Попробуйте такой примитив: програмно сделать скролл по записям взад-вперёд.
К тому же у ДБГридЕх есть свойство ExternalRecalc. Попробуйте его поставить в тру.
Иль вызывайте пересчёт самостоятельно. Чего дожидаться пока его сделает кто-то за вас?
← →
Vlad © (2004-04-05 18:54) [7]
> 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 ?
На оба вопроса ответ д.б. положительный.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 3.03 c