jueves, 13 de diciembre de 2012

Error: Sys.ArgumentNullException:value cannot be null,parameter name:panelsCreated[2]

Problemas con este mensaje "Sys.ArgumentNullException:value cannot be null,parameter name:panelsCreated[2]" a  la hora de publicar su aplicacion web en el IIS.

Solo basta con agregar a nuestro ScriptManager o ToolkitScriptManager según la versión de ajax que utilicen la propiedad ScriptMode = "Release" en vista diseño o en código en el Page_Load ScriptMode = Release;

y asunto arreglado.

Saludos cordiales!

miércoles, 14 de noviembre de 2012

Crear reporte con ItextSharp en C# sin tabla



Veremos como crear un reporte PDF con ITextSharp en C# sin el uso de tablas, esto dejara el texto lineal y abra que ir acomodándolo. Para ello necesitamos importar la librería de ItextSharp a nuestro proyecto, podemos descargarlo de la red o bien desde el mismo vs a partir de la versión 2010 con el administrador de paquetes NuGet y luego agregar la referencia con  using iTextSharp.text.

Primero empezamos declarando una variable de tipo document en el cual le agregamos el tamaño de nuestro documento en este caso es tipo carta, podemos elegir de otros tipos como A4, oficio, etc.
  Document doc = new Document(iTextSharp.text.PageSize.LETTER);

Definimos al autor y el tipo de palabras claves al igual que los margenes

  doc.AddAuthor("Gustavo Ortiz Gamez");
  doc.AddKeywords("pdf, PdfWriter; Documento; iTextSharp");
  doc.SetMargins(10.0f, 10.0f, 10.0f, 10f);

Aquí ocupamos una variable de tipo string con la ruta y nombde del archivo

  string rut = @"C:\doc.pdf";

Procedemos a crear el documento en la ruta antes establecida
  PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(rut, FileMode.Create));
     
Abrimos el documento a ocupar
      doc.Open();

Y empezamos a escribir nuestro texto para lo cual declaramos una variable de tipo paragraph en la cual vamos a definir el formato de nuestro texto, como alignment para definir la justificacion, Font para el tipo y tamañao de letra, y con Add agregamos el texto que vamos a ocupar
Paragraph paragraph = new Paragraph();
      paragraph.Alignment = Element.ALIGN_RIGHT;
      paragraph.Font = FontFactory.GetFont("Arial", 9);
      paragraph.Add("Esto es una prueba);

Y solo basta con agregar esta variable paragraph a nuestro documento.
Para continuar agregando texto es necesario ir agregando nuevos paragraph
     
doc.Add(paragraph);

Limpianos nuestro paragraph por si queremos definir otro tipo de formato o tipo de letra 
paragraph.Clear();
      paragraph.Font = FontFactory.GetFont("Arial", 14, Font.BOLD);
      paragraph.Add("Prueba PDF");
      doc.Add(paragraph);
      paragraph.Clear();

Para agregar saltos de linea solo basta con agregar “\n” a nuestro documento
     doc.Add(new Paragraph("\n"));


Podemos agregar imágenes a nuestro documento con la siguiente instruccion
     iTextSharp.text.Image imgpfd = iTextSharp.text.Image.GetInstance(@"C:\images\imgprueba.jpg"); //Dirreccion a la imagen que se hace referencia
     imgpfd.SetAbsolutePosition(50, 50); //Posicion en el eje carteciano de X y Y
     imgpfd.ScaleAbsolute(200, 200);//Ancho y altura de la imagen
     doc.Add(imgpfd); // Agrega la imagen al documento



Una vez terminado de escribir nuestro documento procedemos a cerrar el documento con:
doc.Close();    
y con esto tendremos nuesotr documento en la ruta que definimos al principio     

Este es un pequeñop tip para poder abrir nuestro documento desde la pagina web donde nos dara la opcion de descargarlo

Response.Clear();
      Response.ClearContent();
      Response.ClearHeaders();
      Response.AddHeader("Content-Disposition", "attachment; filename=Nombrearchivo.pdf");
      Response.ContentType = "application/pdf";
      Response.TransmitFile(rut);
      Response.End();


Con esto terminamos este pequeño tutorial, la continuacion de este es como crear el reporte pero con una el uso de tablas, que a mi me a funcionado mejor que estar escribiendo el texto plano.

Cualquier duda o comentario estoy a sus ordenes.

Saludos cordiales!

jueves, 25 de octubre de 2012

Denegado el acceso al archivo del informe. Es posible que esté abierto en otro programa.

¿Les a parecido este mensaje  una vez publicado su proyecto web en el servidor IIS "Denegado el acceso al archivo del informe. Es posible que esté abierto en otro programa."?

     Para corregir este detalle necesitamos darlos los permisos de escritura sobre la carpeta Temp, que es donde se crea este archivo por default antes de mostrarse en nuestra pagina, y la carpeta se encuentra en C:\Windows\, solo basta con darle los permisos al usuario de IIS_IUSRS.

Saludos cordiales!

miércoles, 24 de octubre de 2012

Crear reporte con Sap Crystal Reports



El día de hoy les traigo la forma de crear un reporte con Sap Crystal Reports desde c#, que es una muy buena herramienta con los controles mejorados y muy vistosos. Pero vallamos al grano como siempre.
Desde nuestro Visual Studio en nuestro proyecto previamente creado, agregamos un nuevo archivo de tipo de datos, el cual será nuestro DataSet, el cual contendrá la estructura de nuestra tabla de BD que vamos a utilizar. Una vez abierto el diseñador agregamos una TablaAdapter con el clic derecho de nuestro mouse o desde el cuadro de herramientas (Imagen 1), una vez agregada la TablaAdapter, procedemos a configurar nuestra conexión a BD, o bien seleccionamos la que se esté utilizando en el proyecto.


Imagen 1.

viernes, 19 de octubre de 2012

Abrir un archivo (Excel, Word, PDF, Etc.) desde aspx


Les traigo otro código para asp.net, que es como poder abrir un archivo desde c# .net, básicamente es abrir, por que anteriormente con el IE6 lo mostraba en la misma pagina como la hace Google con cierto archivos, ahora en las nuevas versiones de IE7 en adelante  lo da como descarga de archivo.
Vamos a nuestro cometido.
Para poder realizar este proceso, es necesario contar con la ruta del archivo y las siguientes referencias a nuestro proyecto: