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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2008, 09:01   #1
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
Радость грузовые и легковые машины.

имеются данные об очереди заказов на транспортные средства для поставки товаров заказчикам. на автотранспортном предприятии имеются 3 грузовых и 3 легковых машины. рабочий день водителя с 9 :00 до 18:00. Выдавать информацию о наличии свободного автотранспорта и возможности выполнения заказа.

Подскажите пожалуйста возможно ли реализовать в дельфи ту схему задачи которую я задумала. Я реила создать базу в аксессе а потом через дельфи ее вытащить. сделала 3 таблицы МАШИНЫ где у меня есть id машины, ее номер,марка и тип; Магазины, где есть id магазина, название и сколько времени ехать до этого магзина и основная сводная таблица с заказами, где есть id заказака, id машины вып заказ(свяжу с табл машины), id магазина(свяжу с магазином), а дальше вот не знаю возможно или нет но я хочу чтоб в таблице вручную водить время заказа, а в другой колонке должно выводиться время когда машина приедет с заказа, причем хочу чтобы суммировалось время до магазина из таблицы магазины с временем заказа из таблицы заказы. Возможно ли это?или дельфи будет ругаться что из разных таблиц данные? еще чтобы узнать занята машина или свободна планирую осуществить что то вроде " if время заказа+время сколько ехать до магазина <= 18 and время возврата < времени заказа then print "заказ оформлен" и записать данные else "заявка не может быть выполнена". Проблема в том что как то надо сделать чтобы по выбранной машине в таблице заявок находилось предыдущая запись с ее временем возврата. Возможно ли все это осуществить или я перемудрила? просто у меня с дельфи сложные отношения и хочу сначала в аксессе базу к окончательному виду привести а потом закидывать в дельфи. для наглядности вложила файл с базой в аксессе.
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 26.09.2008, 11:08   #2
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

Да, это возможно
Aristarh Dark вне форума Ответить с цитированием
Старый 26.09.2008, 12:28   #3
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

Aristarh Dark ,тогда может быть вы подскажите как осуществить поиск последне записи по машине? ведь в " if время заказа+время сколько ехать до магазина <= 18 and время возврата < времени заказа then print "заказ оформлен" и записать данные else "заявка не может быть выполнена". как то я должна задать что необходимо именно время возврата из последней записи по выбранной машине.
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Старый 01.10.2008, 16:13   #4
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

подскажите плиз, когда на формах 2 и 3 пишу код для кнопки выбрать у меня почему компилятор ругается на название атрибутов,хотя написание их верно и в таблицах на которые ссылается они есть. подскажите пожалуйста в чем проблема. файлик приложила. на форме машины и магазины нужно кликнуть тогда появиться код,который я закомпилировала,вот в нем и есть какия то ошибка.
Вложения
Тип файла: rar машины.rar (347.1 Кб, 11 просмотров)
Пока ремонтируют кукольный домик, живу на форуме.

Последний раз редактировалось Барби; 02.10.2008 в 11:17.
Барби вне форума Ответить с цитированием
Старый 06.10.2008, 11:52   #5
Барби
Форумчанин
 
Аватар для Барби
 
Регистрация: 19.12.2007
Сообщений: 159
По умолчанию

поправила я свои данные на которые ругалось теперь все в порядке. и вес вроде хорошо работает кроме одного. Если например у меня заказана машина на 13 часов, а я хочу поставить заказ на 9, у меня выдает ошибку. пыталась поменять тогда записывает на любое время даже на те же занятые 13 часов. может кто подскажет что подправить.
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
t, t1, t2,t3, tStart, tStop, tDoroga : TTime;
d, d1 : TDATe;
Add : boolean;
begin
Form4.ShowModal;

//Проверяем, можем есть ли уже заказ с таким временем и можем ли мы добавить. Если НЕТ, то Add := False
Add := True;
t := StrToTime(TimeToStr(Form4.DateTimeP icker1.DateTime));
t3 :=Form4.DateTimePicker1.DateTime +
Form3.ADOQuery1.FieldByName('Vrskex ').AsDateTime;
d := StrToDate(DateToStr(Form4.DateTimeP icker2.Date));
tDoroga := Form3.ADOQuery1.FieldByName('Vrskex ').AsDateTime;
ADOQuery1.First;
if ADOQuery1.RecordCount > 0 then
begin
for i := 0 to ADOQuery1.RecordCount - 1 do
begin
t1 := StrToTime(TimeToStr(ADOQuery1.Field ByName('tz').AsDateTime));
t2 := StrToTime(TimeToStr(ADOQuery1.Field ByName('tv').AsDateTime)); Form2.ADOQuery1.FieldByName('id_MAW ').AsInteger)
d1 := StrToDate(DateToStr(ADOQuery1.Field ByName('dz').AsDateTime));


if ((((t >= t1) and (t <= t2))or ((t<=t1) and (t3>=t1))) and (d=d1)) //Проверяем на вхождение во временной диапазон

and //Проверяем соответствие машин
(ADOQuery1.FieldByName('idmw').AsIn teger =

then
Add := False;
ADOQuery1.Next;
end;

end;

//Проверяем на вхождение в рабочее время
tStart := StrToTime('9:00:00');
tStop := StrToTime('18:00:00');
If (t < tStart) or ((t+tDoroga) > tStop) then Add := False;


if Add = True //Значи можем добавить запись
then
begin
If FZaiavkaAdd = True
then
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('idmw').AsInt eger := Form2.ADOQuery1.FieldByName('id_MAW ').AsInteger;
ADOQuery1.FieldByName('idmg').AsInt eger := Form3.ADOQuery1.FieldByName('Idmag' ).AsInteger;
ADOQuery1.FieldByName('tz').AsDateT ime := Form4.DateTimePicker1.DateTime;
ADOQuery1.FieldByName('tv').AsDateT ime := Form4.DateTimePicker1.DateTime +
Form3.ADOQuery1.FieldByName('Vrskex ').AsDateTime;
ADOQuery1.FieldByName('dz').AsDateT ime := Form4.DateTimePicker2.Date;
ADOQuery1.Post;
ADOQuery1.Active := False;
ADOQuery1.Active := True;



end;
Edit1.Text := 'Успешно';
end
else
Edit1.Text := 'Не успешно';

end;
Пока ремонтируют кукольный домик, живу на форуме.
Барби вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLL с удаленной машины Баламут Работа с сетью в Delphi 11 09.05.2008 02:40
Виртуальные машины! Marsik Софт 17 23.04.2008 20:33
интерпретатор команд стековой машины AntohaN Помощь студентам 2 05.09.2007 20:04