端口查看器图像在运行时传递

时间:2012-12-13 12:01:54

标签: c# report reportviewer

使用 Visual Studio Ultimate 2012 C Sharp .Net4.0

大家好,我在这里将图片保存到 C盘

if (File.Exists("C:\\LabelImages\\TypeImage1.Png"))
   {                  
       File.Delete(@"C:\\LabelImages\\TypeImage1.Png");
       picNewType.Image.Save(@"C:\\LabelImages\\TypeImage1.Png");
                //reportViewer1.Reset();
               // reportViewer1.Refresh();
   }
   else
   {
       if (!(picNewType.Image == null))
       {                   
           picNewType.Image.Save(@"C:\\LabelImages\\TypeImage1.Png");
                    //reportViewer1.Reset();
                    //reportViewer1.Refresh();
       }
   }

然后我有一个设置报告参数的方法。

public virtual IList<Microsoft.Reporting.WinForms.ReportParameter> NewReportSetup(string part, string batch, string locn, string wheel, string gear, string length,
                                string fits, string newbar, string newbarnum, string abs)
    {
        IList<Microsoft.Reporting.WinForms.ReportParameter> parameters = new List<Microsoft.Reporting.WinForms.ReportParameter>();
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramPart", part));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramBatch", batch));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramLocn", locn));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramWheel", wheel));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramGear", gear));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramLength", length));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramABS", abs));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramBuyer", fits));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramBarCode", newbar));
        parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("paramBartxt", newbarnum));
        //parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("path", filepath.AbsoluteUri));

        return parameters;
    }

然后我的报告的图片设置为“embeded”,值为导入到C盘上的位置。

现在这会加载图像,但是如果图像在运行时更改,则报告不会更改

有没有办法强制导入更新

我没有运气就研究过其他方法,例如将图像设置为外部并使用“file:///”,但只接受 “x”符号。

基本上我不知道该做什么,所以帮助会很棒。

非常感谢!

UPDATE :: 好的哇根本没有回复.... 我一直在尝试其他一些东西。

在报告和代码中将图像设置为外部,然后将路径作为参数传递给文件,然后将图像的值设置为参数,所有我得到的都是“X”符号。我在这里坚持坚果这是一个简单的解决方案吗?

UPDATE !! 好吧我已经经历了很多来源都说同样的事情,这应该工作,但由于某种原因,我仍然得到一个红色的x,没有以下的图像:

string filepath = @"file:///C:\LabelImages\TypeImage1.Png";
parameters.Add(new Microsoft.Reporting.WinForms.ReportParameter("path", filepath));

然后在我的报告中我有一个参数“path”,它被设置为以下表达式中报告上图像的值

=Parameters!path.Value

所有这些结合在一起应该给我一个图像。源设置为外部MIME设置为Png。不仅如此,我还设置了这个:

 reportViewer1.LocalReport.EnableExternalImages = true;
 reportViewer1.RefreshReport();

然后在此之后我设置了参数:

 IList<Microsoft.Reporting.WinForms.ReportParameter> param = new List<Microsoft.Reporting.WinForms.ReportParameter>();

            IList<Microsoft.Reporting.WinForms.ReportParameter> param = new List<Microsoft.Reporting.WinForms.ReportParameter>();

            param = reportshaft.NewReportSetup(txtNewPart.Text.ToString(),
                txtBatch.Text.ToString(), txtLocation.Text.ToString(), txtWheel.Text.ToString(), txtGear.Text.ToString(), txtLength.Text.ToString(),
                txtFits.Text.ToString(), txtNewBar.Text.ToString(), txtNewBarNum.Text.ToString(), txtABS.Text.ToString(), filepath.ToString());

            reportViewer1.LocalReport.SetParameters(param);
            reportViewer1.RefreshReport();;

那为什么我仍然没有得到任何形象?我在这里失去了理智,真的需要一些人发帖。

即使我硬编码以下内容:

="file:///C:\LabelImages\TypeImage1.Png"

所以我真的卡在这里,没有错误只发生了一个盒子里的小x只是没有图像。

或者,如果我将其设置为嵌入式,是否有办法在按钮点击时重新嵌入图像?

1 个答案:

答案 0 :(得分:0)

我刚刚引用了外部图像几乎相同的问题...答案只是在“文件”之后只有2个斜杠。

文件:// C:\ Path \ To \ My File \ Logo.jpg

以下示例来自我的一份工作报告(Report Builder 3.0,SQL Server 2012)

enter image description here