Olá,
O reportviewer não oferece suporte para você desenha-lo via programação. Você não consegue acessar as propriedades internas do report. Você terá que faze-lo pelo design mesmo.
Contudo, há um método que você consegue alterar qualquer coisa do report, mas as chances de erro são enormes, visto que a alteração é feita vai xml e string pura (sem dados tipados).
Só um exemplo (Usando LINK):
- Inicialmente você carrega o report num xml (path é o caminho do arquivo do report):
XElement doc = XElement.Load(path);
- Tendo o meu report carregado no objeto "doc", eu posso manipular dá forma que eu quiser. Vou instanciar o cabeçalho do report:
XNamespace xmlns = "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";
//Procura pelo cabeçalho do report
XElement cabecalho = doc.Element(xmlns + "Page").Elements(xmlns + "PageHeader").Descendants().ElementAt(0);
- Apartir daí você pode fazer qualquer alteração nos elementos do report. mas qualquer alteração, terá de ser no padrão do report senão dará erro. Por exemplo, o report utiliza um padrão para declarar um textbox, Você deverá seguir o mesmo padrão e escrever
no xml da mesma forma que o report faz. Você pode ver a estrutura de um report, clicando com o botão direito no arquivo e selecionando "open with xml editor".
- Depois de feito tudo que queria com o xml, basta fazer:
using (StringReader rdlcOutputStream = new StringReader(doc.ToString()))
{
ReportViewer1.LocalReport.LoadReportDefinition(rdlcOutputStream);
}
e pronto. Ta feito.
PS: Não aconselho você a fazer isso. As chances de erro são enormes, você levará uma eternidade para desenhar seu report.