示例#1
0
        //void SetMeasureUnits(params DateTimeMeasureUnit[] units)
        //{
        //	object prevUnit = String.IsNullOrEmpty(ChartDataMeasureUnit.SelectedItem.ToString()) ? null : Enum.Parse(typeof(DateTimeMeasureUnit), ChartDataMeasureUnit.SelectedItem.ToString());
        //	string prevItem = "";
        //	ChartDataMeasureUnit.Properties.Items.Clear();
        //	foreach (DateTimeMeasureUnit unit in units)
        //	{
        //		string unitName = Enum.GetName(typeof(DateTimeMeasureUnit), unit);
        //		ChartDataMeasureUnit.Properties.Items.Add(unitName);
        //		if (prevUnit != null && object.Equals(unit, (DateTimeMeasureUnit)prevUnit))
        //			prevItem = unitName;
        //	}
        //	if (!String.IsNullOrEmpty(prevItem))
        //		ChartDataMeasureUnit.SelectedItem = prevItem;
        //	else
        //		ChartDataMeasureUnit.SelectedIndex = 0;
        //}


        //private void cbChartDataMeasureUnit_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //	XYDiagram diagram = null; // (XYDiagram)Chart.Diagram;
        //	DateTimeMeasureUnit unit = (DateTimeMeasureUnit)Enum.Parse(typeof(DateTimeMeasureUnit), ChartDataMeasureUnit.SelectedItem.ToString());
        //	diagram.AxisX.DateTimeScaleOptions.GridAlignment = (DateTimeGridAlignment)unit;
        //	diagram.AxisX.DateTimeScaleOptions.MeasureUnit = unit;
        //	switch (unit)
        //	{
        //		case DateTimeMeasureUnit.Year:
        //			diagram.AxisX.Label.TextPattern = "{A:yyyy}";
        //			break;
        //		case DateTimeMeasureUnit.Quarter:
        //			diagram.AxisX.Label.TextPattern = "{A:yyyy}"; // todo: fix
        //			//diagram.AxisX.Label.DateTimeOptions.Format = DateTimeFormat.QuarterAndYear;
        //			break;
        //		case DateTimeMeasureUnit.Month:
        //			diagram.AxisX.Label.TextPattern = "{A:yyyy}"; // todo: fix
        //			//diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.MonthAndYear;
        //			break;
        //		default:
        //			break;
        //	}
        //}

/// <summary>
/// Field grid cell clicked
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>

        private void FieldGrid_MouseClick(object sender, MouseEventArgs e)
        {
            GridHitInfo hi = FieldGridView.CalcHitInfo(e.Location);
            int         ri = hi.RowHandle;

            if (ri < 0)
            {
                return;
            }

            PivotGridFieldMx f    = Field = PivotGrid.Fields[ri] as PivotGridFieldMx;
            ResultsField     rfld = f.ResultsField as ResultsField;
            AggregationDef   agg  = f.Aggregation;

            Mobius.Data.QueryColumn qc = rfld.QueryColumn;
            MetaColumn mc = qc.MetaColumn;

            GridColumn gc = hi.Column;

            if (gc == null)
            {
                return;
            }

            FieldGridRow    = hi.RowHandle;
            FieldGridColumn = gc.AbsoluteIndex;

            GridViewInfo viewInfo = (GridViewInfo)FieldGridView.GetViewInfo();
            GridCellInfo cellInfo = viewInfo.GetGridCellInfo(hi);
            Point        menuLoc  = new Point(cellInfo.Bounds.Left, cellInfo.Bounds.Bottom);

            menuLoc = FieldGrid.PointToScreen(menuLoc);

            if (gc.FieldName == "AggRoleCol")             // show appropriate aggregation type menu
            {
                AggregationDefMenus.ShowRoleMenu(qc, f.Aggregation, menuLoc, AggregationRoleChanged);
                return;
            }


            else if (gc.FieldName == "AggTypeCol")             // show appropriate aggregation type menu
            {
                AggregationDefMenus.ShowTypeMenu(qc, f.Aggregation, menuLoc, AggregationTypeChanged);
                return;
            }

            else if (gc.FieldName == "SourceColumnCol" || gc.FieldName == "SourceTableCol")
            {
                return;
            }
        }
示例#2
0
		private void GridView_MouseUp_Callback(object state)
		{
			ColumnMapMsx cm;
			QueryColumn qc;
			QnfEnum subColumn;
			DialogResult dr;
			string newSpotfireName;

			MouseEventArgs e = state as MouseEventArgs;

			if (e == null) return;

			Point p = new Point(e.X, e.Y);

			GridHitInfo gridHitInfo = FieldGridView.CalcHitInfo(p);
			GridViewInfo gridViewInfo = FieldGridView.GetViewInfo() as GridViewInfo;
			GridCellInfo gridCellInfo = gridViewInfo.GetGridCellInfo(gridHitInfo);

			int ri = gridHitInfo.RowHandle;
			if (ri < 0) return;
			GridColumn gc = gridHitInfo.Column;
			if (gc == null) return;
			int c = gc.AbsoluteIndex;

			if (SelectSingleColumn) // just do a simple single column selection
			{
				UpdateSelectSingleColumnData(ri);
				return;
			}

			DataRow dRow = FieldDataTable.Rows[ri];

			//DataMap.ColumnMapList.Items[ri];

			cm = dRow["ColumnMapMsxRefField"] as ColumnMapMsx; // get ColumnMap for current item

			if (cm == null) throw new Exception("Null ColumnMapMsxRefField");
			//if (cm == null) qc = null;
			//else qc = cm.QueryColumn;

			qc = cm.QueryColumn;
			subColumn = cm.SubColumn;

			// Rename column

			if (gc == SpotfireColNameCol)
			{
				RenameColumn(ri);
				return;
			}

			// Commands checked below are only available if editing of the mapping is allowed

			if (!CanEditMapping) return;

			// Select which Mobius column maps to a Spotfire Column

			if (gc == MobiusTableNameCol || gc == MobiusColNameCol) // select Mobius column to match if defining mapping
			{
				string role = dRow["OriginalSpotfireColNameField"] as string;
				if (Lex.IsUndefined(role)) return; // can only assign cols with "roles" from the original template analysis

				string spotfireName = "";
				FieldSelectorControl fieldSelector = new FieldSelectorControl();
				fieldSelector.QueryColumn = qc;

				SelectColumnOptions flags = new SelectColumnOptions();
				flags.ExcludeImages = true;
				flags.FirstTableKeyOnly = true;
				flags.SelectFromQueryOnly = true;
				flags.QnSubcolsToInclude = QnfEnum.Split | QnfEnum.Qualifier | QnfEnum.NumericValue | QnfEnum.NValue; // split QualifiedNumbers
				flags.IncludeNoneItem = true;

				flags.AllowedDataTypes = DataTableMapMsx.GetMetaColumnTypesCompatibleWithSpotfireColumn(cm.SpotfireColumn, allowCompoundId: (ri == 0));

				p = FieldGrid.PointToScreen(p);
				if (CurrentMap.QueryTable != null) // select from single query table only
					dr = fieldSelector.SelectColumnFromQueryTable(CurrentMap.QueryTable, qc, flags, p.X, p.Y, out qc, out subColumn);

				else // select from any table in the query
					dr = fieldSelector.SelectColumnFromQuery(Query, qc, flags, p.X, p.Y, out qc, out subColumn);

				if (dr != DialogResult.OK) return;

				cm.QueryColumn = qc; // new query column mapped to

				if (qc != null) // assigning a new QueryColumn 
				{
					dRow["MobiusTableNameField"] = qc.QueryTable.ActiveLabel;
					dRow["MobiusColNameField"] = qc.ActiveLabel;

					newSpotfireName = CurrentMap.AssignUniqueSpotfireColumnName(qc.ActiveLabel);
					dRow["SpotfireColNameField"] = newSpotfireName; // update grid

					cm.SpotfireColumnName = newSpotfireName; // store new name

					//if (Lex.Ne(cm.SpotfireColumnName, newSpotfireName)) // changing name?
					//{
					//	cm.NewSpotfireColumnName = newSpotfireName; // store new name
					//}

					cm.MobiusFileColumnName = qc.MetaTableDotMetaColumnName + ColumnMapParms.SpotfireExportExtraColNameSuffix;
				}

				else // set to none (e.g. null col)
				{
					dRow["MobiusTableNameField"] = "";
					dRow["MobiusColNameField"] = "";

					newSpotfireName = CurrentMap.AssignUniqueSpotfireColumnName("None");
					dRow["SpotfireColNameField"] = newSpotfireName; // update grid
					cm.SpotfireColumnName = newSpotfireName; // update map
					//cm.NewSpotfireColumnName = newSpotfireName; // update map

					cm.MobiusFileColumnName = ""; // not mapped to a col
				}

				FieldGrid.RefreshDataSource();

				SVM.RemapDataTable(CurrentMap); // update spotfire view accordingly

				UpdateFieldGridDataTable();

				cm.NewSpotfireColumnName = ""; // clear new name used for rename (needed?)
			}

			return;
		}