jueves, enero 24

Varias de MYSQL


Como hacer un respaldo de una base de datos en MYSQL, desde consola.


mysqldump -u root -p nombrebd > archivodestino.sql


Y ahora, como, desde consola importar el respaldo anterior:

Nos colocamos en el directorio bin de mysql y tecleamos el siguiente comando:

mysql -u root -p nombreBDdondeSeImportara < "rutaynombredelscriptACargar sql" si tienes password en el usuario root, te lo pedira.

lunes, enero 14

Como determinar el formato de salida de un reporte ?


Como ya sabemos, BIRT es un reporteador muy versatil, muy facil de usar y con muchas opciones, incluido el poder insertar codigo javascript, bueno, pues hay veces que se necesitan ciertas cosas, que solo con javascript se logran, por ejemplo, como determinar con codigo la salida o el formato en que se desplegara el reporte, en este caso, yo deseo ocultar los hiperlinks cuando el formato de salida de x reporte sea pdf, y la manera de hacerlo es simplemente asi, usando el objeto reportContext:

if (reportContext.getOutputFormat( )=="html")
{
hiperlinkdeseado
}


Significa que si el formato de salida es html, entonces que si muestre el hiperlink sobre ese dato, de lo contrario, simplemente no hace nada.

Espero que a alguien le sea de utilidad...

Por cierto, aqui se puede encontrar muchisima informacion sobre BIRT, esta la descripcion y los metodos de todos los objetos usados en BIRT, habra que echarle una buena hojeada...

http://safari.adobepress.com/0321443853/ch09lev1sec2

jueves, enero 10

Personalizar una Fecha en MySQL

Si preferimos personalizar una fecha desde MySQL, lo podriamos hacer de la siguiente manera, obviamente el tipo de campo debe ser DATETIME, para poder extraer la hora:

SELECT
EXTRACT(DAY FROM Tabla.Fecha ) as diaNumerico,
( CASE DAYOFWEEK(Tabla.Fecha)
WHEN 1 THEN "Domingo"
WHEN 2 THEN "Lunes"
WHEN 3 THEN "Martes"
WHEN 4 THEN "Miercoles"
WHEN 5 THEN "Jueves"
WHEN 6 THEN "Viernes"
WHEN 7 THEN "Sabado"
ELSE ""
END) as diaEnTexto,

( CASE MONTH(Tabla.Fecha)
WHEN 1 THEN "Enero"
WHEN 2 THEN "Febrero"
WHEN 3 THEN "Marzo"
WHEN 4 THEN "Abril"
WHEN 5 THEN "Mayo"
WHEN 6 THEN "Junio"
WHEN 7 THEN "Julio"
WHEN 8 THEN "Agosto"
WHEN 9 THEN "Septiembre"
WHEN 10 THEN "Octubre"
WHEN 11 THEN "Noviembre"
WHEN 12 THEN "Diciembre"
ELSE ""
END ) as mesEnTexto,
EXTRACT(YEAR FROM Tabla.Fecha ) as elAnio,
EXTRACT(HOUR FROM Tabla.Fecha ) as laHora,
EXTRACT(MINUTE FROM Tabla.Fecha ) as elMinuto,
publicacion_convocatoria.lugar_celebracion_actos as lugar_apertura_tecnica
FROM publicacion_convocatoria
WHERE
Tabla.id = ?

Ya estando en BIRT, formamos nuestra cadena a Mostrar, la cual quedaria mas o menos asi:

"La junta se llevara a cabo el dia "+dataSetRow["diaEnTexto"]+" "+dataSetRow["diaNumerico"]+ " de "+dataSetRow["mesEnTexto"]+" de "+dataSetRow["elAnio"]+" a las "+dataSetRow["laHora"]+":"+dataSetRow["elMinuto"]+" horas " + " en "+dataSetRow["lugar"]+"."

Mostrando algo asi como esto:

"La junta se llevara a cabo el dia Miercoles 18 de Septiembre de 2007 a las 18:00 horas en XLugar...

Personalizando una Fecha en JavaScript

En BIRT hay ocasiones en que necesitamos personalizar una fecha, para que aparezca como Martes 27 de Abril de 2008, lo podemos hacer ya sea en MySQL o bien usando JavaScript, lo que acomode mejor, en este caso lo presento en JavaScript, tambien voy a publicar como hacerlo en MySQL.

// Array de los meses

var monthNames = new makeArray(12);
monthNames[0] = "Enero";
monthNames[1] = "Febrero";
monthNames[2] = "Marzo";
monthNames[3] = "Abril";
monthNames[4] = "Mayo";
monthNames[5] = "Junio";
monthNames[6] = "Julio";
monthNames[7] = "Agosto";
monthNames[8] = "Septiembre";
monthNames[9] = "Octubre";
monthNames[10] = "Noviembre";
monthNames[11] = "Diciembre";

// Array de los días

var dayNames = new makeArray(7);
dayNames[0] = "Domingo";
dayNames[1] = "Lunes";
dayNames[2] = "Martes";
dayNames[3] = "Miercoles";
dayNames[4] = "Jueves";
dayNames[5] = "Viernes";
dayNames[6] = "Sabado";

// dataSetRow["FechaVale"]; es un campo del DataSet que contenga la fecha a personalizar.

var fecha =dataSetRow["FechaVale"];
var year = dataSetRow["FechaVale"].getYear();

if (year < 2000) year = year + 1900;

function makeArray(len)
{
for (var i = 0; i < len; i++) this[i] = null;
this.length = len;
}

//Aqui formamos la cadena final, la cual sera mostrada en el reporte.

displayString= dayNames[fecha.getDay()] + " " + fecha.getDate() + " de " + monthNames[fecha.getMonth()] + " " +" de " + year+".";

martes, enero 8

Convertir Numero a Texto en JavaScript

Buscando en Google me encontre una muy buena funcion para convertir numero a Texto, especialmente echa en JavaScript, la cual me ha servido bastante para uso en BIRT, puesto que en BIRT es posible usar JavaScript, ahi les va la funcion, la cual es muy facil de usar:

Nota: Originalmente la funcion no tomaba en cuenta los decimales, es decir, solo traducia la parte entera, por ello agregue el calculo de centavos en la parte final y ya solo arme la cadena de texto a mostrar.

function letras(c,d,u)
{
var centenas,decenas,decom
var lc=""
var ld=""
var lu=""
centenas=eval(c);
decenas=eval(d);
decom=eval(u);
switch(centenas)
{
case 0: lc="";break;
case 1:
{
if (decenas==0 && decom==0)
lc="Cien"
else
lc="Ciento ";
}
break;
case 2: lc="Doscientos ";break;
case 3: lc="Trescientos ";break;
case 4: lc="Cuatrocientos ";break;
case 5: lc="Quinientos ";break;
case 6: lc="Seiscientos ";break;
case 7: lc="Setecientos ";break;
case 8: lc="Ochocientos ";break;
case 9: lc="Novecientos ";break;
}
switch(decenas)
{
case 0: ld="";break;
case 1:
{
switch(decom)
{
case 0:ld="Diez";break;
case 1:ld="Once";break;
case 2:ld="Doce";break;
case 3:ld="Trece";break;
case 4:ld="Catorce";break;
case 5:ld="Quince";break;
case 6:ld="Dieciseis";break;
case 7:ld="Diecisiete";break;
case 8:ld="Dieciocho";break;
case 9:ld="Diecinueve";break;
}
}
break;
case 2:ld="Veinte";break;
case 3:ld="Treinta";break;
case 4:ld="Cuarenta";break;
case 5:ld="Cincuenta";break;
case 6:ld="Sesenta";break;
case 7:ld="Setenta";break;
case 8:ld="Ochenta";break;
case 9:ld="Noventa";break;
}
switch(decom)
{
case 0: lu="";break;
case 1: lu="Un";break;
case 2: lu="Dos";break;
case 3: lu="Tres";break;
case 4: lu="Cuatro";break;
case 5: lu="Cinco";break;
case 6: lu="Seis";break;
case 7: lu="Siete";break;
case 8: lu="Ocho";break;
case 9: lu="Nueve";break;
}

if (decenas==1)
{
return lc+ld;
}
if (decenas==0 || decom==0)
{
return lc+" "+ld+lu;
}
else
{
if(decenas==2)
{
ld="Veinti";
return lc + ld + lu.toLowerCase();
}
else
{
return lc+ld+" y "+lu
}
}
}

function getNumberLiteral(n)
{
var m0,cm,dm,um,cmi,dmi,umi,ce,de,un,hlp,decimal;

if (isNaN(n)) {
alert("La Cantidad debe ser un valor Numérico.");
return null
}
m0= parseInt(n/ 1000000000000); rm0=n% 1000000000000;
m1= parseInt(rm0/100000000000); rm1=rm0%100000000000;
m2= parseInt(rm1/10000000000); rm2=rm1%10000000000;
m3= parseInt(rm2/1000000000); rm3=rm2%1000000000;
cm= parseInt(rm3/100000000); r1= rm3%100000000;
dm= parseInt(r1/10000000); r2= r1% 10000000;
um= parseInt(r2/1000000); r3= r2% 1000000;
cmi=parseInt(r3/100000); r4= r3% 100000;
dmi=parseInt(r4/10000); r5= r4% 10000;
umi=parseInt(r5/1000); r6= r5% 1000;
ce= parseInt(r6/100); r7= r6% 100;
de= parseInt(r7/10); r8= r7% 10;
un= parseInt(r8/1);
//r9=r8%1;
999123456789
if (n<>=1000000000)
{
tmp=n.toString();
s=tmp.length;
tmp1=tmp.slice(0,s-9)
tmp2=tmp.slice(s-9,s);

tmpn1=getNumberLiteral(tmp1);
tmpn2=getNumberLiteral(tmp2);

if(tmpn1.indexOf("Un")>=0)
pred=" Billón "
else
pred=" Billones "
return tmpn1+ pred +tmpn2;
}

if (n<10000000000>=1000000)
{
mldata=letras(cm,dm,um);
hlp=mldata.replace("Un","*");
if (hlp.indexOf("*")<0>3)
{
mldata=mldata.replace("Uno","un");
mldata+=" Millones ";
}
else
{
mldata="Un Millón ";
}
mdata=letras(cmi,dmi,umi);
cdata=letras(ce,de,un);
if(mdata!=" ")
{
if (n == 1000000) {
mdata=mdata.replace("Uno","un") + "de";
} else {
mdata=mdata.replace("Uno","un")+" mil ";
}
}

return (mldata+mdata+cdata);
}
if (n<1000000>=1000)
{
mdata=letras(cmi,dmi,umi);
cdata=letras(ce,de,un);
hlp=mdata.replace("Un","*");
if (hlp.indexOf("*")<0>3)
{
mdata=mdata.replace("Uno","un");
return (mdata +" mil "+cdata);
}
else
return ("Mil "+ cdata);
}
if (n<1000>=1)
{
return (letras(ce,de,un));
}
if (n==0)
{
return " Cero";
}
return "No disponible"
}

centavos=Math.round(dataSetRow["Importe"] * 100)-Math.floor(dataSetRow["Importe"])*100;

if (centavos)
{
Texto=getNumberLiteral(dataSetRow["Importe"]).toUpperCase()+" PESOS "+ centavos +"/100 M.N.";
}else
{
Texto=getNumberLiteral(dataSetRow["Importe"]).toUpperCase()+" PESOS 00/100 M.N.";
}

lunes, enero 7

2008 ?


Inicio un nuevo año, un año con muchos propositos, propositos que deseo cumplir, hay muchos propositos en lo personal, familiar, economico, profesional, etc, yo creo que es muy bueno hacerse propositos, se recomienda que dichos propositos sean compartidos, es decir que se platiquen con alguien de confianza, a fin de que exista mas compromiso personal, esos propositos aparte hay que anotarlos, hay que llevar una agenda y continuamente irlos analizando, es decir donde estoy, a donde quiero llegar, y que necesito para lograr ese objetivo, y por donde empezar cada uno, el inicio de año es una buena fecha para partir, sin embargo, los propositos pueden plantearse en cualquier fecha.

Es comun que empezamos el año con una lista de propositos, que luego se van olvidando, se necesita disciplina, se necesita mucho trabajo y entusiasmo para poder cumplirlos, no hay que fijar demasiados propositos, hay que fijar los mas importantes y hacer las acciones necesarias para que se logren, hay que recordar que el tiempo es un consumible no renovable, asi que a echarle ganas.

En alguna ocasion, un consultor nos platicaba que un gran motivador se planto frente a un grupo de alumnos del Tec de Monterrey, les decia que cuando nacemos, a cada uno, Dios nos da 7 monedas de oro para gastar, son las monedas que gastaras en lo que dures con vida, sin embargo la primera y la septima no se gastan conscientemente, ya que cada moneda corresponde a una decena de años, los primeros 10 años no tenemos todavia una vision apropiada de lo que sera nuestra vida en un futuro, la ultima moneda, la septima que comprende de los 60 a los 70 años, ya estamos casi de bajada (todo depende de la vida que lleves), ya es la edad de enfermedades para la mayoria de los humanos, aunque no siempre es asi., por lo cual nos quedan 5 monedas para gastar, la gran mayoria de esos jovenes que escuchaban al consultor apenas si habian gastado 2 monedas, todavia les quedaban cuatro o cinco.

De pronto se levanto un señor de 50 años, y dijo, como puede decirnos eso, yo tengo 50 años y me ha dado a entender que ya solo me queda una moneda, que ya no puedo hacer casi nada, el consultor le dijo, si, tiene razon, pero recuerde que esa moneda tiene 10 años, si traduce esos diez años en dias serian alrededor de 3650 dias, si lo calcula en horas, serian 87600 horas, traducido en minutos serian 5256000, asi que usted decide como gasta su moneda.

Bueno, pues los invito a que gastemos cada quien nuestras monedas, hay que gastarlas bien, hay que ser buenas personas, buenos amigos, buenos padres, buenos hijos, etc...