Algunos preguntan ¿en esta vida que es perdurable? Ya que otros tantos aseveran... "que las palabras se las lleva el viento"
"que las promesas son solo palabras" y que "las reglas estan hechas para transgredirse"
Pero entonces, ¿que es duradero en una persona? ¿Que es aquello que se puede prender en un ser humano y permanecer en el a traves del tiempo?
!las emociones! Pequeñas o grandes generadoras de recuerdos y que despiertan y agitan las fibras mas sensibles de una persona. Eso amigos mios es lo verdaderamente inolvidable, claro esta que las hay buenas y malas por eso esforcemonos en generar en los demas solo gratos sentimientos pues podemos estar seguros que aquello que plantemos ya no se ira...
DevTopia... DotNet, Sql Server con Hierbas varias
Blog dedicado a la recopilación de experiencias en el desarrollo de software con tecnologías DotNet, Sql Server y otras hierbas.
jueves, 13 de febrero de 2014
Efimeras
lunes, 9 de diciembre de 2013
Obtener el nodo de un Xml (Cfdi) con todo y que tenga la nomenclatura ns:elemento, en 2 pataditas con LINQ. [LINQ TO XML]
Que tal pues nada que como parte de mi trabajo me vi en la necesidad de obtener el nodo del complemento TimbreFiscalDigital desde una factura CFDi que como bien sabran es un XML. Pues bien tras intentarlo con XPATH, y demas… siempre obtenia un error de Espacio de Nombres, y es que estos archivos poseen una nomenclatura basada en NameSpace y aun administrandolos no conseguia mi cometido.
Sin embargo he aqui como lo solucione extremadamente facil, claro esta con LINQ.
Espero que les sea de utilidad.
|
1: Dim xdoc = XDocument.Load(pArchivoXmlCfdiGenerado)
2: Dim timbreFiscal = (From item In xdoc.Descendants
3: Where item.Name.LocalName = "TimbreFiscalDigital"
4: Select item).First()
5:
6: pHistoricoTimbreCFDi.FechaTimbrado = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value)
7: pHistoricoTimbreCFDi.UUID = timbreFiscal.Attribute("UUID").Value
8: pHistoricoTimbreCFDi.NoCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value
9: pHistoricoTimbreCFDi.SelloCFD = timbreFiscal.Attribute("selloCFD").Value
10: pHistoricoTimbreCFDi.SelloSAT = timbreFiscal.Attribute("selloSAT").Value
11: pHistoricoTimbreCFDi.Version = timbreFiscal.Attribute("version").Value
12: pHistoricoTimbreCFDi.Esquemas = timbreFiscal.Parent.ToString
jueves, 31 de octubre de 2013
Posteando desde android con soffice
Pues nada, aqui probando la edicion de blogs desde android con Soffice. Que para ser desde un celular me parece sencillo en cuanto al manejo; pero con muy buenas opciones sobre todo en lo que respecta a la inserción de elementos.
La pega que le veo es que solo es posible editar las entradas agregadas desde el dispositivo por lo que olvidate de querer modificar tus demas posts.
En conclusión recomendado en definitiva, pues me parece que de las alternativas es la mejor para mobiles.
miércoles, 30 de octubre de 2013
Como llamar un Constructor Base desde una clase Heredada, en Vb y C#
Escribo esta entrada porque algunos colegas tal vez no estan al tanto de las diferencias que implica el lenguaje al momento de llamar un constructor Base desde la clase que la hereda.
C#
En la Firma del constructor de la clase heredada, especificamos a que constructor base debe llamar y que parametros se enviaran al mismo.
1: public AtmException(object pOrigen,string pMensaje)
2: : base(pMensaje)
3: {
4: Data.Add("ObjectSource", pOrigen);
5: Data.Add("Mensaje", pMensaje);
6: }
7: }
Vb.Net
En este caso utilizaremos el objeto MyBase para llamar al constructor deseado, en la linea inmediata a la firma del Constructor de la clase derivada.
1: Public Class ExceptionNumeroRegistrosExcedido
2: Inherits Exception
3:
4: Sub New(pMensajeExcepcion As String)
5: MyBase.New(pMensajeExcepcion)
6: End Sub
7: End Class
Bien pues como siempre espero que les sea de utilidad.
Happy Coding… KarlozArba
miércoles, 31 de octubre de 2012
Deshabilitar que la tecla ENTER dispare el evento Button.Click
Este caso aunque la solución llegue a ser sencilla en implementación, no me parece que este al alcance de quienes tenemos un conocimiento básico, intermedio de DotNet. En fin, cuando necesitemos que un botón dispare su evento click al pulsar la tecla ENTER cuando esté enfocado, deberemos forzosamente crear nuestro propio botón heredándolo de otro botón claro esta, en mi caso lo he hecho a partir de uno de DevExpress.
Una vez hecho esto, sobrescribir el método ProcessCmdKey tal como muestro más abajo.
Para mi caso muy particular se requería que si se detectara a tecla y de ser ENTER se enviara el foco al siguiente control, lo cual realice mediante un PreviewKeyDown.
Public Class iBotonDx Inherits DevExpress.XtraEditors.SimpleButton Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Return keyData = Keys.Enter OrElse MyBase.ProcessCmdKey(msg, keyData) End Function Private Sub iBotonDx_PreviewKeyDown(sender As System.Object, e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}") End If End Sub
End Class
Bien es todo en este entrada. Como siempre espero sea de utilidad.
Happy Coding… KarlozArba
lunes, 15 de octubre de 2012
La propiedad EditValue de un TextEdit de DevExpress devuelve error en su método GET si no se tiene un valor inicial.
Bueno pues resulta que si no hemos asignado mediante código un valor inicial para la propiedad EditValue en un TextEdit de DevExpress este nos tira un error de referencia nula. Y este error se dispara aun cuando validemos el contenido de la propiedad con IsNothing o String.IsNullOrEmpty.
Bien la solución es bastante sencilla, lo único que debemos hacer es configurar en tiempo de diseño dicha propiedad, estableciendo el tipo de dato que contendrá y el valor que almacenara cuando nosotros no establezcamos nada de forma predeterminada.
Espero que les sea de utilidad.
Happy Coding…. KarlozArba
viernes, 5 de octubre de 2012
Binding de los valores de una ENUMERATION en el DataSource de un Control.
El día de hoy, muy brevemente comentare que cuando nos sea necesario cargar los valores de una enumeración en el DataSource de un control [ej. Combo, List, etc] quizá nuestra primera intensión sea recorrer la enumeración sin embargo la solución que les recomiendo es la siguiente:
cbEstatus.Properties.DataSource = System.Enum.GetValues(GetType(Dominio.Enumeraciones.EnEstatus))
Con lo cual cargaran inmediatamente los valores, ahorrándonos un poco de trabajo y alguno que otra contratiempo.
Bien como dije la entrada de hoy ha pecado de breve, pero como siempre espero que sea de utilidad para la comunidad.
Happy Coding... Karloz Arba