еще вопросик, к примеру у меня есть коннектор и таблица с SQL запросом, я как то могу при формировании отчета изменить какие либо параметры в запросе.
грубо говоря есть запрос SELECT * FROM tblOne, а при изменении какого либо параметра он становился SELECT * FROM tblTwo?
то есть параметр в отчете влиял на формирование SQL запроса... :]
Вы можете из скрипта изменить текст запроса.
TableDataSource table = Report.GetDataSource("MyTable") as TableDataSource;
table.SelectCommand = "SELECT * FROM tblTwo";
извините я в 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] и строку запроса парсить разок ) было бы охренительно ) типа не абсолютная строка запроса, а самогенерируемая ) только надо не забыть про безопасности и проверку на ' и " ) имхо и другие инъекции в строку
В конструкторе нельзя обращаться к объектам отчета, они еще не инициализированы. Используйте событие Report.StartReport.
Парсить текст SQL нельзя, гарантированы проблемы с различными диалектами SQL.
Комментарии
грубо говоря есть запрос SELECT * FROM tblOne, а при изменении какого либо параметра он становился SELECT * FROM tblTwo?
то есть параметр в отчете влиял на формирование SQL запроса... :]
TableDataSource table = Report.GetDataSource("MyTable") as TableDataSource;
table.SelectCommand = "SELECT * FROM tblTwo";
исходя из вашего кода пишу такую фигню: и прога ругается вот так:
где косяк?
(данный код является частью процедуры конструктора new в самом коде отчёта, то есть sub new....end sub, сам конструктор выполняется
меня интересует, как можно изменить строку при генерации отчета к примеру. смысл в тот, что в конструкторе это не возможно сделать как я понимаю...
может проще сделать так, чтобы в SQL запросе можно было вставлять что то вроде [parametr] и строку запроса парсить разок ) было бы охренительно ) типа не абсолютная строка запроса, а самогенерируемая ) только надо не забыть про безопасности и проверку на ' и " ) имхо и другие инъекции в строку
Парсить текст SQL нельзя, гарантированы проблемы с различными диалектами SQL.