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

Вниз

Qreports групировка   Найти похожие ветки 

 
Peter_cc   (2005-06-13 12:26) [0]

Здравствуйте мастера. Использую qreports для построения отчетов. хочу сделать группировку по полю дата. Перетаскиваю на отчет QRGroup и в Expression пишу copy(data,1,10). Все нормально он груперует но вот вопрос как мне сделать так что бы на QRGroup писался заголовок но не 01.01.2001 а допустим если подгруппа называется 01.01.2001 то он пишет ВТОРНИК т.е. я бы сам мог подписывать заголовок группировки .что то типа того (if мой заголовок 01.01.2001 then form1.qrlabel.caption:=’Ля ля’) Надеюсь вы меня поняли и поможете мне….:)


 
Anatoly Podgoretsky ©   (2005-06-13 12:28) [1]

Ну так и напиши


 
Peter_cc   (2005-06-13 12:40) [2]


> Anatoly Podgoretsky ©   (13.06.05 12:28) [1]
> Ну так и напиши

ну проблема в том что как мне уловить изменения названия групировки т.е. (if мой заголовок 01.01.2001 then form1.qrlabel.caption:=’Ля ля’)где эту строчку писать????


 
Anatoly Podgoretsky ©   (2005-06-13 12:49) [3]

Улавливать не надо, оно само уловится, когда надо будет печатать тогда сразу и присваивай свое значение.


 
Peter_cc   (2005-06-13 12:59) [4]


> Anatoly Podgoretsky ©   (13.06.05 12:49) [3]
> Улавливать не надо, оно само уловится, когда надо будет
> печатать тогда сразу и присваивай свое значение.

не получается вот смотрите перетаскиваю на qrgroup qrdbtext8 в свойствах указываю datafield  поле data и qrlabal20 потом перед itog.QuickRep1.Preview;
пишу строчку
if itog.QRDBText8.Caption="01.01.2001" then itog.QRLabel20.Caption:="111";
QRLabel20 ничего не присваивается.....


 
Anatoly Podgoretsky ©   (2005-06-13 13:06) [5]

Может не там пишешь?


 
Peter_cc   (2005-06-13 13:08) [6]


> Anatoly Podgoretsky ©   (13.06.05 13:06) [5]
> Может не там пишешь?
так вот я и незнаю где надо пишу перед itog.QuickRep1.Preview;


 
Peter_cc   (2005-06-13 13:10) [7]


> Anatoly Podgoretsky ©   (13.06.05 13:06) [5]

а может у вас есть примерчик я был бы очень признателен....:)


 
Anatoly Podgoretsky ©   (2005-06-13 13:22) [8]

Ну так твой код на первый взгляд правильный. А на второй взгляд на смотреть на твой отчет.


 
Silver Alex ©   (2005-06-13 13:40) [9]

2Peter_cc

можно создать вычисляемое поле,  и на отчете отображать его


 
Peter_cc   (2005-06-13 13:47) [10]


> Silver Alex ©   (13.06.05 13:40) [9]
> 2Peter_cc
>
> можно создать вычисляемое поле,  и на отчете отображать
> его
и что мне это даст????? ладно забудем групировку...вот я вывожу записи при помощи qrdbtext у которого я в свойствах указываю datafield=data оно мне выводит все правильно так как есть в базе ...а могу ли я в зависимости то что в базе выводить подругому т.е. опять же if qrdbtext.caption=01.01.2001 then qrdbtext.caption:=("Ура") и куда имменно мне надо вставить эту строчку????? спасибо


 
Anatoly Podgoretsky ©   (2005-06-13 13:58) [11]

qrdbtext не позволит тебе использовать свои значения, он их берет только из набора данных. Надо использовать другой компонент, не db aware


 
Silver Alex ©   (2005-06-13 13:59) [12]

2 Peter_cc   (13.06.05 13:47) [10]

это даст то, что ты не будешь парить себе мозги куда же вставить строчку  if qrdbtext.caption=01.01.2001 then qrdbtext.caption:=("Ура")

создал вычисляемое поле MainCalc, если ты знаешь что это такое.
на TDataSet.OncalcFields  пишешь

procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
begin
  if dataset.FieldByname("data").asDateTime="01.01.2001" then   dataset.FieldByname("data").Asstring:="Ура";
end;

а уже  qrdbtext  указаваешь не datafield=data, а соответственно  datafield=MainCalc

только сам уже посмотри чего и с чем надо сравнивать по условию


 
Silver Alex ©   (2005-06-13 14:02) [13]

поля попутал, вот так конечно

if dataset.FieldByname("data").asDateTime="01.01.2001" then   dataset.FieldByname("MainCalc").Asstring:="Ура";


 
Peter_cc   (2005-06-13 14:31) [14]


> Anatoly Podgoretsky ©   (13.06.05 13:58) [11]
> qrdbtext не позволит тебе использовать свои значения, он
> их берет только из набора данных. Надо использовать другой
> компонент, не db aware
ладно а если я буду использовать QREXPR и в Expression укажу copy(data,1,10) то на выходе у меня тоже будет получатся 01.01.2001 могу ли я его переделать????(может в expression надо написать условие только как я незнаю)


 
Peter_cc   (2005-06-13 14:33) [15]


> Silver Alex ©   (13.06.05 13:59) [12]
> 2 Peter_cc   (13.06.05 13:47) [10]
>
> это даст то, что ты не будешь парить себе мозги куда же
> вставить строчку  if qrdbtext.caption=01.01.2001 then qrdbtext.caption:=("Ура")
>
> создал вычисляемое поле MainCalc, если ты знаешь что это
> такое.
> на TDataSet.OncalcFields  пишешь
>
> procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
> begin
>   if dataset.FieldByname("data").asDateTime="01.01.2001"
> then   dataset.FieldByname("data").Asstring:="Ура";
> end;
>
> а уже  qrdbtext  указаваешь не datafield=data, а соответственно
>  datafield=MainCalc
>
> только сам уже посмотри чего и с чем надо сравнивать по
> условию

примерно я понял что ты хочешь сказать только вот мне немного трудно будет добавить поле...слишком запутанно у меня тут все и если еще и поле добавть многое надо переделать....:(


 
Silver Alex ©   (2005-06-13 14:43) [16]

2  если еще и поле добавть многое надо переделать....:(

я тебя умаляю :)

все равно ведь не работает у тебя так как надо.Ты попробуй, там все просто.Все как было так и оставь, только добавь поле и назначь его едиту


 
Peter_cc   (2005-06-13 14:52) [17]


> Silver Alex ©   (13.06.05 14:43) [16]
только добавь поле и назначь его едиту
сейчас задам вопрос и боюсь общатся со мной больше никто не будет...:)
а где добовляется вычисляемое поле???? насколько я понял не в самой таблице ведь да???? в запросе?


 
Silver Alex ©   (2005-06-13 15:05) [18]

2 Peter_cc   (13.06.05 14:52) [17]

мда-а, двойной клик по датасету, правая клавиша->new field .описуешь его и не забудь поставить Field Type=calculated.
Это и будет у тебя вычисляемое поле.Но надо еще добавить все поля из запроса -> add field.У датасета пишешь на событие TDataSet.OncalcFields.Внимательно там посмотри как.


 
Peter_cc   (2005-06-13 15:16) [19]


> Silver Alex ©   (13.06.05 15:05) [18]
> 2 Peter_cc   (13.06.05 14:52) [17]
>
> мда-а, двойной клик по датасету, правая клавиша->new field
> .описуешь его и не забудь поставить Field Type=calculated.
> Это и будет у тебя вычисляемое поле.Но надо еще добавить
> все поля из запроса -> add field.У датасета пишешь на событие
> TDataSet.OncalcFields.Внимательно там посмотри как.

у меня трабл...ладно пасибо но это способ не для меня...у меня нельзя сделать addfield в датасете....т.к. сетевая у меня база (почему то мне кажется что я полный бред горожу)


 
Silver Alex ©   (2005-06-13 15:30) [20]

2Peter_cc   (13.06.05 15:16) [19]

ну даже не знаю как тебе помочь, наверное кроме тебя самого это никто не сдалает.Разберись почему нельзя добавить, быть такого не может. Ну а если даже и нельзя :) , тогда можешь те же поля прописать  правая клавиша->new field, только Field Type=data.


 
Zacho ©   (2005-06-13 15:45) [21]


> addfield в датасете....т.к. сетевая у меня база (почему
> то мне кажется что я полный бред горожу)

И правда, бред :) Без разницы, сетевая база или локальная. Это делается в клиентском приложении, в компонентах, потомках TDataSet (TTable, TQuery и т.п.)

P.S. Тебе явно необходим какой-нибудь учебник по основам работы с БД в Дельфи.



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

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

Наверх




Память: 0.5 MB
Время: 0.016 c
14-1120371700
Anvar
2005-07-03 10:21
2005.07.25
Программист-стажер, Delphi. Никто не хочет поработать?


8-1111485820
maxistent
2005-03-22 13:03
2005.07.25
Как выдрать кадры из avi-файла...


1-1120656537
denissoft
2005-07-06 17:28
2005.07.25
MQL4


10-1097502395
Roobee
2004-10-11 17:46
2005.07.25
Интеграция Delphi и Excel. Мастера откликнитесь.


3-1118413306
Inkotex
2005-06-10 18:21
2005.07.25
Filter





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский