jueves, 11 de julio de 2013

SPLIT EN MS SQL SERVER 2008

Ya hace mucho tiempo que no publicaba nada, las disculpas a mis seguidores , ya que por motivos de trabajo no pude publicar pero regresamos con fuerza y a eguir colaborando con este blog con mas de 3 años de antiguedad, esta vez veremos como realizar un split en MS SQL Server.

CREATE FUNCTION [dbo].[split](
@delimited NVARCHAR(MAX),
@delimiter NVARCHAR(100)
) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml XML
SET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>'

INSERT INTO @t(val)
SELECT r.value('.','varchar(MAX)') as item
FROM @xml.nodes('/t') as records(r)
RETURN
END

domingo, 28 de abril de 2013

SISTEMAS EN LA NUBE LA TECNOLOGIA DE HOY


En esta ocasión hablaremos de la tecnologia actual y que ocupará al 100% en el futuro, SI ESTAMOS HABLANDO de los sistemas en la  NUBE,  ya sean MEDIANOS O GRANDES o conocidos como ERP(Planeamiento de Recursos Empresariales), asu unos añlos sistos se soñaba, se imaginaba pero hoy en dia es un realidad, los sistemas en la nube son la mejor opcion para las empresas actualmente, ya que tiene multiples ventajas frente a los ya viejos "SOFTWARE DE ESCRITORIO", tanto en  ser mas factible , mas escalable,  sin problemas de confilctos de software, reinstalaciones , actualizacion, estar instalando en dferentes maquinas cuando se desea visualizar simples reportes, son inumerables las ventajas de los sistemas en la NUBE , Hoy en dia es la mejor opción para las empresas tanto en lo economico como en lo tecnologico.

Aqui un link para que con un ejemplo puedan ver todo lo explicado en un pequeño video ,

http://www.explania.com/fr/chaines/entreprises/sap/detail/las-ventajas-del-erp-en-la-nube

Saludos.

miércoles, 9 de enero de 2013

PROBLEMAS IMPRESION MATRICIAL ASP.NET SOLUCION

Muchos de los que desarrollamos aplicaciones web con asp.net  , nos hemos visto en el problema con impresiones matriciales ya que no respeta el tamaña que le indicamos , algo bastante grave ,ya que no podriamos imprimir nuestras facturas, boletas, N.C,N.D etc, una solucion a este problema fue construir un reporteador para este problema ,

Les mando el link donde podemos visualizar mejor este pequeño ejemplo

http://www.youtube.com/watch?v=Q7-k8yQCK7U&feature=youtu.be

Saludos


domingo, 23 de diciembre de 2012

Obtener fecha de inicio y fecha de termino SQL SERVER



Hay algunos casos en la que nuestra necesidad es obtener la primera fecha del mes y la fecha final, una manera sencilla de hacer esto es de la siguiente manera

Declare @Fecha datetime = GETDATE() - 1

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@Fecha)-1),@Fecha),105) As PrimerDiaMes

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@Fecha))),DATEADD(mm,1,@Fecha)),105) As UltimoDiaMes



Saludos

miércoles, 19 de diciembre de 2012

"BBDN is undefined" BusyBox

Cuando usamos el control BusyBox de manera local nos funciona perfectamente, pero cuando lo publicamos en IIS, nos suele salir este error en script "BBDN is undefined", la solucion es configurar nuestro control de la siguiente manera:


 <busyboxdotnet:BusyBox ID="BusyBox1" runat="server" CompressScripts="False"
        GZipCompression="False" Image="GreenBar"
        Text="Proceso ejecutandose, espere un momento" Title="Espere por favor"
        ShowBusyBox="Custom" IncludeScriptsInPage="True" />



De esta manera no tendriamos problemas....

Saludos

viernes, 7 de diciembre de 2012

GROUP BY LINQ TO OBJECT II

Buenas , en esta ocasion veremos otro ejemplo como realizar un group by con linq , lo realize por un requerimiento personalizado, espero les ayude,

//Pre Linq
                for (int i = 1; i < _xCadenaValoresListaPrecios.Length - 1; i++)
                {
                    _xArrayProductoUnidad = _xCadenaValoresListaPrecios[i].Split(_xCaracter[1]);
                    _xFiltroValorProductoUnidad = _xArrayProductoUnidad[0].Split(_xCaracter[0]);

                    if (filtroEscala == _xFiltroValorProductoUnidad[0])
                    {

                        oListaString.Add(_xFiltroValorProductoUnidad[1].ToString() + "|" + _xFiltroValorProductoUnidad[2].ToString());
                    }
                }

                //Realizamos un Group By con Linq
                var oLinqGroupBy = oListaString.GroupBy(item => item)
                                     .Select(group => new
                                     {
                                         group.Key,
                                         Count = group.Count()
                                     });

                #region Escala

                foreach (var oString in oLinqGroupBy)
                {

                    CatalogoProductoUnidad oCatalogoProductoUnidad = (CatalogoProductoUnidad)itemCatalogoProducto.CrearObjeto("CatalogoProductoUnidad");
                    oCatalogoProductoUnidad.PrecioPorActualizar = true;
                    string[] _xArrayValoresUnidad;

                    _xArrayValoresUnidad = oString.Key.Split('|');

                    if (_xArrayValoresUnidad[1].Equals("1")) _xArrayValoresUnidad[1] = "true";
                    if (_xArrayValoresUnidad[1].Equals("0")) _xArrayValoresUnidad[1] = "false";

                    oCatalogoProductoUnidad.ProductoUnidad = (ProductoUnidad)XMLHelper.CargarxCampoUnico("ProductoUnidad", "Abreviacion", _xArrayValoresUnidad[0].ToString());
                    oCatalogoProductoUnidad.UnidadPorDefectoEnVenta = Convert.ToBoolean(_xArrayValoresUnidad[1]);


                    string[] _xArrayListaPrecios;
                    string[] _xFiltroValor;

                    for (int j = 1; j < _xCadenaValoresListaPrecios.Length - 1; j++)
                    {
                        CatalogoProductoEscala oCatalogoProductoEscala = (CatalogoProductoEscala)oCatalogoProductoUnidad.CrearObjeto("CatalogoProductoEscala");

                        _xArrayListaPrecios = _xCadenaValoresListaPrecios[j].Split(_xCaracter[1]);
                        _xFiltroValor = _xArrayListaPrecios[0].Split(_xCaracter[0]);

                        //Si encuentra productos iguales obtiene sus escalas
                        if (filtroEscala == _xFiltroValor[0] && _xFiltroValor[1] == _xArrayValoresUnidad[0].ToString())
                        {
                            oCatalogoProductoEscala.Desde = Convert.ToInt32(_xFiltroValor[3]); //Desde
                            oCatalogoProductoEscala.Hasta = Convert.ToInt32(_xFiltroValor[4]); //Hasta
                            oCatalogoProductoEscala.PrecioConImpuesto = Convert.ToDecimal(_xFiltroValor[5]); //PrecioConImpuesto
                            oCatalogoProductoEscala.PrecioSinImpuesto = Convert.ToDecimal(_xFiltroValor[6]); //PrecioSinImpuesto
                            oCatalogoProductoEscala.MargenGanancia = Convert.ToDecimal(_xFiltroValor[7]); //MargenGanancia
                            oCatalogoProductoEscala.PorcentajeMargenGanancia = Convert.ToDecimal(_xFiltroValor[8]); //PorcentajeMargenGanancia
                            oCatalogoProductoEscala.PorcentajeDescuentoA = Convert.ToDecimal(_xFiltroValor[9]); //PorcentajeDescuentoA
                            oCatalogoProductoEscala.PorcentajeDescuentoB = Convert.ToDecimal(_xFiltroValor[10]); //PorcentajeDescuentoB
                            oCatalogoProductoEscala.MontoDescuentoA = Convert.ToDecimal(_xFiltroValor[11]); //MontoDescuentoA
                            oCatalogoProductoEscala.MontoDescuentoB = Convert.ToDecimal(_xFiltroValor[12]); //MontoDescuentoB
                            oCatalogoProductoEscala.PrecioEspecialConImpuesto = Convert.ToDecimal(_xFiltroValor[13]); //PrecioEspecialConImpuesto
                            oCatalogoProductoEscala.CostoProducto = oCatalogoProductoEscala.CatalogoProductoUnidad.CatalogoProducto.ProductoServicio.CostoPromedio;
                            oCatalogoProductoUnidad.CatalogoProductoEscala.Agregar(oCatalogoProductoEscala);
                        }                      
                    }

                    //itemCatalogoProducto.CatalogoProductoUnidad.Agregar(oCatalogoProductoUnidad, oCatalogoProductoUnidad.ProductoUnidad.ID);

                    itemCatalogoProducto.CatalogoProductoUnidad.Agregar(oCatalogoProductoUnidad);

                    //}
               


Saludos


martes, 4 de diciembre de 2012

DOS UNIQUE EN UNA SOLA TABLE


EN ESTA OCASION VAMOS A CREAR DOS UNIQUE PARA UNA TABLA,

ALTER TABLE Ventas.CatalogoProducto
ADD CONSTRAINT UQ_CatalogoProducto_Double UNIQUE( IDListaCatalogoProductos, IDProductoServicio)

Saludos