Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

Возможно ли сделать таким образом - берется дата из поля   Найти похожие ветки 

 
Владий   (2003-09-11 12:30) [0]

Date/Time (краткий формат даты), затем значение года (например, 2003) записывается в одно поле, а значение месяца - в другое (причем, желательно, чтоб месяц присался буквами).

Голова моя не смогла справить с нагрузкой и закипела...
Думалось так:

======
procedure Tmain.cxDBDateEdit4PropertiesChange(Sender: TObject);
begin
ADOTable6.Edit;
ADOTable6.FieldByName(SGetY.DataField).AsString:= WordToStr(YearOf(SGotDate.DataBinding.StoredValue));
ADOTable6.Post;
end;
======
но не работает (причем, не ругаетя, а в поле пришет "У|" и все...

Поможите, люди добрыя... Чего делать-то?..


 
Johnmen   (2003-09-11 12:41) [1]

Постановка задачи бессмысленна, по-моему...


 
Владий   (2003-09-11 12:45) [2]

Не понял фразы по поводу безсмысленности...


 
Reindeer Moss Eater   (2003-09-11 12:48) [3]

MyMonth:=FormatDateTime("mmmm",MyDate);
MyYear :=FormatDateTime("YYYY",MyDate);


 
stud   (2003-09-11 12:49) [4]

насчет месяц буквами не знаю. смотря где будеш данные готовить. если в приложении- можеш сделать все что хочеш.
если с помощью sql, в ib есть extract(month from date) может в аксесе что-нибудь подобное есть


 
Johnmen   (2003-09-11 12:52) [5]

>Владий © (11.09.03 12:45) [2]
>Не понял фразы по поводу безсмысленности...

Каков СМЫСЛ данного действия ?


 
Владий   (2003-09-11 13:02) [6]

2 Johnmen: Ну нужно мне для сортировки наглядной вывести...

2 stud: данные готовить - в приложени... Поминаю, что можно - не могу понять как...

2 Все: Я чайник если не полный, то почти - объяснения понимаю только на полных примерах, а не подсказках... =/


 
Anatoly Podgoretsky   (2003-09-11 13:03) [7]

У|


 
Johnmen   (2003-09-11 13:10) [8]

>Владий ©
>Ну нужно мне для сортировки наглядной вывести...

...:)
Чем не устраивает просто сортировка по датному полю ???


 
sniknik   (2003-09-11 13:11) [9]

Johnmen © (11.09.03 12:52) [5]
>>Владий © (11.09.03 12:45) [2]
>>Не понял фразы по поводу безсмысленности...

>Каков СМЫСЛ данного действия ?

можеш тут корни поискать
http://delphimaster.net/view/3-1062588432/


 
MsGuns   (2003-09-11 13:21) [10]

Сортировка по названию месяца ?
Август
Апрель
...
Январь

Это что, так надо ?

Если надо в гриде для любимой (молодой, красивой, ласковой) бухгалтерши к дате прикрутить название месяца типа

10.09.03 10 Сентября 2003 г. (Пили пиво с Марусей)
11.09.03 11 Сентября 2003 г. (Годовщина Бен Ладена)

то можно просто в грид встромить лишнюю колонку, которую присобачить к невыводимому полю НД, а в обработчике события On GetText этого поля выеживаться с датой скоко душе (и Марусе) влезет. Зачем для этого эскюэлить и мучить форум - не понятно абсолютно.


 
Владий   (2003-09-11 13:30) [11]

Используется ДевЭкспресс. Для наглядности вывода нужно сделать возможность группировки по году и по месяцу (именно поэтому и нужно его выводить "словесно")...

Если бы сам не мучился - и окружающих бы не трепыхал =)


 
MsGuns   (2003-09-11 13:44) [12]

Зачем для помесячной (поквартальной и т.д.) группировки надо месяц прописью ???? Убей - не пойму.


 
Владий   (2003-09-11 13:51) [13]

В ДевЭкспрессе группировка делается путем выдергивания поля в полосу группировки. Соответсвенно при вормировании отчета в экселе эти данные и пишутся - а вручную менять 1,2 на январь, февраль - не особо хочется...


 
stud   (2003-09-11 13:55) [14]

правильно. у меня тоже девэкспрес стоит. только для нормальной группировки нужны месяца в виде цифр!!!
а вот при отображении выводи слова


 
sniknik   (2003-09-11 14:05) [15]

MsGuns © (11.09.03 13:21) [10]
> Сортировка по названию месяца ?
изврат ничуть не хуже других, и без выделенных полей

SELECT * FROM Table ORDER BY
iif(Month(DT) = 9, "Сентябрь",
iif(Month(DT) = 10, "Октябрь",
"Неизвестный какойто месяц"))

DT - поле типа DataTime
если все месяца прописать сортировка будет что нало.


 
Владий   (2003-09-11 15:58) [16]

с выводом - понятно, но как вычленить месяц? убрав год и число?
Мне это не понятно...


 
stud   (2003-09-11 16:07) [17]

ну если совсем никак - decodedate()


 
Sandman25   (2003-09-11 16:25) [18]

или extract (month from datefield)


 
Владий   (2003-09-11 17:01) [19]

Кое с чем разобрался... Сделал так:


SELECT Got.*, Month([Got]![GDate]) AS [Month], Year([Got]![GDate]) AS [Year], Banks.*, Contracts.*
FROM (Banks INNER JOIN Contracts ON Banks.Bank = Contracts.Bank) INNER JOIN Got ON Contracts.NunDog = Got.Contr;


Но вот как [Month] выводить словами?...


 
Sandman25   (2003-09-11 17:16) [20]

У TField есть свойства OnGetText и OnSetText. Обрабатывайте их.


 
DT   (2003-09-11 17:56) [21]

В Access"e можно и как-нибудь так извратиться:
IIf([Mnth]=1,"Jan",IIf([Mnth]=2,"Feb","Другие месяцы")) as StrMonth


 
MsGuns   (2003-09-11 18:55) [22]

>Sandman25 © (11.09.03 17:16) [20]
>У TField есть свойства OnGetText и OnSetText. Обрабатывайте их.

Да он, судя по всему, читает только последние посты, не перечитывая то, что было выше. Поэтому ветка становится похожа на сказку про попа и собаку.


 
Владий   (2003-09-12 11:18) [23]

Читать-то читаю, только не все понимаю... Например, цто какую-то процедуру нуно на OnSetText прописать - понятно, но как - это выше моего понимания...
Далее - стрктура типа
ORDER BY
iif(Month(DT) = 9, "Сентябрь"),
iif(Month(DT) = 10, "Октябрь");
Ругани не вызывает, но и результата не дает...


 
Sandman25   (2003-09-12 11:36) [24]

>Например, цто какую-то процедуру нуно на OnSetText прописать - понятно, но как - это выше моего понимания...

Смотрите на значение месяца (Sender указывает на поле). Если месяц равен 1, то заменяете Text на "Январь", если 2, то на "Февраль". А лучше вообще массив завести и по индексу сразу название из него брать.


 
Sandman25   (2003-09-12 11:37) [25]

Это я про OnGetText писал. OnSetText - наоборот. Из "Январь" надо будет сделать 1.


 
MsGuns   (2003-09-12 11:48) [26]

>Владий © (12.09.03 11:18) [23]
>Читать-то читаю, только не все понимаю... Например, цто какую-то процедуру нуно на OnSetText прописать - понятно, но как - это выше моего понимания...

На компоненте TADOTable дважды кликаешь - открывается редактор филдов (т.е.полей НД - Набора Данных). Ищешь там поле с месяцем, вместо значения которого - цифры надо вывести название месяца. Клацаешь крысом на ентом филде - в окне Object Inspector (левее и ниже окна с формой) открываются 2 закладки : Properties и Events - мышем жмем на вторую. В списке снизу ищем событию OnGetText и на ней дважды "мышкаем". В коде, куда нас кинет Делфа, пишем код в манере:

procedure ADOTable1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.AsInteger=1 then Text := "Январь";
if Sender.AsInteger=2 then Text := "Февраль";
......
if Sender.AsInteger=12 then Text := "Декабрь";
end;


 
sniknik   (2003-09-12 12:51) [27]

> Владий © (12.09.03 11:18) [23]
Далее - стрктура типа
ORDER BY
iif(Month(DT) = 9, "Сентябрь"),
iif(Month(DT) = 10, "Октябрь");
Ругани не вызывает, но и результата не дает...

как это не дает результата? это сортировка по названию. и об этом я писал. (и 2 месяца это мало надо все писать чтобы смысл был, а то по двум сортировка а остальные как попало, ну не бред ли?)
если хочеш чтобы это возвращало вместо цифр надо это в тело запроса вставлять.

MsGuns © (12.09.03 11:48) [26]
case Sender.AsInteger of
.....
лутше бы смотрелся.


 
MsGuns   (2003-09-12 13:20) [28]

>sniknik © (12.09.03 12:51) [27]
>case Sender.AsInteger of
.....
лутше бы смотрелся.

Не догадался включить в конструкцию "AsInteger" - тогда компилятор бу знать, что переменная в Case перечислимая ;))


 
sniknik   (2003-09-12 14:15) [29]

б%*№ь, только заметил (ответ читал)

> Владий © (12.09.03 11:18) [23]
> ORDER BY
> iif(Month(DT) = 9, "Сентябрь"),
> iif(Month(DT) = 10, "Октябрь");

я не так писал!!!!
сравни
SELECT * FROM Table ORDER BY
iif(Month(DT) = 9, "Сентябрь",
iif(Month(DT) = 10, "Октябрь",
"Неизвестный какойто месяц"))
у меня вложение у тебя набор причем бессмысленный, одно из условий наверняка будет NULL со всеми вытекающими...

p.s. да теперь понятно почему ветка про дни рождения былf такая длинная и кончилась ничем, делать такие правки, и после просто "нет так не работает" без показа кода, а код то уже не тот что давали он уже ваш с вашими глюками.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.011 c
3-3782
inwin
2003-09-11 14:43
2003.10.02
Как записать Blob в файл


14-4100
Dilezzz
2003-08-29 22:16
2003.10.02
Как установить компонент


8-3997
Dankin
2003-06-06 04:02
2003.10.02
Как определить цвет произвольной точки на экране?


6-4027
IBSN
2003-08-01 22:19
2003.10.02
Просмотр запросов


3-3730
Max_
2003-09-12 13:46
2003.10.02
DBNavigator+перезагрузка!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский