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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2014, 23:20   #1
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
Печаль Paradox обновление данных

Подскажите пожалуйста в чем может быть проблема.
Создаю БД через парадокс,имеются три таблицы с данными:
Таблица Сырье: код,название,стоимость(единицы сырья)
Таблица Поставщики: код поставщика,название
Таблица Книга поставок: Шифр,код поставщика,код сырья,общая стоимость,количество(единиц сырья).
В парадоксе я создал 3 таблицы,перенес в делфи,получилось 3 формы,связи 2-х форм содержат:1-я форма,отображаются таблицы сырья и книги,2-я форма,отображает таблицы поставщиков и книги. 3-я форма содержит таблицу только книги.
Я сделал так,потому то не знаю как проще это реализовать,поэтому приходится постоянно при внесении данных обновлять таблицу книги и прочих таблиц.
В 3-й форме,через делфи я повесил кнопку "Сумма"-эта кнопка должна просчитать поле "Общая стоимость"=Общая стоимость*количество,соответственно обновить все поля записи "Общая стоимость" в таблице Книги,и потом уже отправлять в другие 2-ве формы этот результат.
У меня есть код для подсчета суммы,но при его выполнении-компилятор выдает ошибку: Dataset not in edit mode. я уже 2 дня борюсь с этой проблемой но безрезультатно,помогите пожалуйста кто чем сможет.

Вот код:

Код:
procedure TForm3.Button1Click(Sender: TObject);
var s:integer;
begin
DBGrid1.datasource.dataset.first;
s:=0;
while not dbgrid1.datasource.dataset.eof do
begin
s:=s*dbgrid1.datasource.dataset.FieldByName('Kol_vo').value;
dbgrid1.datasource.dataset.next;
dbgrid1.datasource.dataset.FieldByName('MoneySum').value:=s;
end;
end;
Чувствую,понакрутил я тут,поле MoneySum-числовое. Но я не знаю как перемножить стоимость сырья из одной таблицы Сырья,с количеством которое указано в Книге. Поэтому решил просто пока что в поле MoneySum скопировать Kol_vo через переменную s.

А это скрин программы:


Последний раз редактировалось Clockgen; 01.07.2014 в 23:46.
Clockgen вне форума Ответить с цитированием
Старый 02.07.2014, 01:19   #2
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
По умолчанию

Разобрался

Код:
var i: integer;
var j: integer;
var x: currency;
var x1:currency;
var xSum:currency;
begin
 Table1.First;
 Table2.First;
 x:=0;
 x1:=0;
 for i:=0 to Table1.RecordCount-1 do begin
 for j:=0 to Table2.RecordCount-1 do begin
     x1:=Table2.FieldByName('Money').AsCurrency;
   Table2.Next;
 end;
   x:=Table1.FieldByName('Kol_vo').AsCurrency;
   xSum:=x*x1;
   Table1.Edit;
   Table1.FieldByName('MoneySum').AsCurrency:=xSum;
   Table1.Post;
   Table1.Next;
 end;
 Caption:=CurrToStr(xSum);
end;
Но возник вопрос,как сделать чтобы сделать 3 таблицы в 1-й форме? С полным отображением данных? дело в том,что для таблицы сырье и поставщики как видно по скриншоту, отображаются только 1 запись,хотя таких записей в таблице 5,почему так?
Clockgen вне форума Ответить с цитированием
Старый 02.07.2014, 08:55   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
отображаются только 1 запись,хотя таких записей в таблице 5,почему так?
Потому что ты таблицы связал через Master-Detail по полю CodeSir. А связанная таблица отображает только те записи у которых ключевое связанное поле имеет значение, совпадающее со значением родительской таблицы в ключевом связанном от нее поле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2014, 10:51   #4
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
По умолчанию

То есть получается мне нужно отображать отдельно таблицы с сырьем,чтобы удобно было вводить данные,отдельно поставщиков? И могли бы подсказать как сделать три таблицы в одной форме,ткак мастер-детал связывает только 2 таблицы.
Clockgen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация данных с Paradox -->> Oracle Azamat_k БД в Delphi 5 17.07.2012 11:14
Оперативное обновление сетевой БД Paradox Zuban C/C++ Базы данных 1 13.11.2011 20:38
добавление данных в БД Paradox wulf_01 Помощь студентам 3 13.10.2011 11:38
Delphi 7 Базы данных Paradox 7 бугор Помощь студентам 3 07.04.2010 17:04