Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод в dbgrid с отдельного окна 
:(
    Опции темы
Timurrr
Дата 23.5.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.5.2006

Репутация: нет
Всего: нет



Подскажите как сделать контроль ввода в dbgrid и как ввести в dbgrid через отдельное окно?  
PM MAIL   Вверх
x77
Дата 24.5.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 1
Всего: 22



постановка вопроса несколько неверна. ввод идёт в потомок TDataSet'a: Table или Query, и именно там должен осуществляться контроль ввода, для чего существуют Constraints, события BeforePost или OnPostError, и пр., а грид служит большей частью для отображения информации. даже если в нём осуществляется какой-то ввод, контроль этого ввода всё равно ложится на связанный с гридом набор данных, т.к. именно туда этот ввод в конечном итоге попадёт. 

"ввод через отдельное окно" с гридом также связан мало. в общем случае создаётся диалоговое окно, на котором располагаются db-aware контролы, связанные с набором данных. далее делается что-то вроде

Код

  ...
  Table1.Insert;
  if Form1.ShowModal = mrOk then
    Table1.Post
  else
    Table1.Cancel;
  ...


если всё это живёт в рамках одной транзакции, то по мере внесения данных они сразу будут становиться видны в гриде, в противном случае транзакцию, связанную с гридом придётся переоткрыть и данные станут видны. 


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Palladin
Дата 4.6.2006, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Чтобы ввести в дбгрид через отдельное окно используй компоненты dbedit в них проставляй конект к нужному adotable или adotable(ты не указал что юзаешsmile) потом указываеш нужное поле и т.д.

Создай форму накидай туда dbedit-ы потом при вызове с главной формы пиши 
Код

adotable1.insert;     //делает пустую строку
dbgrid1.setfocus;     // передаёт на неё фокус
form2.Show;            // открывается редактирующая форма


на редактирующая форме на кнопке (допустим добавить) пишеш 

Код

procedure TForm2.Button1Click(Sender: TObject);
begin
if (length(dbedit1.text)>0)and(length(dbedit2.text)>0)and(length(dbedit3.text)>0)and
(length(dbedit4.text)>0)and(length(dbedit5.text)>0)and(length(dbedit6.text)>0)and
(length(dbedit7.text)>0)and(length(dbedit8.text)>0)and(length(dbedit9.text)>0) {здесь мы проверяем ввели ли во все поля данные(я сделал 9, у тебя может быть и меньше) если да то то всё добавляется если нет то выдастся уведомление об ошибке}
then
begin
if application.MessageBox(PCHar('Вы не ввели данные во все поля') 
,'АХТУНГ:)!!!',MB_OKCANCEL)=id_ok then         { а вот они и ошибки:)))}
if adotable1.Modified then       {если произошли изменения в adotable то заносится в БД запись}
adotable1.Post;  {постим запись}
form2.close; //потом закрывается форма
end;
end;


Кстати такой же код если ты захочеш сделать возможность редактирования, только при вызове этой вормы не пиши 
Код

adotable1.insert; 
dbgrid1.setfocus;
 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.