|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Копирование выделенной строки DBGrid в другую таблицу
И снова здравствуйте! Во-первых хочу еще раз поблагодарить все тех кто отзывается на описываемые проблемы, земной вам всем поклон.
Теперь суть новой проблемы. В DBGrid (таблица OsSklad)выделяется строка, в ней есть поле Ostatok(хранит целые числа количества товара). Эту строку по нажатию на кнопку надо перенести в другую таблицу (Mag1 или Mag2, выбираются в ComboBox), предварительно в Edit-е указав количетво переносимого товара, если остаток товара в исходной таблице равен 0 то строка удаляется. Одновременно с Mag1 или Mag2 строка товара добавляется в таблицу SProd, в которой будет хранится сумма остатка одного и того же товара из двух магазинов. Вот примерно так. Задача немаленькая, поэтому буду рад любой помощи. Заранее спасибо! |
#2
|
||||
|
||||
В целом принцип:
Код:
procedure TForm1.Button1Click(Sender: TObject); var q: TADOQuery; begin q:= TADOQuery.Create(nil); q.Connection:= ADOConnection1; if DBGrid.DataSource.DataSet.FieldByName('Ostatok').AsInteger <> 0 then begin //вставка в Mag q.SQL.Text:= 'insert into '+ComboBox1.Text+' (...) values (...)'; q.SQL.ExecSQL; //вставка в SProd q.SQL.Text:= 'insert into SProd (...) values (...)'; q.SQL.ExecSQL; end; //из OsSklad удаляем по любому q.SQL.Text:= 'delete from OsSklad where id = '+DBGrid.DataSource.DataSet.FieldByName('id').AsString; q.ExecSQL; q.Free; end; Google в помощь |
#3
|
|||
|
|||
Это с ADO, а с BDE (Paradox) тоже самое? Там наверное ADOConection уже не нужен?
|
#4
|
||||
|
||||
Цитата:
Google в помощь |
#5
|
|||
|
|||
А к выбраной строке Grid как обратится?
|
#6
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
DBGrid.SelectedField.AsString; Таким образом происходит обращение к строке Grid, а как ее скопировать в другую таблицу причем отнять от поля Ostatok какое-либо числовое значение???
|
#8
|
||||
|
||||
Код:
Table2.FieldByName('Ostatok').AsInteger:=DBGrid1.DataSource.DataSet.FieldByName('Ostatok').AsInteger-100500; Пишу программы за еду. __________________ |
#9
|
|||
|
|||
Блиннннн , не фига я втыкаю(((, напишите поподробнее как из DBGrid(OsSklad) перенести выделенную строку в другую таблицу (Mag1)с вычисляемым полем Ostatok(отнимаемое количество вводится в Edit). В принимающей таблице (Mag1)Ostatok будет равен OsSklad.Ostatok - Edit1.
Как это корректно программно записать????? |
#10
|
||||
|
||||
Код:
Mag1.Insert; // Mag1.Edit; Mag1.FieldByName('Ostatok').AsInteger:= DBGrid1.DataSource.DataSet.FieldByName('Ostatok').AsInteger- StrToInt(Edit1.Text); Mag1.Post; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
AlexGTX (07.05.2012)
|
#11
|
|||
|
|||
Спасибо за помощь!!! Разобрался что к чему!!! Вот код для кто решает такую же проблему:
TabSpisanie.Insert; TabSpisanie.FieldByName('Data').AsDateTime:= DateTimePicker4.Date; TabSpisanie.FieldByName('Artic').AsInteger:= DBGrid1.DataSource.DataSet.FieldByName('Artic').As Integer; TabSpisanie.FieldByName('Name').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Name').AsS tring; TabSpisanie.FieldByName('Type').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Type').AsS tring; TabSpisanie.FieldByName('Pol').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Pol').AsSt ring; TabSpisanie.FieldByName('Material').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Material') .AsString; TabSpisanie.FieldByName('Firma').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Firma').As String; TabSpisanie.FieldByName('Strana').AsString:= DBGrid1.DataSource.DataSet.FieldByName('Strana').A sString; TabSpisanie.FieldByName('Ostatok').AsInteger:=StrT oInt(Edit3.Text); TabSpisanie.FieldByName('Cena').AsInteger:= DBGrid1.DataSource.DataSet.FieldByName('Cena').AsI nteger; TabSpisanie.Post; Здесь копируются поля из выделенной строки Grid в другую таблицу. |