Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: 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 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
9-1068816464
Stas
2003-11-14 16:27
2004.05.02
Как нарисовать куб используя OpenGl


7-1079348527
Legran
2004-03-15 14:02
2004.05.02
Отслеживаем обращение к диску А:


11-1066754725
Neon
2003-10-21 20:45
2004.05.02
Как форма может принимать сообщения?


1-1082011855
jenbond
2004-04-15 10:50
2004.05.02
Перехват записи в ini


14-1081833297
Vlad Oshin
2004-04-13 09:14
2004.05.02
Не поможите найти драйвер для AIC7895p(SCSI) под Win2000?