0% encontró este documento útil (0 votos)
116 vistas

Manual Visual C#

El documento proporciona instrucciones para crear reportes en Crystal Reports, incluyendo pasos para agregar un nuevo reporte, seleccionar la base de datos y tablas, agregar el control CrystalReportViewer al formulario, y establecer la conexión a la base de datos en el código. También cubre temas como cargar datos a controles como ComboBox y grillas, y el uso de cursores para indicar carga.

Cargado por

Carlos Almanza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
116 vistas

Manual Visual C#

El documento proporciona instrucciones para crear reportes en Crystal Reports, incluyendo pasos para agregar un nuevo reporte, seleccionar la base de datos y tablas, agregar el control CrystalReportViewer al formulario, y establecer la conexión a la base de datos en el código. También cubre temas como cargar datos a controles como ComboBox y grillas, y el uso de cursores para indicar carga.

Cargado por

Carlos Almanza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

Pasos para crear un reporte

1. Proyecto, Agregar nuevo elemento.


2. Reporting, Crystal Report

3. Seleccionar La base de datos y la tabla o consulta que desea hacer el reporte

4. Agregar un nuevo formulario


5. De la barra de herramientas agregar CrystalReportViewer
6. Elegir el reporte que se desea anexar al formulario

Clase Reporte
En Proyecto, Agregar Clase

Usar los siguientes espacios de nombres


using System.Data;
using System.Data.SqlClient;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Windows.Forms;

Seleccionar un nombre a la clase, luego el código siguiente


class Clase_crystal
{
public void set_conexion(ReportDocument Reporte)
{
ConnectionInfo MiConexion = new ConnectionInfo();
Tables MisTablas = Reporte.Database.Tables;
//nombre de servidor
C_SQL_SERVER ObjSQL = new C_SQL_SERVER();
string ServidorName = ObjSQL.cadenadeconexion;
ServidorName = ServidorName.Replace("Data Source=", "");
ServidorName = ServidorName.Replace(";Initial
Catalog=PRACTICA;Persist Security Info=True;User ID=Servidor;Password=123", "");
MiConexion.ServerName = ServidorName;

//nombre de base de datos...


MiConexion.DatabaseName = "PRACTICA";
//nombre de usuario
MiConexion.UserID = "Servidor";
//contraseña
MiConexion.Password = "123";
//recorremos las tablas...
foreach (Table Tabla in MisTablas)
{
TableLogOnInfo myTableLogonInfo = Tabla.LogOnInfo;
myTableLogonInfo.ConnectionInfo = MiConexion;
Tabla.ApplyLogOnInfo(myTableLogonInfo);
}
//ObjSQL = null;
MiConexion = null;
}
}

Es para establecer la conexión y no pregunte cada vez por su conexión.

El código para generar el reporte:


Reporte_ejercicio1 reporte = new Reporte_ejercicio1();
Clase_crystal CLASE_C = new Clase_crystal();
CLASE_C.set_conexion(reporte.CrystalReport11);
this.Hide();
reporte.ShowDialog();
Cursor

para que el cursos aparezca ocupado mientras se realiza una operación se debe
especificar el sig, código.

Cursor = Cursors.WaitCursor;
f_fin = string.Format("{0:d}", dateTimePicker2.Value);
dateTimePicker2.Visible = false;
dtresultado = mostrar.QSP_Query_fecha("EJERCICIO3.1",
DateTime.Parse(f_inicio), DateTime.Parse(f_fin));
dataGridView1.DataSource = dtresultado;
dataGridView1.Refresh();
Cursor = Cursors.Default;

Programando el CrystalReport.

Si se desea poner un condicional en algún campo de la tabla

1. En la opción Campo de fórmula, clip derecho nuevo y poner un nombre del campo a
condicionar

2. Seleccionar el campo que se desea dar formato


3. Una vez hecho la condición, se debe arrastrar el campo condicionado hacia el reporte

El campo que estaba antes de él, se oculta dando clip derecho sobre el campo, Dar formato al
objeto, suprimir
Cargar datos de una tabla a un ComboBox
dtresultado = mostrar.QSP_Query_conection("CLIENTE");
cb_combo.DataSource = dtresultado;
cb_combo.DisplayMember = "NOMBRES";
cb_combo.ValueMember = "ID";

Donde DisplayMember tiene el campo que será visible al cargar el formulario


y ValueMember representa un dato interno que almacenará para un uso posterior

Cargar datos de una tabla a una Grilla


dtdetalle = mostrar.QSP_Query_maestro("DETALLE_NOMBRE_CLIENTE",
int.Parse(txt_codigo.Text), "");

dataGridView1.DataSource = dtdetalle;

clase C_sql
class C_SQL_SERVER
{
public string cadenadeconexion = "Data Source=BEATRIZ_PC;Initial
Catalog=PRACTICA;Persist Security Info=True;User ID=Servidor;Password=123";
private DataTable dtResultado;
private SqlConnection Conexion;
private SqlCommand ObjCommand;
private SqlDataAdapter Adaptador;
public string AbrirConexion()
{
try
{
Conexion = new SqlConnection(cadenadeconexion);
Conexion.Open();
return "";
}
catch (Exception)
{
return "No se puede conectar a la Base de Datos...";
}

Otras consultas en la clase C_sql


public DataTable QSP_Query_conection(string Tipo)
{
//objeto a retornar
dtResultado = new DataTable();
//objeto de conexion...
using (Conexion = new SqlConnection(cadenadeconexion))
{
//abrimos la conexion...
Conexion.Open();
//creamos el ojbeto command de ejecucion
ObjCommand = Conexion.CreateCommand();
//le pasamos el nombre del procedimiento almacenado... y su tipo
ObjCommand.CommandText = "QSP_conection";
ObjCommand.CommandType = CommandType.StoredProcedure;
//le pasamos los parametros...
ObjCommand.Parameters.Add("@Tipo", SqlDbType.VarChar).Value =
Tipo;

//declaramos un data adapter a partir del sqlcommand para


almacenar los datos...
Adaptador = new SqlDataAdapter(ObjCommand);
Adaptador.Fill(dtResultado);
}
//retornamos el resultado
return dtResultado;
}

public DataTable QSP_Query_fecha(string Tipo, DateTime f_inicio, DateTime f_fin)


{
//objeto a retornar
dtResultado = new DataTable();
//objeto de conexion...
using (Conexion = new SqlConnection(cadenadeconexion))
{
//abrimos la conexion...
Conexion.Open();
//creamos el ojbeto command de ejecucion
ObjCommand = Conexion.CreateCommand();
//le pasamos el nombre del procedimiento almacenado... y su tipo
ObjCommand.CommandText = "QSP_resumen";
ObjCommand.CommandType = CommandType.StoredProcedure;
//le pasamos los parametros...
ObjCommand.Parameters.Add("@Tipo", SqlDbType.VarChar).Value =
Tipo;
ObjCommand.Parameters.Add("@f_inicio", SqlDbType.Date).Value =
f_inicio;
ObjCommand.Parameters.Add("@f_fin", SqlDbType.Date).Value =
f_fin;

//declaramos un data adapter a partir del sqlcommand para


almacenar los datos...
Adaptador = new SqlDataAdapter(ObjCommand);
Adaptador.Fill(dtResultado);
}
//retornamos el resultado
return dtResultado;
}

Cargar grilla del DevExpress


gc_control.Visible = true;
gc_control.DataSource=null;
dtdinero = mostrar.QSP_Query("HISTORICO");
gc_control.DataSource = dtdinero;
gv_control.Columns[1].SummaryItem.SummaryType =
DevExpress.Data.SummaryItemType.Sum;
gv_control.Columns[0].SummaryItem.SummaryType =
DevExpress.Data.SummaryItemType.Count;
CLONAR FORMULARIO
https://www.youtube.com/watch?v=1WvDgldo20s

Mostrar Registros de una tabla y el botón siguiente

private void Frm_clientes_Load(object sender, EventArgs e)


{
dtresultado = mostrar.QSP_Query("SELECCIONAR");
txt_id.Text = dtresultado.Rows[i]["id"].ToString();
txt_nombre.Text = dtresultado.Rows[i]["nombre"].ToString();
txt_direccion.Text = dtresultado.Rows[i]["direccion"].ToString();
txt_telefono.Text = dtresultado.Rows[i]["telefono"].ToString();
Total = dtresultado.Rows.Count;
}

private void Bt_siguiente_Click(object sender, EventArgs e)


{
i++;
if (i <= Total - 1)
{
txt_id.Text = dtresultado.Rows[i]["id"].ToString();
txt_nombre.Text = dtresultado.Rows[i]["nombre"].ToString();
txt_direccion.Text = dtresultado.Rows[i]["direccion"].ToString();
txt_telefono.Text = dtresultado.Rows[i]["telefono"].ToString();
}
}
Envío de correos desde C#
private void Bt_enviar_correo_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
System.Net.Mail.MailMessage mssg = new System.Net.Mail.MailMessage();
mssg.To.Add("[email protected]");
mssg.Subject = "Primer mensaje desde C#";
mssg.SubjectEncoding = System.Text.Encoding.UTF8;
//mssg.Bcc.Add("[email protected]");

mssg.Body = "Se busca, vivo o muerto";

// Agregando un adjunto***********
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("D:\\Respaldo\\
RespaldoBEATRIZPC\\ALMANZA\\Imagen_1.jpg");
mssg.Attachments.Add(attachment);
//********************************

mssg.BodyEncoding = System.Text.Encoding.UTF8;
mssg.IsBodyHtml = true;
mssg.From = new
System.Net.Mail.MailAddress("[email protected]");

System.Net.Mail.SmtpClient cliente = new


System.Net.Mail.SmtpClient();
//Configurar Credencial de envío

cliente.Credentials = new
System.Net.NetworkCredential("[email protected]", "sayd.jose");
cliente.Port = 587;
cliente.EnableSsl = true;
cliente.Host = "smtp.gmail.com";
try
{
cliente.Send(mssg);
}
catch (Exception)
{
MessageBox.Show("error al enviar el mensaje");
}

Cursor.Current = Cursors.Default;

Nota: se debe tener una cuenta con poca seguridad para poder enviar los
correos, https://myaccount.google.com/lesssecureapps
Crear Librerías en C#
Para crear una librería hay que hacer los sig:

1. Clip derecho en la solución, Agregar, Nuevo Proyecto.


2. Seleccionar Biblioteca de clases

3. Una vez establecido un nombre se debe escribir el contenido de la DLL


4. Clip derecho a la Dll creada y compilar
5. Del proyecto donde queremos ver la Dll nos vamos a referencia y Agregar
referencia, se selecciona la Dll que creamos
6. Se llama a la Dll para su uso.
namespace correos_gmail
{
public class Class1
{
public static void Correo(string origen, string destino, string
titulo, string copia, string body, string attach)
{

System.Net.Mail.MailMessage mssg = new


System.Net.Mail.MailMessage();
mssg.To.Add(destino);
mssg.Subject = titulo;
mssg.SubjectEncoding = System.Text.Encoding.UTF8;
//mssg.Bcc.Add("[email protected]");

mssg.Body = body;

if (attach != "")
{// Agregando un adjunto***********
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(attach);
mssg.Attachments.Add(attachment);
}
//********************************

mssg.BodyEncoding = System.Text.Encoding.UTF8;
mssg.IsBodyHtml = true;
mssg.From = new System.Net.Mail.MailAddress(origen);

System.Net.Mail.SmtpClient cliente = new


System.Net.Mail.SmtpClient();
//Configurar Credencial de envío

cliente.Credentials = new System.Net.NetworkCredential(origen,


"sayd.jose");
cliente.Port = 587;
cliente.EnableSsl = true;
cliente.Host = "smtp.gmail.com";
try
{
cliente.Send(mssg);
}
catch (Exception)
{
Console.WriteLine("Error al enviar el correo");

}
}

Para llamar a la Dll, es de la siguiente manera


Nombre_dll.Class1.nombre_f(x)(parámetros)

Ejemplo

correos_gmail.Class1.Correo("[email protected]",
"[email protected]", "Probando de nuevo", "", "esta es una segunda
prueba", "");

Para llamar a la Dll de otro proyecto


Clip derecho en referencia,Agregar referencia, Examinar y buscar la ruta donde se
creó la DLL
Video: https://www.youtube.com/watch?v=I-rUqVu0eFA

Guardar Imágenes o archivos varios en un textbox

Se necesita insertar del cuadro de herramientas un openFileDialog,


Y el código del botón es el siguiente:
private void SimpleButton1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
txt_ruta.Text = openFileDialog1.FileName;

}
}
Editar el GridView de DevExpress

Esto es para que la grilla sea solo lectura.

Para que aparezca un filtro en la grilla


Color al GridControl

Formato de Label para hacerlo un botón de comando


Teniendo un TexBox, para que al pasar sobre él aparezca la mano del mouse, la
propiedad es

Password en Cajas de texto


Establecer propiedad PasswordChar con *
Validando la conexión antes de entrar al login
static class Program
{
/// <summary>
/// Punto de entrada principal para la aplicación.
/// </summary>
[STAThread]
static void Main()
{
string Msj;
//validamos la conexion...
C_sql ObjSQL = new C_sql();
Msj = ObjSQL.AbrirConexion();
if (Msj != "")
{
MessageBox.Show(Msj, "Error...", MessageBoxButtons.OK,
MessageBoxIcon.Error);
//abrimos para establecer el servidor...
frm_baseD Establecer = new frm_baseD();
Establecer.ShowDialog();
//verificamos si se pudo...sino... abortamos
ObjSQL = new C_sql();
Msj = ObjSQL.AbrirConexion();
if (Msj != "")
{
MessageBox.Show(Msj, "Error...", MessageBoxButtons.OK,
MessageBoxIcon.Error);
Application.Exit();
return;
}
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frm_main());
}
}
La clase C_sql utilizando el registro para almacenar la
ruta de conexión
class C_sql
{
private string cadenadeconexion = "Data Source=" +
(string)Registry.GetValue("HKEY_CURRENT_USER", "SOFTWARE\\PLANILLA",
"DESCONOCIDO") + ";Initial Catalog=PLANILLA_LEONELA;Persist Security
Info=True;User ID=Servidor;Password=123";
//public string cadenadeconexion = "Data Source=BEATRIZ_PC;Initial
Catalog=PLANILLA_LEONELA;Persist Security Info=True;User
ID=Servidor;Password=123";
private DataTable dtResultado;
private SqlConnection Conexion;
private SqlCommand ObjCommand;
private SqlDataAdapter Adaptador;
public string AbrirConexion()
{
try
{
Conexion = new SqlConnection(cadenadeconexion);
Conexion.Open();
return "";
}
catch (Exception)
{
return "No se puede conectar a la Base de Datos...";
}

}
CREAR UN PROYECTO EN TRES CAPAS
Lo primero que se debe hacer es crear una solución vacía, en el cuadro de búsqueda
escribir “otros”, seleccionar solución en blanco.

Una vez elegida la solución dentro del proyecto se debe seleccionar las capas de cada
solución, para eso se agregan 2 bibliotecas .NetFreanword.
Escribimos biblioteca de clases:

Una vez creada la capa de datos y negocio, toca crear un nuevo proyecto para la capa
de presentación.
Luego de la creación de los elementos del proyecto hay que referenciar cada proyecto,
es decir unir la capa de negocio con la de datos y la de presentación con la de negocio
CREAR PROYECYO WEB CON
MVC
Lo primero es seleccionar un proyecto web

Una vez seleccionado, dar clic a siguiente, asignar un nombre al proyecto y crear

Una vez al crear, elegir el tipo de aplicación mvc. Dejar todo por defecto.

CREAR EL MAPEO(El mapeo de datos es el proceso por el que se establecen


correspondencias entre campos de una base de datos a otra. Es el primer paso para
facilitar la migración, integración y otras tareas de gestión de datos.)
COMENCEMOS:
NOS UBICAMOS EN LA CARPETA MODELS, CLIP DERECHO, AGREGAR, NUEVO
ELEMENTO, ELEGIMOS LA OPCION DATOS.

Elegir ADO.NET Entity Data Model, elegir nombre, como en mi caso es una tabla que se
llama persona, le especifico como nombre Modelpersona.
Segundo paso
Tercer paso:
Establecer la conexión con el servidor. (Basta con poner un punto (.) para especificar la
ruta local)

Cuarto paso:
Elegir la base de datos

Esta el punto
Un punto importante es saber con qué nombre se crea el modelado de datos ya que al
crear las vistas se usa ese nombre.

Listo, se ha mapeado la BdeDatos

Al compilar queda de la siguiente manera


El siguiente paso es crear un nuevo elemento de menú el cual posee hasta el momento
(Inicio, A cerca de, Contacto)

También podría gustarte