Доступ из скрипта отчёта к полям Tfrxuserdataset

отредактировано 22:37 Раздел: FastReport 4.0
Столкнулся с такой проблемой. При выполнении отчёта в дата бэнде надо в зависимости от его исходных данных скрывать некоторые линии и текст. К дата бэнду привязан TfrxUserdataSet, в котором определены поля(свойство fields). Как добраться до этих полей из скрипта отчёта? Можно ли это сделать? Пробовал использовать переменные скрипта и отчёта - никак. Прямо к UserDataSet в скрипте отчёта не обратиться - этот компонент там неизвестен.

Комментарии

  • gpigpi
    отредактировано 22:37
    Используйте Report.GetDataset('frxUserDataSet1')
  • отредактировано 22:37
    gpi написал: »
    Используйте Report.GetDataset('frxUserDataSet1')
    Спасибо. Так тоже можно. Но я уже в руководстве вычитал, что есть такой способ: <Customer."Nomer"> где Customer - имя ДатаСэта, Nomer - его поле.
  • отредактировано March 2009
    manowar написал: »
    Спасибо. Так тоже можно. Но я уже в руководстве вычитал, что есть такой способ: <Customer."Nomer"> где Customer - имя ДатаСэта, Nomer - его поле.
    <Customer."Nomer"> попробывал этот способ, ничего не вышло

    не получается в скрипте отчета обратится к переменным из набора frxUserDataSet, значение которых определяется в программе с помощью процедуры OnGetValue

    написал следующие обращение
    Report.GetDataset('frxUserDataSet').Value('W')
    получил значение Null
    ???? из-за чего
  • отредактировано 22:37
    ошибку нашли
    все оказывается работает, если делать правильно
    всем спасибо
  • отредактировано 22:37
    allasc написал: »
    ошибку нашли
    все оказывается работает, если делать правильно
    всем спасибо
    а "правильно" это, простите, как? Просто сейчас воюю с такой же задачей.
    Код не работает: (ATM - поле в Tfrxuserdataset)
    void MasterData1OnBeforePrint(TfrxComponent Sender)
    {
      if(CompareText([ATM],"________________"))  //Не знает кто такой [ATM]
      {
        UnNamedRich.Visible=true;
      }else{  
        UnNamedRich.Visible=false;
      }
    
      if(CompareText(<frxUserDataSet1."ATM">,"________________")) //Значние ATM выдает всегда равным 0! Почему? Не ясно!
      {
        UnNamedRich.Visible=true;
      }else{  
        UnNamedRich.Visible=false;
      }
    }
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.