| Kuks | 
| Отправлено: 12.09.2005, 14:47 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Каким образом в QR при генерации отчета выводить только одну выбранную (например в гриде) запись? 
Заранее спасибо  | 
  | 
| olegenty | 
| Отправлено: 12.09.2005, 15:45 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 таким же, как выводятся несколько записей.
 | 
  | 
| AVC | 
| Отправлено: 12.09.2005, 15:54 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1583 
  
  
 | 
 Имелся ввиду QuickReport ?
  
Поставить фильтр 
или 
использовать запрос, выбрающий только нужную запись 
или 
пробежаться по Report'у и, например, поменять caption у label'ов, одноименных с полями записи 
 | 
  | 
| Kuks | 
| Отправлено: 13.09.2005, 07:37 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Немного тупо задал вопрос. Имеется рекордсет, полученный с сиквелсервера, состоящий из нескольких записей. В QuickReporte генерируется отчет в полосах (Bands). А как заставить печетаться только одну, активную (в гриде) запись? Заранее благодарю.  | 
  | 
| AVC | 
| Отправлено: 13.09.2005, 08:13 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1583 
  
  
 | 
 | QUOTE  |   
Поставить фильтр на эту запись 
или 
пробежаться по Report'у и, например, поменять caption у label'ов, одноименных с полями записи 
 |  
  
 | 
  | 
| Kuks | 
| Отправлено: 13.09.2005, 10:43 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 108 
  
  
 | 
 Я наверное тупой насмерть, но я не понял какой фильтр и куда ставить 
если я фильтрацию вообще не использую?
 | 
  | 
| avc* | 
| Отправлено: 13.09.2005, 10:59 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 | QUOTE  |   
но я не понял какой фильтр и куда ставить 
 |  
  
Допустим у вас в выборке есть поле, удовлетворяющее характеристикам первичного ключа. 
Тогда перед печатью 
TDataSet *ds= DataSet... 
ds->DisableControls() 
if (ds->Filtered) ds->Filtered = false; 
ds->Filter = "Название_поля_PK = " + ds->FieldByName("Название_поля_PK")->AsString; 
// для текстового поля могут потребоваться ' 
ds->Filtered = true;
  
try { Печатаем } 
__finally { ds->Filtered = false; ds->EnableControls(); }
  
Идея состоит в том, что бы в ds была ровно одна запись.
  
PS. Но лично я использовал (когда работал QRep) второй вариант (обход отчета и замена Caption у одноименных Label'ов)  — попутно решается проблема парамтров, заголовков, подписей и т.д.  | 
  | 
| avc* | 
| Отправлено: 13.09.2005, 11:05 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 Еще один вариант - 
QuickReport->DataSet = NULL; 
Band, например, Title 
QRDBText показывает поля текущей записи. 
 | 
  | 
| Kuks | 
| Отправлено: 13.09.2005, 11:13 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 108 
  
  
 | 
 сенькю вери,вери мач!!!!!!!!!!!!!!!!!
 | 
  | 
| Kuks | 
| Отправлено: 13.09.2005, 13:56 | 
 
 
 | 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 108 
  
  
 | 
 avc*!!!! 
Огромное спасибо за код!!!! 
Проверил, все работает.
 | 
  | 
| Guest | 
| Отправлено: 13.09.2005, 15:22 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
  
На здоровье. Заходите еще.    | 
  |