Para todos los programadores adictos a las Grid, aqui les traigo un metodo sencillo de agregar Items.
private void AgregarArticulo() {
string estado = hidEstadoArticulo.Value;
List<movimiento_detalle> lista = ActualizarGridArticulo(estado);
if (estado.Equals("N"))
{
string[] patron = { "<@ARTICULO@>" };
string[] datos = hidListaArticulo.Value.Split(patron, System.StringSplitOptions.None);
foreach (string s in datos)
{
if (s != "")
{
movimiento_detalle item = ObtenerItemArticulo(s);
if (item != null)
{
lista.Add(item);
}
}
}
}
FillGridDetalle(lista);
hidAccion.Value = "";
hidEstadoArticulo.Value = "";
hidFilaEditar.Value = "";
}
private movimiento_detalle ObtenerItemArticulo(string articulo_info)
{
if (articulo_info == "") return null;
movimiento_detalle item = new movimiento_detalle();
string[] datos = articulo_info.Split('|');
int i = -1;
++i;
item.Id_articulo = Convert.ToInt32(datos[i]);
++i;
item.Articulo_des = datos[i];
return item;
}
private List<movimiento_detalle> ActualizarGridArticulo(string estado)
{
List<movimiento_detalle> lista = new List<movimiento_detalle>();
int filas = rgDetalle.Rows.Count;
for (int i = 0; i < filas; i++)
{
GridViewRow r = rgDetalle.Rows[i];
if (r.RowType == DataControlRowType.DataRow)
{
Label lblIdDetalle = (Label)r.FindControl("lblIdDetalle");
movimiento_detalle item = new movimiento_detalle();
if (estado.Equals("D") && hidFilaEditar.Value.ToString().Equals(lblIdDetalle.Text)) item = null;
else
{
int id_articulo = Convert.ToInt32(((Label)r.FindControl("lblIDArticulo")).Text);
item.Articulo_des = ((Label)r.FindControl("lblArticuloDes")).Text;
item.Cantidad = Convert.ToInt32(((TextBox)r.FindControl("txtCantidad")).Text.Trim());
}
if (item != null) lista.Add(item);
}
}
return lista;
}
Y para recuperar los datos:
private SCM_ORDEN_COMPRA_DETALLEList ObtenerDatosListaArticulo(int id_empresa)
{
SCM_ORDEN_COMPRA_DETALLEList lista = new SCM_ORDEN_COMPRA_DETALLEList();
int filas = dgArticulo.Rows.Count;
int numero_fila = 0;
for (int i = 0; i < filas; i++)
{
GridViewRow r = dgArticulo.Rows[i];
if (r.RowType == DataControlRowType.DataRow)
{
TextBox txtMontoUnitario = (TextBox)r.FindControl("txtMontoUnitario");
TextBox txtCantidadSolicitada = (TextBox)r.FindControl("txtCantidadSolicitada");
TextBox txtReferencia = (TextBox)r.FindControl("txtReferencia");
DropDownList ddlCentroActividad = (DropDownList)r.FindControl("ddlCentroActividad");
DropDownList ddlUnidadMedida = (DropDownList)r.FindControl("ddlUnidadMedida");
DropDownList ddlIGV = (DropDownList)r.FindControl("ddlIGV");
Label lblIDArticulo = (Label)r.FindControl("lblIDArticulo");
Label lblIDActivo = (Label)r.FindControl("lblIDActivo");
SCM_ORDEN_COMPRA_DETALLE item = new SCM_ORDEN_COMPRA_DETALLE();
int id_tipo_detalle = Funciones.CheckInt(((Label)r.FindControl("lblIdTipoDetalle")).Text);
int id_articulo = Funciones.CheckInt(lblIDArticulo.Text);
int id_activo_fijo = Funciones.CheckInt(lblIDActivo.Text);
item.ID_TIPO_DETALLE = id_tipo_detalle;
decimal monto_unitario = Funciones.CheckDecimal(txtMontoUnitario.Text.Trim());
item.MONTO_UNITARIO_REAL_MN = monto_unitario;
item.MONTO_UNITARIO_MN = monto_unitar;
item.REFERENCIA = txtReferencia.Text.Trim().ToUpper();
item.CON_IGV = ddlIGV.SelectedValue;
item.ID_EMPRESA = id_empresa;
item.ID_ORDEN_COMPRA_DETALLE = ++numero_fila;
lista.Add(item);
}
}
return lista;
}
lunes, 9 de septiembre de 2013
Como validar un CheckList en c#
Muchos de nostros hemos tenido alguna vez problemas validando checkList en Javascript, a continuacion les dejo un metodo simple y consiso sobre como hacerlo.
function Aceptar() {
var datos = '';
var lista = '';
if (validardatos()) {
var chkList = document.getElementById('chkList');
var chk = chkList.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++) {
if (chk[i].checked) {
datos = chk[i].value;
lista = lista + '<@articulo@>' + datos;
}
}
}
window.opener.RetornarArticulo(lista);
window.close();
}
function validardatos() {
var chkList = document.getElementById('chkList');
var chk = chkList.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++ ) {
if (chk[i].checked == true) {
return true;
}
}
alert("Seleccione al menos un Articulo");
return false;
}
Son dos funciones en Javascript una que valida y otra que envia los datos de las opcviones seleccionadas a la pagina anterior.
function Aceptar() {
var datos = '';
var lista = '';
if (validardatos()) {
var chkList = document.getElementById('chkList');
var chk = chkList.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++) {
if (chk[i].checked) {
datos = chk[i].value;
lista = lista + '<@articulo@>' + datos;
}
}
}
window.opener.RetornarArticulo(lista);
window.close();
}
function validardatos() {
var chkList = document.getElementById('chkList');
var chk = chkList.getElementsByTagName("input");
for (var i = 0; i < chk.length; i++ ) {
if (chk[i].checked == true) {
return true;
}
}
alert("Seleccione al menos un Articulo");
return false;
}
Son dos funciones en Javascript una que valida y otra que envia los datos de las opcviones seleccionadas a la pagina anterior.
domingo, 8 de septiembre de 2013
Para todos los Programadores en C#
Tengan ustedes buenos días,
A continuación les dejo algunas clases para que puedan conectarse a su base de datos sin problemas desde codigo C#.
Conexion.cs
public class Conexion
{
static string cadenaConexion = @"Data Source=PC;Initial Catalog=BDD;User ID=sa;Password=****";
public static string CadenaConexion
{
get { return cadenaConexion; }
}
}
Luego Procedemos a crear una Clase Métodos, que tendra dentro dos metodos, uno sera para poder hacer referencia a un Store Procedure y el segundo para ejecutar sentencias como insert, delete, update.
Metodos.cs
public class Metodos
{
public static SqlCommand CrearComandoProc()
{
string _cadenaConexion = Conexion.CadenaConexion;
SqlConnection _conexion = new SqlConnection(_cadenaConexion);
SqlCommand _comando = new SqlCommand("", _conexion);
_comando.CommandType = CommandType.StoredProcedure;
return _comando;
}
public static int EjecutarComando(SqlCommand comando)
{
try
{
comando.Connection.Open();
return comando.ExecuteNonQuery();
}
catch { throw; }
finally
{
comando.Connection.Dispose();
comando.Connection.Close();
}
}
}
Luego de esto solo queda la capa de Presentacion y la Capa de enlace de Datos para que nuestra aplicacion pueda ser utilizada.
Espero haya servido de ayuda.
Hasta otra oportunidad.
Suscribirse a:
Comentarios (Atom)