|
14.07.2004, 09:45 | #1 |
Гость
|
Нужно отфильтровать нечто по дате за текущий квартал текущего года.
Заходим Дата,фильтр,0106..0109 Не очень удобно. Какие придуманы средства для более удобной фильтрации? Допустим "фильтровать по дате" - проваливаемся на формочку с диапазоном дат. Нажали на пимпочку около первой даты - вывалился календарик, нажали на такую же пимпочку около второй - вывалилися опять же календарик нажали "применить фильтр" - и отфильтровалось легко и удобно. Делали что-то подобное? Все, что пока приходит в голову - это сожрать 2 формы и слепить требуемое. Неужели штатных средств нет? |
|
14.07.2004, 10:17 | #2 |
Участник
|
Штатных-нет.
Посмотите на mibuso.com - там появлялись несколько формочек и внешних утилиток. Но, в любом случае, "встроить" их в интерфейс не получится : они будут открываться в новом окне. С другой стороны, можно слепить стационарный календарик из субформы Нави рядом с контролом (к примеру, их Matrix box).
__________________
Русский человек славится своим умением находить выход из самых трудных ситуаций, но еще более он славится своим умением находить туда вход. |
|
14.07.2004, 10:17 | #3 |
Moderator
|
Для этого используют таблицу Дата (Date), из которой берут тип диапазона дат: Год, Месяц, Квартал, Неделя и соответственно даты начала диапазона и конца диапазона. Обратите внимание, что последняя дата дана Закрывающая, т.е. ее надо приобразовать функцией NORMALDATE().
А в параметрах отчета сначала выбираете тип диапазона дат, а потом и сам диапазон. |
|
14.07.2004, 15:29 | #4 |
Moderator
|
Кстати, а вот и форма календарика. Она конечно сыренькая, написана побыстрому, ну кто захочет - доделает ;-)
Выгружена в текстовом формате. |
|
14.07.2004, 18:40 | #5 |
Гость
|
Вы не можете ввести ' дата=14.07.04;' в fieldNo. Курсор установлен перед некорректным символом
import stopped on line 5; ЗЫ. конфигурил календарик, который сделан под NF 2.6 чтоли... Почти всё получилось - но там стоит ограничение дурацкое. Почему-то не могу обойти. Можно листать года начиная от текущего вперёд Хотелось бы нормально выбирать год - без всяких ограничений |
|
15.07.2004, 10:22 | #6 |
Moderator
|
Странно. Это нарушение в структуре файла.
Скажите мне ID возможного для вас объекта, я вам FOB пришлю. Или свяжитесь по аське. |
|
04.08.2004, 14:26 | #7 |
Заноза в заднице
|
Передо мной тож встала подобного рода задача. Я её решил следующим образом: создал новую форму календарика, в которой можно выбирать дату, смещаясь на месяц, либо год вперёд/назад, при этом я не стал особо мудрить - всё сделано достаточно топорно, но надёжно. Есть, конечно некоторые минусы: размеры окна с календариком подгоняются к размерам предыдущегго раскрытого окна, либо наоборот - всё слетает, ну и конечно же - необходимость снабжать триггер OnLookUp, поля с вводимой датой, строкой вызова формы календаря.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
04.08.2004, 17:49 | #8 |
Moderator
|
Я таки доделал календарик до приличного вида, нужно выкладывать?
|
|
05.08.2004, 12:44 | #9 |
Участник
|
Неплохо было бы посмотреть!
|
|
05.08.2004, 16:23 | #10 |
Участник
|
О! Спасибо.
Уважаемые участники, если вам понравилось сообщение, вы можете добавить респект. Добавить респект можно нажав на плюс в строке Респекты в понравившемся сообщении. |
|
17.08.2004, 16:29 | #11 |
Заноза в заднице
|
Цитата:
Сообщение от Dzemon
Последний вариант.
Как его вызвать: rec_Date Record Дата From Date Date CalendarForm Form Calendar Form <div class='CALtop'>C/AL</div><div class='CAL'>OnLookup(VAR Text : Text[1024] : Boolean CLEAR(CalendarForm); IF Text <> '' THEN BEGIN EVALUATE("From Date",Text); rec_Date.SETRANGE("Тип периода",rec_Date."Тип периода"::День); rec_Date.SETRANGE("Начало периода","From Date"); CalendarForm.SETTABLEVIEW(rec_Date); END; IF CalendarForm.RUNMODAL = ACTION::LookupOK THEN BEGIN rec_Date.RESET; CalendarForm.GETRECORD(rec_Date); Text := FORMAT(rec_Date."Начало периода"); EXIT(TRUE); END ELSE EXIT(FALSE);</div> З. Ы. Кстати, я обратил внимание, что практически никого эта вещь не заинтересовала... а зря, очень зря.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
17.08.2004, 18:40 | #12 |
Moderator
|
Цитата:
Сообщение от Likefire
Если кого заинтересовала данная тема,- предлагаю свою ипостась календарика для подбора даты в соответствующих полях. Работа всего этого дела до безобразия проста: из прикреплённый файл Calend.fob импортируете в любую базу, а нужные поля снабжаете свойством LookUp-Yes и в соответствующую процедуру OnLookUp выбранного поля дописываете следующие строки:
CLEAR(Calendar); // Calendar - переменная типа Form.Calendar IF (Calendar.RUNMODAL=ACTION::Close) AND (Calendar.ReplyOut <> 0D) THEN MYDate := Calendar.ReplyOut; Вот и вся любовь! Кому интересно,- зацените. Пора на форуме открывать раздел Downloads |
|
17.08.2004, 19:12 | #13 |
Участник
|
Dzemon, по поводу раздела downloads я открыл обсуждение.
Как должен выглядеть раздел downloads? |
|
18.08.2004, 11:37 | #14 |
Заноза в заднице
|
Спасибо всем, кто оценил. Вот ещё есть у меня мысль слегка усовершенствовать этот календарь всякими такими вещами как визуальное отображение и быстрый ввод рабочей и текущей дат, и, кто знает, какими ещё полезными функциями без ущерба основной функции,- подскажите. Для того и форум, чтобы можно было получать ответы на такие вопросы, которые в книжках нати трудно!
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
18.08.2004, 11:59 | #15 |
Moderator
|
Ну, если уж охота повозиться, то попробуй сделать переключаемый календарик по 1 дню (обычный), квартальный и недельный ;-)
И + возможность выбора интервала типа 01.01.01..12.01.01 |
|
18.08.2004, 12:04 | #16 |
Участник
|
Likefire, у меня просьба - положите скриншотик вашего календарика для тех, кто еще не скачал.
Dzemon, можешь сделать скриншотик и для своего? Народ просит. Хочется давать авторские варианты. |
|