4 / 4 / 0
Регистрация: 03.05.2011
Сообщений: 6
|
|
1 | |
Редактирование записи из DBGrid22.05.2011, 18:02. Показов 23137. Ответов 7
Метки нет (Все метки)
Допустим есть база: ФИО, Дата рождения. Хочу сделать так: в дбгриде ищем нужную нам запись, щелкаем два раза мышкой или жмем кнопку "Редактировать", запускается другая форма куда в Editы передаются значения редактируемой записи из DBGrid'a. Например:Edit1- ФИО, Edit2- дата рождения. Редактируем нужное поле- жмем сохранить и данная запись в базе обновляется. Кто может подсказать как это сделать?
0
|
22.05.2011, 18:02 | |
Ответы с готовыми решениями:
7
Редактирование записи в dbgrid Как сделать добавление/редактирование/удаление записи в dbgrid? Как сделать редактирование записи в таблице DBgrid (база firebird) двойным нажатием кнопки мыши Редактирование DBGrid |
1496 / 1238 / 244
Регистрация: 04.04.2011
Сообщений: 4,362
|
|
23.05.2011, 14:58 | 2 |
1
|
4 / 4 / 0
Регистрация: 03.05.2011
Сообщений: 6
|
|
23.05.2011, 15:08 [ТС] | 3 |
Спасибо. Вчера методом тыка разобрался как это сделать. Кому интересно, сделал так:
на дабл-клик по строке в DBGride завел процедуру: Код
procedure TForm1.DBGrid1DblClick(Sender: TObject); begin Form2.Show; Form2.BitBtn1.Enabled:=False; Form2.Edit9.Text:=Form1.DBGrid1.Fields[0].AsString; Form2.ComboBox1.Text:=Form1.DBGrid1.Fields[1].AsString; Form2.Edit1.Text:=Form1.DBGrid1.Fields[2].AsString; Form2.Edit2.Text:=Form1.DBGrid1.Fields[3].AsString; Form2.Edit3.Text:=Form1.DBGrid1.Fields[4].AsString; Form2.Edit4.Text:=Form1.DBGrid1.Fields[5].AsString; Form2.Edit5.Text:=Form1.DBGrid1.Fields[6].AsString; Form2.Edit6.Text:=Form1.DBGrid1.Fields[7].AsString; Form2.ComboBox2.Text:=Form1.DBGrid1.Fields[8].AsString; Form2.Edit7.Text:=Form1.DBGrid1.Fields[10].AsString; Form2.Edit8.Text:=Form1.DBGrid1.Fields[11].AsString; end; Отображает форму редактирования(она же ранее форма ввода), кнопку, которая отвечает за добавление новой записи, делает неактивной Код
Form2.Show; Form2.BitBtn1.Enabled:=False; Код
procedure TForm2.BitBtn2Click(Sender: TObject); begin Try DM.ADOConnection1.BeginTrans; with DM.Edit do begin Parameters.ParamByName('@ID_organiz').Value:=edit9.Text; Parameters.ParamByName('@Type').Value:=Combobox1.text; Parameters.ParamByName('@name').Value:=Edit1.Text; Parameters.ParamByName('@INN').Value:=Edit2.Text; Parameters.ParamByName('@KPP').Value:=Edit3.Text; Parameters.ParamByName('@OGRN').Value:=Edit4.Text; Parameters.ParamByName('@podr').Value:=Edit5.Text; Parameters.ParamByName('@gorod').Value:=Edit6.Text; Parameters.ParamByName('@FSS_nom').Value:=Edit7.Text; Parameters.ParamByName('@Region').Value:=Combobox2.text; Parameters.ParamByName('@Kp_FSS').Value:=Edit8.Text; end; DM.Edit.ExecProc; DM.ADOConnection1.CommitTrans; except DM.ADOConnection1.RollbackTrans; ShowMessage('Невозможно выполнить. Повторите!'); end; DM.Zapros_org.Active:=False; DM.Zapros_org.Active:=True; end;
4
|
150 / 150 / 3
Регистрация: 05.05.2010
Сообщений: 570
|
|
23.05.2011, 15:13 | 4 |
А что за БД?
Или именно Edit`ы надо использовать?
0
|
4 / 4 / 0
Регистрация: 03.05.2011
Сообщений: 6
|
|
23.05.2011, 15:22 [ТС] | 5 |
Да. В том то и дело: что в форме редактирования, есть 2 вкладки: данные организации и ответственные лица. В отв.лицах еще один DBGrid, где перечислены сотрудники этой конторы, а в карточке сотрудника должен быть еще 1- где перечислены сертификаты ЭЦП, выданные на это лицо. Поэтому для редактирования записи я и должен вызывать форму с Edit'ами и вложенными DBGrid'aми- как матрешка
Добавлено через 3 минуты БД хранит в себе организации и их сотрудников, кому выданы ключи ЭЦП для торгов, отправки отчетности в единую службу по тарифам и фонд соц.страха. Программа у меня должна хранить данные по сроку действия сертификата и когда подходит срок его менять, в автоматическом или полуавтоматическом режиме, она должна будет отправить уведомление на адрес.эл почты, указанный в сертификате.
0
|
150 / 150 / 3
Регистрация: 05.05.2010
Сообщений: 570
|
|
23.05.2011, 15:30 | 6 |
БД на чем реализована?
Пара замечаний: 1. Сначала значения элементов формы устанавливаем, потом показываем. 2. Вместо использования свойства Active, идеологически правильнее (ИМХО само собой) использовать методы Close и Open
0
|
4 / 4 / 0
Регистрация: 03.05.2011
Сообщений: 6
|
|
23.05.2011, 17:28 [ТС] | 7 |
БД на SQL 2005.
Замечания учту. Просто горит диплом, а мне еще надо научить делфи вытягивать нужные мне данные из сертификата ЭЦП. Тут как то не до красоты кода- это потом Добавлено через 1 час 55 минут Кстати, может кто поможет: Получение данных из файла сертификата ?
0
|
15 / 15 / 6
Регистрация: 31.01.2011
Сообщений: 178
|
|
08.11.2013, 19:19 | 8 |
а что за ExecProc? что подключать надо?
0
|
08.11.2013, 19:19 | |
08.11.2013, 19:19 | |
Помогаю со студенческими работами здесь
8
Редактирование DBgrid Редактирование в dbgrid Редактирование полей в DBGrid Запрет на Редактирование ячейки в dbgrid Редактирование dbgrid разными пользователями Delphi 7 редактирование элемента DBgrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |