Páginas

viernes, 22 de octubre de 2010

Dar permisos a Todos los usuarios a la Carpeta Oracle

Para tener acceso desde todos los usuarios al cliente de Oracle debemos darle acceso a la Carpeta de Oracle de la siguiente manera.
  1. Abrir las propiedades de la carpeta ORACLE
  2. En la ficha Seguridad Presionar el Boton “Avanzado”
  3. En la ventana de Configuracion de seguridad avanzada hacemos click en Editar
  4. En esta ventana agregamos los usuarios o grupos con la configuración de permisos necesarios.
image
al hacer click en agregar saldrá esa ventana.
image 
y Luego se editan los permisos
image

martes, 12 de octubre de 2010

Ordenamiento de Items en ListView al dar click en columnas [C#]

A veces necesitamos ordenar datos en un listview dependiendo la columna donde le demos clic, esto es fácil aplicando los algoritmos de ordenamiento conocidos, en el siguiente código cree una clase heredada de listview y le di luego esa característica, me evitará tener que escribir el código en cada una de los forms donde los use.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SPControls
{
    public partial class JPListView : ListView
    {
        public JPListView()
        {
            InitializeComponent();
            this.ColumnClick += new ColumnClickEventHandler(JPListView_ColumnClick);
        }
        /// <summary>
        /// Metodo de Ordenamiento Automatico al hacer clic en las cabeceras de las columnas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void JPListView_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            if (ColumnIndexOrder != e.Column)
                OrderAsc(e.Column);
            else
            {
                if (OrderTypeSel == SPControls.JPListView.OrderType.Asc)
                    OrderDes(e.Column);
                else
                    OrderAsc(e.Column);
            }
        }
        public enum OrderType
        {
            Asc=1,
            Des=2
        }
        private int mColumnIndexOrder = 0;
        private OrderType mOrderTypeSel;
        public int ColumnIndexOrder
        {
            get { return mColumnIndexOrder; }
        }
        public OrderType OrderTypeSel
        {
            get { return mOrderTypeSel; }
        }
        /// <summary>
        /// Ordena la lista dependiendo del Índice Seleccionado
        /// Autor: Jackson Patricio Rosado Cedeño
         /// </summary>
        /// <param name="ColumnIndex"></param>
        public void OrderAsc(int ColumnIndex)
        {
            //Metodo de Inserción Directa
            ListViewItem Intercambio;
            int i, j;
            for (i = 1; i < Items.Count; i++)
            {
                Intercambio=Items[i];
                j = i - 1;
                while (string.Compare(Intercambio.SubItems[ColumnIndex].Text,Items[j].SubItems[ColumnIndex].Text)<0 && j >= 0)
                {
                    Items[j + 1] =(ListViewItem) Items[j].Clone();
                    j--;
                    if (j < 0)
                        break;
                }
                Items[j + 1] = Intercambio;
                mColumnIndexOrder = ColumnIndex;
                mOrderTypeSel = OrderType.Asc;
            }    
        }
        /// <summary>
        /// Ordena de Forma descendente dependiendo el indice seleccionado
        /// Autor: Jackson Patricio Rosado Cedeño
        /// </summary>
        /// <param name="ColumnIndex"></param>
        public void OrderDes(int ColumnIndex)
        {
            //Metodo de Inserción Directa
            ListViewItem Intercambio;
            int i, j;
            for (i = 1; i < Items.Count; i++)
            {
                Intercambio = Items[i];
                j = i - 1;
                while (string.Compare(Intercambio.SubItems[ColumnIndex].Text, Items[j].SubItems[ColumnIndex].Text) > 0 && j >= 0)
                {
                    Items[j + 1] = (ListViewItem)Items[j].Clone();
                    j--;
                    if (j < 0)
                        break;
                }
                Items[j + 1] = Intercambio;
            }
            mColumnIndexOrder = ColumnIndex;
            mOrderTypeSel = OrderType.Des;
        }
    }
}