Tuesday, August 1, 2017

Script antes del cierre de la etiqueta body

Sabías por qué es recomendable ubicar el llamado al código de JavaScript justo antes del cierre de la etiqueta body? Es decir, allá al final...? 

La razón es que... con el lenguaje JavaScript se manipulan los elementos del DOM, y si agregamos el código antes de que el motor de render cree nuestros elementos, JavaScript no encontrará los objetos que queremos manipular y por lo tanto se generará un error. 

Otro detalle, ya no es necesario incluir el atributo type a la etiqueta script porque la mayoría de los navegadores lo soportan. Sin embargo, es buena práctica hacerlo ya que jamás sabremos desde qué tipo de navegador visitan nuestra página web.

Thursday, February 23, 2017

Case When Else - If Else

Tengo la siguiente programación en Crystal Reports la cual necesité que traducirlo a SQL. Una solución fue como sigue a continuación (3 casos diferentes):

1.


case vIngresoDiario.IdcFormaPago 
 when 6 then
  case when (vIngresoDiario.IdcTipoCuota <> 27 and vIngresoDiario.IdcTipoCuota <> 230) then
   vIngresoDiario.MontoDetalle 
  else 
      ((vIngresoDiario.MontoDetalle) / (( 
     round((vIngresoDiario.PrimaTotal)*100/((vIngresoDiario.PrimaPura)+(vIngresoDiario.Adicionales)+(vIngresoDiario.Impuestos))-100,0) 
     * 0.01) +1)) end
  
 when 7 then
  case when vIngresoDiario.IdcTipoCuota =230 then
   (vIngresoDiario.MontoDetalle) / (vIngresoDiario.Interes * 0.01) +1 
  else
   case when vIngresoDiario.TipoTransp = 5 then
     (vIngresoDiario.MontoDetalle) / (vIngresoDiario.InteresPlanPago * 0.01) +1
   else
     ((vIngresoDiario.MontoDetalle) / (( 
     round((vIngresoDiario.PrimaTotal)*100/((vIngresoDiario.PrimaPura)+(vIngresoDiario.Adicionales)+(vIngresoDiario.Impuestos))-100,0) 
     * 0.01) +1)) end end
 end as  'PRIMA CONTADO'

2.

vIngresoDiario.AgenteBroker as 'AGENTE/BROKER', 
case 
 when vIngresoDiario.Numero  is not null 
 then convert(varchar(10),vIngresoDiario.Numero) + ' F'
 else
  convert(varchar(10), vIngresoDiario.NumeroRecibo) + ' R'
end as 'NRO FACTURA/RECIBO' ,

3.



case when 
 ABS(ROUND(vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100,2)-
 (vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100)) > 0.05
 then
  (vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100)
 else
   ROUND(vIngresoDiario.Comision/(vIngresoDiario.PrimaPura+vIngresoDiario.Adicionales-vIngresoDiario.GestionCobranzas)*100,2)
end as 'PorcComision',

Friday, February 17, 2017

Filtrar fecha sin hora - sql

Situación: Filtrar fecha sin hora.
Las fechas en nuestras tablas registran fecha y hora pero si deseamos consultar todos los datos cuyas fechas sean entre 01 de febrero a 15 de febrero si no le agregamos la hora (15/02/2017 23:59:59), no se filtrarán todos los datos que corresponden al día 15

Solución 1: utilizando el cast (campo as date)

WHERE cast(CTC.Fecha as date) between @pmfechaDesde and @pmfechaHasta

Monday, February 13, 2017

Error in File ... .rpt Operation not yet implemented

Error: Error in File ... .rpt Operation not yet implemented

Solución 1: Esta solución fue la adecuada para mi. El problema se trata de "incompatible fonts". Cambia la fuente de tu reporte a "Arial"


ExportFormatType' es ambiguo en el espacio de nombres 'CrystalDecisions.Shared

Error: ExportFormatType' es ambiguo en el espacio de nombres 'CrystalDecisions.Shared

Solución 1: Ve a tu Web.Config, es posible que tengas más de una referencia al Crystal. Quítala, sólo debes tener una - CrystalDecisions.Shared -