Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2008, 11:16   #1
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
Печаль Работа с датами

Доброго времени суток, уважаемые эксперты!
подскажите ,пожалусто , можно ли выполнить следующий запрос, чтобы пр выводе в QR даты разбивались в группы по месяцам .... примерно так:
т.е. например выборка с декабря по февраль:
на выходе:
Декабрь
01.12.гггг
02.12.гггг
....
Январь
01.01.гггг
02.01.гггг
....
Февраль
01.02.гггг
о2.о2.гггг
.....
т.е. при смене месяца писалося название нового месяца как подзаголовак

Запрос на выборку у меня :
Код:
tex:='select Zurnal.DataPost as data,Zurnal.fio as fio,Zurnal.Ident,Zurnal.Soderganie,RegistraKartochka.RezRassmObras from Zurnal,RegistraKartochka where (Zurnal.PorNomer = RegistraKartochka.PorNomer) and (Zurnal.DataPost>= '+s1+') and (Zurnal.DataPost<= '+s2+')';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=tex;
ADOQuery1.Open;
пробовала использавать функции:
Код:
 
function TForm9.dateconv(aDate: TDate): string;
{
  Приводит дату к виду yyyy-mm-dd
}
var
  dtf:TFormatSettings;
begin
  dtf.DateSeparator:='-';
  dtf.ShortDateFormat:='yyyy-mm-dd';
  Result:=DateToStr(aDate,dtf);
end;
Код:
 function TForm9.GetMonthNameRU(aDate: TDate): string;
{
  Возвращает имя месяца по дате
 }
var
  monnum:Integer;
begin
  monnum:=MonthOfTheYear(aDate);
  case monnum of
    1:Result:='Январь';
    2:Result:='Февраль';
    3:Result:='Март';
    4:Result:='Апрель';
    5:Result:='Май';
    6:Result:='Июнь';
    7:Result:='Июль';
    8:Result:='Август';
    9:Result:='Сентябрь';
   10:Result:='Октябрь';
   11:Result:='Ноябрь';
   12:Result:='Декабрь';
  end; //of case
end;
но это не правильно .... а как исправить уже не знаю (чесно говоря запуталась )
Tanuska___:) вне форума Ответить с цитированием
Старый 18.09.2008, 11:49   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Почему неправильно? Нормально. Только последнюю функцию я писал так:
Код:
function aMonth(m: word): shortstring;
const mm: array[1..12] of string = ('января', 'февраля', 'марта', 'апреля',
      'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября',
      'декабря');
begin
   Result := mm[m];
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.09.2008, 12:22   #3
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
По умолчанию

функция возможно .... но вот когда я хочу вывести в отчет название месяца выбранного запросом (см. выше * поле DataPost(тут полностью дата формата ДД.ММ.ГГГГ))
Form10.QRLabel9.Caption:=TForm9.Get MonthNameRU(ADOQuery1.Fields.Fields[0].AsDateTime);
но пишет почему то только декабрь .... хотя у меня в базе и месяца такого нету....
и если знаете подскажите как сделать так чтобы формировались записи в отчет с учетом названия месяца
Tanuska___:) вне форума Ответить с цитированием
Старый 18.09.2008, 12:59   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Похоже, что MonthOfTheYear неправильно видит номер месяца. Попробуй переписать функцию с указанием номера...
Код:
 function TForm9.GetMonthNameRU(m: word): string;
begin
  case m of
    1:Result:='Январь';
    2:Result:='Февраль';
    3:Result:='Март';
{.......... и т.д.........}
  end;
end;
и напиши, что-то типа
Код:
var y,m,d: Word;
begin
DecodeDate(Query1.Fields[0].AsDateTime,y,m,d);
Form10.QRLabel9.Caption:=TForm9.GetMonthNameRU(m);
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.09.2008, 13:30   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Да, кстати...
Я сейчас выкладываю на свой сайт QuickReport & QRDesign v5.02 для D5-D2007.
Мне лень разбивать их по версиям Дельфи, поэтому выложу одной пачкой. Весит 25 мб. В работе не проверял, т.к. не люблю QuickReport и не хочу засорять Дельфи подобными шедеврами.
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.09.2008, 13:45   #6
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
По умолчанию

вообще то я его использую только по той причине что знаю как в нем работать ... но пытаюсь разобраться в FastReports он немного посложнее... но и возможностей побольше... у вас на сайте есть что нибудь про FastReports ?
Tanuska___:) вне форума Ответить с цитированием
Старый 18.09.2008, 13:56   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Я FastReports не выкладывал, т.к. не выкладываю взломанные компоненты российских разработчиков. Полная версия FastReport v4.6.8 лежит у китайцев здесь.. А информации по использованию в сети полно. В т.ч. и на сайте производителя. Кстати FastReport совсем не сложнее, а намного удобнее.
Да, и демок там целая куча есть.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции с датами. mrtnt PHP 3 20.09.2008 01:16
Работа с датами Ozerich Общие вопросы Delphi 6 07.08.2008 10:03
Работа с датами SanekIrk Общие вопросы Delphi 5 11.07.2008 22:01
работа с датами kolduev Помощь студентам 6 27.02.2008 19:54
Разница между датами deenka БД в Delphi 3 31.01.2008 13:21