/// <summary>
        ///     Aa
        /// </summary>
        /// <param name="LstPecas"></param>
        private void CarregaListaPecasGrid(List <String> LstPecas)
        {
            if (LstPecas == null && LstPecas.Count == 0)
            {
                return;
            }

            List <String> processados = new List <string>();

            //Instância o objeto.
            //SkaSwDocMgr docMgr = new SkaSwDocMgr(SkaSwDocMgr.e_SkaVersaoDc.V2018);

            foreach (String s in LstPecas)
            {
                //Se estiver vazio a string, o arquivo não existir ou se já foi processado, continua.
                if (String.IsNullOrEmpty(s) || !System.IO.File.Exists(s) || processados.Where(x => x.ToUpper().Trim() == s.ToUpper().Trim()).Count() > 0)
                {
                    continue;
                }

                processados.Add(s);

                if (s.ToUpper().Trim().EndsWith(".SLDPRT"))
                {
                    //Recebe os nós do UltraTreeView para a partir dele, ir adicionados os próximos 'nodos' (filhos).
                    UltraTreeNode tmp = utv.Nodes.Add();

                    //Primeira adiciona o no pai
                    tmp.Cells[(int)e_SkaColunas.Importar].Value = true;

                    //Adiciona a imagem ao tipo de componente (peça ou conjunto)
                    EmbeddableImageRenderer embeddableImageRenderer = new EmbeddableImageRenderer();
                    embeddableImageRenderer.DrawBorderShadow = false;
                    tmp.Cells[(int)e_SkaColunas.Tipo].Editor = embeddableImageRenderer;
                    tmp.Cells[(int)e_SkaColunas.Tipo].Value  = Properties.Resources.sw_part;

                    tmp.Cells[(int)e_SkaColunas.NomeItem].Value    = s.Substring(s.LastIndexOf("\\") + 1);
                    tmp.Cells[(int)e_SkaColunas.CaminhoItem].Value = s.Substring(s.LastIndexOf("\\"));
                    tmp.Cells[(int)e_SkaColunas.Revisao].Value     = 1;//Sempre deixar como 1, pois ficaria inviável deixar zero.
                    tmp.Cells[(int)e_SkaColunas.Maquina].Value     = "";
                    tmp.Cells[(int)e_SkaColunas.Material].Value    = "";
                    tmp.Cells[(int)e_SkaColunas.Nivel].Value       = 0;
                    tmp.Cells[(int)e_SkaColunas.Ativo].Value       = 1;

                    utv.Nodes.Add(tmp);
                }
                else
                {
                }
            }
        }
Beispiel #2
0
        private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
        {
            e.Layout.Override.RowSelectors           = DefaultableBoolean.True;
            e.Layout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.VisibleIndex;
            e.Layout.Override.RowSelectorWidth       = 30;

            EmbeddableImageRenderer imgEditor = new EmbeddableImageRenderer();

            // Give the images a slim grayish border and align them to be in the middle of the cell.
            imgEditor.BorderShadowColor = Color.FromArgb(255, 128, 128);
            imgEditor.BorderShadowDepth = 2;

            //e.Layout.Bands[0].Columns["图像"].Editor = imgEditor;
            e.Layout.Bands[0].Columns["图像"].CellAppearance.ImageHAlign = HAlign.Center;
            e.Layout.Bands[0].Columns["图像"].CellAppearance.ImageVAlign = VAlign.Middle;
        }
        /// <summary>
        ///     Método que monta a estrutura de pai e filho na grade de dados em forma de árvore.
        /// </summary>
        /// <param name="ListaArtigos">Lista de peças do banco de dados SQL</param>
        private void MontaEstruturaArvore(ListaArtigos ListaArtigos)
        {
            List <String> processados = new List <string>();

            if (ListaArtigos != null && ListaArtigos.Count > 0)
            {
                foreach (Artigo a in ListaArtigos)
                {
                    //Se já foi processado, ignora o item.
                    if (processados.Where(x => x.ToUpper() == a.id.ToString().ToUpper()).Count() > 0)
                    {
                        continue;
                    }

                    //Adiciona o item na lista de processados.
                    processados.Add(a.id.ToString());

                    //Recebe os nós do UltraTreeView para a partir dele, ir adicionados os próximos 'nodos' (filhos).
                    UltraTreeNode n = utv.Nodes.Add();

                    //Primeira adiciona o no pai
                    n.Cells[(int)e_SkaColunas.Selecionar].Value = false;

                    //Adiciona a imagem ao tipo de componente (peça ou conjunto)
                    EmbeddableImageRenderer embeddableImageRenderer = new EmbeddableImageRenderer();
                    embeddableImageRenderer.DrawBorderShadow = false;
                    n.Cells[(int)e_SkaColunas.Tipo].Editor   = embeddableImageRenderer;
                    n.Cells[(int)e_SkaColunas.Tipo].Value    = DefineImagemArtigo(a.IsPai);

                    n.Cells[(int)e_SkaColunas.NomeItem].Value = a.NomePeca;
                    n.Cells[(int)e_SkaColunas.Nivel].Value    = a.Nivel;
                    n.Cells[(int)e_SkaColunas.Ativo].Value    = a.Ativo;
                    n.Cells[(int)e_SkaColunas.Revisao].Value  = a.Revisao;

                    //Procuro os filhos
                    List <Artigo> lstFilhos = ListaArtigos.Where(x => x.NomePai.ToUpper() == a.NomePeca.ToUpper()).AsEnumerable().OrderBy(y => a.NomePeca).ToList();

                    //Possui filhos e os adiciono no grid.
                    if (lstFilhos.Count > 0)
                    {
                        foreach (Artigo filho in lstFilhos)
                        {
                            //Recebe os nós já adicionados no pai.
                            UltraTreeNode noFilho = n.Nodes.Add();

                            //Adiciona os elementos filhos à árvore
                            noFilho.Cells[(int)e_SkaColunas.Selecionar].Value = false;

                            //Adiciona a imagem ao tipo de componente (peça ou conjunto)
                            EmbeddableImageRenderer embeddableImageRenderer_f = new EmbeddableImageRenderer();
                            embeddableImageRenderer_f.DrawBorderShadow   = false;
                            noFilho.Cells[(int)e_SkaColunas.Tipo].Editor = embeddableImageRenderer_f;
                            noFilho.Cells[(int)e_SkaColunas.Tipo].Value  = DefineImagemArtigo(filho.IsPai);

                            noFilho.Cells[(int)e_SkaColunas.NomeItem].Value = filho.NomePeca;
                            noFilho.Cells[(int)e_SkaColunas.Nivel].Value    = filho.Nivel;
                            noFilho.Cells[(int)e_SkaColunas.Ativo].Value    = filho.Ativo;
                            noFilho.Cells[(int)e_SkaColunas.Revisao].Value  = filho.Revisao;

                            n.Nodes.Add(noFilho);

                            //Adiciona o item na lista de processados.
                            processados.Add(filho.id.ToString());
                        }
                    }
                    utv.Nodes.Add(n);
                }

                //  Após o 'foreach', expande a árvore.
                utv.ExpandAll();
            }
        }
        /// <summary>
        ///     Método que recebe uma lista de objeto e popula o UltraDataGridView.
        /// </summary>
        /// <param name="Instrucoes">Lista de objetos contendo as instruções de um determinado trabalho</param>
        private void CarregaInstrucoes_Arvore(DataTable Instrucoes)
        {
            List <String> processados = new List <string>();

            for (int x = 0; x < Instrucoes.Rows.Count; x++)
            {
                //Se já foi processado, ignora o item.
                if (processados.Where(p => p.ToUpper() == Instrucoes.Rows[x]["Ordem"].ToString().ToUpper().Trim()).Count() > 0)
                {
                    continue;
                }

                //Adiciona o item na lista de processados.
                processados.Add(Instrucoes.Rows[x]["Ordem"].ToString().ToUpper().Trim());

                //Recebe os nós do UltraTreeView para a partir dele, ir adicionados os próximos 'nodos' (filhos).
                UltraTreeNode n = utv.Nodes.Add();

                //Primeira adiciona o no pai
                n.Cells[(int)e_Colunas.Ordem].Value             = Instrucoes.Rows[x]["Ordem"].ToString();
                n.Cells[(int)e_Colunas.Tipo_Instrucao_Db].Value = Instrucoes.Rows[x]["Tipo_Instru_Db"].ToString();


                EmbeddableImageRenderer embeddableImageRenderer = new EmbeddableImageRenderer();
                embeddableImageRenderer.DrawBorderShadow          = false;
                n.Cells[(int)e_Colunas.Img_Tipo_Instrucao].Editor = embeddableImageRenderer;
                n.Cells[(int)e_Colunas.Img_Tipo_Instrucao].Value  = DefineImagemInstrucao(Instrucoes.Rows[x]["Tipo_Instru_Db"].ToString());

                n.Cells[(int)e_Colunas.Descricao].Value      = Instrucoes.Rows[x]["Descrição"].ToString();
                n.Cells[(int)e_Colunas.Speed].Value          = Instrucoes.Rows[x]["Velocidade (RPM)"].ToString();
                n.Cells[(int)e_Colunas.Feed].Value           = Instrucoes.Rows[x]["Avanço lateral"].ToString();
                n.Cells[(int)e_Colunas.Plunge].Value         = Instrucoes.Rows[x]["Avanço vertical"].ToString();
                n.Cells[(int)e_Colunas.Tempo_Usinagem].Value = Instrucoes.Rows[x]["Tempo do processo"].ToString();

                //Procuro os filhos
                var filhos = Instrucoes.Select(String.Format("Ordem like '{0}.%'", Instrucoes.Rows[x]["Ordem"].ToString()));

                //Possui filhos e os adiciono no grid.
                if (filhos != null && filhos.Count() > 0)
                {
                    for (int y = 0; y < filhos.Count(); y++)
                    {
                        //Recebe os nós já adicionados no pai.
                        UltraTreeNode noFilho = n.Nodes.Add();

                        //Primeira adiciona o no pai
                        //noFilho.Cells[0].Value = null;
                        noFilho.Cells[(int)e_Colunas.Ordem].Value             = InsereTabArvore(filhos[y]["Ordem"].ToString(), 1);
                        noFilho.Cells[(int)e_Colunas.Tipo_Instrucao_Db].Value = filhos[y]["Tipo_Instru_Db"].ToString();

                        EmbeddableImageRenderer embeddableImageRenderer_f = new EmbeddableImageRenderer();
                        embeddableImageRenderer_f.DrawBorderShadow = false;
                        noFilho.Cells[(int)e_Colunas.Img_Tipo_Instrucao].Editor = embeddableImageRenderer_f;
                        noFilho.Cells[(int)e_Colunas.Img_Tipo_Instrucao].Value  = DefineImagemInstrucao(filhos[y]["Descrição"].ToString());

                        noFilho.Cells[(int)e_Colunas.Descricao].Value      = filhos[y]["Descrição"].ToString();
                        noFilho.Cells[(int)e_Colunas.Speed].Value          = filhos[y]["Velocidade (RPM)"].ToString();
                        noFilho.Cells[(int)e_Colunas.Feed].Value           = filhos[y]["Avanço lateral"].ToString();
                        noFilho.Cells[(int)e_Colunas.Plunge].Value         = filhos[y]["Avanço vertical"].ToString();
                        noFilho.Cells[(int)e_Colunas.Tempo_Usinagem].Value = filhos[y]["Tempo do processo"].ToString();

                        n.Nodes.Add(noFilho);

                        //Adiciona o item na lista de processados.
                        processados.Add(filhos[y]["Ordem"].ToString());
                    }
                }

                //A primeira célula irá conter uma imagem para expandir a árvore.
                //Caso o nó seja um filho, não irá conter imagem nenhuma
                if (n.HasNodes)
                {
                    //  Tive de adicionar esses controles abaixo para conseguir visualizar a imagem (ainda não sei o motivo
                    //do porque eu precisar fazer isso!)
                    EmbeddableImageRenderer embeddableImageRenderer_p = new EmbeddableImageRenderer();
                    embeddableImageRenderer_p.DrawBorderShadow  = false;
                    n.Cells[(int)e_Colunas.Img_Expandir].Editor = embeddableImageRenderer_p;
                    //n.Cells[(int)e_Colunas.Img_Expandir].Value = Properties.Resources.arrow_expandir;
                    n.Cells[(int)e_Colunas.Img_Expandir].Value = Imagens_NewLookInterface.subtrair_menos_16;
                }
                else
                {
                    EmbeddableImageRenderer embeddableImageRenderer_p = new EmbeddableImageRenderer();
                    embeddableImageRenderer_p.DrawBorderShadow  = false;
                    n.Cells[(int)e_Colunas.Img_Expandir].Editor = embeddableImageRenderer_p;
                    //n.Cells[(int)e_Colunas.Img_Expandir].Value = Properties.Resources.arrow_direita;
                    //n.Cells[(int)e_Colunas.Img_Expandir].Value = Imagens_NewLookInterface.subtrair_menos_16;
                }

                utv.Nodes.Add(n);
            }

            utv.ExpandAll();
        }