Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисление и вставка времени в поле 
:(
    Опции темы
Akella
Дата 27.5.2009, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Deniz @  27.5.2009,  11:45 Найти цитируемый пост)
Akella, вариант "1010100" тоже не очень хороший. Был печальный опыт(авиаперевозки) и пришлось переделывать.

и у меня также, поэтому я сделал поле, где хранил список дат через запятую.
Можно приклеить таблицу полями дата и время

Добавлено через 1 минуту и 9 секунд
Цитата(Deniz @  27.5.2009,  11:45 Найти цитируемый пост)
Дата начала
Дата конца
ИД поезда
Статус integer
Дни integer
+ вспомогательные поля

только хотел написать
PM MAIL   Вверх
Deee
Дата 27.5.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Akella, сделал так...время поджимает, поэтому пошел на хитрость...(понимая,конечно, что это больше напоминает китайское программирование smile )
У меняимеется таблица "станции"(stan) и две точные ее копии "станции отправления"(sto) и "станции назначения"(stn) итого 1+2=3 одинаковых таблицы (верю, что нелогично!).
таблица stan показана на форме и используется для показа результатов небольших тестовых запросов, 2 другие связаны с комбобоксами и их значения как раз и показаны в сетке "маршруты" (название маршруты совершенно условное, не успел додумать).
также в этих двух таблицах (stn и sto) в каждой есть по два столбца ("время отправления"(timo) и "время прибытия"(timn))...то есть время привязано к ключу станции.
вот запрос: (может что-то и некоректно, я ведь только учусь!)
Код

Select distinct 
p.NUM NOMER, so.Nams 
Otpravlenie, sn.Nams 
Naznachenie,
so.Namz ZHD, b.Cl Class,so.Timo, sn.Timn, b.Cena Stoimost
From Marshrut m, STO so, STN sn, 
Stan s, Zhd z, Poezd p, BILET b
Where (so.NSTO=:par0 and 
sn.NSTN=:par1) and 
so.Nzh=s.Nzh and s.Nzh=sn.Nzh 
and m.N=:par2 and sn.nzh=m.n and 
b.BIL=:par3 and b.N=p.N and (so.Nsto=:par0 and sn.Nstn=:par1)


PM MAIL   Вверх
Akella
Дата 27.5.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



И что, где-то ошибка закралась? Или что. Я последнее сообщение не понял к чему ты ведёшь?
Если ты думаешь, что у меня есть время на полный разбор твоего приложения, то ты ошибаешься. :(
PM MAIL   Вверх
Deee
Дата 27.5.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Akella, причем тут полный разбор?!
ты писал 
Цитата(Akella @  27.5.2009,  08:40 Найти цитируемый пост)
Deee, сначала построй правильную базу, а затем уже...

 я уже решил вопрос со временем отправления и прибытия... smile 

у меня по ходу дела появился другой  и я его уже задал (только его почему-то не заметили)

Цитата(Deee @  27.5.2009,  01:25 Найти цитируемый пост)
а как сделать так, чтобы когда время отправления и прибытия и другая информация выведены на сетку (DBGrid), при нажатии на кнопку "поезд опаздывает" бралось значение из edit(mask edit или другого компанента) и прибавлялось к значению времени прибытия (время прибытия+задержка)...
а потом соответственно при все возвращалось на круги своя??   


там процедуру встроенную создавать надо? или можно как-то обойтись без изменения данных хранящихся в таблицах??

PM MAIL   Вверх
Akella
Дата 27.5.2009, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Если программа будет работать по сети, то эту информацию должны видеть, типа, что поезд опаздывает и другие пользователи. А значит можно добавить поле в таблицу, типа время опоздания, например целочисленное, где будет хранится 10-20-150 или 300 минут опоздания.
А можно создать таблицу какой-то хитрой структуры, в которой будет хранится инфа по времени опоздания, какой поезд опаздывает, маршрут, между какими станциями. Ну или ка-то так.
Ну или совсем просто... В событии OnSetText persistent столбца набора данных (TIBDataSet или что там у тебя) написать код:
Код

  if id = .... then
     Field.Value := Field.Value + столько-то минут опоздания

И тогда в гриде увидишь у нужной запись время + столько минут опоздания.


Можно сделать вычисляемое поле в твоём наборе данных. В нём будет вычисляться время прибытия  + минуты опоздания. Тогда в таблице нужно будет хранить доп. поле для количества минут опоздания. При чём можно хранить, как отрицательное время, так и положительное, отрицательное - это опоздание, а положительное - это раннее прибытие smile
Теперь выбираем запись. Жмакаем кнопку, вводим -12 и записываем значение в базу.

Ну может кто предложит более оптимальный вариант smile 
PM MAIL   Вверх
Deee
Дата 28.5.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.11.2008

Репутация: нет
Всего: нет



Akella, 
Цитата(Akella @  27.5.2009,  23:24 Найти цитируемый пост)
Ну или совсем просто... В событии OnSetText persistent столбца набора данных (TIBDataSet или что там у тебя) написать код:
  if id = .... then
     Field.Value := Field.Value + столько-то минут опоздания

И тогда в гриде увидишь у нужной запись время + столько минут опоздания.


не совсем понял... у меня работает связка ibquery+DBGrid1+dataset и я там не нашел
Цитата(Akella @  27.5.2009,  23:24 Найти цитируемый пост)
OnSetText
...

строку
Цитата(Akella @  27.5.2009,  23:24 Найти цитируемый пост)
if id = .... then
 тоже не понял... id чего?
туплю?? smile 
PM MAIL   Вверх
Akella
Дата 28.5.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Deee @  28.5.2009,  16:32 Найти цитируемый пост)
ibquery+DBGrid1+dataset 

как это??? smile

Добавлено @ 17:33
Цитата(Deee @  28.5.2009,  16:32 Найти цитируемый пост)
OnSetText
...

У набора данных ты создаёшь поля?

Добавлено @ 17:34
Дважды щёлкни по набору данных, появится редактор полей.... вот я о чём... у каждого поля есть события, в том числе и OnSetTex

Добавлено @ 17:39
хотя с OnSetTex неудачный пример, забудь. Лучше, думаю, хранить данные по опозданию в базе. В той же таблице, или создать отдельную.

Это сообщение отредактировал(а) Akella - 28.5.2009, 17:40
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.