5/18/2015 07:56:00 a. m.
Share:
Blog Informático sobre Análisis y Desarrollo de Software.
//
//
@{
ViewBag.Title = "GenerarArchivo";
}
Generación de Archivos
Descargar Archivo de Texto
El link lnkDescargarArchivoTexto, está referenciando a la acción DescargarExportableTXT del controller: GenerarArchivo.
Está acción o método debe devolver un FileContentResult que creamos en memoria en dicho método.
El contenido del controller GenerarArchivo es mostrado a continuación:
//
//
public class GenerarArchivoController : Controller
{
//
// GET: /GenerarArchivo/
public ActionResult Index()
{
return View("GenerarArchivo");
}
public FileContentResult DescargarExportableTXT()
{
List<string> listado = new List<string>();
listado.Add(new String[]{"Carlos Alvarado Ferreiros", "52632030", "27/10/1990"});
listado.Add(new String[]{"Franciso Larios Loaiza", "20205263", "15/02/1982"});
listado.Add(new String[]{"Deysi Zárate Ríos", "42635120", "10/01/1975"});
listado.Add(new String[]{"Marcela Morán Flores", "20435230", "26/05/1985"});
Int32 numeroItems = listado.Count();
StringWriter sw = new StringWriter();
using (sw)
{
for (Int32 i = 0; i < numeroItems; i++)
{
sw.WriteLine(listado[i][0] + "|" + listado[i][1] + "|" + listado[i][2]);
}
}
String contenido = sw.ToString();
String NombreArchivo = "ListadoClientes_" + DateTime.Now.Date;
String ExtensionArchivo = "txt";
return File(new System.Text.UTF8Encoding().GetBytes(contenido), "text/" + ExtensionArchivo, NombreArchivo + "." + ExtensionArchivo);
}
}
-- -- ---exec spr_ObtenerAgendaPorTipoContacto 2 -- Crear el Procedimiento almacenado create procedure spr_ObtenerAgendaPorTipoContacto @Tipo varchar(2) as SELECT 1, 'VARGAS', 'DAVILA', 'CARLOS', '949685100', 'CE' -- Compañero Estudios UNION SELECT 2, 'DURAND', 'ALVA', 'LUCIA', '949685002', 'CT' -- Compañero Trabajo UNION SELECT 3, 'FLORES', 'CASTRO', 'CESAR', '949452200', 'CT' -- Compañero Trabajo GO -- CON TABLA TEMPORAL CREATE TABLE #AgendaTemporal ( Id INT, ApePaterno VARCHAR(20), ApeMaterno VARCHAR(20), Nombres VARCHAR(30), Telefono varchar(20), TipoContacto varchar(2) ) -- crear tabla temporal INSERT #AgendaTemporal (Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto) EXEC spr_ObtenerAgendaPorTipoContacto 'CT' select Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto from #AgendaTemporal drop table #AgendaTemporal -- Eliminar la tabla temporal -- CON VARIABLE TABLA DECLARE @AgendaTemporal2 TABLE (Id INT, ApePaterno VARCHAR(20), ApeMaterno VARCHAR(20), Nombres VARCHAR(30), Telefono varchar(20), TipoContacto varchar(2) ) -- crear variable tabla INSERT @AgendaTemporal2 (Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto) EXEC spr_ObtenerAgendaPorTipoContacto 'CE' select Id, ApePaterno, ApeMaterno, Nombres, Telefono, TipoContacto from @AgendaTemporal2 -------------------------------- --------------------------------
-- -- DECLARE @FechaInicioPeriodo datetime = convert(datetime, '11/01/2015', 103) (select dateadd(day,-1,left(convert(varchar(8),dateadd(month,1,@FechaInicioPeriodo),112),6)+'01'))
-- -- set dateformat dmy declare @fechaInicio as datetime = '01/01/2014 02:00' declare @fechaFin as datetime = '30/03/2015 08:00' declare @fechaDiferencia as datetime = @fechaFin - @fechaInicio declare @difSegundos as bigint = DATEDIFF( SECOND, @fechaInicio, @fechaFin ) select @fechaInicio as fechaInicio, @fechaFin as fechaFin , @fechaDiferencia as fechaResultado --tiempo transcurrido en años, meses, días y en horas:minutos:segundos , DATEDIFF( YEAR, '19000101', @fechaDiferencia ) as anios , MONTH( @fechaDiferencia ) -1 as meses , DAY( @fechaDiferencia ) -1 as dias , CAST( @fechaDiferencia AS TIME ) as tiempoEl resultado de la consulta lo muestro en la siguiente imagem:
set dateformat dmy -- para usar la fecha en formato dd/mm/yyyy declare @fecha datetime set @fecha = '31/03/2016' -- Obtenemos el primer dia del mes de interés declare @fecha_dia_uno date = DATEADD(day, -datepart(day, @fecha) +1, @fecha) -- A la fecha del primero del mes le sumamos un mes -- y luego especificamos la diferencia en días entre la fecha del primer dia aumentada un mes y la fecha del primer dia -- el resultado es el número de dias del mes de la fecha inicial select DATEDIFF(dd, @fecha_dia_uno, DATEADD(mm, 1, @fecha_dia_uno))
0 comentarios: