lunes, 9 de junio de 2014

Video Microsoft Visual Studio 2013

En este vídeo de cerca de 2 horas, que descubrí por casualidad, podemos tener una imagen general de lo que nos ofrece esta herramienta de programación.

Video Visual Studio 2013

jueves, 5 de junio de 2014

Problema de incio de sesión en dominio windows

El problema es el siguiente: el usuario no puede iniciar sesión en el dominio. Nos aparece el clarificador y pertinente mensaje:


¿Cuál era el problema? Equipo duplicado en el Servidor DNS con diferentes IP. Eliminando la IP incorrecta estará solucionado.

jueves, 8 de mayo de 2014

SQL Error: 3241 al restaurar Base de Datos


Es de agradecer que los mensajes de error que nos muestran algunos programas sean de lo más opacos, y Microsoft es muy dado a ello. Yo creo que lo hacen para activarnos la neurona y no nos atolondremos, ¿qué es eso de decirnos las cosas claramente, por favor?

Ejemplo: la siguiente ventana de error significa que la versión de la base de datos que queremos restaurar no es compatible con la instancia donde pretendemos restaurarla. ¿Está claro no?

miércoles, 7 de mayo de 2014

Error "La generación SQL dinámica para DeleteCommand..."

Si en vuestro código .Net os salta este error como ha sido mi caso:
'La generación dinámica para DeleteCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave'


No os volváis locos buscando donde está el error dentro del código. El problema se encuentra en la tabla a la que se está accediendo. En concreto, le falta el campo clave. Selecciona uno y solucionado. Esto me ocurrió al pasar una tabla de pruebas a producción, y claro los campos clave no van incluidos.


martes, 22 de abril de 2014

Videoconferencias gratis con Hangouts de Google

Todos los que tenemos cuenta con Google conocemos al menos por encima lo que podemos hacer con los los hangouts y si no echarle un vistazo a este enlace https://www.google.com/intl/es_es/+/learnmore/hangouts/, bueno pues lo más habitual son videoconferencias privadas. Pero por si alguien no lo conoce están los Hangouts en directo para transmitir vídeo en directo a través de YooTube para el mundo mundial. Puede ser interesante para transmitir pequeños eventos, cursos, charlas o lo que se te ocurra.

Para utilizarlo entran en tu perfil de G+, pinchar en Inicio y seleccionar Hangouts. Una vez en esta seccion seleccionar la opción que deseemos en este caso Hangouts en directo

jueves, 3 de abril de 2014

Utilizar Insertar en MS Outlook


Si alguna vez has intentado responder o reenviar un correo con Outlook en el caso del ejemplo es para la versión 2007, supongo que en versiones posteriores será parecido. Pues bien, para ello dentro del mensaje que estamos editando seguimos los pasos de la imagen y listo.

1º Bola Office
2º Avanzadas
3º Usar la tecla insert.....

Normativa para el cálculo del IBAN


He copiado en esta entrada todo el testo de la normativa del cálculo del IBAN porque el enlace que puse ha desaparecido, y como puede volver a ocurrir, lo he copiado directamente por si quereis probar aquí está el Documento completo.
 
CÓDIGO INTERNACIONAL DE CUENTA BANCARIA (IBAN)

DEFINICIÓN ADAPTACIÓN DEL IBAN PARA CUENTAS EN ESPAÑA

1. Introducción


El Comité Europeo de Normalización Bancaria (ECBS), ha publicado la norma

ECBS 204 que ofrece un código de identificación internacional y normalizado

de cuenta: el Código internacional de Cuenta Bancaria (IBAN, en sus siglas en

inglés, International Bank Account Number), para la identificación de una

cuenta abierta en una entidad de crédito, con el fin de facilitar el tratamiento

automatizado de operaciones (transfronterizas).

El IBAN puede implantarse en los distintos países sin modificar los códigos o

formatos de cuentas nacionales (En España el Código Cuenta Cliente —

C.C.C.) Ello se logra creando un prefijo estándar, tras el cual puede colocarse

inalterado el código de cuenta nacional.

A efectos de definición del IBAN aplicable a las cuentas abiertas en entidades

de crédito en España, en los apartados siguientes se desarrollan los criterios

sobre su configuración, datos que lo integran, métodos de cálculo y validación

de los dígitos de control y expresión en formato electrónico y en papel.


2. Configuración del IBAN en España


El IBAN español estará formado por 24 posiciones alfanuméricas, según sigue:

— 2 posiciones alfabéticas indicativas del país. Será siempre ES. (El código de

país de dos letras se corresponde con los de la norma ISO 3166, que para

España es ES).

— 2 dígitos de control. Según fórmulas de cálculo y validación que se indican

más adelante.

— 20 posiciones numéricas. Constituidas por el actual Código Cuenta Cliente.


3. Método de cálculo y validación de los dígitos de control


El Cálculo se llevará a cabo de la siguiente forma:


Paso preliminar:
Crear un código previo de IBAN compuesto del código de país (ES) seguido de


“00” y el C.C.C.

Ejemplo: ES0000120345030000067890


Paso 1:
Trasladar los cuatro primeros caracteres del IBAN a la derecha del Código.

Resultado: 00120345030000067890ES00


Paso 2:
Convertir las letras en números aplicando: E = 14; S = 28.

Resultado: 00120345030000067890142800

La conversión de letras por números, para el caso de IBAN de otros países se

acomoda a la siguiente tabla:
 
Paso 3:
 
Aplicar el módulo 97 – 10 (ISO 7604)

Calculando el módulo 97 (resto de la división por 97 del IBAN creado)
y estableciendo la diferencia entre 98 y el resto. Si el resultado es un dígito,

anteponer un cero.

98 – 91= 7

El IBAN creado sería: IBAN ES07 0012 0345 03 0000067890

Para llevar a cabo la validación del dato obtenido, se llevarán a cabo los

siguientes pasos:

Paso preliminar:

Convertir el formato básico del IBAN a un código previo, suprimiendo todos los

caracteres que no sean alfanuméricos y las siglas precedentes “IBAN”.

El IBAN anterior se convertiría en ES0700120345030000067890

Paso 1:
Trasladar los primeros cuatro caracteres a la derecha del código

Resultado: 00120345030000067890

Paso 2:
Convertir las letras en números aplicando: E = 14; S = 28

Resultado: 00120345030000067890142807

Paso 3:
Aplicar el módulo 97 – 10 (ISO 7604)

Calculando el módulo 97 (resto de la división por 97 del IBAN creado)

Para que los dígitos de control sean correctos, el resto tras calcular el módulo

97 deberá ser = 1

El resto de dividir 00120345030000067890142807 entre 97 = 1

NOTA: Nota de implantación relativa a los cálculos del módulo 97

En aras de una mayor precisión, se recomienda el uso de números enteros en

lugar de decimales. Si el guarismo es demasiado largo para la implantación en

el software de números enteros (un número entero de 32 bits o 64 bits

representa un máximo de 9 ó 18 dígitos), debe dividirse el cálculo en cálculos

restantes consecutivos sobre números enteros con una extensión máxima de 9

ó 18 dígitos.

El resto de dividir 00120345030000067890142807 entre 97 = 1

1. Calcular el módulo 97 de los primeros 9 (o 18) dígitos del guarismo.

Módulo 97 de 001203450

2. Conseguir el siguiente número entero de 9 (o 18) dígitos del resto, seguido

por los siguientes 7/8 (o 16/17) dígitos del guarismo. Calcular el módulo 97.

Módulo 97 de 683000006=17

3. Repetir el paso 2 hasta que los dígitos del guarismo hayan sido procesados.

Módulo 97 de 177890142=96

Módulo 97 de 96807=1




martes, 4 de febrero de 2014

Instalar sistema operativo OEM en máquina virtual VMware


Como acostumbro hacer por aquí, compartir las soluciones que me han servido a los problemas que me voy encontrando. Y no encuentras fácilmente en la red. Pues al tema.

Tengo una serie de servidores virtualizados. Llegados a este punto y bajo mi experiencia de un año y pico, no quiero perder la ocasión de decir a quien esté pensando en virtualizar servidores, que adelante. No te vas a arrepentir. ¡Ojo! servidores. Otra cosa son los escritorios virtuales de los usuarios. Hablo siempre bajo mi experiencia. Probablemente a otros les vaya de lujo. Ya sabemos que no todos los entornos son iguales.

Bueno, retomemos el tema. Yo quería instalar un servidor, en concreto con el sistema operativo Windows Server 2008 proporcionado por HP.

Una vez creada la máquina, con las indicaciones para que arrancara desde la  ISO correspondiente. Me encuentro con que me da el error, más o menos, de que no se puede instalar porque la plataforma no es HP.

No estoy yo muy puesto en estos quehaceres y después de buscar infructuosamente en la red, lo primero que se me ocurrió fue llamar a HP. Tuve suerte y contacté con un técnico avispado que me dió la solución (muy bien chaval):

- Editar el fichero .vmx
- Añadir una línea nueva con la siguiente instrucción:

SMBIOS.reflectHost = TRUE



 

martes, 28 de enero de 2014

Teclas rápidas para las hojas de cálculo de Google y "excel"

Supongo que como yo, hay gente aficionada al uso de teclas rápidas de los programas. Con ellas podemos hacer tareas cotidianas sin tener que agarrar el ratón constantemente. Una vez que vas usando teclas rápidas irás viendo lo útiles que son. Estas en concreto son para la hoja de cálculo de Google, pero la mayoría sirven también para excel de Microsoft y supongo que también para LibreOffice.


Por cierto, Google ha añadido una funcionalidad bastante interesante. Se trata de poder trabajar con tus documentos sin conexión a internet. Para ello hay que instalar la aplicación desde el Chrome Store el Google Drive, obviamente debes utilizar el navedador de Google, ejecutarla y habilitar los documentos sin conexión (en la parte izquierda de Google Drive pulsar en Más > Sin conexión > Habilitar el acceso sin conexión). Esta funcionalidad es recomendable utilizarla únicamente desde tu computadora.



Edición

Ctrl + ZDeshacer
Ctrl + Shift + ;Insertar hora
Ctrl + ;Insertar fecha
Ctrl + EnterRellenar intervalo
Ctrl + DRellenar en orden descendente
Ctrl + RRellenar derecha
Shift + F2Insertar/editar nota
Ctrl + Alt + MInsertar/modificar comentario
Ctrl + YRehacer
F4Referencias absolutas/relativas
Ctrl + Shift + KActiva/desactiva las herramientas de entrada
Ctrl + Alt + Shift + KSeleccionar herramientas de entrada

Movimiento

HomeMover al inicio de la fila
Ctrl + HomeMover al principio de la hoja
EndMover al final de la fila
Ctrl + EndMover al final de la hoja
Ctrl + Shift + PageDownMover a la siguiente hoja
Ctrl + Shift + PageUpIr a la hoja anterior
Ctrl + BackspaceDesplazarse hasta una celda activa
Ctrl + FEncontrar
Ctrl + HBuscar y sustituir


Menús

Ctrl + Shift + \Mostrar menú contextual
Alt + Shift + KMostrar lista de hojas
Alt + FMenú Archivo
Alt + EMenú Editar
Alt + VMenú Ver
Alt + IMenú Insertar
Alt + OMenú Formato
Alt + DMenú Datos
Alt + MMenú Formulario
Alt + TMenú Herramientas
Alt + HMenú Ayuda
Alt + Shift + SMostrar el menú de la hoja

Formato

Ctrl + BNegrita
Ctrl + USubrayar
Ctrl + ICursiva
Alt + Shift + 5Tachado
Ctrl + Shift + ECentrar
Ctrl + Shift + LAlinear a la izquierda
Ctrl + Shift + RAlinear a la derecha
Alt + Shift + 7Aplicar bordes exteriores
Alt + Shift + 6Eliminar bordes
Alt + Shift + 1Aplicar borde superior
Alt + Shift + 3Aplicar borde inferior
Alt + Shift + 4Aplicar borde izquierdo
Alt + Shift + 2Aplicar borde derecho
Ctrl + Shift + 4Dar formato de moneda
Ctrl + Shift + 5Dar formato de porcentaje
Ctrl + Shift + 6Dar formato de exponente
Ctrl + Shift + 3Dar formato de fecha
Ctrl + Shift + 2Dar formato de hora
Ctrl + Shift + 1Dar formato de decimal

Selección

Ctrl + SpaceSeleccionar columna
Shift + SpaceSeleccionar fila
Ctrl + ASeleccionar todo
Ctrl + Shift + 8Seleccionar una región activa

Inserción

Ctrl + Shift + EnterInsertar fórmula de matriz
Shift + F11Añadir nueva hoja

Comandos de archivo

Ctrl + SGuardar
Ctrl + OAbrir
Ctrl + PImprimir

Ver

Ctrl + `Mostrar todas las fórmulas
Ctrl + Shift + FMinimizar controles

Navegación

Ctrl + Alt + Shift + MMueve a la parte superior de la aplicación.
Shift + EscChat
Alt + EnterAbre el hiperenlace
Ctrl + Alt + Shift + GRevisiones
Alt + Shift + QFocus quicksum



jueves, 23 de enero de 2014

Extraer la fecha y la hora en SQL


Es algo habitual que queramos consultar registros que tengan una fecha determinada de un campo DateTime de SQL. Una forma de hacerlo es la siguiente:


SELECT * FROM TuTabla WHERE CAST(Fecha AS DATE) = 'dd/mm/aaaa' 

Ya puestos podemos obtener los registros que se dieron de alta a una determinada hora, por ejemplo las 16 horas. Cambiamos DATE por TIME:

SELECT * FROM TuTabla WHERE LEFT(CAST(Fecha as TIME), 2) = '16'

Función VB.NET que devuelve o valida el IBAN


Con la nueva normativa las empresas tienen que añadir el código IBAN a sus cuentas bancarias. Bueno, pues esta función te calcula el IBAN y lo devuelve, para por ejemplo validarlo o sustituir las cuentas en tu base de datos. La normativa para el cálculo del IBAN la puedes consultar aquí.

Primero fuí a lo sencillo utilizando la funcion Mod de visual basic que te devuelve el resto de una división, pero no funciona. Entonces hay que hacerlo como en la validación, cogiendo porciones de la cuenta.

Os la comparto, porque lo busqué en internet hasta la saciedad y no encontré nada que me sirviera. Y como opino que hay que compartir el conocimiento, espero que os sirva y os ahorre trabajo.

Tener en cuenta que yo solo uso cuentas bancarias de mi país, por eso añado al final de la cuenta "142800" y en el return el "ES" cada cual que ponga el suyo.

LLamada a la función:

Cuenta = cadena de cuenta bancaria + "142800" (por ser España)

DimeIBAN(Cuenta)

Función:

Private Function DimeIBAN(ByVal NumeroCuenta As String) As String

Dim ParteCuenta As String     
Dim ProximosNumeros As Integer

'Módulo de los primeros 9 digitos
ParteCuenta = String.Format("{0:00}", CInt(NumeroCuenta.Substring(0, 9)) Mod 97) 

' Cogemos otro grupo de digitos de la cuenta
NumeroCuenta = NumeroCuenta.Substring(9, NumeroCuenta.Length - 9)

' Recorremos la cuenta hasta el final
While NumeroCuenta <> ""

       If CInt(ParteCuenta) < 10 Then

           ProximosNumeros = 8
       Else

           ProximosNumeros = 7
      End If

      If NumeroCuenta.Length < ProximosNumeros Then

            ParteCuenta = ParteCuenta & NumeroCuenta
            NumeroCuenta = ""

      Else

           ParteCuenta = ParteCuenta & NumeroCuenta.Substring(0, ProximosNumeros)

           NumeroCuenta = NumeroCuenta.Substring(ProximosNumeros, NumeroCuenta.Length - ProximosNumeros)

      End If

     ParteCuenta = String.Format("{0:00}", ParteCuenta Mod 97)

End While

Return "ES" & String.Format("{0:00}", 98 - ParteCuenta)

End Function


Devuelve:

ESXX12345678901234567890


Tabla conversión de letras a números
Image

Nota: Ni que decir tiene que esta misma función sirve para comprobar que un iban es correcto, para no tocar la función, habría que pasar como parámetro la parte correspondiente a la cuenta. Así nos devolvería la IBAN completa.

--------------------------------------------------------------------------------------
Escoger un camino significaba abandonar otros. (Paulo Coelho)