15 de Diciembre de 2017

programación

Continuando con mi "migración" de Visual Studio 2008 a Visual Studio 2010 he encontrado otro pequeño fallo que he podido solucionar más o menos rápido.
Lo comento aquí por si alguien se encuentra con la misma situación y le empiezan a correr sudores frios por la frente mientras está con cara de WTF intentando entender que demonios pasa ;)

El "tema" es que en determinadas circunstancias Crystal Reports se pasa por el "forro" la fórmula de selección que le hemos indicado. En lugar de generar un informe con aquella fórmula de selección, lo que nos muestra Crystal Reports son todos los registros de la tabla/vista a la cual está ligada el informe.

Esto obviamente es un "pequeño gran problema" que ahora os mostraré como solucionar.

Cuando añadimos controles a un formulario, Visual Studio añade código automáticamente en un archivo llamado xxxx.Designer.vb (xxxx.Designer.cs en el caso de C#)

Pues bien, en caso de que tengamos este problema con el RecordSelectionFormula del Crystal Reports lo que deberemos hacer es lo siguiente:

En el formulario donde tengamos el control del CrystalReportViewer abriremos el archivo "Designer":

Hace relativamente poco que estoy usando Visual Studio 2010.
Parafrasenado a no sé quien:

Visual Studio 2008 ha muerto
Viva Visual Studio 2008

:)

Como sabréis (y sino para eso esta tito Olly) en el VS2010 no se incluye el Crystal Reports.
Decir para los "no iniciados" :), que Crystal Reports es posiblemente una de las herramientas de reporting más utilizadas. ¿Reporting? ¿Ein?.
Si, lo que lees. Crystal Reports permite generar "informes" con multitud de formatos, grupos, esquemas, etc. Y lo dicho, se utiliza muchísimo en el ámbito profesional.

Pues bien, cuando por primera vez queremos añadir un informe (*.rpt) a nuestra solución, el IDE de Visual Studio nos redirige a la página de Crystal Reports (ahora perteneciente a SAP) para descargar el paquete de instalación, runtimes, y merged modules.

Bien, una vez finalizada la instalación ("sólo" son 250 megas de nada) ya podremos añadir reports a nuestros proyectos.

Ete aquí donde empiezan los "problemas".

Por defecto, una solución en VS2010 se inicia para ser compilada con el .NET Framework 4
Esto no es "del todo cierto" como veremos más adelante. En realidad se inicia para ser compilada con el .NET Framework 4 Client Profile

Abr
4

Seleccion del primer circuito publicado

Categorías: ,

Buenos dias. Les dejo esta encuesta para que ustedes decidan que es lo primero que quieren ver publicado en este Blog.

Los 3 circuitos son sencillos y entendibles, con cada uno es necesaria un poco de programacion que vendra explicada a detalle y con el mayor mimo posible para que puedan llevar a cabo su armado.

Tambien vendra explicado los programas necesarios para poder programar cada uno de los circuitos integrados y demas.

1.- Termometro Digital. Un termometro digital que puede medir de 0 a 99°C, mostrando la lectura en dos display de 7 segmentos.

2.- Comandos de inicializacion para una pantalla LCD. Se explican los comandos necesarios para empezar a mostrar texto, con un recorrimiento o estatico, en una pantalla LCD.

3.- Control de servomotores. Basicamente el control de servomotores se lleva a cabo con una señal de frecuencia modulada por ancho de pulsos (PWM), es facil de llevar a cabo, y bastante util para proyectos de robotica, como brazos roboticos, direccion de un auto a control remoto, y tantas otras cosas como su imaginacion les permita.

Sin mas por el momento, les dejo la encuesta, se cierra el lunes de la proxima semana. 

Se despide de ustedes, Bob.

Termometro Digital
40% (2 votos)
Control de Servomotores
40% (2 votos)
Comandos de inicializacion para una pantalla LCD
20% (1 voto)
Total votantes: 5

Interesante vídeo:

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

(Ver a FullScreen y en 720p please)

 

¿Aún crees que nadie puede "adivinar" tus passwords, SQLs, números de serie, etc.? :)

Tags: Eazfuscator, unpack eazfuscator strings, reverse eazfuscator strings, decode eazfuscator strings, hack eazfuscator applications 

Saludos.
mov eax,ollydbg; Int 13h   

Mar
16

.NET Tutorial 44. Serializando que es gerundio

Categorías: 

En muchas ocasiones tenemos la necesidad de guardar una serie de parámetros que utilizan internamente nuestros programas. Dejando a parte el namespace My.Settings antiguamente (bueno, actualemente también) se usaban los ficheros INI

Un fichero INI tiene el siguiente aspecto:

[NombreSeccion1]
Clave1=Valor
Clave2=Valor
Clave3=Valor

[NombreSeccion2]
Clave1=Valor
Clave2=Valor
Clave3=Valor
...

Estos ficheros se dividen en secciones,cuyo nombre está siempre entre corchetes [   ]
Dentro de cada sección tendremos los distintos parámetros (Claves) y cada clave tiene un determinado valor (Valor)
Nota: Si una línea de un fichero INI comienza por punto y coma ( ; ) se considera que es un comentario y no se tiene en cuenta

Mar
7

VB.NET ~ [POO] 4 - Herencia

Categorías: , ,

Muy buenas a todos. Hoy vamos a hablar de la Herencia, una característica fundamental de la POO.


 

Cuando nosotros creamos una nueva clase, esta ha de tener una superclase o clase base, que es una clase de la que la nuestra deriva. En VB.NET, la superclase es System.Object: todas las clases que nosotros creamos, derivan automaticamente de la clase Object.


Pues bien, cuando una clase deriva de otra, se dice que es hija, y por tanto, puede haber herencia si así se desea. La herencia, es que la clase derivada, tenga las mismas propiedades y métodos que la clase base de la que procede, excepto los constructores.

Mar
3

Crear códigos de barras con iTextSharp desde .NET

Categorías: 

Debido al éxito de la anterior entrega (Crear y leer códigos QR desde VB.NET) he decidido publicar este tutorial antes de lo previsto.

Hoy os mostraré como generar los siguientes códigos de barras gracias a la librería iTextSharp y unas pequeñas modificaciones:

El código generado se guarda en un objeto de tipo Bitmap y podrás hacer con él lo que quieras: guardarlo, procesarlo, imprimirlo, usarlo en Crystal Reports,... lo que quieras.

iTextSharp es un port libre y gratuito al .NET Framework de la librería iText para Java.

Mar
2

Verificar si un Windows es 'Genuine' desde .NET

Categorías: 

Ocurre que a menudo un programa que en un PC funciona perfectamente, en otro PC "no funciona"

A veces esto ocurre porque se está ejecutando nuestro programa en un Windows "de dudosa procedencia". Es muy común que estos Windows, sobre todo Windows XP ("desatendidos" los llaman) no instalen ciertos componentes, ya que según los "mega-ultra-fashion-uber-pr0s" no hacen falta, consumen recursos, o vaya Vd. a saber que chorradas más.

El tema está en que en muchos de estos Windows desatendidos hay "problemas" para instalar correctamente el .NET Framework. Obviamente si hay "problemas" para instalar el .NET Framework y programamos en VB.NET o C# que utilizan dicho framework, no hay que ser un licenciado en el M.I.T para sumar 1+1 y darse cuenta de por donde pueden venir los problemas.

No hace mucho tiempo tuve una "movida" con un cliente al que le vendieron un programa que yo había desarrollado y supervisado. Era el típico cliente que rezabas para que todo fuese como la seda, ya que llamarle borde, chulo y prepotente era quedarse corto.
La cuestión es que instaló el programa en uno de esos Windows "desatendidos" y que según él "funcionaba muy bien". El tema estaba en que mi programa se colgaba, iba lento, producía pantallazos azules (BSoD), reinicios aleatorios y no sé que mas lindezas.

Mar
1

VB.NET ~ [POO] 3 - Constructores

Categorías: , , ,

Muy buenas a todos. Hoy vamos a hablar de constructores. Como parecen por su nombre, son bastante importantes Wink.


Cuando nosotros creamos una nueva clase, existe el denominado constructor por omisión. El constructor es un método llamado "New", que lo que hace es inicializar los parámetros que tiene la clase.

 

Como habréis notado, como lo que hace es inicializar esos parámetros, el constructor se invocará cuando creemos un nuevo objeto de dicha clase. Si recordáis del tutorial 1:

 

Dim objeto as Clases_Tutorial_POO_1 = new Clases_Tutorial_POO_1()

Nosotros no creamos el método "New", por lo que el que se usa es el constructor por omisión, que no es necesario declararlo. Pero, ¿Por qué es esto necesario?

Mar
1

Primer contacto con el modo 3D de NDS

Hola!
Con motivo de la creacion del 3er minijuego de Mind Maze, hemos hempezado a trastear con el motor 3D de la Nintendo DS, dado que el tipo de minijuego que es, ganara mucho si podemos realizarlo en 3D.
Aqui os dejo un video de los que hemos logrado este fin de semana:
 
Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

 
Mas informacion en nuestra web.
 
Saludos!