C# Copiar, Importar, Clonar objetos (.Net)
29/01/2011C# Outlook Integration I (.Net)
08/02/2011La siguiente práctica, genera etiquetas de envío en función del número de bultos que se le informe.
Premisas Iniciales:
- Se solicita que se imprima en la etiqueta el número de bulto y los bultos totales.
- Al conectarnos a la base de datos, obtenemos los datos del documento en cuestión que imprimiremos mediante un Crystal Report.
- Al pulsar el botón de imprimir, la etiqueta se debe imprimir directamente.
Explicaciones:
- Para definir el formato de etiqueta/documento, hemos de definir un Dataset previo, en donde añadiremos dos columnas adicionales (Número de bulto y Total Bultos), que rellenaremos en tiempo de ejecución.
- Crearemos un DataTable, que rellenaremos en función del número de bultos y utilizando los métodos Clone e Import, para crear una Tabla con la misma estructura que la que recibe los datos, y que posteriormente añadiremos las columnas referentes a los bultos.
C#:
-
span style="color: #808080;">"") // Verifico que ha asignado un número de documento
-
//Cargo el Dataset con el número de documento (todavía no añado las columnas de Bultos y Número de Bultos
-
"select codcli, nomcli, fecha, numdoc, totdoc from cabefacv where numdoc="//Utilizo un método que carga los datos de la base de datos "obtenerdatosScript" para rellenar el dataset
-
Tabla = miConector.obtenerdatosScript(Script).Tables[0];
-
-
//Mediante el método Clone, copio la estructura del objeto
-
//no utilizo el igual, porque si no, hará lo mismo para los dos objetos
-
//Convierto en Entero el TextBox con el número de Bultos
-
//añado o copio una fila por cada bulto que hayamos indicado
-
//Añado las dos nuevas columnas que he definido en el Report de etiquetas
-
TablaBultos.Columns.Add("NUMBULTO""System.Int16"));
-
TablaBultos.Columns.Add("TOTBULTOS""System.Int16"//Informo a las nuevas columnas del número de bultos totales y el número total de bultos
-
"NUMBULTO"] = i;
-
TablaBultos.Rows[i-1]["TOTBULTOS"] = NumBultos;
-
i++;
-
}
-
//Genero el informe
-
"Debe informar un número de documento"