Browse Source

ExpressionEvaluatorFacade returns ErrorMessage if FieldReference is not found, cleanup

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6216 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 15 years ago
parent
commit
515d70399c
  1. 20
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.cs
  2. 48
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs
  3. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs
  4. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  5. 21
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  6. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  7. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  8. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseTableItem.cs
  9. 8
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseTextItem.cs
  10. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs
  11. 20
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs
  12. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  13. 41
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs
  14. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  15. 25
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs
  16. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/FilePathConverter.cs
  17. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IContainerItem.cs
  18. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs
  19. 27
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

20
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.cs

@ -24,8 +24,8 @@ namespace ICSharpCode.Reports.Addin @@ -24,8 +24,8 @@ namespace ICSharpCode.Reports.Addin
public abstract class AbstractItem:System.Windows.Forms.Control
{
private Color frameColor = Color.Black;
private bool drawBorder;
private Size defaultSize;
//private bool drawBorder;
//private Size defaultSize;
protected AbstractItem()
{
@ -36,7 +36,7 @@ namespace ICSharpCode.Reports.Addin @@ -36,7 +36,7 @@ namespace ICSharpCode.Reports.Addin
protected void DrawControl (Graphics graphics,Rectangle borderRectangle)
{
if (this.drawBorder == true) {
if (this.DrawBorder == true) {
graphics.DrawRectangle(new Pen(this.frameColor),borderRectangle);
}
System.Windows.Forms.ControlPaint.DrawBorder3D(graphics, this.ClientRectangle,
@ -69,19 +69,11 @@ namespace ICSharpCode.Reports.Addin @@ -69,19 +69,11 @@ namespace ICSharpCode.Reports.Addin
[Category("Border"),
Description("Draw a Border around the Item")]
public bool DrawBorder {
get { return drawBorder; }
set {
drawBorder = value;
this.Invalidate();
}
}
public bool DrawBorder {get;set;}
protected new Size DefaultSize {
get { return defaultSize; }
set { defaultSize = value; }
}
protected new Size DefaultSize {get;set;}
#endregion

48
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs

@ -25,13 +25,11 @@ namespace ICSharpCode.Reports.Addin @@ -25,13 +25,11 @@ namespace ICSharpCode.Reports.Addin
public class BaseTextItem:AbstractItem
{
private string formatString = String.Empty;
private string formatString;
private StringFormat stringFormat;
private StringTrimming stringTrimming;
private string dataType;
private ContentAlignment contentAlignment;
bool canGrow;
bool canShrink;
public BaseTextItem():base()
{
@ -85,6 +83,9 @@ namespace ICSharpCode.Reports.Addin @@ -85,6 +83,9 @@ namespace ICSharpCode.Reports.Addin
}
}
#region Format and alignment
[Browsable(true),
Category("Appearance"),
Description("String to format Number's Date's etc")]
@ -127,29 +128,37 @@ namespace ICSharpCode.Reports.Addin @@ -127,29 +128,37 @@ namespace ICSharpCode.Reports.Addin
}
}
#endregion
[Browsable(true),
Category("Databinding"),
Description("Datatype of the underlying Column")]
public string DataType {
get { return dataType; }
set { dataType = value; }
}
public bool CanGrow {
get { return canGrow; }
set { canGrow = value; }
}
public string DataType {get;set;}
public bool CanShrink {
get { return canShrink; }
set { canShrink = value; }
}
#region Expression
[Browsable(true),
Category("Expression"),
Description("Enter a valid Expression")]
public string Expression {get;set;}
#endregion
#region CanGrow/CanShrink
public bool CanGrow {get;set;}
public bool CanShrink {get;set;}
#endregion
}
#region TypeProvider
internal class TextItemTypeProvider : TypeDescriptionProvider
{
public TextItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
@ -206,7 +215,12 @@ namespace ICSharpCode.Reports.Addin @@ -206,7 +215,12 @@ namespace ICSharpCode.Reports.Addin
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("Expression",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
#endregion
}

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs

@ -105,7 +105,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -105,7 +105,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
Button nextButton = new Button();
Button finishButton = new Button();
Button cancelButton = new Button();
Button helpButton = new Button();
// Button helpButton = new Button();
void CheckFinishedState(object sender, EventArgs e)
{
@ -256,11 +256,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -256,11 +256,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
DialogResult = DialogResult.Cancel;
}
void HelpEvent(object sender, EventArgs e)
{
CurrentWizardPane.ReceiveDialogMessage(DialogMessage.Help);
}
void InitializeComponents()
{

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -92,6 +92,7 @@ @@ -92,6 +92,7 @@
<Compile Include="Project\BaseItems\BaseDataItem.cs" />
<Compile Include="Project\BaseItems\ErrorItem.cs" />
<Compile Include="Project\BaseItems\Graphics\BaseLineItem.cs" />
<Compile Include="Project\BaseItems\IExpression.cs" />
<Compile Include="Project\Collections\GroupColumn.cs" />
<Compile Include="Project\DataManager\Comparer\BaseComparer.cs" />
<Compile Include="Project\DataManager\Comparer\GroupSeparator.cs" />

21
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -48,26 +48,12 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -48,26 +48,12 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
int bottomPadding = containerItem.Size.Height - (container.Items[0].Location.Y + container.Items[0].Size.Height);
if (bottomPadding < 0) {
Console.WriteLine(bottomPadding);
}
Rectangle surroundingRec = FindSurroundingRectangle(graphics,canGrowShrinkCollection);
/*
Console.WriteLine ("surrounding {0} - desired {1} - bottom {2}",
surroundingRec.Height + bottomPadding,
desiredContainerRectangle.Height -1,
bottomPadding);
Console.WriteLine ("extend");
*/
desiredContainerRectangle = new Rectangle(containerItem.Location.X,
containerItem .Location.Y,
containerItem .Size.Width,
surroundingRec.Size.Height + bottomPadding );
// Console.WriteLine ("extend to {0}",desiredContainerRectangle);
}
return desiredContainerRectangle;
@ -99,19 +85,12 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -99,19 +85,12 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
Rectangle surroundingRec = FindSurroundingRectangle(graphics,canGrowShrinkCollection);
/*
Console.WriteLine ("xx surrounding {0} - desired {1} - bottom {2}",
surroundingRec.Height + bottomPadding,
desiredSectionRectangle.Height -1,
bottomPadding);
*/
if (surroundingRec.Height > desiredSectionRectangle .Height) {
desiredSectionRectangle = new Rectangle(section.Location.X,
section .Location.Y,
section .Size.Width,
surroundingRec.Size.Height + bottomPadding);
}
//Console.WriteLine ("xx extend to {0}",desiredSectionRectangle);
}
return desiredSectionRectangle;
}

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs

@ -222,8 +222,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -222,8 +222,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
public static void Displaychain (ReportItemCollection items)
{
Console.WriteLine();
Console.WriteLine("BasePager:Displaychain");
foreach(BaseReportItem i in items)
{
ISimpleContainer ic = i as ISimpleContainer;
@ -239,8 +237,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -239,8 +237,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
public static void ShowLocations (ExporterCollection items)
{
Console.WriteLine("");
foreach (BaseExportColumn element in items) {
ExportContainer cont = element as ExportContainer;
if (cont != null) {

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs

@ -110,6 +110,17 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -110,6 +110,17 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
BaseTextItem textItem = item as BaseTextItem;
IReportExpression epr = item as IReportExpression;
if (epr != null) {
string sss = evaluator.Evaluate(epr.Expression);
if (!String.IsNullOrEmpty(sss)) {
textItem.Text = sss;
}
}
if (textItem != null) {
string str = textItem.Text;
textItem.Text = evaluator.Evaluate(textItem.Text);

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseTableItem.cs

@ -19,11 +19,10 @@ namespace ICSharpCode.Reports.Core { @@ -19,11 +19,10 @@ namespace ICSharpCode.Reports.Core {
{
private ReportItemCollection items;
private SectionBounds sectionBounds;
private IDataNavigator dataNavigator;
private IExpressionEvaluatorFacade expressionEvaluatorFacade;
private BaseSection startSection;
private ILayouter layouter;
#region Constructor
@ -160,10 +159,6 @@ namespace ICSharpCode.Reports.Core { @@ -160,10 +159,6 @@ namespace ICSharpCode.Reports.Core {
#endregion
public SectionBounds SectionBounds{
get {return this.sectionBounds;}
}
#region Interface implementation of 'ITableContainer'
@ -175,17 +170,7 @@ namespace ICSharpCode.Reports.Core { @@ -175,17 +170,7 @@ namespace ICSharpCode.Reports.Core {
this.startSection = section;
}
public void RenderTable (BaseReportItem parent,SectionBounds sectionBounds,ReportPageEventArgs rpea,ILayouter layouter)
{
this.sectionBounds = sectionBounds;
this.Parent = parent;
this.layouter = layouter;
this.Render (rpea);
}
public ReportItemCollection Items {
get {

8
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseTextItem.cs

@ -18,7 +18,7 @@ using ICSharpCode.Reports.Core.Exporter; @@ -18,7 +18,7 @@ using ICSharpCode.Reports.Core.Exporter;
namespace ICSharpCode.Reports.Core
{
public class BaseTextItem : BaseReportItem,IExportColumnBuilder {
public class BaseTextItem : BaseReportItem,IExportColumnBuilder,IReportExpression {
private string text;
private string dataType;
@ -197,6 +197,12 @@ namespace ICSharpCode.Reports.Core @@ -197,6 +197,12 @@ namespace ICSharpCode.Reports.Core
}
}
#region IExpression
public string Expression {get;set;}
#endregion
}
}

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs

@ -228,8 +228,6 @@ namespace ICSharpCode.Reports.Core { @@ -228,8 +228,6 @@ namespace ICSharpCode.Reports.Core {
get { return reportFileName; }
set {
reportFileName = value;
System.Diagnostics.Trace.WriteLine("");
System.Diagnostics.Trace.WriteLine(String.Format("<CORE.BaseImage> ReportFilename {0}",Path.GetFullPath(this.reportFileName)));
}
}

20
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IExpression.cs

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 25.07.2010
* Time: 14:30
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace ICSharpCode.Reports.Core
{
/// <summary>
/// Description of IExpression.
/// </summary>
public interface IReportExpression
{
string Expression {get;set;}
}
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -133,7 +133,6 @@ namespace ICSharpCode.Reports.Core { @@ -133,7 +133,6 @@ namespace ICSharpCode.Reports.Core {
protected void ShowIndexList (IndexList list)
{
System.Diagnostics.Trace.WriteLine("CheckIndexList ");
foreach (BaseComparer element in list) {
string s = String.Format("{0} ",element.ObjectArray[0]);
GroupComparer gc = element as GroupComparer;

41
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs

@ -47,46 +47,7 @@ namespace ICSharpCode.Reports.Core { @@ -47,46 +47,7 @@ namespace ICSharpCode.Reports.Core {
#region build grouping
/*
private void BuildGroup()
{
try {
IndexList groupedArray = new IndexList();
if (base.ReportSettings.GroupColumnsCollection != null) {
if (base.ReportSettings.GroupColumnsCollection.Count > 0) {
groupedArray = this.BuildSortIndex (base.ReportSettings.GroupColumnsCollection);
}
}
base.CreateGroupedIndexList (groupedArray);
foreach (BaseComparer bc in this.IndexList) {
GroupSeparator gs = bc as GroupSeparator;
if (gs != null) {
System.Console.WriteLine("Group Header <{0}> with <{1}> Childs ",gs.ObjectArray[0].ToString(),gs.GetChildren.Count);
if (gs.HasChildren) {
foreach (SortComparer sc in gs.GetChildren) {
System.Console.WriteLine("\t {0} {1}",sc.ListIndex,sc.ObjectArray[0].ToString()); }
}
} else {
SortComparer sc = bc as SortComparer;
if (sc != null) {
System.Console.WriteLine("\t Child {0}",sc.ObjectArray[0].ToString());
}
}
}
} catch (Exception e) {
System.Console.WriteLine("BuildGroup {0}",e.Message);
throw;
}
}
*/
#endregion

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs

@ -176,16 +176,11 @@ namespace ICSharpCode.Reports.Core @@ -176,16 +176,11 @@ namespace ICSharpCode.Reports.Core
}
compVal = v;
}
Console.WriteLine("-------------------------");
ShowIndexList(base.IndexList);
}
private GroupComparer GHeader (BaseComparer sc)
{
string v = sc.ObjectArray[0].ToString();
// Console.WriteLine("");
// Console.WriteLine("Header {0}",v);
// Console.WriteLine("-----");
GroupComparer gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray);
base.IndexList.Add(gc);
return gc;

25
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/ReportingService/FieldReference.cs

@ -28,16 +28,23 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService @@ -28,16 +28,23 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.ReportingService
public override string Evaluate(SimpleExpressionEvaluator.Evaluation.IExpressionContext context)
{
ISinglePage p = context.ContextObject as SinglePage;
Variable v = Arguments[0] as Variable;
if (p.IDataNavigator.CurrentRow > -1) {
AvailableFieldsCollection avc = p.IDataNavigator.AvailableFields;
CurrentItemsCollection cic = p.IDataNavigator.GetDataRow();
CurrentItem c = cic.Find(v.VariableName);
return c.Value.ToString();
}
ISinglePage singlePage = context.ContextObject as SinglePage;
Variable variable = Arguments[0] as Variable;
return v.VariableName ;
if (singlePage.IDataNavigator.CurrentRow > -1) {
var avc = singlePage.IDataNavigator.AvailableFields;
var dataRow = singlePage.IDataNavigator.GetDataRow();
var item = dataRow.Find(variable.VariableName);
string retval;
if (item != null) {
retval = item.Value.ToString();
} else {
retval= String.Format("!! Can't find <{0}> !! ",variable.VariableName);
}
return retval;
}
return variable.VariableName ;
}

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/FilePathConverter.cs

@ -52,8 +52,6 @@ namespace ICSharpCode.Reports.Core @@ -52,8 +52,6 @@ namespace ICSharpCode.Reports.Core
if (model == null) {
throw new ArgumentNullException("model");
}
// System.Diagnostics.Trace.WriteLine("");
// System.Diagnostics.Trace.WriteLine (String.Format("FilePathConverter:AdjustReportName {0}",model.ReportSettings.FileName));
foreach (BaseSection section in model.SectionCollection) {
foreach (BaseReportItem item in section.Items) {
BaseImageItem baseImageItem = item as BaseImageItem;

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IContainerItem.cs

@ -31,6 +31,5 @@ namespace ICSharpCode.Reports.Core.Interfaces @@ -31,6 +31,5 @@ namespace ICSharpCode.Reports.Core.Interfaces
IDataNavigator DataNavigator {set;}
IExpressionEvaluatorFacade ExpressionEvaluatorFacade {set;}
void StartLayoutAt (BaseSection section);
void RenderTable (BaseReportItem parent, SectionBounds sectionBounds, ReportPageEventArgs rpea,ILayouter layouter);
}
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs

@ -120,7 +120,6 @@ namespace ICSharpCode.Reports.Core @@ -120,7 +120,6 @@ namespace ICSharpCode.Reports.Core
currentPosition = PrintHelper.ConvertRectangleToCurentPosition (r);
row.Size = rs;
Console.WriteLine("movenext");
}
while (this.dataNavigator.MoveNext());

27
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

@ -193,33 +193,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -193,33 +193,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void PushPrinting (object sender, SectionRenderEventArgs e ) {
EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,e);
/*
string sectionName = e.Section.Name;
if (sectionName == ReportSectionNames.ReportHeader) {
Console.WriteLine("xx " + ReportSectionNames.ReportHeader);
}
else if (sectionName == ReportSectionNames.ReportPageHeader) {
Console.WriteLine("xx " +ReportSectionNames .ReportPageHeader);
}
else if (sectionName == ReportSectionNames.ReportDetail){
Console.WriteLine("xx " + ReportSectionNames.ReportDetail);
}
else if (sectionName == ReportSectionNames.ReportPageFooter){
Console.WriteLine("xx " + ReportSectionNames.ReportPageFooter);
}
else if (sectionName == ReportSectionNames.ReportFooter){
Console.WriteLine("xx " + ReportSectionNames.ReportFooter);
}
else{
throw new WrongSectionException(sectionName);
}
*/
}
//testcode to handle sectionrenderevent

Loading…
Cancel
Save