protected override void OnDragDrop(DragEventArgs drgevent) { base.OnDragDrop(drgevent); DictionaryWindow.DraggedItem item = (DictionaryWindow.DraggedItem)drgevent.Data.GetData( typeof(DictionaryWindow.DraggedItem)); Point pt = PointToClient(new Point(drgevent.X, drgevent.Y)); OnMouseUp(new MouseEventArgs(MouseButtons.Left, 0, pt.X, pt.Y, 0)); if (FEventArgs.DragSource != null) { AfterDragDrop(pt); } }
private void Edit_DragDrop(object sender, DragEventArgs e) { DictionaryWindow.DraggedItem item = (DictionaryWindow.DraggedItem)e.Data.GetData( typeof(DictionaryWindow.DraggedItem)); CodeHelperBase codeHelper = Designer.ActiveReport.Report.CodeHelper; string text = ""; if (item.Obj is Column) text = codeHelper.ReplaceColumnName(item.Text, (item.Obj as Column).DataType); else if (item.Obj is SystemVariable) text = codeHelper.ReplaceVariableName(item.Obj as Parameter); else if (item.Obj is Parameter) text = codeHelper.ReplaceParameterName(item.Obj as Parameter); else if (item.Obj is Total) text = codeHelper.ReplaceTotalName(item.Text); else if (item.Obj is MethodInfo) text = item.Text; else text = "Report.Calc(\"" + item.Text + "\")"; Edit.Selection.InsertString(text); Edit.Focus(); }
protected override void OnDragOver(DragEventArgs drgevent) { base.OnDragOver(drgevent); if (!Designer.cmdInsert.Enabled) { drgevent.Effect = DragDropEffects.None; return; } if (FMode1 != WorkspaceMode1.DragDrop) { DictionaryWindow.DraggedItem item = (DictionaryWindow.DraggedItem)drgevent.Data.GetData( typeof(DictionaryWindow.DraggedItem)); Type dataType = null; if (item.Obj is Column) { dataType = (item.Obj as Column).DataType; } else if (item.Obj is Parameter) { dataType = (item.Obj as Parameter).DataType; } // determine type of control to insert Type controlType = typeof(NumericUpDownControl); if (dataType == typeof(string) || dataType == typeof(char)) { controlType = typeof(TextBoxControl); } else if (dataType == typeof(DateTime) || dataType == typeof(TimeSpan)) { controlType = typeof(DateTimePickerControl); } else if (dataType == typeof(bool)) { controlType = typeof(CheckBoxControl); } else if (dataType == typeof(byte[])) { controlType = null; } if (controlType == null) { drgevent.Effect = DragDropEffects.None; return; } // create label and control bool needCreateLabel = controlType != typeof(CheckBoxControl); if (needCreateLabel) { Designer.InsertObject(new ObjectInfo[] { RegisteredObjects.FindObject(controlType), RegisteredObjects.FindObject(typeof(LabelControl)) }, InsertFrom.Dictionary); } else { Designer.InsertObject(RegisteredObjects.FindObject(controlType), InsertFrom.Dictionary); } // setup control datafiltering DataFilterBaseControl control = Designer.SelectedObjects[0] as DataFilterBaseControl; control.Top += (16 / Grid.SnapSize) * Grid.SnapSize; if (item.Obj is Column) { control.DataColumn = item.Text; } else if (item.Obj is Parameter) { control.ReportParameter = item.Text; } // setup label text string labelText = ""; if (item.Obj is Column) { labelText = (item.Obj as Column).Alias; } else if (item.Obj is Parameter) { labelText = (item.Obj as Parameter).Description; if (String.IsNullOrEmpty(labelText)) { labelText = (item.Obj as Parameter).Name; } } if (needCreateLabel) { LabelControl label = Designer.SelectedObjects[1] as LabelControl; label.Text = labelText; } else { control.Text = labelText; } FEventArgs.DragSource = control; } FMode1 = WorkspaceMode1.DragDrop; Point pt = PointToClient(new Point(drgevent.X, drgevent.Y)); OnMouseMove(new MouseEventArgs(MouseButtons.Left, 0, pt.X, pt.Y, 0)); drgevent.Effect = drgevent.AllowedEffect; }