Publicado el Febrero 17, 2008 por wjama
Anuncios
Espero que sea de utilidad la siguiente función
Public Sub XLS_LoadData(ByVal FileName As String, _
ByVal SheetName As String)
‘FUNCIÓN QUE TOMA UN ARCHIVO EN EXCEL QUE SE ENCUENTRA
‘ EN EL SERVIDOR Y LO SUBE A UNA TABLA DE BASE DE DATOS SQL SERVER
‘ CREADO POR WJAMA
Dim FileMapPath As String
Dim FileNameC As String
Dim dsXLS As New Data.DataSet
Dim strConn As String
FileMapPath = Server.MapPath(“Archivos”) ‘Ruta en la que se encuentra el archivo que se va a subir a la base
FileNameC = FileMapPath & “\” & FileName ‘ se prepara el nombre del archivo completo
‘la conección a excel, no requiere que este instalado excel en el servidor
strConn = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=” & FileNameC & “;” & _
“Extended Properties=Excel 8.0;”
‘Realiza la consulta a la hoja de excel mediante un select
‘ el nombre de la hoja se recibe como parámetro
‘ lo que no se hasta el momento es como hacer para recuperar los nombres de las hojas del libro
‘ sin tener que usar los objetos del Excel (que implica instalar Excel en el servidor)
‘ mi objetivo evitar instalar Excel
Try
Dim daXLS As New OleDbDataAdapter(“SELECT * FROM [" & SheetName.ToString & "$]“, strConn)
daXLS.TableMappings.Add(“Table”, “ExcelData”)
daXLS.Fill(dsXLS)
Catch ex As OleDb.OleDbException
‘Return ex.Message.ToString
End Try ‘Utiliza bulkcopy para pasar los datos del dataset con los datos de Excel a la tabla de SQL Server
Dim bulkcopy As New SqlClient.SqlBulkCopy(ConfigurationManager.ConnectionStrings“cnsBaseDatos”).ConnectionString)
Try
bulkcopy.DestinationTableName = “TB_DATOSEXCEL”
bulkcopy.WriteToServer(dsXLS.Tables(0))
bulkcopy.Close()
Catch ex As Exception
‘Return ex.Message.ToString
End Try
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Para poder ver las líneas que unen los nodos en un TreeView, hice uso de las siguientes propiedades
LineImagesFolder=”~/TreeLineImages”
ShowLines=”True”
Pero al momento de ver el resultado en el IE 7 las líneas salen entrecortadas, es decir, no se muestran los nodos unidos por líneas continuas (Figura 1.)

Luego de pasar un par de horas entre las propiedades del TreeView, decidí buscar en el Internet, y efectivamente encontré que es un problema de presentación que se da en el IE7.
La solución para ver las líneas de forma continua, consiste primero en establecer una definición CSS como la siguiente
.tree td div
{
height: 20px !important
}
Y aplicar el estilo al TreeView
<asp:TreeView ID=”treeMenu” runat=server
LineImagesFolder=”~/TreeLineImages”
ShowLines=”True” CssClass=”tree”>

El artículo original está en la siguiente dirección: http://blogs.msdn.com/carloc/archive/2007/05/23/broken-line-in-asp-net-2-0-treeview-in-ie-7.aspx
Hasta la próxima
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Para evitar que el TreeView haga postback al momento de dar clic sobre un nodo, podemos hacer uso de la propiedad SelectAction
Los valores que puede tomar la propiedad son :
TreeNodeSelectAction.Expand: Al dar clic se expanden los hijos, no genera postback
TreeNodeSelectAction.None: No realiza alguna acción sobre el nodo
TreeNodeSelectAction.Select: Selecciona el nodo, genera postback
TreeNodeSelectAction.SelectExpand: Selecciona el nodo y expande los hijos, genera postback
La línea de programación para evitar postback sería
nodo.SelectAction = TreeNodeSelectAction.Expand
Hasta la próxima
Archivado bajo: ASP.Net; TreeView | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Por medio de la siguiente función se puede recorrer todos los nodos de un TreeView
Private Sub RecorrerTreeView(ByRef Nodos As TreeNodeCollection)
For Each Nodo As TreeNode In Nodos
If Nodo.ChildNodes.Count = 0 Then
Nodo.Text = “Hijo”
Else
Nodo.Text = “Padre”
RecorrerTreeView(Nodo.ChildNodes)
End If
Next
End Sub
La llamada a la función sería
Private Sub Page_Load(ByVal src As Object, ByVal e As EventArgs) Handles MyBase.Init
RecorrerTreeView(treeMenu.Nodes)
end sub
Hasta la próxima
Archivado bajo: ASP.Net; TreeView | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Puede que en algún momento necesitemos generar claves aleatorias dentro de nuestras aplicaciones, por ejemplo, yo las estoy utilizando para crear identificadores únicos al momento de guardar datos en una tabla, la siguiente función permite obtener cadenas de caracteres aleatorias con una longitud determinada.
El algoritmo funciona de la siguiente manera
1. Se crea un arreglo que contienen letras mayúsculas, minúsculas y números, en total 62 caracteres
2. Se generan números aleatorios entre 0 y 61, la idea obtener en forma aleatoria una posición dentro del arreglo
3. Recuperamos el valor de la entrada en el arreglo (Paso 1) según el índice aleatorio (Paso 2).
Los resultados por ejemplo pueden ser por ejemplo mHpV7HzmFRMSEh6k0dh6, como podemos observar las secuencia en este ejemplo es de longitud 20 y está compuesta de forma aleatoria de letras y números.
La función es la siguiente
Private Function GeneraClaveAleatoria(ByVal Longitud As String) As String
Dim Clave As String = “”
Dim Valores(61) As Char
Dim i As Integer
Dim j As Integer
j = 64
For i = 0 To 61
j = j + 1
Valores(i) = Chr(j)
Select Case j
Case 90
j = 96
Case 122
j = 47
End Select
Next
Randomize()
For i = 1 To Longitud
Clave = Clave & Valores(Int(61 * Rnd()))
Next
Return Clave
End Function
La llamada a la función para generar una clave de 20 caracteres aleatorios sería
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(GeneraClaveAleatoria(20))
End Sub
Una variante sería generar claves donde al principio solo salga letras y luego números
Hasta la próxima
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Ahora les voy a comentar como poner un icono para las páginas de tu sitio web El procedimiento es simple, los favicons nos permiten resaltan nuestro sitio de las demás páginas en especial cuando los usuarios utilizan los tabs del IE7, veamos la siguiente imagen
con los iconos podemos identificar rapidamente donde están los sitios Los pasos son los siguientes
1. Tener la imagen, es necesario que la extensión sea .ico.
2. Subir el archivo .ico a nuestro sitio, en este ejemplo el archivo se llama favico.ico y se encuentra en la carpeta images
3. Incluir la línea dentro de la sección HEAD de nuestra página
<link rel=”shortcut icon” href=”images/favico.ico” />
Es decir el HEAD de la página se vería de la siguiente manera
<head id=”Head1″ runat=”server”>
<title>.::| mi blog |::.</title>
<link rel=”shortcut icon” href=”images/favico.ico” />
</head>
En la siguiente web podemos encontrar una utilidad online que nos permite transformar imágenes gif, jpg, png, y bmp al formato .ico http://tools.dynamicdrive.com/favicon/ Hasta la próxima
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
Puedes utilizar el comando DBCC CHECKIDENT
La sintaxis es DBCC CHECKIDENT (nombre de la tabla, RESEED , nuevo valor de incio)
Por ejemplo, el siguiente script establce en 1 la semilla del campo autonumérico de la tabla HumanResources.Employee que está en la base AdventureWorks
USE AdventureWorks;GODBCC CHECKIDENT ('HumanResources.Employee', RESEED, 1);GO
Archivado bajo: SQL; AUTONUMÉRICO; DBCC CHECKIDENT | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
He estado trabajando con Visual Studio Tools para Office y crear un addin para Outlook, luego de trabajar e investigar por algunas horas el addin estaba listo, ejecutando directamente y haciendo debug no había problemas todo funcionaba bien, pero … [st]
El pero siempre viene cuando quieres probar en los clientes, utilizando el proyecto de instalación el addin se agrega como complemento dentro del Outlook pero no funciona, y el problema de que no ejecuta el addin es por un pequeño detalle de permisos.
La solución está en los siguientes pasos, que tuve que ejecutar en varias ocasiones y llegue a la conclusión que primero el Outlook debe estar cerrado (además comprobar que no existan procesos colgados, cuando haces depuración a veces no se cierran correctamente las instancias que ejecuta el depurador), segundo ejecutar el instalador y tercero aplicar las directivas de seguridad para el ensamblado.
Los pasos para aplicar seguridad al addin son los siguientes (tomado de http://msdn2.microsoft.com/es-es/library/zdc263t0(VS.80).aspx )
Utilizar la herramienta Configuración de .NET Framework 2,0.
Para otorgar plena confianza a un ensamblado o una carpeta ubicados en el equipo local
- 1. En el Panel de control, abra Herramientas administrativas.
- 2. Ejecute Configuración de Microsoft .NET Framework 2.0.
- 3. En la vista de árbol del lado izquierdo, expanda Configuración de .NET Framework 2.0, Mi PC, Directiva de seguridad en tiempo de ejecución, Usuario, Grupos de código, All_Code y, finalmente, VSTOProjects.
- 4. A la derecha está la descripción del grupo de código de VSTOProjects, que tiene una sección Tareas en la parte inferior de la página. En la sección Tareas, haga clic en Agregar un grupo de código secundario.
Se abrirá el asistente Crear grupo de código.
- 5. Seleccione Crear un nuevo grupo de códigos, y escriba un nombre y una descripción que faciliten la identificación del proyecto. Haga clic en Siguiente.
- 6. En la lista Elija el tipo de condición para este grupo de código, haga clic en Dirección URL.
- 7. En el cuadro Dirección URL, escriba la ruta de acceso completa al ensamblado o la ruta de acceso a la carpeta bin del proyecto seguida de un asterisco (por ejemplo, c:\<path>\ExcelApplication1.dll o c:\<path>ExcelApplication1\bin\*).
- 8. Haga clic en Siguiente.
- 9. Seleccione Usar conjunto de permisos existente y, a continuación, seleccione FullTrust en la lista.
- 10. Haga clic en Siguiente.
- 11. Haga clic en Finalizar.
Luego de aplicar los permisos adecuados al ensamblado, el addin empezó a funcionar… [Y] [8-|]
Hasta la próxima
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
La mayoría de las soluciones a los problemas que he tenido con el RS las he obtenido del siguiente foro http://groups.google.com/group/microsoft.public.sqlserver.reportingsvcs/topics?start=20&hl=en&sa=N
Espero sea de utilidad
Archivado bajo: General | Deja un Comentario »
Publicado el Febrero 16, 2008 por wjama
He estado trabajando con la parte de los addin para Office y voy a ir publicando como hacer algunas tareas básicas, en esta primera entrega vamos a ver como agregar un menú a la barra de herramientas. Primero declaramos los objetos que nos van a permitir agregar la opción de menú
Private menuBar As Office.CommandBar
Private newMenuBar As Office.CommandBarPopup
Private buttonOne As Office.CommandBarButton
Vamos a revisar el código que nos va a permitir poner nuestra nueva opción en el menú
Try
‘Recuperamos la instancia de la barra activa
menuBar = Me.Application.ActiveExplorer().CommandBars.ActiveMenuBar
‘Agregamos la nueva opción del menú de herramientos
newMenuBar = menuBar.Controls.Add( _
Office.MsoControlType.msoControlPopup, _
Temporary:=False)
‘Validamos tener la instancia del objeto
If newMenuBar IsNot Nothing Then
‘Nombre de la nueva opción
newMenuBar.Caption = “Clientes”
newMenuBar.Tag = “Opciones para los clientes”
‘Creamos la instancia del nuevo botón que va a ir dentro
’de la opción que estamos creando
buttonOne = newMenuBar.Controls.Add( _
Office.MsoControlType.msoControlButton, _
Before:=1, Temporary:=True)
‘Modificamos algunas opciones de nuevo botón
With buttonOne
‘Definimos el estilo del botón
.Style = Office.MsoButtonStyle.msoButtonIconAndCaption
‘Texto del botón
.Caption = “Selectiva”
.FaceId = 65
.Tag = “c123″
End With
‘Utilizamos delegados para establecer el evento al
‘cual tiene que responder el botón
AddHandler buttonOne.Click, AddressOf ButtonOne_Click
‘Hacemos que el botón sea visible
newMenuBar.Visible = True
End If
Catch Ex As Exception
MessageBox.Show(Ex.Message)
End Try
Hasta la próxima
Archivado bajo: General | Deja un Comentario »