![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBgrid присвоить значение столбцу [D7, XP]
D@sha © (2009-08-09 04:01:00)Нужно что при определенном условии конкретные столбцы дбгрида заполнялись одними и теми же данными... Не знаю как обратиться к конкреной ячейке двгрида?
Dennis I. Komarov (2009-08-11 14:38:00) [1]
> Очевидно, что-то вроде этого и требуется автору сабжа.
ну давай будем говорить непосредственно по коду, при [8] данные из датасет мы потеряем, а откуда они уже там взялись и что это за данные это вопрос Даше...
MsGuns (2009-08-11 14:15:00) [2]Нет, не разные. Но "табельная" таблица обязана иметь по крайней мере 2 ключа: месяц и подразделение. При создании нового табеля (а именно при этом требуется инициализация) программа копирует содержимое табеля за прошлый месяц, но все поля кроме ФИО и чего-то там сопутствующего чистит. После инициализации в БД будет занесен чистый табель, который и заполняется пользователем через датасет.
Очевидно, что-то вроде этого и требуется автору сабжа.
Dennis I. Komarov (2009-08-11 12:49:00) [3]
> Нет.
Т.е. DBGrid1.DataSource.DataSet и реальный DataSet в данном случае разные вещи?
MsGuns (2009-08-11 10:15:00) [4]>Dennis I. Komarov © (11.08.09 09:32) [10]
>Угу, и в результате потерять данные в датасете?
Нет.
Dennis I. Komarov (2009-08-11 09:32:00) [5]Угу, и в результате потерять данные в датасете?
> D@sha © (11.08.09 06:48) [4]
> мне нужно чтоб первые три столбца с данными были постоянными
> и неменялись, а все остальные при нажатии на кнопку очищались
> и можно забивать туда новые данные...
Прямая дорога к TStringGrid, хотя я предпочитаю TListView
> Я захожу в апдейт и он мне предлагает выбрать событие онклик
> на кнопки которые у меня на форме... а как сделать очистку
> заданных столбцев?
Так где надо очищать? В таблице или на экране? (см. [2])
MsGuns (2009-08-11 09:15:00) [6]Пардон, в цикле надо добавить две строки:
Edit в начале и Post в конце
MsGuns (2009-08-11 09:13:00) [7]"Ежики кололись, но упорно продолжали дезть на кактус" :)
Типа все же делаем табель ?
1. Если нужно просто запретить ввод в некоторые колонки, то достаточно в TField, на которые эти колонки ссылаются, поставить ReadOnly. Если нужно сделать их фиксированным (т.е. не убираемыми с экрана при гориз.скроллинге), то либо надо "подхимичить" грид через его предка , либо использовать TStringGrid но с иной технологией обмена с БД
2.Очистить нужные колонки грида можно очистив соотв.им поля датасета, "пробежав" по всем его записям. Например, так:
procedure TForm1.InitTabel;
begin
with DBGrid1.DataSource.DataSet do
begin
DisableControl; // Во избежания моргания
First;
while not eof do
begin
FieldByName('Field1').AsString := '';
FieldByName('Field2').AsString := '';
...
end;
First;
EnableControl;
end;
end;
Однако такая технология чревата лишними обращениями к базе.
И все ж таки послушайтесь совета и купите готовую программу.
Или найдите хорошего мужа :)
Ну или в конце концов читайте хэлпы и вообще учитесь !
Sergey13 (2009-08-11 08:34:00) [8]> [4] D@sha © (11.08.09 06:48)
> все остальные при нажатии на кнопку очищались и можно забивать
> туда новые данные...
В 99.9% случаев это неправильный подход к построению системы. Вернее это "экселевский" подход. Не надо ничего удалять и очищать. Надо добавлять новые записи.
ЗЫ: Если это дописывание табеля, значит ты двоечница.
MonoLife (2009-08-11 07:25:00) [9]
> D@sha © (09.08.09 04:01)
Вы всё пытаете табель или это новое ТЗ?
MonoLife (2009-08-11 07:23:00) [10]
> D@sha © (11.08.09 06:48) [4]
Используйте TStringGrid: динамически заполняйте нужные столбцы "постоянными" данными и данными из DataSet
D@sha (2009-08-11 06:48:00) [11]Юрий Зотов © (09.08.09 11:39) [2]
а можно конкретнее??? есть таблица, мне нужно чтоб первые три столбца с данными были постоянными и неменялись, а все остальные при нажатии на кнопку очищались и можно забивать туда новые данные...
Я захожу в апдейт и он мне предлагает выбрать событие онклик на кнопки которые у меня на форме... а как сделать очистку заданных столбцев?
Anatoly Podgoretsky (2009-08-09 11:40:00) [12]Никого нет
Юрий Зотов (2009-08-09 11:39:00) [13]> D@sha © (09.08.09 04:01)
DBGrid сам по себе не содержит никаких данных. Данные содержатся в DataSet'е, а DBGrid всего лишь отображаетих. Поэтому заполнять данными надо не ячейку DBGrid', а поле DataSet'а. Например, SQL-оператором UPDATE.
Сергей М. (2009-08-09 09:07:00) [14]
> Не знаю как обратиться к конкреной ячейке двгрида
Эй ты, конкретная ячейка двгрида, а ну - быстро заполнись !