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.
lunes, 9 de junio de 2014
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.
¿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'
'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 + Z | Deshacer |
Ctrl + Shift + ; | Insertar hora |
Ctrl + ; | Insertar fecha |
Ctrl + Enter | Rellenar intervalo |
Ctrl + D | Rellenar en orden descendente |
Ctrl + R | Rellenar derecha |
Shift + F2 | Insertar/editar nota |
Ctrl + Alt + M | Insertar/modificar comentario |
Ctrl + Y | Rehacer |
F4 | Referencias absolutas/relativas |
Ctrl + Shift + K | Activa/desactiva las herramientas de entrada |
Ctrl + Alt + Shift + K | Seleccionar herramientas de entrada |
Movimiento | |
---|---|
Home | Mover al inicio de la fila |
Ctrl + Home | Mover al principio de la hoja |
End | Mover al final de la fila |
Ctrl + End | Mover al final de la hoja |
Ctrl + Shift + PageDown | Mover a la siguiente hoja |
Ctrl + Shift + PageUp | Ir a la hoja anterior |
Ctrl + Backspace | Desplazarse hasta una celda activa |
Ctrl + F | Encontrar |
Ctrl + H | Buscar y sustituir |
Menús | |
---|---|
Ctrl + Shift + \ | Mostrar menú contextual |
Alt + Shift + K | Mostrar lista de hojas |
Alt + F | Menú Archivo |
Alt + E | Menú Editar |
Alt + V | Menú Ver |
Alt + I | Menú Insertar |
Alt + O | Menú Formato |
Alt + D | Menú Datos |
Alt + M | Menú Formulario |
Alt + T | Menú Herramientas |
Alt + H | Menú Ayuda |
Alt + Shift + S | Mostrar el menú de la hoja |
Formato | |
---|---|
Ctrl + B | Negrita |
Ctrl + U | Subrayar |
Ctrl + I | Cursiva |
Alt + Shift + 5 | Tachado |
Ctrl + Shift + E | Centrar |
Ctrl + Shift + L | Alinear a la izquierda |
Ctrl + Shift + R | Alinear a la derecha |
Alt + Shift + 7 | Aplicar bordes exteriores |
Alt + Shift + 6 | Eliminar bordes |
Alt + Shift + 1 | Aplicar borde superior |
Alt + Shift + 3 | Aplicar borde inferior |
Alt + Shift + 4 | Aplicar borde izquierdo |
Alt + Shift + 2 | Aplicar borde derecho |
Ctrl + Shift + 4 | Dar formato de moneda |
Ctrl + Shift + 5 | Dar formato de porcentaje |
Ctrl + Shift + 6 | Dar formato de exponente |
Ctrl + Shift + 3 | Dar formato de fecha |
Ctrl + Shift + 2 | Dar formato de hora |
Ctrl + Shift + 1 | Dar formato de decimal |
Selección | |
---|---|
Ctrl + Space | Seleccionar columna |
Shift + Space | Seleccionar fila |
Ctrl + A | Seleccionar todo |
Ctrl + Shift + 8 | Seleccionar una región activa |
Inserción | |
---|---|
Ctrl + Shift + Enter | Insertar fórmula de matriz |
Shift + F11 | Añadir nueva hoja |
Comandos de archivo | |
---|---|
Ctrl + S | Guardar |
Ctrl + O | Abrir |
Ctrl + P | Imprimir |
Ver | |
---|---|
Ctrl + ` | Mostrar todas las fórmulas |
Ctrl + Shift + F | Minimizar controles |
Navegación | |
---|---|
Ctrl + Alt + Shift + M | Mueve a la parte superior de la aplicación. |
Shift + Esc | Chat |
Alt + Enter | Abre el hiperenlace |
Ctrl + Alt + Shift + G | Revisiones |
Alt + Shift + Q | Focus 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

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)
Suscribirse a:
Entradas (Atom)