martes, julio 15, 2008

Para Graficar con Flash y PHP

Para Graficar Con PHP y Flash, existen muchos ejemplos que ayudan a crear graficas bastante interesantes.


http://www.maani.us/charts/index.php?menu=Introduction

Crear Graficos en Excel desde VFP

Tomado de
http://www.emagister.com/frame.cfm?id_centro=61174090033066666748506549694552&id_curso=46881010051955526869536853524567&url_frame=http://www.portalfox.com/modules.php?op=modload&name=News&file=article&sid=1256&mode=thread&order=0&thold=0

Hola, en muchas ocaciones nos encontramos con el problema de hacer gráficos tipo pastel en VFP. Despues de varias pruebas, logré terminar este pequeño código, para resolver este tipo de problemas, el cual lo quiero compartir con todos ustedes. Espero les sea de utilidad.

*************************************************************
*** Grafica de Pastel en MS Excel con formateo de datos ***
*** Proceso de Envio a MS EXCEL ***
*************************************************************

oExcel = CREATEOBJECT("Excel.Application")
WITH oExcel
.Visible = .T.
.Workbooks.Add
.Worksheets(1).Activate
.Worksheets(1).Name = "GRAFICA"
.Columns("A:A").ColumnWidth = 45
.Columns("B:B").Select
.Selection.NumberFormat = "#,##0.00"
.Columns("E:E").ColumnWidth = 14.31
.Columns("E:E").Select
.Selection.NumberFormat = "#,##0.00"
.Selection.Font.Bold = .T.

.Range("A1:E1").Select
WITH .Selection.Font
.Bold=.T.
.Size = 14
.Name = "TAHOMA"
ENDWITH
WITH .Worksheets(1)
.Cells(1,1).Value = "MI EMPRESA"
.Cells(3,1).Value = "Fecha de Impresión: " + ALLTRIM(DTOC(DATE()))
ENDWITH
.Range("A3:E3").Select
WITH .Selection
.Merge
.MergeCells = .T.
.HorizontalAlignment = 1
.VerticalAlignment = 1
.Font.Bold = .T.
ENDWITH
.Worksheets(1).Cells(4,1).Value = "Fecha de Anásilis: " + ALLTRIM(DTOC(DATE())) && loFecha
.Range("A4:E4").Select
WITH .Selection
.Merge
.MergeCells = .T.
.HorizontalAlignment = 1
.VerticalAlignment = 1
.Font.Bold = .T.
ENDWITH
.Range("A3:E4").Select

** Borders(1) = Linea vertical interior
** Borders(2) = Linea vertical exterior
** LineStyle = 1,7 && Línea delgada continua
** LineStyle = 2 && Línea delgada discontinua
** LineStyle = 3,8 && Línea delgada discontinua de puntos
** LineStyle = 4 && Línea delgada discontinua linea-punto
** LineStyle = 5 && Línea delgada discontinua de puntos dobles
** LineStyle = 6 && Línea gruesa continua
** LineStyle = 9,12 && Línea doble fija delgada
** LineStyle = 10,11 && Línea punto_line delgada
WITH .Selection
.Borders(2).LineStyle = 1
.Borders(2).Weight = 3
.Borders(3).LineStyle = 1
.Borders(3).Weight = 3
.Borders(4).LineStyle = 1
.Borders(4).Weight = 3 && propiedad del de ancho de linea 1-4; 3 Optimo
ENDWITH
.Range("A4:E4").Select
WITH .Selection
.Borders(3).LineStyle = 1
.Borders(4).LineStyle = 1
ENDWITH
&& Titulo de ESQUEMACIÖN
.Range("A6:E6").Select
.Worksheets(1).Cells(6,1).Value = "PUBLICIDAD ESQUEMADA"
WITH .Selection.Font
.Bold=.T.
.Size = 12
.Name = "TAHOMA"
ENDWITH
WITH .Selection
.Merge
.MergeCells = .T.
.HorizontalAlignment = 1
.VerticalAlignment = 1
.Font.Bold = .T.
ENDWITH
WITH .Selection
.Borders(2).LineStyle = 1
.Borders(2).Weight = 3
.Borders(3).LineStyle = 1
.Borders(3).Weight = 3
.Borders(4).LineStyle = 1
.Borders(4).Weight = 3 && propiedad del de ancho de linea 1-4; 3 Optimo
ENDWITH
DIMENSION titulo(6)
DIMENSION valor(6)
titulo(1) = " TOTAL DE PAGINAS "
titulo(2) = " TOTAL DE CMS COLUMNARIO POR PAGINA "
titulo(3) = " TOTAL DE CMS COLUMNARIO POR EJEMPLAR "
titulo(4) = " TOTAL PUBLICIDAD PAGADA "
titulo(5) = " TOTAL PUBLICIDAD CORTESIA "
titulo(6) = " TOTAL NOTICIAS "

valor(1) = 32
valor(2) = 234
valor(3) = 7488
valor(4) = 3256
valor(5) = 1256
** valor(6) = crGraph.TTCCSINUSAR - (Thisform.Cant_norm+Thisform.Cant_cort)
valor(6) = valor(3) - (valor(4)+valor(5))
FOR I = 1 TO 6
&& Titulo de " TOTAL DE PAGINAS "
lc = 7+I
loK = "A"+ALLTRIM(STR(lc))+":A"+ALLTRIM(STR(lc))
.Range(loK).Select
.Worksheets(1).Cells(lc,1).Value = titulo(i)
.Worksheets(1).Cells(lc,2).Value = valor(i)
WITH .Selection.Font
.Bold=.T.
.Size = 10
.Name = "TAHOMA"
ENDWITH
WITH .Selection
.Merge
.MergeCells = .T.
.HorizontalAlignment = 1
.VerticalAlignment = 1
.Font.Bold = .T.
ENDWITH
NEXT

&& Realizamos la GRAFICA

.Charts.Add
.ActiveChart.ChartType = 70 && Tipo Pastel
.ActiveChart.SetSourceData(.Sheets("GRAFICA").Range("A11:B13"),2) && Rango de Datos
.ActiveChart.Location(2,"GRAFICA")
.ActiveChart.HasTitle = .T.
.ActiveChart.ChartTitle.Characters.Text = "MI EMPRESA"
.ActiveChart.SeriesCollection(1).ApplyDataLabels(3) && Tipo de Aplicación de Leyendas A LA IZQUIERDA
.ActiveSheet.Shapes("Gráfico 1").IncrementLeft(-173.25) && Posicionamiento de la Grafica a la Izquierda
.ActiveSheet.Shapes("Gráfico 1").IncrementTop(68.75) && Posicionamiento de la Grafica hacia Arriba
.ActiveSheet.Shapes("Gráfico 1").ScaleWidth(1.28,.F.,0) && Escala de Ancho de la Gráfica
.ActiveSheet.Shapes("Gráfico 1").ScaleHeight(1.15,.F.,0)&& Escala de Largo de la Gráfica

&& Escribimos las leyendas col letras mas chicas
.ActiveSheet.ChartObjects("Gráfico 1").Activate && "Grafico 1" = Título del Gráfico
.ActiveChart.ChartArea.Select
.ActiveChart.Legend.Select
loCont = .ActiveChart.Legend.LegendEntries.Count && Cantidades de Leyendas a Formatear, en este caso 3
FOR I = 1 TO loCont
.ActiveChart.Legend.LegendEntries(I).AutoScaleFont = .T.
With .ActiveChart.Legend.LegendEntries(I).Font
.Name = "Tahoma"
.Size = 8
.Strikethrough = .F.
.Superscript = .F.
.Subscript = .F.
.OutlineFont = .F.
.Shadow = .F.
.Underline = .F.
.ColorIndex = 0
ENDWITH
NEXT

&& Personalizamos Las leyedendas de Porcentajes

.ActiveSheet.ChartObjects("Gráfico 1").Activate
.ActiveChart.ChartArea.Select
loCont = .ActiveChart.SeriesCollection.Count
FOR I = 1 TO loCont
.ActiveChart.SeriesCollection(I).DataLabels.AutoScaleFont = .T.
With .ActiveChart.SeriesCollection(I).DataLabels.Font
.Name = "Verdana"
.Size = 8
.Bold = .T.
.Strikethrough = .F.
.Superscript = .F.
.Subscript = .F.
.OutlineFont = .F.
.Shadow = .F.
.Underline = .F.
.ColorIndex = 0
EndWith
NEXT

&& Guardamos la grafica

.ActiveWorkbook.SaveAs((CURDIR()+"Graph_Esquemacion.xls"), -4143, "", "", .F., .F.)
.WorkBooks.Close
ENDWITH

oExcel = .NULL.
RELEASE oExcel

************************************
*** FIN ***
************************************

lunes, julio 14, 2008

Instalar Tomcat 6 y JDK 6

Descargar JDK 6 desde aqui, para Windows.
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u7-windows-i586-p.exe?BundledLineItemUUID=DnxIBe.ptQ8AAAEbptYELyHM&OrderID=1fVIBe.pR7UAAAEbmNYELyHM&ProductID=LxJIBe.ovSEAAAEaVZcGcbZW&FileName=/jdk-6u7-windows-i586-p.exe


Tomado y traducido desde :
http://www.coreservlets.com/Apache-Tomcat-Tutorial/detailed-configuration.html

En resumen..

jueves, julio 03, 2008

Instalar Apache y Tomcat en Centos

Tomado de http://cjaraba.blogspot.com/2008/03/instalar-apache-y-tomcat-en-centos.html
A menudo no nos podemos encontrar con un entorno en el que necesitamos implementar Apache HTTP server con PHP para programacion web, pero del mismo modo, podemos tener otro desarrollador que necesita TOMCAT para poder publicar programas tipo JSP en el mismo server. esta guia se basa en la distro CentOS linux, en si version 5 para 64 bits. esta guia tambien esta probada en una distribucion 32 bits espero les sea de utilidad.
Cabe resaltar que CentOS es basado eb redhat, y es totalmente compatible con los paquetes RHEL o RedHat Enterprise Linux en cada una de sus versiones.

1. debemos tener los paquetes base instalados en nuestro sistema, estos son: httpd, httpd-devel, php, php-common, php-devel. y sus respectivas dependencias, para esto utilizaremos la herramienta "yum" que viene con CentOS (RedHat Enterprise)
yum install httpd httpd-devel php php-common php-devel
Luego de tener instalados los anteriores paquetes, procedemos a actualizar todo nuestro centos, haciendo uso nuevamente del comando yum, de la siguiente
yum -y update
Ahora bien, ya tenemos instalado nuestro centos con soporte PHP para el Apache, que esta escuchando por el puerto 80(puerto por defecto). CentOS tiene un directorio /var/www/html que es el ROOT del HTTP server (Apache) ahi es donde debemos colocar los archivos que queremos ver en nuestro servidor via http://ip_del_server/ o http://midominio.com si tenemos un domino.

Lo siguiente que vamos a hacer es instalar las librerias de desarrollo de Java tambien conocidas como JDK (Java Developer Kit). para ello descargamos el paquete JDK en la version 1.6 extension .bin "jdk-6u5-linux-x64.bin" para este ejemplo.
una vez obtengamos este archivo, creamos un directorio llamado java dentro de /usr, luego copiamos el archivo .bin dentro de /usr/java/ le damos permisos de ejecucion y lo ejecutamos asi:
cd /usr
mkdir java
cd java
cp /root/jdk-6u5-linux-x64.bin .
chmod +x jdk-6u5-linux-x64.bin
./jdk-6u5-linux-x64.bin


Con esto ya tenemos descomprimido todo el JDK dentro de /usr/java lo que debemos hacer es renombrar el directorio resultado para mejor organizacion asi:
mv jdk1.6.0_05 jdk1.6.0

Ahora debemos incluir en el PATH de nuestro entorno, las librerias JAVA, para esto editamos el archivo /etc/profile e incluimos las sigueintes lineas justo antes de finalizar el archivo, puede ser antes de la linea "unset i"
JAVA_HOME=/usr/java/jdk1.6.0
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH


Ahora bien, una vez terminemos con la edicion, guardamos el archivo, y actualizamos las varables de entorno asi:
source /etc/profile

Listo, podemos probar si estan funcionando las librerias, ejecutando el comando "javac -version" de esta manera nos debe mostar la version 1.6 que acabamos de instalar.
Ahora procedemos a descargar el Tomcat 5, luego de tener el archivo, vamos al directorio /usr/java/ lo copiamos ahi, lo descomprimimos, y renombramos el directorio resultado a tomcat5 para mayor orden asi:
cd /usr/java
tar xzf apache-tomcat-5.5.26.tar.gz
mv apache-tomcat-5.5.26 tomcat5

Con esto ya tenemos el tomcat en nuestro linux, ahora debemos agregar la ruta del tomcat, a nuestro entorno de trabajo, nuevamente editando el archivo /etc/profile al final deberia quedarnos algo como esto:
JAVA_HOME=/usr/java/jdk1.6.0
PATH=$PATH:$JAVA_HOME/bin
CATALINA_HOME=/usr/java/tomcat5
export JAVA_HOME CATALINA_HOME PATH


Ahora podemos correr el tomcat y testearlo en nuestro browser http://ip_del_server:8080/
/usr/java/tomcat5/bin/startup.sh

El siguiente paso es compilar el modulo jk para incluirlo en el HTTP server para esto descargamos el source descargar aqui y seguimos los siguientes pasos (suponiendo que hemos descargado el archivo en /root).
cd /root
tar xzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
cd jakarta-tomcat-connectors-1.2.15-src
cd jk/native
./buildconf.sh
./configure --with-apxs=/usr/sbin/apxs
make
make install


Ahora creamos un archivo dentro de /etc/httpd/conf llamado workers.properties
workers.tomcat_home=/usr/local/apache-tomcat-5.5.16/
workers.java_home=$JAVA_HOME
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1


Editamos el archivo de configuración del Apache (/etc/httpd/conf/httpd.conf) para cargar el módulo. En la sección LoadModules añadimos:
LoadModule jk_module modules/mod_jk.so

Y al final del archivo:
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel warn

JkMount /jsp-examples default
JkMount /jsp-examples/* default


Ahora reiniciamos Tomcat y luego Apache:
/etc/init.d/httpd restart
/usr/java/tomcat5/bin/shutdown.sh
/usr/java/tomcat5/bin/startup.sh