private static void AddRowsByGridDashboardItem(GridDashboardItem gridItem, MultiDimensionalData mData, DataTable dataTable) { IList <string> axis = mData.GetAxisNames(); int rowCount = GetRowCount(mData, axis); for (int i = 0; i < rowCount; i++) { AxisPoint point = mData.GetAxisPoints(axis[0])[i]; DataRow newRow = dataTable.NewRow(); foreach (GridColumnBase column in gridItem.Columns) { GridMeasureColumn mCol = column as GridMeasureColumn; if (mCol != null) { newRow[mCol.Measure.DataMember] = GetMesureValue(mData, point, mCol); } GridDimensionColumn dCol = column as GridDimensionColumn; if (dCol != null) { newRow[dCol.Dimension.DataMember] = GetDimenstionValue(mData, axis, point, dCol); } } dataTable.Rows.Add(newRow); } }
// Obtains a value of the axis point placed on the "default" axis // to display this value in the invoked form title. string GetFormTitle(MultiDimensionalData clickedItemData) { AxisPoint clickedPoint = clickedItemData.GetAxisPoints(DashboardDataAxisNames.DefaultAxis)[0]; string clickedPointValue = clickedPoint.Value.ToString(); return(clickedPointValue); }
void CustomizePieTotalLabel(string componentName, MultiDimensionalData data, CustomizePieTotalLabelEventArgs e) { PieTotalSettings settings = PieTotalSettings.FromJson(dashboardControl.Dashboard.Items[componentName].CustomProperties[customPropertyName]); string resultText = string.Empty; if (!string.IsNullOrEmpty(settings.Prefix)) { resultText += settings.Prefix + Environment.NewLine; } MeasureDescriptor measure = data.GetMeasures().First(); if (!string.IsNullOrEmpty(settings.MeasureId) || data.GetMeasures().Where(m => m.ID == settings.MeasureId).Any()) { measure = data.GetMeasures().FirstOrDefault(m => m.ID == settings.MeasureId); } if (measure != null) { AxisPoint axisPoint = e.Series.Tag as AxisPoint; resultText += data.GetSlice(axisPoint).GetValue(measure).DisplayText; } if (!string.IsNullOrEmpty(settings.Postfix)) { resultText += Environment.NewLine + settings.Postfix; } e.Text = resultText; }
private void RefrushPointInfo(string pointName) { if (string.IsNullOrEmpty(pointName))//新建点位时,只需要刷新轴的位置信息 { foreach (DataGridViewRow mem in dGV_PointInfo.Rows) { double axisCurrentP = 0; logicAxisUnit.AxisDeviceS[mem.Cells[1].Value.ToString()].Motor.GetAxisCPoint(ref axisCurrentP); mem.Cells[4].Value = axisCurrentP; } } else { if (logicAxisUnit.AxisUnitPoints.ContainsKey(pointName)) { foreach (DataGridViewRow mem in dGV_PointInfo.Rows) { AxisPoint axisPoint = logicAxisUnit.AxisUnitPoints[pointName].AxisPoints.Find(x => x.LogicAxisName == mem.Cells[1].Value.ToString()); mem.Cells[0].Value = axisPoint.IsMove; mem.Cells[2].Value = axisPoint.Speed; mem.Cells[3].Value = axisPoint.MoveIndex.ToString(); mem.Cells[4].Value = axisPoint.Position; } } } }
AxisPoint EnsureInstancePoint(MultiDimensionalData data, AxisPoint axisPoint) { IEnumerable <DimensionDescriptor> axisDimensions = data.GetDimensions(axisPoint.AxisName); DimensionDescriptor instanceDimension = axisDimensions.FirstOrDefault(dim => dim.ID == axisPoint.Dimension.ID); IEnumerable <AxisPoint> points = data.GetAxisPointsByDimension(instanceDimension); return(points.Single(p => p.Equals(axisPoint))); }
/// <summary> /// Sets Parameters' values for dimensions from a specific axis (Column or Row) /// </summary> void SetParameterValue(AxisPoint axisPoint) { while (axisPoint != null && axisPoint.Dimension != null) { string parameterName = GetParameterDataMember(axisPoint.Dimension.DataMember); dashboardDesigner1.Parameters[parameterName].SelectedValue = axisPoint.Value; axisPoint = axisPoint.Parent; } }
private static string GetOid(DashboardItemMouseActionEventArgs e) { AxisPoint axisPoint = e.GetAxisPoint(); if (axisPoint is null) { return(null); } MultiDimensionalData data = e.Data.GetSlice(axisPoint); MeasureDescriptor descriptor = data.GetMeasures().SingleOrDefault(item => item.DataMember == "Oid"); MeasureValue measureValue = data.GetValue(descriptor); return(measureValue.Value.ToString()); }
private void btn_UpdatePointInfo_Click(object sender, EventArgs e) { RefrushPointInfo(string.Empty); DataGridViewRow dataGridViewRow = dGV_PointsName.CurrentRow; string pointName = dataGridViewRow.Cells[0].Value.ToString(); AxisUnitPoint axisUnitPoint = logicAxisUnit.AxisUnitPoints[pointName]; foreach (DataGridViewRow mem in dGV_PointInfo.Rows) { AxisPoint axisPoint = logicAxisUnit.AxisUnitPoints[pointName].AxisPoints.Find(x => x.LogicAxisName == mem.Cells[1].Value.ToString()); axisPoint.IsMove = (bool)((DataGridViewCheckBoxCell)mem.Cells[0]).FormattedValue; axisPoint.LogicAxisName = mem.Cells[1].Value.ToString(); axisPoint.Speed = uint.Parse(mem.Cells[2].Value.ToString()); axisPoint.MoveIndex = uint.Parse(mem.Cells[3].Value.ToString()); axisPoint.Position = double.Parse(mem.Cells[4].Value.ToString()); } }
// Coherent method with Insertion Sort private void ProcessAxis(List <AxisPoint> axis) { for (int j = 1; j < axis.Count; j++) { AxisPoint currentPoint = axis[j]; float current = currentPoint.Value; int i = j - 1; while (i >= 0 && axis[i].Value > current) { AxisPoint greater = axis[i]; // Make sure we are comparing minimum and maximum points if (currentPoint.isMin && !greater.isMin) { // Check bounds and add if possible collision if (CheckBounds(greater.body, currentPoint.body)) { Manifold possible = new Manifold(greater.body, currentPoint.body); // If we already have reported these two objects colliding, // keep them in memory so that impulses can be balanced overlaps.Add(possible); } } //If objects have separated, remove from list if (!currentPoint.isMin && greater.isMin) { overlaps.Remove(new Manifold(greater.body, currentPoint.body)); } //Sort axis[i + 1] = greater; --i; } axis[i + 1] = currentPoint; } }
private void DControl_DrillUpPerformed(object sender, DrillActionEventArgs e) { if (HasDashboardItem(e.DashboardItemName)) { string itemName = e.DashboardItemName; int level = e.DrillDownLevel; AxisPointTuple tuple = this.dashboardViewer1.GetCurrentDrillDownValues(itemName); if (tuple != null) { AxisPoint point = this.dashboardViewer1.GetCurrentDrillDownValues(itemName).GetAxisPoint(); int l = 0; while (point.Parent != null) { l++; point = point.Parent; } if (level + 1 == l && this.dashboardViewer1.CanPerformDrillUp(itemName)) { this.dashboardViewer1.PerformDrillUp(itemName); } } } }
private void AddNewPoint(string pointName) { if (logicAxisUnit.AxisUnitPoints.ContainsKey(pointName)) { MessageBox.Show("当前点位已存在"); return; } AxisUnitPoint axisUnitPoint = new AxisUnitPoint(); axisUnitPoint.AxisUnitName = pointName; foreach (DataGridViewRow mem in dGV_PointInfo.Rows) { AxisPoint axisPoint = new AxisPoint(); axisPoint.IsMove = (bool)((DataGridViewCheckBoxCell)mem.Cells[0]).FormattedValue; axisPoint.LogicAxisName = mem.Cells[1].Value.ToString(); axisPoint.Speed = uint.Parse(mem.Cells[2].Value.ToString()); axisPoint.MoveIndex = uint.Parse(mem.Cells[3].Value.ToString()); axisPoint.Position = double.Parse(mem.Cells[4].Value.ToString()); axisUnitPoint.AxisPoints.Add(axisPoint); } logicAxisUnit.AxisUnitPoints.Add(pointName, axisUnitPoint); }
private static object GetMesureValue(MultiDimensionalData mData, AxisPoint point, GridMeasureColumn mCol) { return(mData.GetSlice(point).GetValue(mData.GetMeasures().OfType <MeasureDescriptor>().First(d => d.DataMember == mCol.Measure.DataMember)).Value); }
private static object GetDimenstionValue(MultiDimensionalData mData, IList <string> axis, AxisPoint point, GridDimensionColumn dCol) { return(point.GetDimensionValue(mData.GetDimensions(axis[0]).OfType <DimensionDescriptor>().First(d => d.DataMember == dCol.Dimension.DataMember)).Value); }