Thursday, August 4, 2011

No visualizar Un subreporte / crystal reports

El ERP que estamos desarrollando actualmente en la empresa muestra sus reportes con la herramienta Crystal Reports (sin embargo, ya se tiene pensado empezar con Reporting Services 2008, mucho mejor, no?).

El punto es que el otro día yo necesitaba mostrar un subreporte pero qué pasaba si la consulta que me carga el subreporte tenía cero datos? En ese caso me mostraba el header pero en el body no había nada así que se veía muy feo. Por lo tanto, se tenía que validar para el caso que cuando no hayan datos, que ni se mande el subreporte.

A continuación les dejo en imágenes cómo hacerlo.

Primero, fíjense que mi subreporte (la parte marcada con un óvalo) esta en una sección, en la Section4.


En el código, es necesario saber la Section ya que con eso es que procedemos a ocultarlo. Lo demás la imagen lo explica sola.

Happy Coding! =)

Thursday, July 28, 2011

Loading generadores

A veces es necesario colocar en nuestras aplicaciones web un control en el que muestre a nuestro usuario de que una tarea se está procesando. Que el usuario sepa lo que está pasando.


A continuación te paso algunos links de aplicaciones que generan un gif:

Esta es la típica, creo que todos la conocen. No bonita para mi estilo: http://ajaxload.info/

Esta me gusta mucho: http://www.chimply.com
Mis favoritas son estas:




Bonitas pero cuando se las genera como que pierde el estilo inicial: http://www.loadinfo.net/

Otras: http://mentalized.net/activity-indicators/

Tuesday, July 26, 2011

Distinct en datatable

.NET VB.NET

Cuando le hacemos un select o un compute a un datatable, no tenemos la opción de hacerle un "distintc". Pero existe otra manera, utilizando Linq.

A continuación les dejo un ejemplo sencillo. Le hace un distinct a una columna y el resultado se lo inserta a un List Of.

Dim lstMonedas As New List(Of Integer)

 Dim monedas = From prod In ds.Tables(0) _
                       Select prod.Item("cfMoneNcod") _
                       Distinct


 For Each m In monedas
     lstMonedas.Add(m)
 Next

Monday, June 20, 2011

Truncate Vs delete

Anoche mientras estaba estudiando algo de programación y base de datos vi algo que no estoy acostumbrada a ver: "Truncate table my_table" y me dije... ¿truncate? ¿cuál es la diferencia entre esto y el Delete from my_table?

No me quedé con las dudas y ahora lo sé todo =) jejeje. Aquí les va algo que encontré en la web.

Truncate

Este comando remueve todas las filas de una tabla sin registrar las eliminaciones individuales en el log de transacciones. Prácticamente hace lo mismo que DELETE sin modificar o borrar la estructura de la tabla, sin embargo no se puede utilizar la clausula WHERE. TRUNCATE no permite filtrar por filas, elimina todos los registros de una tabla.

Delete

DELETE también remueve las filas de una tabla, pero registra las eliminaciones individuales en el log de transacciones. Podemos utilizar la clausula WHERE para filtrar las filas que necesitemos eliminar.

Diferencias y Semejanzas

1. TRUNCATE es un comando DDL (Lenguaje de definición de datos) mientras que DELETE es un DML (lenguajde de manipulación de datos)

2. Tanto TRUNCATE como DELETE eliminan los datos, no la estructura.

3. Solo DELETE permite la eliminación condicional de los registros.

4. TRUNCATE es mucho más rápdo que DELETE. (Esto es por el hecho de que TRUNCATE remueve los datos directamente sin hacer una copia dentro del Rollback Tablespace tal como lo hace el DELETE)

5. No se puede hacer un Rollback en TRUNCATE pero en Delete se puede.

6. TRUNCATE resetea el High Water Mark para la tabla y dealoca el espacio mientras que el DELETE no lo hace.

7. TRUNCATE no dispara Triggers asociados a la tabla.

8. DELETE es una operación registrada en el log de transacciones, basada en registrar cada eliminación individual.

9. Solo TRUNCATE reinicia el contador para una tabla que contenga una columna IDENTITY.

10. DELETE de tablas grandes genera una importante cantidad de UNDO y REDO.

11. TRUNCATE invalida cualquier cursor referenciado a la tabla.

Entre otras...

Mi sugerencia es que si tenés que eliminar todos los registros de una tabla for ever y no volver a saber never ever de ellos, deberías usar el TRUNCATE.

Thursday, June 9, 2011

Traductor A lenguaje hacker

Les comparto el programita que hice que traduce tu texto a lenguaje hacker /  L33T Leet 

51 3N713ND35 35745 P4|_48R45 Y4 54835 D3 |_0 QU3 3570Y H48|_4ND0 J3J3J3

El programa está en windows form/vb.net 2008

Tiene por el momento, tres estilos a formatear tu texto.

1. UnO. El QuE CoNvIeRtE A MiNúScUlAs Y MaYúScUlAs CoMo EsTe MiSmO TeXtO.

2. D05. QU3 35 4|_ |_3N6U4J3 H4C|<3R

A = "4"
B = "8"
E = "3"
G = "6"
H = "|-|"
I = "1"
K = "|<"
L = "|_"
M = "|\/|"
N = "|\|"
O = "0"
R = "|2"
S = "5"
T = "7"
U = "|_|"
V = "\/"
W = "\/\/"
Z = "2"

3. Tres. Cifrado + 5. El 5 es parametrizable. Consiste en la palabra que quieres cifrar, cada letra le sumas 5 segun el abecedario. Por ejemplo, mira mi nombre con cifrado + 5. Lizzy = QNEED. El abeceadrio es de USA. No entra la "ch, ll, ñ"






El link directo para la descarga del instalador (msi) es este:

http://www.megaupload.com/?d=3KQYDVSI

Otras sugerencias, me las hacen conocer.