private bool ShowDialogPersonalizarProduto(int nIdProdutoCertificadoOrigem)
        {
            mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow dtrwProdutoCertificado = m_typDatSetTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigem.FindByidExportadoridPEidTipoCOidOrdemProduto(m_nIdExportador, m_strIdPE, m_nIdTipoCO, nIdProdutoCertificadoOrigem);
            if (dtrwProdutoCertificado == null)
            {
                return(false);
            }
            string strDescricaoProdutoFatura      = strRetornaDescricaoProduto(nIdProdutoCertificadoOrigem);
            string strDescricaoProdutoCertificado = "";

            if (!dtrwProdutoCertificado.IsmstrDescricaoNull())
            {
                strDescricaoProdutoCertificado = dtrwProdutoCertificado.mstrDescricao;
            }
            if (ShowDialogPersonalizar("Personalizar Descrição", strDescricaoProdutoFatura, ref strDescricaoProdutoCertificado))
            {
                if (strDescricaoProdutoCertificado.Trim() == "")
                {
                    dtrwProdutoCertificado.SetmstrDescricaoNull();
                }
                else
                {
                    dtrwProdutoCertificado.mstrDescricao = strDescricaoProdutoCertificado;
                }
                return(true);
            }
            return(false);
        }
        protected override void vRefreshProdutosAssociados(ref mdlComponentesGraficos.TreeView tvProdutosAssociados)
        {
            tvProdutosAssociados.Nodes.Clear();
            System.Windows.Forms.TreeNode tvnClassificacao;
            System.Windows.Forms.TreeNode tvnProduto;

            // Produtos Certificado
            System.Collections.ArrayList arlProdutosCertificado = arlProdutosCertificadoOrigem();

            // Classificacao - Ordenamento
            System.Collections.SortedList sortListClassificacao = new System.Collections.SortedList();
            for (int j = 0; j < arlProdutosCertificado.Count; j++)
            {
                mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow dtrwProdutoCertificado = (mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow)arlProdutosCertificado[j];
                if (dtrwProdutoCertificado.RowState != System.Data.DataRowState.Deleted)
                {
                    // Classificacao
                    string strClassificacao = strRetornaClassificacao(dtrwProdutoCertificado.idOrdemProduto);

                    // Denominacao
                    string strDenominacao = "";
                    if (!dtrwProdutoCertificado.IsmstrDenominacaoNull())
                    {
                        strDenominacao = dtrwProdutoCertificado.mstrDenominacao;
                    }
                    else
                    {
                        strDenominacao = strRetornaDenominacao(dtrwProdutoCertificado.idOrdemProduto);
                    }
                    if (!sortListClassificacao.ContainsKey(strClassificacao + strDenominacao))
                    {
                        sortListClassificacao.Add(strClassificacao + strDenominacao, strClassificacao);
                    }
                }
            }

            // Classificacao - Insercao
            for (int j = 0; j < sortListClassificacao.Count; j++)
            {
                string strClassificacaoDenominacao = sortListClassificacao.GetKey(j).ToString();
                string strClassificacao            = sortListClassificacao.GetByIndex(j).ToString();
                string strDenominacao = strClassificacaoDenominacao.Substring(strClassificacao.Length);
                tvnClassificacao     = tvProdutosAssociados.Nodes.Add(strClassificacao + " : " + strDenominacao);
                tvnClassificacao.Tag = strClassificacao;

                // Produtos - Ordenamento
                System.Collections.SortedList sortListProdutos = new System.Collections.SortedList();
                for (int k = 0; k < arlProdutosCertificado.Count; k++)
                {
                    mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow dtrwProdutoCertificado = (mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow)arlProdutosCertificado[k];
                    if (dtrwProdutoCertificado.RowState != System.Data.DataRowState.Deleted)
                    {
                        string strClassificacaoProduto = strRetornaClassificacao(dtrwProdutoCertificado.idOrdemProduto);
                        if (strClassificacaoProduto == strClassificacao)
                        {
                            string strDescricao = "";
                            if (!dtrwProdutoCertificado.IsmstrDescricaoNull())
                            {
                                strDescricao = dtrwProdutoCertificado.mstrDescricao;
                            }
                            else
                            {
                                strDescricao = strRetornaDescricaoProduto(dtrwProdutoCertificado.idOrdemProduto);
                            }
                            if (strDescricao != "")
                            {
                                if (!sortListProdutos.ContainsKey(strDescricao))
                                {
                                    sortListProdutos.Add(strDescricao, dtrwProdutoCertificado.idOrdemProduto);
                                }
                            }
                        }
                    }
                }

                // Produtos - Insercao
                for (int k = 0; k < sortListProdutos.Count; k++)
                {
                    string strDescricaoProduto = sortListProdutos.GetKey(k).ToString();
                    tvnProduto     = tvnClassificacao.Nodes.Add(strDescricaoProduto);
                    tvnProduto.Tag = sortListProdutos.GetByIndex(k).ToString();
                }
            }
        }
        protected override void vRefreshProdutosAssociados(ref mdlComponentesGraficos.TreeView tvProdutosAssociados)
        {
            tvProdutosAssociados.Nodes.Clear();
            System.Windows.Forms.TreeNode tvnNorma         = null;
            System.Windows.Forms.TreeNode tvnClassificacao = null;
            System.Windows.Forms.TreeNode tvnProduto       = null;

            // Produtos Certificado
            System.Collections.ArrayList arlProdutosCertificado = arlProdutosCertificadoOrigem();

            // Ordenamento
            System.Collections.SortedList sortProdutosCertificado = new System.Collections.SortedList(new mdlComponentesColecoes.clsComparerNumbersTexts());
            for (int i = 0; i < arlProdutosCertificado.Count; i++)
            {
                mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow dtrwProdutoCertificado = (mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow)arlProdutosCertificado[i];
                if (dtrwProdutoCertificado.RowState != System.Data.DataRowState.Deleted)
                {
                    if (!sortProdutosCertificado.ContainsKey(dtrwProdutoCertificado.idOrdem))
                    {
                        sortProdutosCertificado.Add(dtrwProdutoCertificado.idOrdem, dtrwProdutoCertificado.idOrdem);
                    }
                }
            }

            // Inserindo
            string strNormaUltima         = "";
            string strClassificacaoUltima = "";

            for (int i = 0; i < sortProdutosCertificado.Count; i++)
            {
                int nIdOrdem = (int)sortProdutosCertificado.GetByIndex(i);
                for (int j = 0; j < arlProdutosCertificado.Count; j++)
                {
                    mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow dtrwProdutoCertificado = (mdlDataBaseAccess.Tabelas.XsdTbProdutosCertificadoOrigem.tbProdutosCertificadoOrigemRow)arlProdutosCertificado[j];
                    if ((dtrwProdutoCertificado.RowState != System.Data.DataRowState.Deleted) && (dtrwProdutoCertificado.idOrdem == nIdOrdem))
                    {
                        // Norma
                        string strNorma = strRetornaNorma(dtrwProdutoCertificado.idNorma);
                        if (!dtrwProdutoCertificado.IsmstrNormaNull())
                        {
                            strNorma = dtrwProdutoCertificado.mstrNorma;
                        }
                        if (strNorma != strNormaUltima)
                        {
                            tvnNorma               = tvProdutosAssociados.Nodes.Add(strNorma);
                            tvnNorma.Tag           = dtrwProdutoCertificado.idNorma;
                            strNormaUltima         = strNorma;
                            strClassificacaoUltima = "";
                        }
                        // Classificacao
                        string strClassificacao = strRetornaClassificacao(dtrwProdutoCertificado.idOrdemProduto);

                        // Denominacao
                        string strDenominacao = "";
                        if (!dtrwProdutoCertificado.IsmstrDenominacaoNull())
                        {
                            strDenominacao = dtrwProdutoCertificado.mstrDenominacao;
                        }
                        else
                        {
                            strDenominacao = strRetornaDenominacao(dtrwProdutoCertificado.idOrdemProduto);
                        }

                        if (strClassificacao != strClassificacaoUltima)
                        {
                            tvnClassificacao       = tvnNorma.Nodes.Add(strClassificacao + " " + strDenominacao);
                            tvnClassificacao.Tag   = strClassificacao;
                            strClassificacaoUltima = strClassificacao;
                        }

                        // Descricao
                        string strDescricao = "";
                        if (!dtrwProdutoCertificado.IsmstrDescricaoNull())
                        {
                            strDescricao = dtrwProdutoCertificado.mstrDescricao;
                        }
                        else
                        {
                            strDescricao = strRetornaDescricaoProduto(dtrwProdutoCertificado.idOrdemProduto);
                        }
                        if (tvnClassificacao == null)
                        {
                            tvnClassificacao     = tvnNorma.Nodes.Add(strClassificacao + " " + strDenominacao);
                            tvnClassificacao.Tag = strClassificacao;
                        }
                        tvnProduto     = tvnClassificacao.Nodes.Add(strDescricao);
                        tvnProduto.Tag = dtrwProdutoCertificado.idOrdemProduto;
                    }
                }
            }
        }