lunes, 11 de enero de 2016

C# - Solo letras con control textbox asp y javascript


1. Método solo letras.


//Solo número
 function SoloLetras(e) {
                key = e.keyCode || e.which;
                tecla = String.fromCharCode(key).toLowerCase();
                letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";
              //  letras = " áéíóúabcdefghijklmnñopqrstuvwxyz0123456798-"; pueden ser letras o cualquier caracter
                especiales = "8-37-39-46";

                tecla_especial = false;
                for (var i in especiales) {
                    if (key == especiales[i]) {
                        tecla_especial = true;
                        break;
                    }
                }

                if (letras.indexOf(tecla) == -1 && !tecla_especial) {
                    return false;
                }
            }

2. Agregar la function como atributo en el control requerido en evento Page_Init() o Page_Load() de la página, como en el ejemplo de la Imagen. (poner SoloLetras(event))



 protected void Page_Init(object sender, EventArgs e)
    {
        this.txtRut.Attributes.Add("OnKeyPress", "return SoloLetras(event)");
    }



jueves, 7 de enero de 2016

JQuery - Tag

El tag:

 <!--#include file="~/Scripts/jquery.includes.htm"-->

siempre debe estar incluido dentro de la página .asxp para poder hacer referencia a las bibliotecas Jquery.



miércoles, 30 de diciembre de 2015

C# - Insert/Update/Select/SP con Enterprise Library

/********************************INSERT/UPDATE***************************/
public bool GrabaNominaPagoProveedorEnc(BeNominaPagoProveedorEncabezado obj)
        {
            try
            {
                //BeNominaPagoProveedorEncabezado
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command = db.GetSqlStringCommand("UPDATE dbo.t_nomina_pago_proveedor_enc SET numero_nomina = @numero_nomina ,fecha_nomina = @fecha_nomina ,total_nomina = @total_nomina ,envio_contab = @envio_contab ,cod_usuario = @envio_contab,fecha_ingreso_reg = @fecha_ingreso_reg,estado = @estado WHERE numero_nomina = @numero_nomina");
                db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                upd = db.ExecuteNonQuery(command);

                if (upd == 0)
                {
                    command =
                        db.GetSqlStringCommand(
                            "INSERT INTO dbo.t_nomina_pago_proveedor_enc ( numero_nomina ,fecha_nomina ,total_nomina ,envio_contab ,cod_usuario ,fecha_ingreso_reg ,estado) VALUES ( @numero_nomina ,@fecha_nomina ,@total_nomina ,@envio_contab ,@cod_usuario ,@fecha_ingreso_reg ,@estado)");
                    db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                    db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                    db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                    db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                    db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                    db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                    db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                    ins = db.ExecuteNonQuery(command);
                }
                //compruebo si hubo actualización o inserción
                if (upd > 0 || ins > 0)
                    result = true;

                //cierro las conexiones
                command.Connection.Close();
                command.Connection.Dispose();
                //devuelvo el resultado
                return result;
            }
            catch (Exception ex)
            {

                return false;
            }
        }

/********************************SELECT***************************/
   public DataTable SelectReqPagoDetalle(int numeroReq)
        {
            DataSet ds = new DataSet();
            var dt = new DataTable();
            try
            {
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command =
                    db.GetSqlStringCommand(
                        "SELECT corrrelativo ,num_req ,monto ,rut_beneficiario ,digito ,nombre_beneficiario ,modo_pago ,cod_inst_financ ,cta_cte ,cod_sucursal ,cuenta_contable ,observacion ,envio_contab ,envio_banco ,fecha_envio_banco ,usuario_envio_banco ,fecha_ingreso_reg ,estado FROM  leaseoper..t_req_pago_detalle WHERE num_req = @num_req");
                db.AddInParameter(command, "@num_req", DbType.Int32, numeroReq);

                ds = db.ExecuteDataSet(command);

                command.Connection.Close();
                command.Connection.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
         
            if (ds != null && ds.Tables.Count > 0)
            {
                dt = ds.Tables[0];
            }
            return dt;
        }

/********************************SP*************************************/

 public DataTable ValidayCargaExcelDetalleAnticipo(int idAnticipo, Int16 tipoProceso, DataTable dt)
        {
            Database db = DatabaseFactory.CreateDatabase("LeaseOper");
            var ds = new DataSet();
            var retorno = false;
            var dataTable = new DataTable();
            try
            {
                using (var cnxx = new SqlConnection(db.ConnectionString))
                {
                    SqlCommand cmd = new SqlCommand("pa_lo_valida_y_carga_det_insc_trans", cnxx);
                    cmd.CommandType = CommandType.StoredProcedure;                
               

                    db.AddInParameter(cmd, "@id_anticipo", DbType.Int32, idAnticipo);
                    db.AddInParameter(cmd, "@tipo_proceso", DbType.Int16, tipoProceso);
                    db.AddOutParameter(cmd, "@cod_error", DbType.Int32, int.MaxValue);
                    db.AddOutParameter(cmd, "@desc_error", DbType.String, int.MaxValue);

                    cmd.Connection.Open();
                    SqlDataAdapter theDataAdapter = new SqlDataAdapter(cmd);

                    //var mensaje = db.GetParameterValue(cmd, "@cod_error");
                    //var codigoRespuesta = db.GetParameterValue(cmd, "@desc_error");

                    theDataAdapter.Fill(ds);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (ds.Tables[0].Rows.Count > 0)
                return ds.Tables[0];
            return dataTable;
        }

miércoles, 9 de diciembre de 2015

C# - Gif cargando al presionar botón

//previo al update panel de la pagina.
<div class="centrar">
        <asp:UpdatePanel ID="udpanel" runat="server">
            <ContentTemplate>
                <dx:ASPxButton ID="btnLoad" runat="server" ClientInstanceName="btnLoad" Text="" ClientVisible="false"
                    AutoPostBack="true" OnClick="btnLoad_Click">
                </dx:ASPxButton>
                <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                    <ProgressTemplate>
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" class="bonder">
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td width="30">&nbsp;
                                 
                                </td>
                                <td align="center">
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" class="td-colum">
                                        <tr>
                                            <td align="center" style="color: white; font-weight: bold">
                                                Cargando
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="center">
                                                <dx:ASPxImage ID="ASPxImage1" runat="server" ImageUrl="~/Images/carga.gif" Width="160px"
                                                    Height="24">
                                                </dx:ASPxImage>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <td width="30">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                        </table>
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
//contenido, eventos y botones de la página
 </asp:UpdatePanel>

miércoles, 2 de diciembre de 2015

C# - DEVEXPRESS Evitar que una grilla se llene por primera vez

//PAGE INIT , la grilla tiene un evento selecting, con este evento se puede cancelar la carga la primera vez.

 protected void Page_Init(object sender, EventArgs e)
        {
            ObjDataDocumentos.Selecting += ObjDataSourceDocumentos_Selecting;      
         
        }


//dentro de este evento cancelo la carga si es la primera vez que entro a la pantalla
  void ObjDataSourceDocumentos_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if (IsPostBack)
            {
                e.InputParameters["todos"] = Convert.ToByte(chkTodos.Checked == true ? 1 : 0);            
            }
            else
            {
                e.Cancel = true;
            }
        }

martes, 1 de diciembre de 2015

SQL - Tablas con registros en la Base de Datos

--USE BASE_DE_DATOS
SET NOCOUNT ON DBCC UPDATEUSAGE(0) -- DB size.
--EXEC sp_spaceused-- Table row counts and sizes.
CREATE TABLE #t (     [name] NVARCHAR(128),  
 [rows] CHAR(11),  
 reserved VARCHAR(18),    
 data VARCHAR(18),    
 index_size VARCHAR(18),  
 unused VARCHAR(18))
INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?'''
SELECT 'TABLAS CON MAS DE UN REGISTRO',* FROM   #t WHERE rows > 0   -- # of rows.
SELECT COUNT(*) AS tablas_con_datos FROM   #t WHERE rows > 0
DROP TABLE #t

jueves, 26 de noviembre de 2015

C# - Obtener string de conexión desde la BD para mostrarlo en APP

ejemplo web.config
<add name="nombreConexion" connectionString="metadata=res://*/Model.ModelAdm.csdl|res://*/Model.ModelAdm.ssdl|res://*/Model.ModelAdm.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=BD-PRODUCCION\GESTION;initial catalog=BDGESTION;user id=sa;password=123456;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 


método.
public string ObtenerConexionBD()
        {
            var conectado = ConfigurationManager.ConnectionStrings["nombreConexion"].ToString().Split(';');
            var dataSource = conectado[0].Replace("Data source=", string.Empty).ToString();

            return dataSource;
        }

viernes, 30 de octubre de 2015

C# - Fecha Universal para SQL desde el Código

  public string FechaGenerica(string obj)
        {
            var año = Convert.ToDateTime(obj).Year;
            var mes = Convert.ToDateTime(obj).Month;
            var dia = Convert.ToDateTime(obj).Day;

            var fechaGen = año.ToString() + mes.ToString() + dia.ToString();
            return fechaGen;
        }

//ejemplo de llamada
  var fIni = FechaGenerica(dteFechIni.Text);

viernes, 16 de octubre de 2015

C# - Inicializar una Session

 //Session
        private UserSessionBc UserSession
        {
            get { return (UserSessionBc)Session["UserSession"]; }
        }