![]() |
#1 |
Участник
|
А реально ли задать фильтр, чтобы по нему выбрались все записи у которых в дате скажем месяц май?
Или придется перебирать все записи и самому просматривать месяц используя DATE2DMY? |
|
![]() |
#2 |
Участник
|
А если сделать так: 01.05.07..31.05.07
|
|
![]() |
#3 |
Участник
|
Так надо то по всем годам
|
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
Ну чтото типа этого
![]() |
|
![]() |
#6 |
Участник
|
Ну если записей очень много, можно создать дополнительное поле заполнив его номером месяца.
|
|
![]() |
#7 |
Участник
|
Цитата:
И на основе этого можно сделать свои Гриды и Отчеты. |
|
![]() |
#8 |
Участник
|
2 RedFox
Ты ничего не перепутал? у меня форма 12498 называется "Таможенная Декларация Связь". |
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
Так в этой форме же вроде фильтруются записи по периоду тоже, а не как мне надо - допустим по конкретному месяцу всех лет.
И еще я что-то не понял там смысла конструкции: Код: SETRANGE("Date Filter",Calendar."Period Start",Calendar."Period End"); IF GETRANGEMIN("Date Filter") = GETRANGEMAX("Date Filter") THEN SETRANGE("Date Filter",GETRANGEMIN("Date Filter")); |
|
![]() |
#11 |
Участник
|
Попробуйте так, я тут быстро накидал, мож. поможет.
//date тип Option ( ,январь,февраль и т.д. все месяцы) //Далее создали функцию в функции пишем IF date = date::январь THEN DateInt:='01'; IF date = date::февраль THEN DateInt:='02'; IF date = date::март THEN DateInt:='03'; IF date = date::апрель THEN DateInt:='04'; IF date = date::май THEN DateInt:='05'; IF date = date::июнь THEN DateInt:='06'; //и тд. по всем месяцам RESET; IF FIND('-') THEN REPEAT IF (FORMAT(DATE2DMY("From Date",2)) = DateInt) THEN //Маркеруем записи попадающие под наше условие MARK(TRUE); UNTIL NEXT =0; //Отображаем промаркерованные записи MARKEDONLY(TRUE); Вот такая задумка, попробуйте |
|
![]() |
#12 |
Участник
|
Что-то мне подсказывает, что в таблице с датой пользоваться "марком" будет накладно (как правило это таблицы с историей какой-нибудь.... Entry, Log и т.п.).
Тут надо плясать от самой задачи... Принцип - разделяй и властвуй был бы быстрее... например, взять в таблице минимальный год и максимальный. Написать цикл по годам и работать внутри одной порции (одного года).. |
|
![]() |
#13 |
Участник
|
Я за дополнительное поле в таблице, в котором будет храниться номер месяца. Кто-то впереди это написал. Заполнять на инсерте и никаких гвоздей. Если есть потребность в подобном срезе данных.
|
|
![]() |
#14 |
Участник
|
Про дополнительное поле - это конечно первая мысль, которая сразу в голову лезет.
Я сейчас сделал фильтр + перебор отфильтрованых записей. Попробую как время будет с марком, проверю быстрее ли работать станет. |
|
![]() |
#15 |
Участник
|
Опять же - смотря какая задача
![]() Я согласен, что, если часто запускают отчет и очень это надо, то можно добавлять поле (а к нему и ключ)... Но, если отчет запускают изредка, а таблица, например "Value Entry", то тут еще вопрос... стоит ли плодить ключи в такой таблице... В общем, разумный выбор должен сделать тот, кто решает задачу ![]() |
|
![]() |
#16 |
Участник
|
|
|
![]() |
#17 |
Участник
|
Сделать цикл по диапазону годов по кторым нужно сомтреть. Ставить фильтр на конкретные месяцы года, обрабатывать записи и переходить к следующему. Хотя тут тоже - смотря как и что нужно обрабатывать.
Хотя в любом случае можно выгрузить во временную таблицу, а лишь потом обрабатывать. Будет в разы быстрее марка и не надо никаких ключей добавлять. |
|
![]() |
#18 |
Участник
|
Вижу что сбоянил - уже тут такое предлагали
![]() |
|
![]() |
#19 |
Участник
|
Цитата:
![]() На мой взгялд, "Группа ключей БД" вообще-то для девелоперов больше... Просто интересно - хоть кто-нибудь пользовался Группой Ключей? У меня такое ощущение, что все знают, что она есть, но на практике отчетов, котрые строились бы раз в год нет.... |
|
![]() |
#20 |
Участник
|
Присоединяюсь к randrews в этом.
Кто-нибудь может поделиться опытом использования "Группы ключей БД"? Хотя бы и на примере данной задачи ![]() |
|