Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 08:51   #1
Love_3110
 
Регистрация: 03.03.2013
Сообщений: 4
Восклицание Копирование данных из одной DBGrid в другую

Здравствуйте уважаемые пользователи, Помогите пожалуйста, база данных "Заказ меню ресторана", хочу чтобы при кликаньи мышкой по таблице DBGrid копировались данныев бругую таблицу, но не все, только определенные, а так же в новой таблице доьавлялось количество и расчет общей стоимости заказа по блюдам. Помогите очень срочно нужно!!!
Love_3110 вне форума Ответить с цитированием
Старый 27.03.2013, 09:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

запомните, DBGrid - это всего лишь стредство ВИЗУАЛИЗАЦИИ данных. Сами данные находятся в DataSet'е. Вот и копируйте нужные (например, выделенные строки) из одного датасета в другой.

p.s. если датасеты связаны с таблицами, то, на мой взгляд и проще (и надёжнее) копировать ID из таблицы с блюдами в другую таблицу-заказ клиента (и после обновлять датасет, в котором находится данные таблицы-заказа).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2013, 09:26   #3
silent_lab
Пользователь
 
Регистрация: 16.06.2009
Сообщений: 36
Радость

Думаю такое решение можно применить, только дополнить самому вызовом запроса на формирование.
Код:
..................
............
 public
    { Public declarations }
  end;

var
  M_form: TM_form;
  listItm: TList;// переменная которая хранить выделенные id

......................
..........
procedure TM_form.DBGrid1CellClick(Column: TColumn);
var
  Value: Integer;
begin
  if CompareText(Column.Field.FieldName, 'ваш id') = 0 then
    begin
      Value := Column.Field.DataSet.FieldByName('ваш id').AsInteger;
        if listItm.Count > 0 then
          if listItm.IndexOf(Pointer(Value)) >= 0 then listItm.Delete(listItm.IndexOf(Pointer(Value)))
          else
            begin
              listItm.Add(Pointer(Value));
            end
        else
          begin
            listItm.Add(Pointer(Value));
          end;
    end;
  Column.Grid.Refresh;
// К примеру здесь можно добавить 
//запрос на выборку всех выделенных записей
//которые сохраняться в listItm

end;
Теперь в списке listItm имеются id записи выделенных строк, если строку еще раз выделить , то выделение снимается и строка из писка пропадет. Думаю что в конце можно прикрепить вызов запроса по выделенным id и во второй таблице будут результат заказа.

Код:
procedure TM_form.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  CheckIt : Boolean;
  Style: Integer;
begin
  CheckIt := listItm.IndexOf(Pointer(TDBGrid(Sender).DataSource.DataSet.FieldByName('ваше id поле').AsInteger)) >= 0;

  IF CheckIt
    Then TDBGrid(Sender).Canvas.Brush.Color:=RGB($FF,$CC,$99);//Canvas.Font.Color:=RGB($FF,$00,$00);
    IF  gdSelected   IN State Then
        Begin
             TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
             TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
         End;

    TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Ну может я конечно ошибаюсь но примерно так .
В свойства TDBGrid отключите разрешение на редактирование.
silent_lab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных из одной таблицы в другую Arega Microsoft Office Access 0 11.07.2012 17:01
Копирование части данных из одной таблицы в другую SAM77777 Microsoft Office Excel 3 12.04.2011 19:24
Копирование данных из одной БД в другую Sparky SQL, базы данных 21 06.02.2011 19:45
копирование данных из одной базы в другую IB Expert chib_sv SQL, базы данных 0 06.08.2010 09:13
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27