Иерархия в бенде

отредактировано 15:23 Раздел: FastReport .NET
иерархие в бенде работает только с int значениями id полей или можно брать любые поля, любого типа?
к примеру
парен и id поля типа string?

Комментарии

  • отредактировано 15:23
    Только int.
  • отредактировано 15:23
    Но можно переделать код так, чтобы работали любые типы. Сделаю в следующем билде.
  • отредактировано 15:23
    еще вопросик, к примеру у меня есть коннектор и таблица с SQL запросом, я как то могу при формировании отчета изменить какие либо параметры в запросе.
    грубо говоря есть запрос SELECT * FROM tblOne, а при изменении какого либо параметра он становился SELECT * FROM tblTwo?
    то есть параметр в отчете влиял на формирование SQL запроса... :]
  • отредактировано 15:23
    Вы можете из скрипта изменить текст запроса.
    TableDataSource table = Report.GetDataSource("MyTable") as TableDataSource;
    table.SelectCommand = "SELECT * FROM tblTwo";
  • отредактировано October 2009
    извините я в VC++ не гуру )), по этому я юзаю VB.NET
    исходя из вашего кода пишу такую фигню:
    Dim TableBase as TableDataSource = Report.GetDataSource("tblAD")
    MessageBox.Show (TableBase.SelectCommand)
    
    и прога ругается вот так:
       в FastReport.ReportScript..ctor()
       в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
       в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
       в System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
       в System.Activator.CreateInstance(Type type, Boolean nonPublic)
       в System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
       в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
       в System.Reflection.Assembly.CreateInstance(String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
       в 5oeyro9VsRmyH9Eohf.y5kl39MeBeuWghEKE4.b5Oao6xB3()
       в 5oeyro9VsRmyH9Eohf.y5kl39MeBeuWghEKE4.dontcwDYr()
       в FastReport.Report.nXmkrgxJl()
       в FastReport.Report.Prepare(Boolean append)
       в FastReport.Report.Prepare()
       в TIBYLe4OxXrKLP04F1B.jUf7Et4NSv4sh0EOmaM.2xhLLpi0b()
    

    где косяк? :)

    (данный код является частью процедуры конструктора new в самом коде отчёта, то есть sub new....end sub, сам конструктор выполняется

    меня интересует, как можно изменить строку при генерации отчета к примеру. смысл в тот, что в конструкторе это не возможно сделать как я понимаю...
    может проще сделать так, чтобы в SQL запросе можно было вставлять что то вроде [parametr] и строку запроса парсить разок ) было бы охренительно ) типа не абсолютная строка запроса, а самогенерируемая ) только надо не забыть про безопасности и проверку на ' и " ) имхо и другие инъекции в строку
  • отредактировано 15:23
    В конструкторе нельзя обращаться к объектам отчета, они еще не инициализированы. Используйте событие Report.StartReport.
    Парсить текст SQL нельзя, гарантированы проблемы с различными диалектами SQL.

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

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