martes, septiembre 20, 2005

Actualizacion de Agosto

Revisando el blog, me doy cuenta que no puse actualización alguna durante el mes de agosto.
No es, que estuviera desconectado o sin hacer algo, simplemente he estado usando el mismo código, una y otra vez con el fin de terminar la migración en la empresa.
Que espero terminar en estos dias.

Estoy comenzando la aplicación para el control de pacientes en un consultorio medico.
Usando tecnologia ASP.Net 2.0 beta. Pronto tendre más información al respecto.
Algunas novedades en cuanto a software en lo que va del mes:
  1. FastStone Image Viewer. Creo que dejaré de usar Irfan Viewer por esta aplicación, lo mejor es que permite hacer renombrar, cambiar tamaño, etc. de forma automática para muchos archivos.
  2. Acid XPress. Una aplicación para crear musica tomando como partida loops. Es una aplicacion de SONY, es gratuita (no es OSF) y ahi mismo en sony se pueden obtener algunos loops.
  3. Konfabulator. Mas que una aplicacion es una plataforma sobre la cual se pueden desarrollar miniaplicaciones (widgets). La empresa que desarrolla el software fue adquirida por Yahoo. Por lo que la aplicación ahora es gratuita, puesto que solia ser shareware. Muy recomendable, pero es mejor tener bastante RAM para ejecutar mas de 1 widget.

Listo!

jueves, julio 21, 2005

Software - D4Modelizer

Leyendo en PCActual, encontre la recomendacion de esta aplicación o asistente o no se como llamarle. Lo que hace es tomar una base de datos (aún access) y crea todas las funciones que permitiran interactuar con la misma base de datos.
Me gustaria ver que esta aplicacion se integrara con el proyecto Gentle .Net, pero lo interesante es que las funciones que crea D4Modelizer, estan listas para usarse.
www.d4modelizer.com

Lastima que no use esta herramienta antes de empezar con mi aplicacion. Tal vez para la próxima versión.

Listo!

Software - JDiskReport y Allway Sync

Un par de recomendaciones para la lista de software:
  1. JDiskRerport: En esta ocasion un analizador de discos duros (no lo he intentado con unidades de USB), realizado en Java, pero honestamente de las mejores aplicaciones en cuanto a rapidez, interface y sentido practico.La empresa que lo desarrolla, tiene disponible unas librerias para java de swing, supongo que por eso el diseño tan moderno. Se ve que tienen experiencia en el desarrollo java.
    http://www.jgoodies.com/freeware/jdiskreport/
  2. Allway Sync: Esta utileria permite sincronizar dos directorios. Lo cual es muy util como una herramienta de respaldo. Es un poco lento a la hora de analizar las diferencias entre dos directorios, pero funciona bien y por supuesto como todas mis recomendaciones freeware o en su caso opensource.
    Debo agregar que intente instalar iFolder 3.0, una utileria que estan desarrollando en el esquema de Mono, pero honestamente me parecio un monstruo come-recursos, traga memoria como loco y deja trabajando el procesador por minutos y minutos.
    http://www.allwaysync.com/

Listo!


Codigo ASP.Net - Usando el componente Calendar.

Despues de varias semanas regreso al blog. La razón fué un trabajo para la SEP, que no involucró programación, sólo diseño. En un post mas adelante comentaré este asunto, por lo pronto y regresando a la aplicación de la oficina.
En esta ocasión utilice el componente Calendar en la aplicación, de verdad que es muy práctico, y me olvio de estar haciendo conversiones por aquello de los regionalismos.
Por otra parte el usuario no tiene que escribir mal la fecha... ;).
Es asi que el código es el siguiente:

< id="btnCalendar" onclick="btnCalendar_Click" runat="server" imageurl="/images/calendar1.gif">

< /asp:ImageButton >

< id="Calendar1" runat="server" size="8pt" visible="False" forecolor="Black" onselectionchanged="Calendar1_SelectionChanged" cellpadding="4" daynameformat="FirstLetter" bordercolor="#999999" names="Verdana" height="180px" width="200px" backcolor="White" selecteddate="2005-07-19">
< forecolor="Black" backcolor="#CCCCCC">< /TodayDayStyle >
< backcolor="#CCCCCC">< /SelectorStyle >
< verticalalign="Bottom">
< size="7pt" bold="True" backcolor="#CCCCCC">< /DayHeaderStyle >
< bold="True" forecolor="White" backcolor="#666666">< /SelectedDayStyle>
< bold="True" bordercolor="Black" backcolor="#999999">< /TitleStyle >
< backcolor="LightSteelBlue">< /WeekendDayStyle >
< forecolor="#808080">< /OtherMonthDayStyle >
< /asp:Calendar >

< id="txtFechaDevolucion" runat="server" bold="True">< /asp:Label >

El primero es una pequeña imagen-boton que lo unico que hace es activar el componente Calendar:

Una vez que se da un click se ejecuta el siguiente evento:


Sub btnCalendar_Click(sender As Object, e As ImageClickEventArgs)
If Calendar1.Visible = False Then
Calendar1.Visible = True
Else
Calendar1.Visible = False
End If
End Sub




Se selecciona la fecha y queda guardada en un componente de Label.


Sub Calendar1_SelectionChanged(sender As Object, e As EventArgs)
txtFechaDevolucion.Text = Calendar1.SelectedDate
If Calendar1.Visible = True Then
Calendar1.Visible = False
End If
End Sub



Listo!

lunes, junio 06, 2005

Codigo ASP.Net - Leyendo un URL remoto.

Despues de casi dos semanas, regreso a publicar. Había estado realizando diseño grafico. Nada de programación. Y el pasado viernes estuve investigando sobre peticiones web, algo asi como un servicio web, pero sin serlo.
Resulta que en la empresa contratamos un servicio que verifica un número de serie y como respuesta nos proporciona los dato del producto que se esta buscando, digamos, modelo, lugar de fabricación, categoria, etc.
Ahora bien, el resultado es una cadena de texto. Ni siquiera es XML, es una simple cadena de texto con el Pipe () como delimitador de los campos.
Habian varios puntos que se tenian que considerar, primero la seguridad. No podia proporcionar a todo el personal de la empresa el usuario y la contraseña, sobre todo para que no le den mal uso.
El segundo, tenia que escribirse manualmente el URL, lo cual no es muy practico.
Y tercero, no existia diseño alguno en la respuesta de la información ( ni siquiera el uso de negritas).
Es asi, que me di a la tarea de implementar una página, que pudiera mandar el URL con el número de serie desde un cuadro de texto, el usuario y la contraseña no disponible al usuario y que se quedara la información en una variable para el correcto formato del mismo.
Estoy usando un par de clases de la libreria de System.Net, llamada WebRequest y WebResponse, asi como la libreria System.IO para la lectura de la información.
Cógigo:
< % @ import Namespace="System.Net" % >
< % @ import Namespace="System.IO" % >


A con tinuación debemos instanciar los objetos:.

Dim mywebReq As WebRequest
Dim mywebResp As WebResponse
Dim sr As StreamReader

Usamos los objetos antes creados, y llenamos una cadena de texto.


mywebReq = WebRequest.Create("http://www.com//res.php?serie=ab1ab1ab1ab1&usuario=user&password=111111")
mywebResp = mywebReq.GetResponse()
sr = New StreamReader(mywebResp.GetResponseStream)
Dim strHTML As String
strHTML = sr.ReadToEnd

Creamos un array para usar los elementos de la cadena de texto.


Dim arrSplitHTML as Array
arrSplitHtml = strHtml.Split("")

Y finalmente ponemos las cadenas texto a diferentes objetos Label.

miTituloLabel.Text = arrSplit(0)
miCampoLabel.Text = arrSplit(1)

Listo!

miércoles, mayo 25, 2005

Codigo ASP.Net - Asignar una columna de un DataReader a una varible en WebMatrix

Hace tiempo que quiero usar las funciones que se generan con el Wizard Code de Web Matrix, pero creando un DataReader en lugar de DataSet.
Por fin entendi, que no se puede tener acceso directo a los Items del DataReader. Lo cual no me agrada mucho, pero ya solucione el problema. Sobretodo en los casos de leer un registro de la tabla.
Lo que yo habia estado intentando durante todo este tiempo.
Aqui la funcion:

Function obtenLotexID(ByVal iDLote As Integer) As System.Data.IDataReader
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [Lotes].* FROM [Lotes] WHERE ([Lotes].[IDLote] = @IDLote)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_iDLote As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iDLote.ParameterName = "@IDLote"
dbParam_iDLote.Value = iDLote
dbParam_iDLote.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iDLote)

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Return dataReader
End Function

Y aquí el llamado a la funcion

Sub Page_Load
Dim drLote as System.Data.OleDB.OleDBDataReader
intIDLote = Request.QueryString("lote")
textID.Text = obtenLotexID(intIDLote)
End Sub



Por supuesto, lo anterior manda un error de que no encuentra la columna correspondiente. Es asi que hoy vi un ejemplo y la forma de capturar los datos y ponerlas en una variable o como texto de un objeto de html es:


Sub Page_Load
Dim drLote as System.Data.OleDB.OleDBDataReader
intIDLote = Request.QueryString("lote")
intIDEmpresa = Request.QueryString("empresa")
drLote = obtenLotexID(intIDLote)
While drLote.Read()
txtID.Text = drLote("IDLote")
End While
End Sub



Como se puede observar en realidad se crea un nuevo DataReader el cual se llenara con los datos de la funcion (que por supuesto es un datareader por si misma).
Y ahora si, busco mediante un loop los valores que estoy requiriendo.

Listo!

viernes, mayo 20, 2005

Codigo ASP.Net - Agregar una grafica de datos.

Estuve buscando en Internet alguna solución para poner una pequeña grafica de barras o circular en una de las pantallas, de la aplicación de la empresa. Siempre había usado html para esto, una combinación de Css y las etiquetas de Table,Td y Tr. Pero en esta ocasion decidí que ya era tiempo de usar un verdadero gráfico. Además que si tenía toda la intención de usar un gráfico circular y en definitiva eso no se puede con html.

Existen varios controles comerciales entre ellos .netcharting, fxChart, etc. y de verdad baje la evaluación y me parecieron buenísimos, pero el precio no tanto.

Por ahi baje uno que tiene tiempo que es bastante famosillo y que se puede encontrar en www.carlosag.net llamado WebChart. Lo probe y no me gustó sinceramente no me gustó el tipo de graficos que genera. Es gratuito, muy sencillo y pero se ve muy burdo, asi que lo deseche.

Pero ayer como a eso de las 2:00 am, navegando en mi casa con la red inalámbrica de mi vecino (;)), encontré un maravilloso control. Solo permite dos tipos de gráficos Bar y Pie, pero lo importante es la buena calidad del gráfico que genera: http://www.codeproject.com/aspnet/webchart.asp
El autor del componente es un cuate que se autonombra BLONG.

Hoy me dí a la tarea de implementarlo en mi aplicación, no tiene mucha documentación, es mas, termine leyendo el codigo fuente del control para entender sobretodo las propiedades y los metodos. Pero la verdad es que en solo 20 min, mi aplicación ya tenía graficas (Y).

Creo que me tarde mas en escoger el formato final que en agregarlo. :D
Genera un archivo PNG, con lo cual permite mayor resolucion en el monitor.

Como siempre usé Web Matrix, es asi que el código lo pongo tal cual lo tengo en mi aplicación.

El codigo vb es:

Sub showChart (iD as Integer)
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT IDStatus....WHERE ID = @iD"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_iDSubasta As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iDSubasta.ParameterName = "@ID"
dbParam_iDSubasta.Value = iD
dbParam_iDSubasta.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iDSubasta)

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Dim sumaPagados as Integer
Dim sumaNoPagados as Integer
While dataReader.Read
Select dataReader("IDStatus")
Case 2, 3 ' se vendio
sumaNoPagados += 1 'vendido y pagado
Case 6 ' se reasigno
sumaNoPagados += 1 'reasignado y pagado
Case 4 'vendido y pagado
sumaPagados += 1 'vendido sin pago
Case 7 'reasignado y pagado
sumaPagados += 1 'reasignado sin pago
End Select
End While
If iD>0 Then
WebChart1.Visible=True
End If
WebChart1.WebChartItems.Add(New WebChartItem("NoPagados",sumaNoPagados,"False"))
WebChart1.WebChartItems.Add( New WebChartItem("Pagados", sumaPagados,"False"))

End Sub

Y en la parte de la pagina:

< blong:WebChart id="WebChart1" title="Gráfica Circular" runat="server" Type="Pie" Visible="False" ShowValues="True" Format="Png" Diameter="Small" >< /blong:WebChart >



Gracias BLONG
Listo!

miércoles, mayo 18, 2005

Codigo ASP.Net - Usando el objeto HashTable

La idea era usar un arreglo (array) dentro de una de las aplicaciones. Esto generalmente lo uso bastante, y aun cuando en Asp es muy sencillo de usar y dimensionar un arreglo o array. En Asp.Net me encontre con la novedad de que existe 3 tipos diferentes de collecciones para un arreglo.

  1. ArrayList
  2. HashTable
  3. y SortedList

Tome como base una funcion select de Web Matrix dentro de una pagina. Realice una modificacion a la consulta y al final de las modificaciones la funcion me regresa un HashTable en lugar de un dataset.
Aun cuando se puede utilizar directamente un join en la tabla directamente para que me dieran los resultados me gusta usar arreglos para designar los diferentes titulos a valores de una tabla que se usa como llave secundaria.
Codigo:

Function obtenBancos() As HashTable
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("CONNECTION_STRING")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [Bancos].[IDBanco], [Bancos].[NombreBanco] FROM [Bancos] ORDER BY [Bancos].[NombreBanco] DESC"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Dim Bancos = New HashTable

While dataReader.Read()
Bancos.Add(dataReader(0),dataReader(1))
End While

Return Bancos
End Function


De esta manera cuando asi lo necesito hago llamar la funcion obtenBanco(2) y me resuelve con el banco correspondiente.
De la siguiente manera se puede llenar un DropDownList:

drpBancos.DataSource = obtenBancos()
drpBancos.DataValueField="Key"
drpBancos.DataTextField="Value"
drpBancos.DataBind()



Listo!

martes, mayo 10, 2005

FCKEditor en asp.net

Durante ayer y hoy he estado revisando el editor wysiwyg para paginas de FCKEditor.
Ya tenia tiempo que lo habia visto, en un par de ocasiones estuve a punto de usarlo, para ser mas especifico, implementarlo en PhpNuke, pero finalmente no lo habia usado.
Como estoy delegando algunas tareas y la persona que hará los cambios en el sitio web de la empresa no sabe de html, decidí que seria practico (en lugar de dar clases de html) agregar este editor.
Lo mejor del editor es el hecho que es muy estable, esta muy probado y tienen mucho tiempo desarrollandolo.

No hay mucha información para la instalación, por un minuto pense que con bajar el paquete .Net seria suficiente pero no. En realida el archivo .dll es simplemente es una extension del webcontrol para TextArea. Es asi que se requiere bajar el paquete completo, y ponerlo en una carpeta desde raiz.

Ahora bien se puede editar el codigo fuente del control para realizar las personalizaciones correspondientes, ahi para quien guste, me quedo con el compilado. A continuación un ejemplo:

Page Language="VB"
Register TagPrefix="uc0" TagName="encabezado" Src="/include/encabezado.ascx"
Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2, Version=2.1.1887.26124, Culture=neutral, PublicKeyToken=4f86767c9b519a06"
< html >
< head >
< / head >
< body text="#000000" bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
< form runat="server" >
< FCKeditorV2:FCKeditor id="FCKeditor1" runat="server" toolbarset="Basic" width=400 >

< / FCKeditorV2:FCKeditor >
< /form >
< / body >
< / html >



www.fkceditor.net

Listo!

jueves, mayo 05, 2005

Codigo ASP.Net - Contar registros distintos de una tabla

Use como siempre el wizard de Web Matrix para realizar un select. Modifique la cadena de consulta para contar los disitintos registros de la tabla y en lugar de generar un dataset o datareader la funcion genera un integer:


Function cuentaPC(ByVal iDSubasta As Integer) As Integer
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("Mi_CONNECTION_STRING")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT Count([Paletas].[IDPaleta]) as CuentaPaletas FROM (SELECT DISTINCT [Paletas].[IDPaleta] FROM [Paletas], [Lotes] WHERE (([Paletas].[IDPaleta] "& _
"= [Lotes].[IDPaleta]) AND ([Paletas].[IDSubasta] = @IDSubasta)))"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection


Dim dbParam_iDSubasta As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iDSubasta.ParameterName = "@IDSubasta"
dbParam_iDSubasta.Value = iDSubasta
dbParam_iDSubasta.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iDSubasta)

dbConnection.Open
Dim intCuentaPaletas as Integer = dbCommand.ExecuteScalar()

Return intCuentaPaletas
End Function


Listo!

Databinding usando Iif

En muchas ocasiones requiero de colocar un valor boleano en alguna de las columnas de los datagrid. Y el codigo es sencillo:

< /asp :label text='
< % # IIf (Container.DataItem("Activacion"),"SI","NO") % >
' > < / asp:label >

Listo!

miércoles, mayo 04, 2005

SQL Tutorial

Siempre ando perdiendo esta pagina. Es un tutorial de w3schools.com. Es muy sencillo pero muy útil.

SQL Tutorial

¿No usar DataSets?

Acabo de leer el artículo en 4guysfromrolla. Me parecio interesante hacer la prueba, sobretodo porque se menciona que se puede aumentar hasta en 30 veces la velocidad de lectura de la base de datos. Y... sí efectivamente, es más rapido. Modifique el codigo para generar un DataReader en lugar de DataSet, y la diferencia fue asombrosa y de forma inmediata.


ASP.NET.4GuysFromRolla.com: Why I Don't Use DataSets in My ASP.NET Applications
Listo!

Ordenación (sort) con Web Matrix

Web Matrix contienen un control llamado MxDataGrid, que se supone es una version mejorada del control DataGrid. La verdad es que no lo encuentro tan amigable despues de todo. Razones:

  1. No contiene la opcion de "Formato Automatico" como el DataGrid normal,
  2. Existe poca información sobre su uso.
  3. El sort u ordenamiento, asi como la paginación no es tan inmediata, si se tiene que modificar el codigo.
Asi que con lo anterior, recomiendo usar el DataGrid normal.

Estuve posponiendo, por esto mismo, el agregar ordenacion en mis pantallas que contienen un data grid, pero por fin lo resolví y no estuvo tan complicado.
Algo que debo mencionar, es que pensé que el DataGrid haria el ordenamiento por mi, que no tendria que codificar algo para esto. Error!.
Pero no fue tan complicado, primero modifique la función "select" que se genera con los code wizards de Web Matrix.



Ejemplo:
Function obtenLotesxSubasta(ByVal iDSubasta As Integer) As System.Data.IDataReader
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("miconexion")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT .... FROM "
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_iDSubasta As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iDSubasta.ParameterName = "@IDSubasta"
dbParam_iDSubasta.Value = iDSubasta
dbParam_iDSubasta.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iDSubasta)

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Return dataReader
End Function


Lo anterior se genera automaticamente, se hacen las siguientes modificaciones...


Function obtenLotesxSubasta(ByVal iDSubasta As Integer, ByVal orden As String) As System.Data.IDataReader

y ademas...

Dim queryString As String = "SELECT .... FROM ORDER BY " & orden

Pude haber usado un parametro en lugar de agregarlo directamente a la cadena de query ( tal vez lo haga mas adelante), pero funciona bien de esta forma usando menos lineas... ;).

Se tiene que agregar el atributo OnSortCommand="midatagrid_SortCommand" al DataGrid y por supuesto escoger las columnas que se podrán ordenar agregando SortExpression="ID" segun corresponda. Y finalmente el eventhandler:

Sub midatagrid_SortCommand(sender As Object, e As DataGridSortCommandEventArgs)
orden = e.SortExpression
intIDSubasta = request.querystring("suabsta")
dgrLotes.DataSource = obtenLotesxSubasta(intIDSubasta, orden)
dgrLotes.DataBind()
End Sub


Listo!

PDFCreator 0.8

Creo que olvide mencionar en mi lista de software, estoy haciendo la modificacion en el post anterior. Pero creo que puedo platicar un poco mas de él, en esta ocasión.
Lo que me parece grandioso de PDFCreator es que se instala como una impresora dentro del ambiente de windows, es asi que se puede generar cualquier cosa en formato PDF. Porque gastar en Adobe Acrobat, cuando esta herramienta hace un excelente trabajo.
Es cierto que no genera todas las opciones de Acrobat, pero sinceramente quien las necesita.
Cuando se envia o se usa un archivo PDF, es simplemente por seguridad para que no esten modificando el archivo, de otra manera mejor enviar el archivo .doc o .xls o lo que sea.
Se instala el PDFCreator y tiene un archivo de inicio en español que habra que obtener de forma independiente. http://sector7g.wurzel6.de/pdfcreator/index_en.htm o en http://sourceforge.net/projects/pdfcreator/
Listo!

Anim FX banners en Flash

Instale Anim-FX en su version de prueba y simplemente no me gusto. Despues de varios intentos con Swish y pensando en crear el banner de la empresa en Gif Animado. Simplemente me decidi por unos templates gratuitos que andaban por ahi, y lo tuve que hacer en Flash MX.
Creo que perdí mas tiempo en estar buscando como hacerlo que en realidad hacerlo.
Espero que se acepte.
Listo!

martes, mayo 03, 2005

Dar formato de moneda a un string.

4GuysFromRolla.com - ASPFAQS.com : ASP.NET : How can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency.

Codigo ASP.Net - Leer un registro de una tabla.

A continuación un snippet, que siempre ando olvidando a la hora de leer un registro de una table:

intIDLote = Request.QueryString("lote")
Dim drLote As System.Data.DataRow
drLote = obtenLotexID(intIDLote).Tables(0).Rows(0)
Titulo.Text = drLote.Item("Titulo")

La siguiente funcion se genera en Web Matrix. Recuerda que tiene que ser un DATASET, y no un DataReader.

Function obtenLotexID(ByVal iDLote As Integer) As System.Data.DataSet
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_connGabasys")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT ...... ([Lotes].[IDLote] = @IDLote))"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_iDLote As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_iDLote.ParameterName = "@lote"
dbParam_iDLote.Value = iDLote
dbParam_iDLote.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_iDLote)

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function

lunes, mayo 02, 2005

Lista de Software que uso

Mucha gente cree que uso software pirata, pero no es asi. Lo que intentó usar la mayor parte del tiempo es software Open Source; es asi que a continuacion mi lista de open source:
  1. Filezilla - Programa para realizar ftp, es muy bueno y vino a sustituir al buen ws_ftp que utilice por mucho tiempo. http://filezilla.sourceforge.net
  2. 7Zip - Programa de compresion, que aun cuando XP permite abrir y crear archivos .zip, la verdad es que me encuentro en internet con otros tipos de archivos entre ellos .rar, .gz, .ace, etc. Este programa es un poco rudimentario, no es tan amigable. Pero funciona, y me evito tener WinZip. http://www.7zip.org
  3. RealVNC - ¡Que haria sin VNC! Ha venido a solucionarme muchos problemas de acceso remoto a las computadoras, el único problema es que ahora camino menos, y los kilitos se quedan... http://www.realvnc.com
  4. NVU - Por fin deje de utilizar frontpage. Es una herramienta basada en el framework de Mozilla, funciona de maravilla. Todavia tiene bugs, pero espero que para la version final se eliminen. http://www.nvu.com
  5. Crimson Editor - He usado por mucho tiempo esta herramienta freeware, me gusta, es rápida y me he acomodado muy bien. http://www.crimsoneditor.com. Existe por ahi otra que es opensource, que se llama SciTE http://www.scintilla.org/SciTE.html
  6. ASP .Net Web Matrix - Mi programa para desarrollar paginas asp.net. Es practico y gratuito. Tiene algunas desventajas, como seria la falta de intellisense. Pero bueno no me costo diez mil pesos. Asi, que no me quejo. http://www.asp.net
  7. Gimp - Para el desarrollo de graficos. Esto es de bitmap. Chafisimo para el vectorial. Y por otra parte odio que no tenga, algo asi como macros. Per bueno, eso lo hago con otra cosa. http://www.gimp.org
  8. IrfanView - Es una utileria para ver graficos, y permite editar de manera muy sencilla los graficos. Lo uso para modificar el tamaño de alguna foto. http://www.irfanviewer.com
  9. Sodipodi - Herramienta para graficos vectoriales. El detalle es que general archivos de svg, y no he encontrado algo que lo convierta a illustrator o freehand, pero funciona muy bien. http://www.sodipodi.com
  10. Open Office 2 - Olvidense de Office, es muy caro, asi de plano. Es muy caro. Y lo peor es que cuesta mas en México que en EEUU... http://www.openoffice.org
  11. Thunderbird - Openoffice no cuenta con un lector de email, tipo outlook. Y aqui es donde entra Thunderbird, el cliente de email de Mozilla. http://www.mozilla.org
  12. PDFCreator - Herramienta que viene a sustituir Adobe Acrobat para generar archivos PDF. http://sourceforge.net/projects/pdfcreator/

Por ahora eso es todo. Recomiendo usar www.sf.net y www.tucows.com

Listo!

Paint .Net 2.1

Paint .Net es un programa sencillo para el diseño, pero me ha sorprendido que permite manejo de capas. Se promociona como el sustituto de Paint que viene incluido en Windows XP. Esta apoyado en parte por Microsoft, pero el desarrollo es open source y esta siendo desarrollado en la universidad de washington: http://www.eecs.wsu.edu/paint.net/
Muy, pero muy recomendable. Esta en version release 2.1.
Si continuan con el desarrollo, es posible que se convierta en una aplicacion tipo Gimp (www.gimp.org).
Listo!

Visual Studio Web Express Edition

He estado trabajando con ASP .net 1.1 queria esperar a que saliera la versión 2.0 pero la verdad es que ya tenia que migrar toda la intranet en la oficina, asi que con todo y mi pesar empece con la version 1.1. Pero, pero recomiendo obtener la version 2.0 beta 2. Se puede bajar de www.asp.net es un enlace directo a Microsoft.
El costo de esta aplicación a diferencia de Web Matrix que es totalmente gratuito, será de 50 dolarucos. No me parece mal y en cuanto este la versión final lo comprare.
¿Para cuando estara la version 2.0? pues no existe fecha o por lo menos yo no la tengo. Espero sea pronto para empezar a utilizarla.
El primer proyecto con .Net2 sera MedSid.
Listo!

Inicio del Blog

Empiezo el mes con un blog. Veremos como va el asunto.

Pequeña introducción de mi persona, mi nombre es Víctor García. Tengo trabajando en el area de sistemas entre 9 y 10 años.

El fin del blog, es llevar una bitacora de aquellas cosas que voy resolviendo en el trabajo.
Que pueden incluir codigo, anotacion, soluciones, tips, etc.

Si a alguien le sirven, perfecto.

Tal vez cooperen con dar click a los Google - Adsense.

Bueno por ahora es todo.

Listo!