Форум: "Базы";
Текущий архив: 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.009 c