Вниз
Скачать: CL | DM;

Форма для добавления поля в 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.033 c
14-1081614216
Yozh_Programmer
2004-04-10 20:23
2004.05.02
Нет ли у кого ссылки на программинг для начинающих???


14-1081421569
Igor_thief
2004-04-08 14:52
2004.05.02
Currency


1-1081864133
Viking
2004-04-13 17:48
2004.05.02
Вопрос по работе с Delphi Open Tools Api


1-1082243250
nsvi
2004-04-18 03:07
2004.05.02
WebBrowser поиск во фреймах


9-1068383585
DDS
2003-11-09 16:13
2004.05.02
OpenGL: Как запомнить,а потом восстановить текущие координаты.




   Наверх