![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Собственно на картинке. Первый грид отображает таблицу Товары. Второй грид что то типа заказ. Надо из первого грида по нажатию на строку скопировать ее в второй грид. Поля гридов будут одинаковы. Правда не знаю какой 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 никак хочет отображать новое поле, или так просто нельзя добавлять поля в существующие таблицы?
|