jueves, 29 de enero de 2015

Exportar a Excel desde una aplicacion MVC 4

El snippet que posteo a continuación permite exportar una consulta a Excel en un proyecto MVC. En particular donde uso este código es en un proyecto MVC 4.

Para quien sea nuevo en MVC. Este código debe ir en la carpeta Controller. En un archivo con nombre AlgoController.cs. En mi caso ContactoController.cs.

Los namespaces que se deben agregar son:


using System.Text.RegularExpressions;
using System.Web.UI.WebControls;
using System.Web.UI;



En la vista pongo un Javascript / Jquery como esto (Referencia: View/Reporte/Area.cshtml):
El código Javascript / Jquery  se ejecuta al presionar un botón con identificador btnExcel:
 Al momento de llenar el datasource del Gridview te puedes encontrolar con el siguiente error:

Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList().

Lo anterior ocurre cuando se trata de asociar el resultado de la consulta directamente al DataSource.Lo que se debe hacer es pasar el resultado a una coleccion. Ejemplo: resultado.ToList().

Fuente:
StackOverFlow

sábado, 3 de enero de 2015

Como mostrar el dialogo de abrir archivo en Swift

Me estoy iniciando con Swift. Pero a diferencia de muchos, comencé con una aplicación de escritorio.

La aplicación se trata de una interfaz gráfica para el programa xsltproc, la idea es que el usuario elige los archivos (xml y xsl) y se los pasa como parámetro. Hacer eso en la linea de comandos es una locura si los archivos no están en la misma carpeta.

Entonces como soy nuevo en Swift no sabia como abrir el dialogo de abrir archivo (OpenFile Dialog), y pensé que muchos interesados en este nuevo lenguaje estarían pasando por la misma.


@IBAction func actOpenFileDialog(sender: AnyObject) {
var dlgFileName : NSOpenPanel = NSOpenPanel()

dlgFileName.title = "Seleccione archivo XML"
dlgFileName.allowsMultipleSelection = false
dlgFileName.allowedFileTypes = ["xml"]
dlgFileName.runModal()

var vFileName = dlgFileName.URL
var strFileName = vFileName?.absoluteString!
if (strFileName != nil){
//Asigno la ruta completa al TextField
txtFileName.stringValue = strFileName!
}
}


Lo que hace el código es lanzar el dialogo de abrir archivo.
Limita al usuario a seleccionar un solo archivo, el archivo solo puede ser con extensión xml. Y el nombre del archivo seleccionado es mostrado en un control TextField.

El resultado en la captura a continuación:




miércoles, 17 de diciembre de 2014

Como obtener la impresora por defecto en C#

Les comparto una clase en C#, que tiene una  funcion  que entrega el nombre de la impresora por defecto en la maquina donde se ejecuta la rutina.

Para invocarla:
string impresora = Impresora.getImpresoraPorDefecto();


Nota: No aplica para este caso el error que entrega Net Fiddle

martes, 16 de diciembre de 2014

Crear una tabla desde un SELECT en DB2

En un blog con tips no puede faltar este: Como crear una tabla desde una consulta SQL (ya he puesto de MS SQL), ahora DB2:


CREATE TABLE ESQUEMA.TABLA  AS  (
    SELECT Campo1, Campo2 , Campon 
    FROM ESQUEMA.TABLA_ORIGEN 
    ) WITH DATA


Donde:

WITH NO DATA        :    Solo crea la estructura
WITH DATA               :    Copia los datos comprendidos en el SELECT

Por ejemplo: Si queremos crear una tabla para guardar paises se puede usar

CREATE TABLE ESQUEMA.PAIS AS ( SELECT '056' AS CODPAIS, 'CHILE ' AS PAIS FROM sysibm.sysdummy1) WITH DATA

lunes, 15 de diciembre de 2014

Cambiar el largo de un campo en DB2

Para cambiar el largo de un campo en DB2 se debe ejecutar el siguiente comando:  

ALTER TABLE ESQUEMA.TABLA ALTER COLUMN NOMBRE_DEL_CAMPO SET DATA TYPE CHAR(3)

Los datos que cambian ESQUEMA.TABLA , NOMBRE_DEL_CAMPO y el largo CHAR(n). Los reemplazas por los que corresponda a tu BD.

Fuente
http://razorsql.com/features/db2_change_column_type.html

CheckBox con JQuery

Necesito mostrar cierta información en pantalla dependiendo si el usuario activa o desactiva un checkbox. En el desarrollo uso Jquery, por lo cual uso la forma que tiene esta librería para realizar esa funcionalidad.

Por algún motivo no me funciona controlar el evento click de un checkbox, pero al analizarlo en la herramienta online jsfiddle, me di cuenta que no había ningún problema con el código si no habría otro problema en otra parte.

Dejo el código de como controlar el evento click del checkbox  desde Jquery.


  
http://jsfiddle.net/b1x6hyh2/

martes, 9 de diciembre de 2014

Crear una tabla desde un Select (MS SQL)

En el siguiente código,  muestro como crear una tabla a partir de un SELECT en MS SQL.

Creo dos campos de tipo integer (id_cla e id_con) un campo varchar (Observacion_log) y un campo de Fecha (Fecha_log)

En el campo varchar se creará del largo del  string que le pase entre comillas.  En este caso varchar(3).


select 1 as id_cla , 2 as id_con , 'msg' as Observacion_log , getdate() as Fecha_log into Log