Browse Source

FilePath in ImageItem is set even if Item is added to existing Report

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5653 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 15 years ago
parent
commit
01eb28213d
  1. 8
      samples/SharpDevelopReports/SampleReports/Customized/EventLog.srd
  2. 50
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs
  3. 6
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

8
samples/SharpDevelopReports/SampleReports/Customized/EventLog.srd

@ -34,6 +34,14 @@ @@ -34,6 +34,14 @@
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items>
<BaseImageItem>
<ImageSource>File</ImageSource>
<Location>12, 26</Location>
<Name>BaseImageItem2</Name>
<Size>75, 23</Size>
<ScaleImageToSize>False</ScaleImageToSize>
<BackColor>White</BackColor>
</BaseImageItem>
<BaseTextItem>
<BackColor>Silver</BackColor>
<CanShrink>False</CanShrink>

50
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs

@ -75,7 +75,8 @@ namespace ICSharpCode.Reports.Addin @@ -75,7 +75,8 @@ namespace ICSharpCode.Reports.Addin
try {
object o = this.Load(sectionNode as XmlElement,null);
BaseSection section = o as BaseSection;
Absolut2RelativePath(section,this.reportSettings.FileName);
ConvertAbsolut2RelativePath(section.Controls,this.reportSettings.FileName);
// ConvertAbsolut2RelativePath(section,this.reportSettings.FileName);
host.Container.Add(section);
} catch (Exception e) {
MessageService.ShowError(e);
@ -85,11 +86,17 @@ namespace ICSharpCode.Reports.Addin @@ -85,11 +86,17 @@ namespace ICSharpCode.Reports.Addin
}
private static void Absolut2RelativePath (BaseSection section, string fileName)
private static void ConvertAbsolut2RelativePath (System.Windows.Forms.Control.ControlCollection controls, string fileName)
{
foreach (Control ctrl in section.Controls) {
BaseImageItem baseImageItem = ctrl as BaseImageItem;
foreach (Control control in controls) {
if (control.Controls.Count > 0) {
ConvertAbsolut2RelativePath(control.Controls,fileName);
}
BaseImageItem baseImageItem = control as BaseImageItem;
if (baseImageItem != null) {
baseImageItem.ReportFileName = fileName;
@ -106,38 +113,7 @@ namespace ICSharpCode.Reports.Addin @@ -106,38 +113,7 @@ namespace ICSharpCode.Reports.Addin
}
}
}
Console.WriteLine("");
}
private static void old_Absolut2RelativePath (BaseSection section, string fileName)
{
System.Diagnostics.Trace.WriteLine("Absolut2RelativePath");
foreach (Control item in section.Controls) {
BaseImageItem baseImageItem = item as BaseImageItem;
if (baseImageItem != null) {
baseImageItem.ReportFileName = fileName;
if (Path.IsPathRooted(baseImageItem.ImageFileName)) {
string relPath = ICSharpCode.Reports.Core.FileUtility.GetRelativePath(
Path.GetDirectoryName(fileName),
Path.GetDirectoryName(baseImageItem.ImageFileName));
System.Diagnostics.Trace.WriteLine(String.Format("relativ image {0}",relPath));
string relFile = relPath + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
System.Diagnostics.Trace.WriteLine(String.Format("ggg image {0}",relFile));
baseImageItem.RelativeFileName = relPath + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
string ddd = ICSharpCode.Reports.Core.FileUtility.GetAbsolutePath(Path.GetDirectoryName(fileName),relFile);
System.Diagnostics.Trace.WriteLine(String.Format("baseImageItem.RelativeFileName {0}",relFile));
if (File.Exists(ddd)){
Console.WriteLine("found");
}
}
}
}
Console.WriteLine("------------------");
}

6
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -353,6 +353,12 @@ namespace ICSharpCode.Reports.Addin @@ -353,6 +353,12 @@ namespace ICSharpCode.Reports.Addin
private void OnComponentChanged (object sender, ComponentChangedEventArgs e)
{
BaseImageItem item = e.Component as BaseImageItem;
if (item != null) {
item.ReportFileName = this.loader.ReportModel.ReportSettings.FileName;
}
bool loading = this.loader != null && this.loader.Loading;
LoggingService.Debug("ReportDesigner: ComponentChanged: " + (e.Component == null ? "<null>" : e.Component.ToString()) + ", Member=" + (e.Member == null ? "<null>" : e.Member.Name) + ", OldValue=" + (e.OldValue == null ? "<null>" : e.OldValue.ToString()) + ", NewValue=" + (e.NewValue == null ? "<null>" : e.NewValue.ToString()) + "; Loading=" + loading + "; Unloading=" + this.unloading);
if (!loading && !unloading) {

Loading…
Cancel
Save