Olá Pessoal,
Meu questionamento é o seguinte. Eu tenho uma funcionalidade em meu sistema que o usuário pode escolher um conjunto de fotos para imprimir. Eu estou utilizando o ReportViewer da Microsoft mesmo. O problema é que o usuário pode escolher quantas fotos ele quer que imprima na página (1,2,4,6,9).
Pesquisei na internet e percebi que eu posso criar meu rdlc em tempo de execução e assim constriuir meus controles de imagem também. O problema é que eu tenho q ficar definindo o Top, Left, Width, Height para todas as imagens. Como o usuario pode escolher varias opção eu nao estou conseguindo controlar todas as situações possiveis. É mais ou menos o que a impressão do windows faz.
Alguem teria outra suguestao de como eu poderia fazer isso?!
Código para criar imagem:
public class ImageRdlGenerator
{
public Rdl.ImageType CreateImage ( string ds,string top, string left, string width, string height)
{
Rdl.ImageType imagem = new Rdl.ImageType();
imagem.Name = ds;
imagem.Items = new object[]
{
"image/jpeg",
Rdl.ImageTypeSizing.FitProportional,
Rdl.ImageTypeSource.Database,
"=First(Fields!foto_bl_foto.Value,\""+ ds + "\")",
top,left,width,height,
};
imagem.ItemsElementName = new Rdl.ItemsChoiceType15[]
{
Rdl.ItemsChoiceType15.MIMEType,
Rdl.ItemsChoiceType15.Sizing,
Rdl.ItemsChoiceType15.Source,
Rdl.ItemsChoiceType15.Value,
Rdl.ItemsChoiceType15.Top,
Rdl.ItemsChoiceType15.Left,
Rdl.ItemsChoiceType15.Width,
Rdl.ItemsChoiceType15.Height
};
return imagem;
}
}
Código para criar a imagem dentro do meu rdlc:
private Rdl.ReportItemsType CreateReportItems ()
{
Rdl.ReportItemsType reportItems = new Rdl.ReportItemsType();
ImageRdlGenerator imagem = new ImageRdlGenerator();
reportItems.Items = new object[] { imagem.CreateImage("Foto1", "0.75cm", "0.5cm","26.5cm","18.5cm") };