|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
30.09.2009, 08:48 | #1 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
Даты
Привет всем. В форме связанной с финансовой отчетностью необходимо чтобы данныевыдавались по месяцам. Как это можно сделать? Раньше использовала стандартные датапикеры. Но заказчик сказал, что нужно просто из выпадающего списка выбирать месяц и год. Как такое можно сделать?
Единственное, что ограничивает полет мысли программиста-компилятор
|
30.09.2009, 09:47 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
С месяцами так: заполняем ComboBox названиями месяцев и собственно всё. У ComboBox имеется свойство ItemIndex - номер выделенного элемента. Индексация только начинается с нуля, т.е. январь будет под номером 0, а февраль - под номером 1. Так что просто считываете этот самый индекс прибавляете единичку и получаете номер нужного месяца.
С годами примерно так же. Заполняем в цикле допустим от 2000 до 2009 года (Если хочется до текущего года, то что-то вроде YearOf(Today) нужно использовать). Дальше всё так же, как и с месяцами, только к индексу уже не единичку нужно будет прибавлять, а 2000. Чтобы из отдельных составляющих собрать дату, нужно использовать функцию EncodeDate. Я так понимаю нужен будет диапазон дат: первое число месяца и последнее. Число дней в месяцах разное, потому можно использовать функцию DaysInAMonth. Так же можно просто брать первое число следующего месяца (тут с декабрём только нужно будет разбираться, т.к. будет переход на следующий год) Код:
ЗЫ. Писал здесь, потому мог где-то в коде ошибиться, но принцип в любом случае, думаю, понятен. |
30.09.2009, 10:18 | #3 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
спасибо, большое
Единственное, что ограничивает полет мысли программиста-компилятор
|
01.10.2009, 17:16 | #4 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
var
year, month: word; fromDate, toDate: TDateTime; begin month := ComboBox1.ItemIndex + 1; year := SpinEdit1.value; fromDate := EncodeDate(year, month, 1); // первое число нужного месяца toDate := EncodeDate(year, month,DaysInAMonth(year, month)); // последнее число месяца DataModule3.IBDataSet9.ParamByName( 'd1').Value:=fromDate; DataModule3.IBDataSet9.ParamByName( 'd2').Value:=toDate; DataModule3.IBDataSet9.open; Выдает ошибку что какой-то аргумент не подходит.
Единственное, что ограничивает полет мысли программиста-компилятор
|
01.10.2009, 18:14 | #5 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
все вопрос решен
Единственное, что ограничивает полет мысли программиста-компилятор
|
02.10.2009, 07:45 | #6 |
Пользователь
Регистрация: 04.08.2009
Сообщений: 48
|
Sparky так в чем ошибка то была и можно весь ваш код
|
02.10.2009, 09:48 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вопрос решен. Закрыто.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
объеденение даты | Alexi | Компоненты Delphi | 3 | 27.04.2009 15:32 |
ограничение даты | Alexi | Компоненты Delphi | 4 | 21.04.2009 13:09 |
Формат даты | Iskin | Microsoft Office Excel | 5 | 16.04.2009 14:49 |
Даты не даты | Nasya | Microsoft Office Excel | 3 | 22.08.2007 20:18 |
вычитание даты | zetrix | Microsoft Office Excel | 3 | 10.11.2006 06:30 |