Пример #1
0
        public void Init(FlexDesignerHostServices services, object propOwner, string propName, object value, bool supportExpression)
        {
            _propOwner     = propOwner;
            _propName      = propName;
            _pictureHolder = value as PictureHolder ?? PictureHolder.FromObject(null, null);
            _services      = services;
            if (_services != null)
            {
                var grs = _services.GetService(typeof(IGetReportsService)) as IGetReportsService;
                if (grs != null)
                {
                    _report = grs.Report;
                }
            }

            _canExpression = supportExpression && _report != null;
            if (_services != null)
            {
                var scriptService = _services.GetScriptEditorService();
                _canEditScript = _canExpression && scriptService != null;
            }
            else
            {
                _canEditScript = false;
            }
            UpdateUI();
        }
Пример #2
0
        private void C1FlexGrid1_CellButtonClick(object sender, RowColEventArgs e)
        {
            var grs = _provider.GetGetReportService();
            var ses = _provider.GetScriptEditorService();

            if (grs == null || ses == null)
            {
                e.Cancel = true;
                return;
            }

            bool isLabel     = e.Col == c1FlexGrid1.Cols.Fixed;
            var  valueHolder = new ScriptObjectValueHolder();
            var  value       = c1FlexGrid1.Rows[e.Row][e.Col];

            if (value is string)
            {
                valueHolder.Value = (string)value;
            }
            else
            {
                valueHolder.Value = (value as ScriptObjectValue);
            }
            object result;

            string displayNameFmt = isLabel ?
                                    "{0}.AllowedValuesDefinition.Values({1}).Label" :
                                    "{0}.AllowedValuesDefinition.Values({1}).Value";
            string displayName = string.Format(displayNameFmt, _parameterName, e.Row - c1FlexGrid1.Rows.Fixed);

            if (ses.EditScript(
                    grs.Report,
                    null,
                    ScriptEditorContextKind.ReportScript,
                    valueHolder,
                    "Value",
                    displayName,
                    true,
                    out result))
            {
                c1FlexGrid1.Rows[e.Row][e.Col] = result;
            }
            else
            {
                e.Cancel = true;
            }
        }