Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В отчет всегда попадает 1-я запись :-/ 
:(
    Опции темы
Monarch
Дата 16.6.2005, 07:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Синтаксис...

ReportForm.QuickRep1.DataSet := ADOQuery1;

With ADOQuery1 do
begin
Close;
SQL.Add('SELECT MAX(Code) FROM Main');
Open;
end;

ReportForm.QuickRep1.Preview;

В генерируемый отчет всегда попадает первая запись, хотя должна попадать последняя, поскольку с помощью агрегатной функции MAX выбирается максимальное значение ключевого поля Code.
База данных Access, способ досута ADO

В чем проблема? smile

И ещё одна проблема, в гриде пользователь выделяет несколько записей (свойство Multiselect = true), затем только по этим записям должен сформироваться отчет, для формирования отчета использую QuickReport, QuickRep1.DataSet = ADODataSet1. Каким образом в этот ADODataSet1 можно передать выделенные в гриде записи для формирования отчета?

Заранее спасибо.

Это сообщение отредактировал(а) Monarch - 16.6.2005, 09:56
  Вверх
Kesh
Дата 16.6.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Monarch Забыл Group by без него MAX не работает...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
SPrograMMer
Дата 16.6.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: 1
Всего: 6



Цитата(Monarch @ 16.6.2005, 07:57)
В генерируемый отчет всегда попадает первая запись, хотя должна попадать последняя, поскольку с помощью агрегатной функции MAX выбирается максимальное значение ключевого поля Code.

Что означает "Первая"??
В реляционных СУБД, нет понятия "номер записи". При вставке новой записи, она (запись) по идее может вставиться в ЛЮБОЕ место существующий таблицы. Твой запрос должен выбирать запись с максимальным значением поля Code. Если оно ключевое, то должно все правильно работать, и то что в таблице она "первой" отображается, так эт тока потому, что у тебя сортировка настроена по ключевому полю - в обратном порядке. так что усе нормально....наверное....

Цитата(Monarch @ 16.6.2005, 07:57)
И ещё одна проблема, в гриде пользователь выделяет несколько записей (свойство Multiselect = true), затем только по этим записям должен сформироваться отчет, для формирования отчета использую QuickReport, QuickRep1.DataSet = ADODataSet1. Каким образом в этот ADODataSet1 можно передать выделенные в гриде записи для формирования отчета?

Сделать запрос по ним, сформулировав общее условие. Но так как юзер может выбрать ЛЮБЫЕ данные, то лучше делать запрос следующего вида:
Код

Select * From Main
Where Code In (Select Code From TempTable);

Т. е создать временную табличку (TempTable), с одним полем Code, в которую прежде чем выполнять запрос занести список выделенных строчек. Выделенные строчки просматриваются, с использованием цикла, и свойства SelectedRows, если мне не изменяет память, найденные таким образом Code заносятся в TempTable вручную, а затем выполняется запрос.
Естно, перед формированием нового запроса, предыдущие значения в TempTable нужно удалить, например запросом:
Код

Delete From Main





--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.