private void BtnEnHoja_Click(object sender, EventArgs e) { //generar los vales y despues impromir pero en hoja try { dtVales2.Rows.Clear(); Cursor = Cursors.WaitCursor; if (ds.Tables[0].Rows.Count != 0 & TxtDesde.Text != "") { Encrypt objCrypto = new Encrypt(Encrypt.CryptoProvider.Rijndael); objCrypto.Key = AppSettings.Key; objCrypto.IV = AppSettings.IV; dtDetalle = new DataTable(); dtDetalle = new CL_Vales().getdetalleVales(NumComprobrante, Convert.ToInt32(CboTipoComprobante.SelectedValue)); string cadena; if (dtDetalle.Rows.Count == 0) { int UltimoNumVale = new CL_Vales().getUltimoVale(); foreach (DataRow fila in ds.Tables[1].Rows) { int cant = Convert.ToInt32(fila["Cantidad"]); for (int x = 0; x < cant; x++) { UltimoNumVale++; DataRow row = dtVales2.NewRow(); row["ID"] = x + 1; row["Comprobante"] = NumComprobrante; row["Cliente"] = lblCliente.Text; row["Codigo"] = fila["ProductoID"].ToString(); row["Producto"] = fila["NomProducto"].ToString().Remove(fila["NomProducto"].ToString().IndexOf("X")); row["Peso"] = string.Concat(string.Format("{0:0.##}", fila["Unidades"]), " KG"); row["NumVale"] = UltimoNumVale; cadena = objCrypto.CifrarCadena(UltimoNumVale.ToString()); row["CodBar"] = string.Concat("*", UltimoNumVale.ToString().PadLeft(4, '/'), cadena.Substring(0, 7), "*"); row["Numeros"] = UltimoNumVale.ToString().PadLeft(4, '0'); row["Direccion"] = direccion; row["Foto"] = ImageToByteArray((Image)Halley.Presentacion.Properties.Resources.ResourceManager.GetObject(fila["Imagen"].ToString() + "2")); dtVales2.Rows.Add(row); } } new CL_Vales().Insert(AppSettings.UserID, lblSedeID.Text, dtVales2, Convert.ToInt32(CboTipoComprobante.SelectedValue)); } else { int X = 1; foreach (DataRow fila in dtDetalle.Rows) { DataRow row = dtVales2.NewRow(); row["ID"] = X; row["Comprobante"] = NumComprobrante; row["Cliente"] = fila["RazonSocial"].ToString(); row["Producto"] = fila["NomProducto"].ToString().Remove(fila["NomProducto"].ToString().IndexOf("X")); row["Peso"] = string.Concat(string.Format("{0:0.##}", fila["Unidades"]), " KG"); row["NumVale"] = fila["NumVale"]; cadena = objCrypto.CifrarCadena(fila["NumVale"].ToString()); row["CodBar"] = string.Concat("*", fila["NumVale"].ToString().PadLeft(4, '/'), cadena.Substring(0, 7), "*"); row["Numeros"] = fila["NumVale"].ToString().PadLeft(4, '0'); row["Direccion"] = direccion; row["Foto"] = ImageToByteArray((Image)Halley.Presentacion.Properties.Resources.ResourceManager.GetObject(fila["Imagen"].ToString() + "2")); dtVales2.Rows.Add(row); ++X; } } printDialog1.ShowDialog(); if (printDialog1.PrinterSettings.PrinterName != "") { Pd.Print(); } } else { Cursor = Cursors.Default; MessageBox.Show("No existen vales o no se ha ingresado el inicio del vale", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } Cursor = Cursors.Default; } catch (Exception ex) { Cursor = Cursors.Default; MessageBox.Show(ex.Message, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); } }