Group: Forum Members
Last Active: 11 Years Ago
Posts: 5,
Visits: 1
|
Hello all,
I have a datatable which contains the columns "timestamp", "tagname" and "value". I want to show these values in a chart ordered by tagnames. Some tags hasn't values for all timestamps, which displayed as a gap and not a staight line.
About this, I configure all series like that: mySeries.Values.EmptyDataPoints.ValueMode = Nevron.Chart.EmptyDataPointsValueMode.Average;
Now if i choose the subtype "series(0)", no gaps will be displayed, but the x labels starts with a date (year 1899). If i choose the subtype "xyscatter", the gaps will be displayed, but the x lables starts with the right timestamp.
At the end I need no gaps and the right timestamp should be displayed.
How can i solve this problem.
Thanx for your help.
Oli
|
Group: Forum Members
Last Active: Last Week
Posts: 3,054,
Visits: 4,009
|
Hi Oliver, It looks like you have a date-time axis applied to a ordinal (categorical) data because 1899 actually maps to zero, which means that the control plots a label corresponding to the value of 0. Can you send us the rdl or chart template for this chart for further review? A screenshot will also be helpful...
Best Regards, Nevron Support Team
|
Group: Forum Members
Last Active: 11 Years Ago
Posts: 5,
Visits: 1
|
Hi, Here are the rdl file. I found something new at sub type “Series(0)”: If I set the “Scale Mode” of primary x axis to “Automatic(0)” (before on Numeric (1)), the chart will be displayed the right timestamps, but the scaling of the timestamps doesn’t work. (Short timespan => looks ok, huge timespan => to much scales with labels and to small font size.) ##RDL FILE Procedure Analyst Procedural Report with Continuous Data
OPC_HDA
ataSourceID>88c11e8d-0a25-4e33-9f2d-398a54bf2d33ataSourceID>
DataSource_Common ataSourceID>caeb191a-b6eb-41d1-8906-0fe592260904ataSourceID>
PHD Tag System.String
DataSource_Common ="SELECT [PHD Tag] as [PHD Tag] FROM " & Parameters!sSchema.value & ".[PA_RVW_ALIASMAPPING] where [Equipment Name] = '" & Parameters!Equipment.Value & "' and ALIAS in ('" & Join(Parameters!AliasTag.Value ,"','") & "')" true
HistTag System.String
HistTime System.DateTime
Values System.Double
DataSource_history =code.sConcat(Parameters!StartTime.Value,iif(isnothing(Parameters!EndTime.Value)=true, Now(),Parameters!EndTime.Value),Join(Parameters!PHD_Tag.Value,","),Parameters!AFunction.Value,Parameters!NSamples.Value)
NChart
DataSet_History
=Fields!HistTime.Value
=Fields!HistTime.Value
DGT Categories
Label =cdate(Fields!HistTime.Value)
=Fields!HistTag.Value
DGT Series
Label =Fields!HistTag.Value
DGT Values
Label Values
L =Fields!Values.Value
V =Fields!Values.Value
19cm 19cm
ChartAreas.Count 1
ChartAreas0.Axes.Depth.ConstRanges.ContainerType DepthAxis
ChartAreas0.Axes.Depth.Section.ContainerType DepthAxis
ChartAreas0.Axes.PolarAngle.ConstRanges.ContainerType PolarRadarAxis
ChartAreas0.Axes.PolarAngle.Section.ContainerType PolarRadarAxis
ChartAreas0.Axes.PolarValue.ConstRanges.ContainerType PolarRadarAxis
ChartAreas0.Axes.PolarValue.Section.ContainerType PolarRadarAxis
ChartAreas0.Axes.PrimaryX.AdvancedScaleSettings.LabelAlignment MiddleCenter
ChartAreas0.Axes.PrimaryX.AdvancedScaleSettings.LevelOverlapResolveMode 68
ChartAreas0.Axes.PrimaryX.AdvancedScaleSettings.ScaleLevelBottomPadding 5
ChartAreas0.Axes.PrimaryX.AdvancedScaleSettings.ScaleLevelTopPadding 5
ChartAreas0.Axes.PrimaryX.CatScale.GridStyle None
ChartAreas0.Axes.PrimaryX.CatScale.ShowTicksBetweenDataPoints False
ChartAreas0.Axes.PrimaryX.ConstRanges.ContainerType XAxis
ChartAreas0.Axes.PrimaryX.NumericScale.DateTimeScale.DateTimeLabelFormatting.FormattingMode Fixed
ChartAreas0.Axes.PrimaryX.NumericScale.DateTimeScale.DateTimeLabelFormatting.LabelFormat g
ChartAreas0.Axes.PrimaryX.NumericScale.DateTimeScale.DateTimeSpan.DateTimeUnit Tick
ChartAreas0.Axes.PrimaryX.NumericScale.DateTimeScale.MaxCount 5
ChartAreas0.Axes.PrimaryX.NumericScale.DateTimeScale.MinDistance 10
ChartAreas0.Axes.PrimaryX.NumericScale.NumberScale.MinDistance 50
ChartAreas0.Axes.PrimaryX.NumericScale.SubType DateTime
ChartAreas0.Axes.PrimaryX.NumericScale.ValueTimelineScale.ValueTimelineScaleRow0.DateTimeLabelFormatting.LabelFormat g
ChartAreas0.Axes.PrimaryX.NumericScale.ValueTimelineScale.ValueTimelineScaleRow1.DateTimeLabelFormatting.FormattingMode Fixed
ChartAreas0.Axes.PrimaryX.NumericScale.ValueTimelineScale.ValueTimelineScaleRow1.DateTimeLabelFormatting.LabelFormat g
ChartAreas0.Axes.PrimaryX.NumericScale.ValueTimelineScale.ValueTimelineScaleRow2.DateTimeLabelFormatting.FormattingMode Fixed
ChartAreas0.Axes.PrimaryX.NumericScale.ValueTimelineScale.ValueTimelineScaleRow2.DateTimeLabelFormatting.LabelFormat g
ChartAreas0.Axes.PrimaryX.Range.InflateMode Tick
ChartAreas0.Axes.PrimaryX.Range.InflateRangeBegin False
ChartAreas0.Axes.PrimaryX.Range.InflateRangeEnd False
ChartAreas0.Axes.PrimaryX.ScaleMode Numeric
ChartAreas0.Axes.PrimaryX.Section.ContainerType XAxis
ChartAreas0.Axes.PrimaryY.ConstRanges.ContainerType YAxis
ChartAreas0.Axes.PrimaryY.NumericScale.NumberScale.MinDistance 50
ChartAreas0.Axes.PrimaryY.Section.ContainerType YAxis
ChartAreas0.Axes.Radar.ConstRanges.ContainerType PolarRadarAxis
ChartAreas0.Axes.Radar.Section.ContainerType PolarRadarAxis
ChartAreas0.Axes.SecondaryX.ConstRanges.ContainerType XAxis
ChartAreas0.Axes.SecondaryX.Section.ContainerType XAxis
ChartAreas0.Axes.SecondaryX.Visibility Hidden
ChartAreas0.Axes.SecondaryY.ConstRanges.ContainerType YAxis
ChartAreas0.Axes.SecondaryY.ScaleMode Numeric
ChartAreas0.Axes.SecondaryY.Section.ContainerType YAxis
ChartAreas0.ChartType Line
ChartAreas0.Fx2D.MaxDockZoneMargins.Bottom 50
ChartAreas0.Fx2D.MaxDockZoneMargins.Left 50
ChartAreas0.Fx2D.MaxDockZoneMargins.Right 50
ChartAreas0.Fx2D.MaxDockZoneMargins.Top 50
ChartAreas0.Label Layout.EnableInitialPositioning True
ChartAreas0.Line.SamplingMode Enabled
ChartAreas0.StyleSheet.Palette.Count 6
ChartAreas0.StyleSheet.Palette.FillStyle0 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0MjkzNjgxMjAxIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreas0.StyleSheet.Palette.FillStyle1 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjg4ODUxMzgyIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreas0.StyleSheet.Palette.FillStyle2 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjk0NjkxNzQwIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreas0.StyleSheet.Palette.FillStyle3 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjg2MDg4NTgxIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreas0.StyleSheet.Palette.FillStyle4 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjk0NDE1OTI4IiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreas0.StyleSheet.Palette.FillStyle5 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0MjgyNjY5Njc2IiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
ChartAreasLayout SingleRow
Code.SourceCode
using System; using System.Drawing; using Nevron.GraphicsCore; using Nevron.Chart; using Nevron.ReportingServices;
namespace MyNamespace { /// <summary> /// Sample class /// </summary> public class MyClass {
/// <summary> /// Main entry point /// </summary> /// <param name="context"></param> public static void RSMain(NRSChartCodeContext context) { Color[] lineColors = new Color[] { Color.Blue, Color.DarkOrange, Color.Red, Color.Green, Color.DarkOrchid, Color.DarkCyan, Color.BlueViolet, Color.Brown, Color.DarkTurquoise, Color.Magenta, Color.DarkGray, Color.Navy, Color.Teal, Color.CadetBlue, Color.Coral, Color.Black, Color.DeepPink, Color.Chocolate, Color.SpringGreen, Color.Peru
}; string soutput; if (context.Document.Charts.Count == 0) return; // get the first chart in the document NChart chart = context.Document.Charts[0]; if (chart.Series.Count == 0) return;
soutput = chart.Series.Count.ToString(); NLineSeries point = chart.Series[0] as NLineSeries; if (point == null) return;
for (int i = 0; i < chart.Series.Count; i++) { // create a custom Y axis NCartesianAxisCollection axes = (NCartesianAxisCollection)chart.Axes; NAxis axisY = axes.AddCustomAxis(AxisOrientation.Vertical, AxisDockZone.FrontLeft); axisY.Anchor = new NDockAxisAnchor(AxisDockZone.FrontLeft, true, 0, 100);
// create the scale NLinearScaleConfigurator scaleY = new NLinearScaleConfigurator(); axisY.ScaleConfigurator = scaleY;
axisY.Visible = true;
//NLineSeries lineSeries = chart.Series[i] as NLineSeries; NXYScatterSeries lineSeries = chart.Series[i] as NXYScatterSeries;
if (lineSeries != null) { lineSeries.BorderStyle.Color = lineColors[i % lineColors.Length]; lineSeries.BorderStyle.Width = new NLength(2, NGraphicsUnit.Pixel); lineSeries.DisplayOnAxis(StandardAxis.PrimaryY, false); lineSeries.DisplayOnAxis(axisY.AxisId, true);
scaleY.RulerStyle.BorderStyle.Color = lineSeries.BorderStyle.Color; scaleY.RulerStyle.BorderStyle.Width = lineSeries.BorderStyle.Width;
//scaleY.MajorGridStyle.SetShowAtWall(ChartWallType.Back, true); //scaleY.MajorGridStyle.LineStyle.Color = lineSeries.BorderStyle.Color; //scaleY.MajorGridStyle.LineStyle.Pattern = LinePattern.DashDot;
scaleY.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(lineSeries.BorderStyle.Color); scaleY.LabelStyle.TextStyle.FontStyle = new NFontStyle("Verdana", 8);
scaleY.OuterMajorTickStyle.LineStyle.Color = lineSeries.BorderStyle.Color; scaleY.InnerMajorTickStyle.LineStyle.Color = lineSeries.BorderStyle.Color;
lineSeries.Values.EmptyDataPoints.ValueMode = Nevron.Chart.EmptyDataPointsValueMode.Average; } }
} } }
Legends.Count 1
Legends0.ItemsLayout FixedCols
Legends0.Position.DockPosition BottomCenter
LicenseKey af4519a6-5517-0174-beb8-159f4a003c06,b329d416-0503-689b-1502-9c83ca940cbd
Margins.Bottom 5
Margins.Left 5
Margins.Right 5
Margins.Top 5
Padding.Bottom 5
Padding.Left 5
Padding.Right 5
Padding.Top 5
StyleSheet.Palette.Count 6
StyleSheet.Palette.FillStyle0 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0MjkzNjgxMjAxIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
StyleSheet.Palette.FillStyle1 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjg4ODUxMzgyIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
StyleSheet.Palette.FillStyle2 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjk0NjkxNzQwIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
StyleSheet.Palette.FillStyle3 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjg2MDg4NTgxIiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
StyleSheet.Palette.FillStyle4 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0Mjk0NDE1OTI4IiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
StyleSheet.Palette.FillStyle5 EmbeddedFJvb3Q+DQogIDxPYmplY3QgdHlwZUlkPSIwIiBuYW1lPSJSb290Ij4NCiAgICA8QXR0cmlidXRlcyBDb2xvcj0iMjI7MCw0MjgyNjY5Njc2IiBNYXRlcmlhbFN0eWxlPSIyMjsiIEltYWdlRmlsdGVycz0iMjE7IiAvPg0KICA8L09iamVjdD4NCiAgPElkVHlwZVRhYmxlPg0KICAgIDxLZXlWYWx1ZVBhaXIgS2V5PSIwIiBWYWx1ZT0iTmV2cm9uLkdyYXBoaWNzQ29yZS5OQ29sb3JGaWxsU3R5bGUiIC8+DQogIDwvSWRUeXBlVGFibGU+DQo8L1Jvb3Q+
7.48031in
|
Group: Forum Members
Last Active: 11 Years Ago
Posts: 5,
Visits: 1
|
Sorry, the attachments doesn't work. I rename the rdl file with extension png!!
|