|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
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 |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
Да, это возможно
|
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 пишу код для кнопки выбрать у меня почему компилятор ругается на название атрибутов,хотя написание их верно и в таблицах на которые ссылается они есть. подскажите пожалуйста в чем проблема. файлик приложила. на форме машины и магазины нужно кликнуть тогда появиться код,который я закомпилировала,вот в нем и есть какия то ошибка.
Пока ремонтируют кукольный домик, живу на форуме.
Последний раз редактировалось Барби; 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;
Пока ремонтируют кукольный домик, живу на форуме.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DLL с удаленной машины | Баламут | Работа с сетью в Delphi | 11 | 09.05.2008 02:40 |
Виртуальные машины! | Marsik | Софт | 17 | 23.04.2008 20:33 |
интерпретатор команд стековой машины | AntohaN | Помощь студентам | 2 | 05.09.2007 20:04 |