C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: FastReport - выборка строк из StringGrid  (Прочитано 2243 раз)
direk
Участник


Сказали спасибо: +6/-0
Offline

Сообщений: 79


« : 21 Февраль 2016, 23:58:10 »

Выбираю строки в отчет из StringGrid через frxUserDataSet
Если все строки - проблем нет.

Но в StringGrid первая строка - это имена колонок. Так как в FastReport  уже есть шапка
с красиво оформленными именами колонок, то по идее, при выборке первую строку
StringGrid  нужно пропустить, но как - не знаю...

Пробую так, но никакого ефекта нет:
   
Код
// предварительная настройка датасета
frxUserDataSet1->RangeBegin  =  rbCurrent; // все равно берет все строки
frxUserDataSet1->RangeEnd = reCount;
frxUserDataSet1->RangeEndCount = AdvStringGrid1->RowCount;
// готовим и показываем отчёт
frxReport1->ShowReport();

Возможно я не понимаю принципа работы  свойства frxUserDataSet1->RangeBegin  =  rbCurrent
Как бы там не было, надеюсь на Вашу подсказку.
Записан
Sasha
Участник


Сказали спасибо: +13/-0
Offline

Сообщений: 413


« Ответ #1 : 24 Февраль 2016, 16:37:23 »

Выбираю строки в отчет из StringGrid через frxUserDataSet
Если все строки - проблем нет.

Но в StringGrid первая строка - это имена колонок. Так как в FastReport  уже есть шапка
с красиво оформленными именами колонок, то по идее, при выборке первую строку
StringGrid  нужно пропустить, но как - не знаю...

Пробую так, но никакого ефекта нет:
   
Код
// предварительная настройка датасета
frxUserDataSet1->RangeBegin  =  rbCurrent; // все равно берет все строки
frxUserDataSet1->RangeEnd = reCount;
frxUserDataSet1->RangeEndCount = AdvStringGrid1->RowCount;
// готовим и показываем отчёт
frxReport1->ShowReport();

Возможно я не понимаю принципа работы  свойства frxUserDataSet1->RangeBegin  =  rbCurrent
Как бы там не было, надеюсь на Вашу подсказку.


А так?
Код
frxUserDataSet1->RangeBegin  =  rbCurrent-1;
Записан
direk
Участник


Сказали спасибо: +6/-0
Offline

Сообщений: 79


« Ответ #2 : 24 Февраль 2016, 19:35:23 »

не получается...

Вот передача данных в FastReport:

Код
void __fastcall TForm1::frxReport1GetValue(const UnicodeString VarName, Variant &Value)
{
if (VarName == "e1") {
Value = AdvStringGrid1->Cells[1][frxUserDataSet1->RecNo];
}
if (VarName == "e2") {
Value = AdvStringGrid1->Cells[2][frxUserDataSet1->RecNo];
}
if (VarName == "e3") {
Value = AdvStringGrid1->Cells[3][frxUserDataSet1->RecNo];
}
if (VarName == "e4") {
Value = AdvStringGrid1->Cells[6][frxUserDataSet1->RecNo];
}
if (VarName == "e5") {
Value = AdvStringGrid1->Cells[5][frxUserDataSet1->RecNo];
}
}

Или все-таки нужно вручную в цикле переберать строки Grida?

Проблема пустяковая, и возможны пути обхода, но интересно  как ее решить...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.066 секунд. Запросов: 19.