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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2010, 11:04   #1
kosya84
 
Регистрация: 12.04.2010
Сообщений: 3
По умолчанию Не выводится в поле

ТЕКСТ ЗАДАНИЯ


Планирование потребности в металле на выпуск продукции на предприятии "Призма" осуществляется отделом снабжения. Разрабатывание и ведение нормативов расходов осуществляет производственный отдел, производственная программа определяется в плановом отделе.
1. Нужно выполнить постановку задачи, которая бы дала возможность автоматизировать расчет потребности в металле на производственную программу.
2. Разработать программу, которая бы печатала ведомость розходу материалов.

Ведомость розходу материалов

Название материала : Название детали : количество : норма розходу : всего
Сталь 112-ХА Деталь№1 . . .
Деталь №2 . . ..
Всего по Сталь 112-ХА .
Сталь 54-ХА Деталь №3 . . .


Я создала БД с помощью компонента TClientDataSet (*.CDS )
Для вычисления потребности в металле создала кнопку "рассчитать" следующим кодом:
Код:
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
  begin
with ClientDataSet1 DO
BEGIN
clientdataset1.First;
while not Eof do
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('Потребность в металле').AsInteger:=ClientDataSet1.FieldByName('Количество').AsInteger
 *ClientDataSet1.FieldByName('Норма расходу').AsInteger;
ClientDataSet1.Post;
ClientDataSet1.next;
end;
end;
end;
В результате ничего не выводит в поле "Потребность в металле". В чем проблема? помогите
kosya84 вне форума Ответить с цитированием
Старый 12.04.2010, 11:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: если описала with ClientDataSet1 DO BEGIN... то совсем не нужно писать ClientDataSet1 внутри его.
Во-вторых:Такие вещи лучше решать SQL запросами
В-третьих: А БД то открыта?
Да и потом, может таблица у тебя совершенно пустая.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 11:11   #3
kosya84
 
Регистрация: 12.04.2010
Сообщений: 3
По умолчанию

БД открыта, таблица не пустая.
а как задать через SQL?
kosya84 вне форума Ответить с цитированием
Старый 12.04.2010, 11:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну для этого нужно хотя бы знать с какой СУБД ты работаешь.
Теоретически есть компоненты Query в которых в свойство SQL.Text можно вписать такое:
Код:
INSERT INTO Таблица ([Потребность в металле])
 VALUES ([Количество]*[Норма расходу])
И запрос должен отработать на все записи
Но зачем это делать, ведь норму расхода можно сделать вычисляемым полем, и пусть каждый раз СУБД рассчитывает его - это обычная практика:

Код:
SELECT ([Количество]*[Норма расходу]) as "Норма Расхода" FROM Таблица
Зачем его в базу то писать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 11:50   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну для этого нужно хотя бы знать с какой СУБД ты работаешь.
Она же написала
Цитата:
Я создала БД с помощью компонента TClientDataSet (*.CDS )
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 12.04.2010, 11:52   #6
kosya84
 
Регистрация: 12.04.2010
Сообщений: 3
По умолчанию

Спасибо,сейчас попытаюсь,но Query у меня нет то!
kosya84 вне форума Ответить с цитированием
Старый 12.04.2010, 11:54   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от kosya84 Посмотреть сообщение

Код:
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('Потребность в металле').AsInteger:=ClientDataSet1.FieldByName('Количество').AsInteger
 *ClientDataSet1.FieldByName('Норма расходу').AsInteger;
ClientDataSet1.Post;
В результате ничего не выводит в поле "Потребность в металле". В чем проблема? помогите
А ты не пробовала сначала сделать вычисление потребности, а потом уже
.Edit
ClientDataSet1.FieldByName('Потребн ость в металле').AsInteger:=
.Post

И в отладчике посмотреть считается оно или нет в принципе???
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 12.04.2010 в 11:57.
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выводится ComboBox NeveX JavaScript, Ajax 0 04.02.2010 23:23
не выводится графика на экран Petruha-nsk Общие вопросы C/C++ 3 09.09.2009 17:58
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47
Массив не выводится на экран vikaspb Общие вопросы C/C++ 7 22.01.2009 17:29