Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перекрестная таблица
|
|||
|---|---|---|---|
|
#18+
Прошу помощи у уважаемых гуру: Есть задача организовать перекрестную таблицу состоящую вверху из часов суток 1,2,3...24 а слева из дней недели Понедельник, Вторник .....Воскресенье Так называемая таблица ограничений - значение поля напрашивается логического типа - а вот с интерфейсом пока ничего не придумал Может быть кто-то решал подобную задачу и подскажет, как проще всего организовать нечто подобное (Grid с CheckBox или нечто другое ) Хотелось чтобы пользователь мог мышью зарисовать ограничения по часам суток для нужного дня недели Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2004, 08:05 |
|
||
|
Перекрестная таблица
|
|||
|---|---|---|---|
|
#18+
В принципе, данную задачу можно решить и через Grid и через ChekBox. У каждого способа есть достоинства и недостатки. 1) Grid В FoxPro Grid ВСЕГДА работает только с таблицами в качестве источника - это значит, что в необходимо будет иметь временную таблицу для работы в Grid. Далее вставляешь вместо TextBox CheckBox и собственно все. Первый столбец Grid отводишь под название дней недели (Понедельник, Вторник, ...), а все прочие столбцы - это часы 2) CheckBox Тут придется повозится: Нужен объект контейнер в который и раскладываешь все 24х7=168 объектов CheckBox + заголовки. Конейтнер нужен потому, что почти наверняка ты захочешь оформить это как класс. Вот чтобы не возится. Если предполагается масштабирование этого контейнера, то нужны будут еще 2 ScroolBar (ActiveX) В отличии от Grid, простой CheckBox можно вообще не привязывать ни к каким данным. Что в результате: Grid организовать проще и быстрее, нужно меньше кодить. НО! Это все до тех пор, пока задача выглядит так как описана. Если потребуется навесить дополнительные объекты и функциональность, то с Grid это организовать значительно сложнее. Ну, например, организовать итоговую строку, сколько дней недели помечены в каджом часе. Для контейнера с CheckBox - элементарно, а вот для Grid придется повозиться (писать много кода) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 14:21 |
|
||
|
Перекрестная таблица
|
|||
|---|---|---|---|
|
#18+
Благодарю за проявление внимания к озвученной теме. Очень приятно было получить рекомендации. Собственно сама таблица для подготовки исходных данных представляет следующее: Id_lic N(20) - ключевое поле идентификатор лицензии Nmar N(5) - номер маршрута Dweek N(1) - номер дня недели (1- Понедельник ....8-Праздник) Period C(200)- текстовая строка типа 01,02, ....24 список часов для ограничения Реализовал данную задачу посредством Grid+CheckBox через промежуточный курсор с группировкой по возрастанию по DWEEK и двумя пользовательскими функциями: первая подставляет вместо номера недели его название, вторая это просто поиск в поле Period на вхождение нужного часа через AT()- результат логическогое поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 08:00 |
|
||
|
Перекрестная таблица
|
|||
|---|---|---|---|
|
#18+
Если структура базы данных еще может быть изменена, то я советовал бы вместо символьного поля Period сделать отдельную таблицу со списком используемых часов. Id_lic N(20) ApplyHour N(2) Смысл в том, что тебе почти наверняка потребуется выполнение запросов вида: А какие маршруты используют часы 01, 02, 03? Если есть таблица - решение элементарное, а если символьная строка, то в принципе, тоже решаемо, но скорость выполнения такого запроса будет в разы медленнее (поиск подстроки - это в принципе не оптимизируемая задача) PS: Для идентификаторов записи лучше использовать поля типа Integer. Они физически занимают 4байта, в то время как поля Numeric занимают столько байт, какова указанная размерность. Т.е. N(20) занимает 20 байт. Просто экономия физического размера файла и некоторое увеличение скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2004, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32653840&tid=1595982]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 352ms |

| 0 / 0 |
