Ejemplo n.º 1
0
        private async Task RefreshAsync()
        {
            if (RefreshTable == null)
            {
                return;
            }

            await RefreshTable.Invoke();
        }
Ejemplo n.º 2
0
        public static void GetAfter(Workbook wb, string sheetName)
        {
            //todo: consider tables names as well as sheet names
            CTPManager.Save();
            var sourceDict = PythonSourceManager.GetAllSourceCode(wb).Where(i => i.Value.Trim().Length > 0);
            var sheetNames = wb.Worksheets.Select(s => (s as Worksheet).Name);
            var proposed   = new HashSet <string> {
                sheetName
            };
            var parsed   = new Dictionary <string, List <string> > {
            };
            var executed = new HashSet <string> {
            };

            if (sourceDict.ToList().Count == 0)
            {
                MessageBox.Show("This workbook does not contain any embedded python code.");
                return;
            }

            while (proposed.Where(prop => !parsed.Keys.Contains(prop)).ToList().Count > 0)
            {
                var toParse       = proposed.Where(prop => !parsed.Keys.Contains(prop));
                var proposedSheet = toParse.First();
                var source        = sourceDict.Where(x => x.Key == proposedSheet).First().Value;
                var successors    = sourceDict.Where(s => proposed.Where(p => s.Value.Contains(p)).ToList().Count > 0);
                var predecessors  = proposed.Where(sh => source.Contains(sh) && sourceDict.Where(i => i.Key == sh).ToList().Count > 0).ToList();

                foreach (var s in successors)
                {
                    proposed.Add(s.Key);
                }
                parsed.Add(proposedSheet, predecessors);
            }

            executed.Add(sheetName);
            RefreshTable.Start(sheetName);

            while (parsed.Keys.Where(k => !executed.Contains(k)).ToList().Count > 0)
            {
                var notExecuted    = parsed.Where(k => !executed.Contains(k.Key));
                var readyToExecute = notExecuted.Where(i => i.Value.Where(p => !executed.Contains(p)).ToList().Count == 0);
                if (readyToExecute.ToList().Count == 0 && notExecuted.ToList().Count > 0)
                {
                    MessageBox.Show("There is a circular reference within your scripts. The following scripts were not executed: \n" + string.Join(", ", notExecuted.Select(i => i.Key)));
                    break;
                }
                else
                {
                    var selected = readyToExecute.First().Key;
                    RefreshTable.Start(selected);
                    executed.Add(selected);
                }
            }
        }
Ejemplo n.º 3
0
 //删除选中的要素
 private void button4_Click(object sender, EventArgs e)
 {
     row_index = dataGridView1.CurrentRow.Index;
     if (((MessageBox.Show("确定要删除吗", "警告", MessageBoxButtons.YesNo)) == DialogResult.Yes))
     {
         ILayer        pLayer        = currentLayer;
         IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
         ITable        pTable        = pFeatureLayer as ITable;
         IRow          pRow          = pTable.GetRow(row_index);
         pRow.Delete();
         TableShow();
         MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK);
         _MapControl.ActiveView.Refresh();
         RefreshTable refresh = new RefreshTable();
         refresh.Refresh(dataGridView1, pFeatureLayer);
     }
 }
Ejemplo n.º 4
0
        private void btnTableRefresh_Click(object sender, System.EventArgs e)
        {
            System.Web.UI.WebControls.Button
                tmpBtn = sender as System.Web.UI.WebControls.Button;

            if (tmpBtn != null)
            {
                RefreshTable
                    f;

                switch (tmpBtn.ID)
                {
                case "btnMasterTableRefresh":
                {
                    f = new RefreshTable(BindMainDSMasterTable);
                    break;
                }

                case "btnDetailTableRefresh":
                {
                    f = new RefreshTable(BindMainDSDetailTable);
                    break;
                }

                case "btnCustomMasterTableRefresh":
                {
                    f = new RefreshTable(BindCustomDSCustomMasterTable);
                    break;
                }

                default:
                {
                    f = null;
                    break;
                }
                }
                if (f != null)
                {
                    f();
                }
            }
        }
Ejemplo n.º 5
0
        protected internal async void Question(bool fullRefreshGiven)
        {
            Action Ok;
            Action No;

            if (fullRefreshGiven)
            {
                await Utilities.Loading.Show();

                Ok          = Loading.RunWorkerAsync;
                fullRefresh = fullRefreshGiven;
            }
            else
            {
                Ok = async() =>
                {
                    if (!fullRefresh)
                    {
                        await Utilities.Loading.Show();
                    }
                    fullRefresh = false;
                    RefreshTable.RunWorkerAsync();
                    await Utilities.Loading.Hide();
                }
            };
            No = async() => await Utilities.Loading.Hide();

            if (VMDirty() && (fullRefreshGiven || (!fullRefreshGiven && !fullRefresh)))
            {
                dialog         = new Dialog(true, "El nem menetett változások lehetnek az adott oldalon", Ok, No, true);
                dialog.content = new TextBlock("Amennyiben mentés nélkül frissíti a táblázatot, az Ön által végrehajtott változtatások nem kerülnek mentésre\n" +
                                               "Biztosan frissíti a táblázatot?");
                dialog.Start();
            }
            else
            {
                Ok();
            }
            fullRefresh = fullRefreshGiven;
        }
Ejemplo n.º 6
0
 protected virtual void OnRefreshTable(RefreshDataEventArgs e)
 {
     RefreshTable?.Invoke(this, e);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// RECARGA EL DATATABLE EN EL HILO DE LA APLICACIÓN (IMPORTANTE)
        /// </summary>
        /// <param name="materiales">LISTA DE MATERIALES RECIBIDAS DEL SERVICIO WEB</param>
        void RefreshDataGrid( List<tMaterialSalon> materiales, bool IsAsign )
        {
            if ( ! this.InvokeRequired )
            {
                this._data.Tables["ListaMaterialsAsign"].Rows.Clear();

                if ( materiales.Any() )
                {
                    foreach ( tMaterialSalon item in materiales )
                    {
                        string[] desc = item.Description.Split( '|' );

                        object[] row = new object[4]
                        {
                            item.Codigo,
                            item.Key,
                            desc[0],
                            ( string.IsNullOrEmpty( desc[1] ) ) ? string.Empty : desc[1]
                        };

                        this._data.Tables["ListaMaterialsAsign"].Rows.Add( row );
                    }

                    if ( IsAsign )
                    {
                        DataRow[] rows = this._data.Tables["ListaMaterial"].Select( "Codigo='" + this._codigoMaterial + "'" );
                        rows[0]["Stock"] = ( ( int ) rows[0]["Stock"] ) - this._cantidad;
                    }
                }
            }
            else
            {
                RefreshTable rt = new RefreshTable( this.RefreshDataGrid );
                this.Invoke( rt, new object[] { materiales, IsAsign } );
            }
        }
Ejemplo n.º 8
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            string strFieldName      = txtFieldName.Text;
            string strFieldNameAlias = txtFieldAliasName.Text;
            string strFieldType      = cmbFieldType.Text;

            try
            {
                IFeatureLayer editAttributeLayer = _FeatureLayer;
                //获取FeatureLayer
                IFeatureLayer pFeatureLayer = editAttributeLayer;

                //从FeatureLayer获取工作空间
                IDataset   pDataSet   = pFeatureLayer.FeatureClass as IDataset;
                IWorkspace pWorkSpace = pDataSet.Workspace;
                //设置字段属性
                IField     pNewField  = new FieldClass();
                IClass     pClass     = pFeatureLayer as IClass;
                IFieldEdit pFieldEdit = pNewField as IFieldEdit;
                pFieldEdit.AliasName_2 = strFieldNameAlias;
                pFieldEdit.Name_2      = strFieldName;
                switch (strFieldType)
                {
                case "长整型":
                {
                    pFieldEdit.Type_2      = esriFieldType.esriFieldTypeInteger;
                    pFieldEdit.Precision_2 = int.Parse(txtPrecision.Text);
                    break;
                }

                case "短整型":
                {
                    pFieldEdit.Type_2      = esriFieldType.esriFieldTypeSmallInteger;
                    pFieldEdit.Precision_2 = int.Parse(txtPrecision.Text);
                    break;
                }

                case "浮点型":
                {
                    pFieldEdit.Type_2      = esriFieldType.esriFieldTypeSingle;
                    pFieldEdit.Precision_2 = int.Parse(txtPrecision.Text);
                    pFieldEdit.Scale_2     = int.Parse(txtScale.Text);
                    break;
                }

                case "双精度":
                {
                    pFieldEdit.Type_2      = esriFieldType.esriFieldTypeDouble;
                    pFieldEdit.Precision_2 = int.Parse(txtPrecision.Text);
                    pFieldEdit.Scale_2     = int.Parse(txtScale.Text);
                    break;
                }

                case "文本型":
                {
                    pFieldEdit.Type_2   = esriFieldType.esriFieldTypeString;
                    pFieldEdit.Length_2 = int.Parse(txtPrecision.Text);
                    break;
                }

                default:    //日期型0
                {
                    pFieldEdit.Type_2 = esriFieldType.esriFieldTypeDate;
                    break;
                }
                }
                //添加字段
                try
                {
                    int theField = pFeatureLayer.FeatureClass.Fields.FindField(strFieldName);
                    if (theField == -1)
                    {
                        pClass.AddField(pFieldEdit);
                        //pFeatureLayer.FeatureClass.AddField(pFieldEdit);
                        MessageBox.Show("字段添加成功!");
                    }
                    else
                    {
                        MessageBox.Show("字段已经存在!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Field " + pFieldEdit.Name + " was not added due to an error (" + ex.Message + " )");
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            this.Close();
            _dgv.Update();
            RefreshTable refresh = new RefreshTable();

            refresh.Refresh(_dgv, _FeatureLayer);
        }