lunes, 30 de enero de 2012

Correo Outlook a partir de HTML

Para poder realizar esto debemos seguir los siguientes pasos:

1. Abre Outlook.
2. Presiona F11 para abrir el editor de Visual Basic VB.
3. Selecciona "Insertar -> UserForm" en el menú.
4. Se abre una ventana con formulario (una ventana con título UserForm1) y se abre la ventana "Cuadro de herramientas".
5. En el "Cuadro de herramientas" selecciona "Cuadro de Texto" y dibuja un cuadro en el formulario "UserForm1" que ocupe la mayor parte del formulario.
6. En la ventana "Propiedades" (en la parte inferior izquierda de la pantalla), busca la propiedad "Multiline" y cambia el valor "False" por "True" y en "ScrollBars" el número 0 por el número 2.
7. Selecciona "Insertar -> Módulo" en el menú.
8. Se abre una ventana para editar código de Visual Basic.
9. Escribe esto :

Option Explicit

Public Sub HTMLEditor()
Dim objItem As Object, bodyStr As String

If Application.ActiveInspector Is Nothing Then
MsgBox "Abra o cree un nuevo mensaje.", vbOKOnly Or vbCritical, "Editor HTML"
Exit Sub
End If

If Not Application.ActiveInspector.IsWordMail Then
MsgBox "No es un mensaje de correo.", vbOKOnly Or vbCritical, "Editor HTML"
Exit Sub
End If

Set objItem = Application.ActiveInspector.CurrentItem
bodyStr = objItem.HTMLBody

Dim Form1 As New UserForm1
Load Form1

Form1.TextBox1.Text = bodyStr
Form1.Show vbModal

On Error GoTo eHand
objItem.HTMLBody = Form1.TextBox1.Text
Exit Sub

eHand:
End Sub

10. Cierra el editor de Visual Basic con "Archivo -> Cerrar y volver a Microsoft Outlook" en el menú.

Para crear nuevos mensajes en HTML en Outlook.

11. Crea un nuevo mensaje de correo.
12. Se abre el editor de Word.
13. Presiona ALT+F8 para abrir la ventana "Macros".
14. Selecciona "HTMLEditor" de la lista.
15. Presiona "Ejecutar".
16. Se abre una ventana con el "UserForm1" que hiciste en el paso 3 con el HTML del mensaje incluido.
17. Edita el HTML (Si no lo editas bien, Outlook borra el mensaje original)
18. Cierra la ventana, y el código HTML pasa a ser tu mensaje.

lunes, 16 de enero de 2012

Quitar la especificación de identidad en SQL Server

Si necesitamos insertar el valor que deseemos en un campo que tenga especificación de identidad podemos utilizar el siguiente código para permitir la inserción temporalmente:

set identity_insert lineaNegocio ON;

Para volver a dejar el campo con la especificación de identidad simplemente deshabilitamos esta opción:

set identity_insert lineaNegocio OFF;

lunes, 14 de noviembre de 2011

Función SUM() de javascript pero multiplicando

La solución a este problema es puramente matemática, sin entrar en detalles la solución es la siguiente:

exp(sum(log(NUESTRO_CAMPO)))

Al aplicar la función SUM con esta solución se puede agrupar sin problemas:

select OTRO_CAMPO, exp(sum(log(NUESTRO_CAMPO)))
from @TABLA
group by
OTRO_CAMPO


domingo, 14 de agosto de 2011

Restringir tamaño y formato de archivos en ASP

 Si en nuestra página web damos la posibilidad a los usuario de subir algún tipo de archivo debemos restringir el tamaño y el formato de estos archivos para evitar problemas y la carga de archivos mal intencionados por parte de los usuarios. Para ello podemos utilizar el siguiente código:

<%
dim objUpload, objFich
dim tamMaximo, strNombreFichero

'Tamaño máximo del archivo
tamMaximo= 4000

set objUpload = new xelUpload
objUpload.Upload()
'Accedemos al archivo
set objFich = objUpload.Ficheros("nombre")

'Restringimos el tamaño del archivo a 1024 bytes y el tipo de formato para que solo permita .GIF
if objFich.tamano <= maxtam and objFich.TipoContenido = ("image/gif")  then
      response.write("Archivo correcto")

end if
%>
A continuación os dejo la lista de archivos de Upload para limitar el formato del archivo:


application/andrew-inset ez
application/mac-binhex40 hqx
application/mac-compactpro cpt
application/mathml+xml mathml
application/msword doc
application/octet-stream bin dms lha lzh exe class so dll
application/oda oda
application/ogg ogg
application/pdf pdf
application/postscript ai eps ps
application/rdf+xml rdf
application/smil smi smil
application/srgs gram
application/srgs+xml grxml
application/vnd.mif mif
application/vnd.mozilla.xul+xml xul
application/vnd.ms-excel xls
application/vnd.ms-powerpoint ppt
application/vnd.wap.wbxml wbxml
application/vnd.wap.wmlc .wmlc wmlc
application/vnd.wap.wmlscriptc .wmlsc wmlsc
application/voicexml+xml vxml
application/x-bcpio bcpio
application/x-cdlink vcd
application/x-chess-pgn pgn
application/x-cpio cpio
application/x-csh csh
application/x-director dcr dir dxr
application/x-dvi dvi
application/x-futuresplash spl
application/x-gtar gtar
application/x-hdf hdf
application/x-httpd-php .php .php4 .php3 .phtml
application/x-httpd-php-source .phps
application/x-javascript js
application/x-koan skp skd skt skm
application/x-latex latex
application/x-netcdf nc cdf
application/x-pkcs7-crl .crl
application/x-sh sh
application/x-shar shar
application/x-shockwave-flash swf
application/x-stuffit sit
application/x-sv4cpio sv4cpio
application/x-sv4crc sv4crc
application/x-tar .tgz tar
application/x-tcl tcl
application/x-tex tex
application/x-texinfo texinfo texi
application/x-troff t tr roff
application/x-troff-man man
application/x-troff-me me
application/x-troff-ms ms
application/x-ustar ustar
application/x-wais-source src
application/x-x509-ca-cert .crt
application/xhtml+xml xhtml xht
application/xml xml xsl
application/xml-dtd dtd
application/xslt+xml xslt
application/zip zip
audio/basic au snd
audio/midi mid midi kar
audio/mpeg mpga mp2 mp3
audio/x-aiff aif aiff aifc
audio/x-mpegurl m3u
audio/x-pn-realaudio ram rm
audio/x-pn-realaudio-plugin rpm
audio/x-realaudio ra
audio/x-wav wav
chemical/x-pdb pdb
chemical/x-xyz xyz
image/bmp bmp
image/cgm cgm
image/gif gif
image/ief ief
image/jpeg jpeg jpg jpe
image/png png
image/svg+xml svg
image/tiff tiff tif
image/vnd.djvu djvu djv
image/vnd.wap.wbmp .wbmp wbmp
image/x-cmu-raster ras
image/x-icon ico
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
image/x-xpixmap xpm
image/x-xwindowdump xwd
model/iges igs iges
model/mesh msh mesh silo
model/vrml wrl vrml
text/calendar ics ifb
text/css css
text/html .shtml html htm
text/plain asc txt
text/richtext rtx
text/rtf rtf
text/sgml sgml sgm
text/tab-separated-values tsv
text/vnd.wap.wml .wml wml
text/vnd.wap.wmlscript .wmls wmls
text/x-setext etx
video/mpeg mpeg mpg mpe
video/quicktime qt mov
video/vnd.mpegurl mxu
video/x-msvideo avi
video/x-sgi-movie movie
x-conference/x-cooltalk ice

miércoles, 10 de agosto de 2011

Centrar DIV en la pantalla (scroll)

Para centrar un DIV en pantalla podemos crearnos el siguiente class css:
.divCentrado
{
      position: absolute;
      top: 50%;
      left: 50%;
      width: 600px; /*ANCHO DEL DIV DESEADO*/
      height: 400px; /* ALTO DEL DIV DESEADO*/
      margin-top: -200px; /* MITAD DE LA ALTURA*/
      margin-left: -300px; /* MITAD DE LA ANCHURA*/
}
En el caso en el que tuvieramos scroll en la pantalla y que el usuario puediera encontrarse verticalmente en cualquier posición, podemos tener en cuenta el scroll con la siguiente función (válido para multitud de exploradores):

function scrollTop(){

    if(window.pageYOffset){
        return window.pageYOffset;
     }
     else {
        return  Math.max(document.body.scrollTop,document.documentElement.scrollTop);
     }

}       

function centrarDIV(idDIV)
{
     var ypos = (screen.availHeight/4)
     idDIV.style.top = (scrollTop()+ypos) + 'px';
}

lunes, 9 de mayo de 2011

Añadir y eliminar option a un select desde Javascript

En el ejemplo siguiente se borran todos los OPTION de un select ("sel") uno por uno y a continuación se añaden los OPTION deseados:


var sel = document.getElementById("idSelect");
for(i=(sel.length-1); i>=0; i--)
{
   aBorrar = sel.options[w];
   aBorrar.parentNode.removeChild(aBorrar);
}

for(i=0; i<cantidadOptions; i++)
{

   option = document.createElement("OPTION");
   option.value = "valor";
   option.text = "texto";
   sel.add(option);
}

viernes, 6 de mayo de 2011

Conectar en ASP a SqlServer

Voy a explicar paso a paso como conectar a una BD de SqlSever desde Asp, para ello voy a poner como ejemplo que queremos conectar a una base de datos de nombre "dudoteca" desde mi servidor local "Desktop".

Primero crearemos el inicio de sesión(1) y después un usuario de la base de datos dudoteca asociado al inicio de sesión creado(2). Para la creación de la bd, inicio de sesión y usuario he utilizado el programa SQL Server Management Studio (bajate la versión 2005 express gratuita Aquí).

iniciosesionbd3.png

Para ello pulsamos con el Botón secundario del ratón encima de Inicios de sesión(1) y pulsamos "Nuevo inicio de sesión". A continuación dejamos los datos de la siguiente manera (para el ejemplo que estamos utilizando) y al acabar pulsamos "Aceptar":

iniciosesionbd14.png

Ahora creamos un usuario de nuestra base de datos asociado al inicio de sesión que acabamos de crear, para ello pulsamos con el Botón secundario del ratón encima de Usuarios(2) y pulsamos "Nuevo usuario". A continuación dejamos los datos de la siguiente manera (para el ejemplo que estamos utilizando) y al acabar pulsamos "Aceptar" :

iniciosesionbd22.png

Para realizar la conexión desde ASP a la base de datos que acabamos de crear tan solo tenemos que introducir en nuestra página (.asp) el siguiente fragmento de código:

Dim M, sq, rs, datos, bd

bd = "Driver={SQL Server}; Server=DESKTOP;uid= dudoteca;pwd=dudoteca;Database=dudoteca"

Set M = Server.CreateObject("ADODB.Connection")
M.Open bd

sq = "select * from tabla"
set rs = M.Execute(sq)
if not rs.eof then
   datos = rs.getrows
end if
rs.close


Tener en cuenta que los datos introducidos en la variable BD tienen que ser en primer lugar el nombre de tu servidor, el usuario y password del usuario que hemos creado para la BD y por último el propio nombre de la BD. En el fragmento anterior están los datos de la BD dudoteca que hemos creado al principio del post.

Si tenéis alguna duda comentarla. Saludos.