public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_dadosAdministradora ");

            /// USER [ execute ]

            T_Empresa emp = new T_Empresa(this);

            // ## Busca empresa

            if (!emp.select_rows_empresa(input_st_empresa))
            {
                PublishError("Empresa inválida");
                return(false);
            }

            if (!emp.fetch())
            {
                return(false);
            }

            // ## Obtem chave da empresa principal

            string fk_admin = emp.get_identity();

            // ## Busca todas as empresas

            if (!emp.selectAll())
            {
                PublishError("Nenhuma empresa cadastrada");
                return(false);
            }

            // ## Dois grupos, um das empresas vinculadas
            // ## e outro de não vinculadas

            StringBuilder sb_in  = new StringBuilder();
            StringBuilder sb_out = new StringBuilder();

            // ## Busca registros

            while (emp.fetch())
            {
                // ## Empresa admin deve ser filtrada

                if (emp.get_identity() == fk_admin)
                {
                    continue;
                }

                // ## Copia para memória

                DadosEmpresa de = new DadosEmpresa();

                de.set_st_fantasia(emp.get_st_fantasia());
                de.set_st_empresa(emp.get_st_empresa());

                DataPortable port = de as DataPortable;

                // ## Caso link para admin bater com admin
                // ## esta empresa é vinculada

                if (emp.get_fk_admin() == fk_admin)
                {
                    // ## obtem indexador

                    sb_in.Append(MemorySave(ref port));
                    sb_in.Append(",");
                }
                else
                {
                    // ## obtem indexador

                    sb_out.Append(MemorySave(ref port));
                    sb_out.Append(",");
                }
            }

            // in
            {
                string list_ids = sb_in.ToString().TrimEnd(',');

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                // ## obtem indexador de grupo

                output_st_in_csv = MemorySave(ref dp);
            }

            // out
            {
                string list_ids = sb_out.ToString().TrimEnd(',');

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                // ## obtem indexador de grupo

                output_st_out_csv = MemorySave(ref dp);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_dadosAdministradora ");

            return(true);
        }