|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
как скопировать строки из DBgrida в другой DBGrid
Собственно на картинке. Первый грид отображает таблицу Товары. Второй грид что то типа заказ. Надо из первого грида по нажатию на строку скопировать ее в второй грид. Поля гридов будут одинаковы. Правда не знаю какой datasourse назначить второму гриду. по нажатию кнопки сохранить должен грид2 сохраниться в отдельную таблицу.
Забыл добавить, использую ADO Последний раз редактировалось Scorpuha, 18.10.2013 в 10:26. |
#2
|
||||
|
||||
гриды только отображают данные
привяжите ко 2 гриду соответствующую таблицу а при нажатии кнопочки, добавляйте во 2ую таблицу нужную запись, например, с помощью запроса Query потом нужно будет только обновить данные во 2 гриде Я за здоровый экстрим! Спасибо за "спасибо") |
#3
|
|||
|
|||
понимаю что гриды только отображают.
в моем варианте по нажатию кнопки сохранить надо креатить табличку, а как ее привязывать ко второму гриду не знаю. |
#4
|
||||
|
||||
Попробуйте скопировать в обычный StringGrid, для примера
Код:
procedure TfrmMain.DBGrid1CellClick(Column: TColumn); var i: integer; begin with DBGrid1.DataSource.DataSet do begin StringGrid1.ColCount:= FieldCount; for i := 0 to Fields.Count-1 do StringGrid1.Cells[i, 0]:= Fields[i].AsString; end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
вот что получилось: сейчас у меня ДБгриде три записи. жму на одну из них и эта запись отображается в стрингриде, жму другую запись в ДБгриде, а запись Стрингриде заменяется , но не добавляется. |
#6
|
||||
|
||||
Добавьте
Код:
StringGrid1.RowCount:= StringGrid1.RowCount+1; Код:
StringGrid1.Cells[i, StringGrid1.RowCount-1]:= Fields[i].AsString; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
сделал вот так, никакой реакции на нажатии мышкой
Код:
var i: integer; begin with DBGrid1.DataSource.DataSet do begin StringGrid1.ColCount:= FieldCount; StringGrid1.RowCount:= StringGrid1.RowCount+1; for i := 0 to Fields.Count-1 do StringGrid1.Cells[i, StringGrid1.RowCount-1]:= Fields[i].AsString; //StringGrid1.Cells[i, 0]:= Fields[i].AsString; |
#8
|
||||
|
||||
У меня работает - в стрингрид добавляется выбранная запись из дибигрида
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
минутку, после нажатия кнопки в нижнии строки стринга стали добавляться строчки из ДБгрида, но почему то за двойной клик в ДБгриде появляется по 2-3 одинаковых строчек в стринге.
|
#10
|
||||
|
||||
Да вы чё, упоролись что ль все тут? Какой Стринг грид. Какое копирование.
У вас должна быть "Таблица Заказов" (Orders) вида: Код:
*ID - порядковый номер (*-означает AutoIncrement) IDClient - Номер клиента из Справочника Клиентов oNumber - номер Заказа oDate - Дата заказа Код:
*ID - порядковый номер IDOrder - Номер ПП заказа из таблицы Orders + все поля, которые у вас уже есть. Эти две таблица должны быть связаны IDOrder(Products) -> ID(Orders) Форма Диалог, в которой вы вносите новые поступления. Форма Диалог, в которой вы оформляете новый заказ (В ней же вы выбираете товар, который относится к этому заказу. По двойному клику в DBGrid вызывается следующий код: Код:
Products.Edit; Products.FieldByName('IDOrder').AsInteger := Orders.FieldByName('ID').AsInteger; Products.Post; Последний раз редактировалось Uniq!, 18.10.2013 в 15:32. |
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение: | ||
Freeman (18.10.2013)
|
#11
|
|||
|
|||
Цитата:
у меня получается что надо каждый раз создавать и сохранять таблицу ORDERS |
#12
|
||||
|
||||
Вы её один раз создаёте и храните там все заказы.
Я даже код привёл и все структуры таблиц. |
#13
|
|||
|
|||
|
#14
|
||||
|
||||
Там слово в слово тоже самое. И даже термины те же. Только здесь уже конкретные таблицы и конкретные формы-диалогов.
Советую почитать вот это полностью: http://it.kgsu.ru/DelADO/ado_001.html Как только всё осилите, вопросов больше не останется. В этом блоге ваше приложение разбирается по винтикам ОТ и ДО. |
#15
|
|||
|
|||
ээээ, добавил таблицу orders, также добавил поле IDorder в таблицу Products. Но вот незадача, DBGrid никак хочет отображать новое поле, или так просто нельзя добавлять поля в существующие таблицы?
|