|
Mostrar Mensajes
|
Páginas: 1 2 [3] 4 5 6
|
21
|
Programación / .NET (C#, VB.NET, ASP) / Re: agregar columnas al datagrid en tiempo de ejecucion
|
en: 1 Julio 2015, 16:26 pm
|
lo pude solucionar....agrego a datagrid2 tantas filas como devuelva la consulta al datagrid1.....ahora como puedo hacer para que las filas del datagrid2 se puedan modificar? muchas gracias private void txtNumero_KeyDown_1(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (txtNumero.Text == "") { DialogResult ds = MessageBox.Show("DEBE INGRESAR UN NRO DE ORDEN", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtNumero.Text != "") { conexion = new SqlConnection ("Data Source=GONZALOCABRERA\\SQLEXPRESS;Initial Catalog=ProyectoSalud;Integrated Security=True"); conexion.Open(); SqlCommand consulta = new SqlCommand ("select count (*) from DetalleOrdenCompra where nro_orden=@nro", conexion ); consulta.Parameters.AddWithValue("@nro", Convert.ToInt32(txtNumero.Text)); int count = Convert.ToInt32(consulta.ExecuteScalar()); if (count > 0) { DialogResult result = MessageBox.Show(this, "DESEA REGISTRAR LOS DATOS?", "ORDEN DE COMPRA ENCONTRADA", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); //MessageBox.Show(consulta2.ToString()); this.Text = result.ToString(); if (result == DialogResult.OK) { //CARGAR LOS DATAGRIDVIEW SqlCommand consulta2 = new SqlCommand ("SELECT dbo.medicamentos1.nombre_medicamento, dbo.medicamentos1.jerarquia, dbo.DetalleOrdenCompra.cantidad FROM dbo.DetalleOrdenCompra INNER JOIN dbo.medicamentos1 ON dbo.DetalleOrdenCompra.codigoMedicamento = dbo.medicamentos1.id_medicamento WHERE nro_orden=@nro ", conexion ); consulta2.Parameters.AddWithValue("@nro", Convert.ToInt32(txtNumero.Text)); SqlDataAdapter da = new SqlDataAdapter (consulta2 ); DataTable dt = new DataTable (); da.Fill(dt); dgv1.DataSource = dt; int rows = dt.Rows.Count; dgv1.Columns[0].HeaderText = "MEDICAMENTO"; dgv1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].Width = 211; dgv1.Columns[1].HeaderText = "JERARQUIA"; dgv1.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].Width = 180; dgv1.Columns[2].HeaderText = "CANTIDAD"; dgv1.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].Width = 80; for (int i = 1; i <= rows; i++) { DataGridViewRow row = (DataGridViewRow)dgv2.RowTemplate.Clone(); dgv2.Rows.Add(row); } txtNumero.Enabled = false; } else if (result == DialogResult.Cancel) { txtNumero.Text = ""; } this.Text = result.ToString(); } else { DialogResult ds = MessageBox.Show(this, "LA ORDEN INGRESADA NO SE ENCUENTRA REGISTRADA", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } conexion.Close(); }
|
|
|
22
|
Programación / .NET (C#, VB.NET, ASP) / agregar columnas al datagrid en tiempo de ejecucion
|
en: 1 Julio 2015, 02:17 am
|
buenas noches verán tengo el sig. código en el cual traigo una consulta de la bd y pongo los resultados en el datagridview....lo q qiero hacer es agregar una o mas columnas d tipo textbox y checkbox y q tngan x filas según la cantidad de renglones q devuelva la consulta en tiempo de ejecución....como lo logro? grax d antemano private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (txtNumero.Text == "") { DialogResult ds = MessageBox.Show("DEBE INGRESAR UN NRO DE ORDEN", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtNumero.Text != "") { conexion = new SqlConnection ("Data Source=GONZALOCABRERA\\SQLEXPRESS;Initial Catalog=ProyectoSalud;Integrated Security=True"); conexion.Open(); SqlCommand consulta = new SqlCommand ("select count (*) from DetalleOrdenCompra where codigoOrden=@codigo", conexion ); consulta.Parameters.AddWithValue("@codigo", Convert.ToInt32(txtNumero.Text)); int count = Convert.ToInt32(consulta.ExecuteScalar()); if (count > 0) { DialogResult result = MessageBox.Show(this, "DESEA REGISTRAR LOS DATOS?", "ORDEN DE COMPRA ENCONTRADA", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); //MessageBox.Show(consulta2.ToString()); this.Text = result.ToString(); if (result == DialogResult.OK) { //CARGAR LOS DATAGRIDVIEW SqlCommand consulta2 = new SqlCommand ("SELECT dbo.DetalleOrdenCompra.codigoMedicamento,dbo.medicamentos1.nombre_medicamento, dbo.DetalleOrdenCompra.cantidad FROM dbo.DetalleOrdenCompra INNER JOIN dbo.medicamentos1 ON dbo.DetalleOrdenCompra.codigoMedicamento = dbo.medicamentos1.id_medicamento INNER JOIN dbo.DetalleMedicamento ON dbo.medicamentos1.id_medicamento = dbo.DetalleMedicamento.id_medicamento WHERE codigoOrden=@codigo ", conexion ); consulta2.Parameters.AddWithValue("@codigo", Convert.ToInt32(txtNumero.Text)); SqlDataAdapter da = new SqlDataAdapter (consulta2 ); DataTable dt = new DataTable (); da.Fill(dt); //dgv1.AutoGenerateColumns = false; dgv1.DataSource = dt; dgv1.Columns[0].HeaderText = "CODIGO"; dgv1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].Width = 60; dgv1.Columns[1].HeaderText = "MEDICAMENTO"; dgv1.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].Width = 211; dgv1.Columns[2].HeaderText = "CANTIDAD"; dgv1.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].Width = 80; txtNumero.Enabled = false; } else if (result == DialogResult.Cancel) { txtNumero.Text = ""; } this.Text = result.ToString(); } else { DialogResult ds = MessageBox.Show(this, "LA ORDEN INGRESADA NO SE ENCUENTRA REGISTRADA", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } conexion.Close(); }
|
|
|
23
|
Programación / .NET (C#, VB.NET, ASP) / consulta sobre proyecto en c#
|
en: 7 Junio 2015, 05:45 am
|
buenas noches gente del foro....verán esta vez no pregunto sobre códigos ni demás jejeje.....sino q solicito vuestras opiniones(consejos) sobre un proyecto q estoy llevando a cabo (tesis) sobre administración de un deposito de medicamentos.....al grano: tengo varios forms (c#) en el cual registro en tablas de bd (medicamento por categoría, ordenes de compra, detalle de ordenes de compra, ubicaciones por categoría según medicamento) en detalle de ordenes registro los medicamentos q tiene la orden(con su precio, programa, etc.).....a la hora d registrar el stock de esos medicamentos en las ubicaciones(puede ser el total q pide esa orden o un parcial) se m complica la "funcionalidad"....yo m imagino consultando el detalle d la orden y pudiendo registrar el total o un parcial....en el caso de registrar un parcial realizar un "update".....como podría realizar dicha función? q m aconsejan? perdón x la falta d info...necesito la opinión d expertos(elektro por nombrar alguno, por ser siempre el q m comprendió y sin ofender a nadie) en el tema q siemp m guiaron en el desarrollo d esta aplicación.....muchísimas graxias d antemano....slds!!
|
|
|
24
|
Programación / .NET (C#, VB.NET, ASP) / barcode en picture
|
en: 3 Junio 2015, 07:09 am
|
saludos gente del foro....como se asigna el código de barras al picture? grax d antemano private void GenerateBacode(string _data,string _file) { _data = "2345"; Linear barcode = new Linear (); barcode.Type = BarcodeType.CODE128; barcode.Data = _data; barcode.drawBarcode(); }
|
|
|
26
|
Programación / .NET (C#, VB.NET, ASP) / validar registro de datagrid
|
en: 1 Junio 2015, 05:04 am
|
buenas noches gente del foro....tengo el siguiente código en el cual a partir de un botón voy agregando registros a un datagridview e intento no dejar agregar otro registro que tenga igual el campo medicamento si ya esta cargado....al final no lo puedo conseguir ya q no m deja agregar uno repetido pero qando cambio el medicamento o sea es distinto...no m lo deja agregar...q tngo q modificar del bool? muchas grax d antemano private void button1_Click(object sender, EventArgs e) { if (txtCantidad.Text == "" || txtPrograma.Text == "" || txtPrecio.Text == "") { DialogResult ds = MessageBox.Show(this, "DEBE COMPLETAR TODOS LOS CAMPOS", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtCantidad.Text != "" || txtPrograma.Text != "" || txtPrecio.Text != "") { int numero = int.Parse(txtNumero.Text); string medicamento = comboMedicamento.Text; int cantidad = int.Parse(txtCantidad.Text); string programa = txtPrograma.Text; float precio = float.Parse(txtPrecio.Text); int numMedic = int.Parse(comboMedicamento.SelectedValue.ToString()); bool existe = dgv.Rows.Cast<DataGridViewRow>().Any(x => Convert.ToInt32(x.Cells["Column7"].Value) == numMedic); if (existe) { MessageBox.Show(this, "MEDICAMENTO YA CARGADO", "ATENCION", MessageBoxButtons.OK); } else { if (!existe) { dgv.Rows.Add(numMedic, medicamento, cantidad, programa, precio, cantidad * precio, numero); button2.Enabled = true; button3.Enabled = true; txtCantidad.Text = ""; txtPrecio.Text = ""; txtPrograma.Text = ""; } } } }
|
|
|
28
|
Programación / .NET (C#, VB.NET, ASP) / autocomplete en textbox c#
|
en: 26 Mayo 2015, 06:06 am
|
buenas noches gente del foro...verán tengo una duda...estoy haciendo una aplicación de escritorio en la cual ingreso una serie de datos para darlos de alta en una tabla en una bd....verán cuando ingreso el nro d orden en el textbox presionaba un botón consultar para ver si ya se encontraba esa orden registrada si no estaba, habilitaba los controles para cargar los datos y luego registrarlos....al exponer esta parte d la aplicación (mi tesis) la profesora m la rechazo ya q es tedioso para el usuario presionar un botón para consultar sobre un dato si esta registrado o no....x lo q se m ocurrio implementar un autocomplete en el textbox.....m podrían ayudar sobre la implementación es decir ejemplos y demás? creo entender q al ir escribiendo el dato en el textbox hace la consulta y va trayendo los datos q tngan ese valor? y si no esta podría activar los otros controles y demás x ejemplo? espero no causar muchas molestias y dsd ya muchas grax expongo el código q fui realizando hst el momento using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace RegistrarOCspp2 { public partial class RegistrarOrden : Form { public RegistrarOrden() { InitializeComponent(); } private void studioButton2_Click(object sender, EventArgs e) { this.Close(); } private void RegistrarOrden_Load(object sender, EventArgs e) { // TODO: esta línea de código carga datos en la tabla 'proyectoSaludDataSet7.medicamentos1' Puede moverla o quitarla según sea necesario. this.medicamentos1TableAdapter.Fill(this.proyectoSaludDataSet7.medicamentos1); } private static void OnlyNumber(KeyPressEventArgs e, bool isdecimal) { String aceptados; if (!isdecimal) { aceptados = "0123456789," + Convert.ToChar(8); } else aceptados = "0123456789." + Convert.ToChar(8); if (aceptados.Contains("" + e.KeyChar)) { e.Handled = false; } else { e.Handled = true; } } private void txtUnidad_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsNumber(e.KeyChar) && e.KeyChar != (char)8) { e.Handled = true; OnlyNumber(e, false); } } private void textBox3_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsNumber(e.KeyChar) && e.KeyChar != (char)8) { e.Handled = true; OnlyNumber(e, false); } } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar)) e.Handled = false; else if (char.IsControl(e.KeyChar)) e.Handled = false; else if (char.IsSeparator(e.KeyChar)) e.Handled = false; else e.Handled = true; } private void textBox1_Click(object sender, EventArgs e) { System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip(); ToolTip1.SetToolTip(this.txtNumero, "Ejemplo: 2290"); txtCantidad.Enabled = true; } private void button1_Click(object sender, EventArgs e) { if (txtCantidad.Text == "" || txtPrograma.Text == "" || txtPrecio.Text == "") { DialogResult ds = MessageBox.Show(this, "DEBE COMPLETAR TODOS LOS CAMPOS", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtCantidad.Text != "" || txtPrograma.Text != "" || txtPrecio.Text != "") { string medicamento = comboMedicamento.Text; int cantidad = int.Parse(txtCantidad.Text); string programa = txtPrograma.Text; float precio = float.Parse(txtPrecio.Text); dgv.Rows.Add(medicamento, cantidad, programa, precio, cantidad * precio); button3.Enabled = true; } } private void button4_Click(object sender, EventArgs e) { this.Close(); } private void button3_Click(object sender, EventArgs e) { int fila = dgv.CurrentRow.Index; if (fila == 0) button3.Enabled = false; dgv.Rows.RemoveAt(fila); } } }
|
|
|
|
|
|
|