Скрыть/показать MasterData по условию
Добрый день!!!
Мне необходимо проверять значение которое возвращает запрос по полю Internal query3."DrS12 (в базе оно логическое) и если оно true, то отображать MasterData2 если лож, то MasterData3. На событие Page4OnBeforePrint той странице на которой находятся бенды повесил код:
Допустим у меня запрос возвращает 6 записей.
Значение у них Internal query3."DrS12 разное (true/false).
при построении запроса у меня видны либо все MasterData3 либо все MasterData2. А по идее они должны быть в перемешку.
В чем моя ошибка, может не тот обработчик событий я выбрал?
Мне необходимо проверять значение которое возвращает запрос по полю Internal query3."DrS12 (в базе оно логическое) и если оно true, то отображать MasterData2 если лож, то MasterData3. На событие Page4OnBeforePrint той странице на которой находятся бенды повесил код:
procedure procedure Page4OnBeforePrint(Sender: TfrxComponent);
begin
MasterData2.Visible:= <Internal query3."DrS12">;
MasterData3.Visible:= not <Internal query3."DrS12">;
end;
Допустим у меня запрос возвращает 6 записей.
Значение у них Internal query3."DrS12 разное (true/false).
при построении запроса у меня видны либо все MasterData3 либо все MasterData2. А по идее они должны быть в перемешку.
В чем моя ошибка, может не тот обработчик событий я выбрал?
Комментарии
они не могут печататься в перемешку, сначала один затем второй.
Page4OnBeforePrint вызываеться одни раз перед печатью всего Page4
даже если он многостраничный.
Каким образом DrS12 связанно и с первым и со вторым DataSet-ом?
Каким образом DataSet-ы связанны между собой, если ты хочешь печатать строку либо из обдного либо из другого то они явно както связанны.
Может проще из связать на стадии запроса + прицепить DrS12 и тагда либо в запросе либо в Fast-е подиенять колонки в зависимости от DrS12.
Одно из них "Internal query3."DrS12"
Если "Internal query3."DrS12"=true тогда нужно выводить в репорт 8 полей в 8 мемо, я их разместил в MasterData2.
Если "Internal query3."DrS12"=false тогда нужно печатать 1 поле в 1 мемо, я их разместил в MasterData3.
По твоему ответу я понял что так делать некорректно.
Раньше ясделал все мемо на одном бенде и их Visible делал: Это работало, но вот загвоздка, когда нужно было оображать одно memo то получалось на бенде много совободного места (там невидимые memo).
Для того что бы убрать эту пустоту, я делал высоту невидимых мемо=0, но почемуто только второе мемо подтягивалось к первому, а остальные становились "плоскими" и оставались на своих местах.
выстави
MasterData.PrintChildIfInvisible в True
на MasterData размести 8 мемо
на Child 1 мемо
в MasterData.OnBeforePrint
MasterData.Visible := <Internal query3."DrS12">
Child.Visible := not <Internal query3."DrS12">
что -то типо этого.