Mostrando entradas con la etiqueta informatica. Mostrar todas las entradas
Mostrando entradas con la etiqueta informatica. Mostrar todas las entradas

miércoles, 30 de septiembre de 2009

Exporting a Datagrid to Excel using AS3 and .NET

I haven't found on the Internet any complete solution for this problem using C# as the calling page receiving the Request object, so that's why I post it here. Hope this helps.

AS3 (Flex) code (taken from WiredWizard Web Design blog):


//Filename: Test_AS32XLS.mxml




import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.core.UIComponent;
import mx.core.Container;
import mx.events.ItemClickEvent;
import mx.utils.ObjectProxy;
import flash.errors.*;
import flash.events.*;
import flash.external.*;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequest;

public var urlExcelExport:String = "here you need to write your url reference to SaveToXLFile.aspx";

[Bindable]
private var initialData:ArrayCollection;

private function initApp():void {
initialData = new ArrayCollection([{first:'aaa', last:'zzz', email:'email1@email.com'},
{first:'bbb', last:'yyy', email:'email2@email2.com'}]);
}

private function loadDGInExcel():void {
var variables:URLVariables = new URLVariables();
variables.XLtabletoconvert = convertDGToHTMLTable();

var u:URLRequest = new URLRequest(urlExcelExport);
u.data = variables;
u.method = URLRequestMethod.POST;

navigateToURL(u,"_self");
}

private function convertDGToHTMLTable():String {

dg.setStyle("headerColor","#33FFFF");
dg.setStyle("themeColor","#33FF00");

var font:String = dg.getStyle('fontFamily');
var size:String = dg.getStyle('fontSize');
var str:String = '';
var colors:String = '';
var style:String = 'style="font-family:'+font+';font-size:' + size + 'pt;"';
var hcolor:Array;

if(dg.getStyle("headerColor") != undefined) {
hcolor = [dg.getStyle("headerColor")];
} else {
hcolor = dg.getStyle("headerColors");
}

str+= '';

for(var i:int = 0;i colors = dg.getStyle("themeColor");

if(dg.columns[i].headerText != undefined) {
str+="
";
} else {
str+= "";
}
}
str += "";
colors = dg.getStyle("alternatingRowColors");
for(var j:int =0; j str+="";

for(var k:int=0; k < dg.columns.length; k++) {
if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) {

if(dg.columns[k].labelFunction != undefined) {
str += "";

} else {
str += "";
}
}
}
str += "";
}
str+="
"+dg.columns[i].headerText+""+dg.columns[i].dataField+"
"+dg.columns[k].labelFunction( dg.dataProvider.getItemAt(j), dg.columns[k].dataField) + " " + dg.dataProvider.getItemAt(j)[dg.columns[k].dataField] + "
";

return str;
}
]]>














C# code:

// Filename: SaveToXLFile.aspx.cs
public partial class SaveToXLFile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Change the response headers to output a Temporal XL File
Response.Clear();
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=myfilename.xls");
// Get the variable and write it to the Response object
String x = Request["XLtabletoconvert"];
Response.Write(x);
Response.Flush();
Response.End();

}
}


Also, due to .NET Framework validation of Request object not to get cross-coding, you'll need to add in your SaveToXLFile.aspx the following directive:


<%@ Page ValidateRequest="false" ...

lunes, 29 de septiembre de 2008

Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

En mis años mozos, cuando alguien soltaba la de que tenia agujetas en el brazo, las risas estaban aseguradas. Que risueños que eramos, cojones! Y es que la unica buena razon que se nos podia ocurrir a los bienpensantes que alli nos encontraramos era que el que solto la ocurrencia habia estado jugando al cinco contra uno en demasia. Maravillas de la tecnologia, con casi 30 tacos ya, puedo decir sin esconderme y orgulloso que tengo agujetas en el brazo derecho. Y no es que los estandares sociales de estigmatizacion onanistica se hayan relajado, amigos... Sino que ha aparecido un juguetito en nuestras vidas que nos anima a "darle al manubrio".


Wii, el acierto mas grande de Nintendo desde que decidieron dejar de hacer barajas de cartas para dedicarse al mundo del videojuego esta entre nosotros. Su primera cosa reseñable y digna de admiracion es su nombre, friki como ninguno. Suena como "oui" en frances, lo que me proporciona (al habitar en una casa donde el frances es el idioma preponderante) una infinidad de oportunidades para el chascarrillo facil y los juegos de palabras, que aprovecho para hastio de los que comparten casa conmigo. Ademas, uno que no es solo un urbanita sino que tambien esta en contacto con la naturaleza, tambien sabe que suena muy parecido al sonido que emiten los cerdos cuando son sacrificados por una buena causa, aunque suene ser con una i mas acusada: wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.


Mi interes por el mundo consolil no ha sido nunca demasiado grande. En mi juventud, tenia a medias con mi hermano la Sega Master System II, con Alex Kidd (y despues Sonic) como personajes corporativos omnipresentes de la marca. Teniamos un porron de juegos, y me acuerdo que hubo epocas que me pasaba las horas en el garaje (que nuestros padres habian tenido a bien habilitar como cuarto de juegos para nosotros) con mi hermano o amigos tratando de pasarnos algun malote final o jugando una liguilla al de futbol. Cuando ya me meti en eso de los estudios de ingenieria informatica, mi interes por la tecnologia en general iba decreciendo proporcionalmente al numero de asignaturas que aprobaba en la carrera, asi que lo de jugar en la consola (o en el ordenador, ya llegados a estos años) practicamente murio.


Quitando algun ocasional retome de actividades en casa de algun amigo o de mi hermano, no me he vuelto a interesar por las consolas hasta la aparicion de la maravilla nintendiana. La vi en casa de un amigo, y decidi cual macho iberico celoso que tenia que ser mia a cualquier precio (vamos, a 299 euracos, tampoco era plan de pagar mas)


De momento solo tengo un juego, el Wii Sports (que en realidad, son cinco: tenis, beisbol, bolos, golf y boxeo), pero planeo comprar alguno mas. Y es que, aparte del nombre, los de Nintendo lo han clavado con esto de inventar este mando revolucionario. Era el paso definitivo que hacia falta en las consolas; poder jugar a un juego de tenis, haciendo los mismos movimientos que en el tenis, corriendo lo mismo que en el tenis, y sufriendo lo mismo, pero sin ir a una pista de tenis. Tenis de salon para socialistas de salon, asi si!



Gilipollezca adaptacion de la Cancion del pirata de Espronceda, pour épater la bourgeoisie...


Con un mando por barba,

vaso con tonica, limon, y de ginebra tela,

entretiene mas la espera,

al crear tu nuevo Mii.

A este ponle unas cejas,

a ese pelo harapiento,

y adecenta su careto,

con un falso bigotin.