0

使用Visual Studio Ultimate 2012C 夏普 .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;
    }

然后我的报告有一个设置为“嵌入”的图像,值是对 C 驱动器上位置的导入。

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

有没有办法强制导入更新

我已经研究了其他没有运气的方法,例如将图像设置为外部图像并使用“file:///”,但只收到“x”符号。

基本上我已经没有关于做什么的想法了,这样的帮助会很棒。

非常感谢!

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

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

更新!! 好的,我浏览了很多消息来源都说同样的话,这应该可以工作,但由于某种原因,我仍然得到一个红色的 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。

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

4

1 回答 1

0

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

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

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

在此处输入图像描述

于 2013-08-28T20:18:19.080 回答