Cross отчет, связь с базой
в кросс отчете поле должно менять цвет в зависимости от значения поля базы данных frxDBDataSet1, само это поле в кросс отчет не вставляется. Вставляю в скрипт
procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
begin
if <frxDBDataSet1."Inspector">=' ' then DBCross1Object2.Color := clRed
else DBCross1Object2.Color := clWhite
end;
и вижу отладчиком, что frxDBDataSet1."Inspector" значение не меняет, похоже что база не листается вместе с кросс отчетом
т.е. связи нет
как поступить?
спасибо
procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
begin
if <frxDBDataSet1."Inspector">=' ' then DBCross1Object2.Color := clRed
else DBCross1Object2.Color := clWhite
end;
и вижу отладчиком, что frxDBDataSet1."Inspector" значение не меняет, похоже что база не листается вместе с кросс отчетом
т.е. связи нет
как поступить?
спасибо
Комментарии
Ау!
спасибо
Ну, к сожалению, я до конца помочь здесь не смогу. У меня как раз такой потребности не возникало. Да и с кроссами работаю очень редко. Но кое-что могу сказать, может поможет.
Кросс строится таким образом:
1) Открывается датасет
2) Строится матрица значений. Здесь идёт пробег по датасету.
3) Рисуется кросс-таб по подготовленной матрице. Здесь уже датасет не юзается.
Таким образом, когда кросс-таб печатается, датасет уже не используется. Курсор стоит себе спокойненько на какой-то записи и всё. Так что надо изыскивать какие-то другие пути для решения этой проблемы.
если select count(id) from spisok_form_n where client= строка кросс отчета) and name_form = столбец кросс отчета)
то ячейка окрашивается