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