(en rojo los que convierten a la grilla en PAGINADA)
var selectedRows = {}; //ARREGLO para preservar la selección
var objectSelectedRows = []; //OBJETO para preservar ROWS seleccionados
// Grilla Consulta
function defineGridConsulta() {
try {
var agentsGrid = $('#grid2');
$("#grid2").jqGrid({
caption: "Factura Pagos",
datatype: "local",
colNames: ['Correlativo', 'RUT Cliente', 'Nombre Cliente', 'Operacion', 'Cuota', 'Fecha Pago', 'Total Iva', 'Total Pagado', 'Fecha Facturacion'],
colModel: [{ name: 'correlativo_pago', index: 'correlativo_pago', width: '150px', align: 'center' },
{ name: 'rut_cliente', index: 'rut_cliente', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'nombre', index: 'nombre', width: '450px', align: 'Left', editable: false, hidden: false },
{ name: 'operacion', index: 'operacion', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'num_cuota_format', index: 'num_cuota_format', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'fecha_pago', index: 'fecha_pago', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'total_iva', index: 'total_iva', width: '150px', editable: false, align: 'right', hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'total_pagado', index: 'total_pagado', width: '150px', align: 'right', editable: false, hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'facturaa', index: 'facturaa', width: '150px', align: 'center', editable: false, hidden: true}],
multiselect: true,
loadtext: 'Cargando datos...',
emptyrecords: 'No hay resultados encontrados o el ciclo de facturación no corresponde',
toppager: true,
gridview: true,
//rownumbers: true,
autoencode: true,
ignoreCase: true,
sortname: 'correlativo_pago',
sortorder: 'desc',
pager: $('#pager3'),
rowNum: 50,
rowList: [25, 50, 100, 150, 200, 250], //se puede comentar al paginar
//pgtext: null,
viewrecords: true,
width: 950,
shrinkToFit: true,
autowidth: false,
forceFit: true,
height: 950,
editurl: jutils.pageName(),
pgbuttons: true,
footerrow: true,
userDataOnFooter: true,
altRows: true,
//JC Para preservar estado de la selección
onSelectAll: function (rowIds, status) {
if (status === true) {
for (var l = 0; l < rowIds.length; l++) {
//preservo estado de la selección por pantalla del usuario
selectedRows[rowIds[l]] = true;
//preservo estado de la selección por pantalla del usuario
//Obtengo el(los)row seleccionados y los guardo en mi OBJETO, recorriendo el OBJETO para no repetir los registros al paginar
var rowEntradaFor = $("#grid2").jqGrid('getRowData', rowIds[l]);
var correlativoEntradaFor = rowEntradaFor["correlativo_pago"];
var existe = 0;
if (objectSelectedRows.length > 0) {
for (var k = 0; k < objectSelectedRows.length; k++) {
var rowInObject = objectSelectedRows[k];
if (rowInObject != null && rowInObject !== 'undefined')
var correlativoInObject = rowInObject["correlativo_pago"];
if (correlativoInObject === correlativoEntradaFor) {
existe = 1;
}
}
if (existe === 0) {
objectSelectedRows.push(rowEntradaFor);
}
} else {
objectSelectedRows.push(rowEntradaFor);
}
//FIN Obtengo el(los)row seleccionados y los guardo en mi OBJETO, recorriendo el OBJETO para no repetir los registros al paginar
}
} else {
for (var i = 0; i < rowIds.length; i++) {
//preservo estado de la selección por pantalla del usuario
delete selectedRows[rowIds[i]];
//preservo estado de la selección por pantalla del usuario
var rowDel = $("#grid2").jqGrid('getRowData', rowIds[i]);
var correlativoToEliminar = rowDel["correlativo_pago"];
//con este ciclo obtengo el indice a eliminar!
for (var j = 0; j < objectSelectedRows.length; j++) {
var rowInObjectDel = objectSelectedRows[j];
if (rowInObjectDel != null && rowInObjectDel !== 'undefined') {
var correlativoInObjectDel = rowInObjectDel["correlativo_pago"];
}
if (correlativoToEliminar === correlativoInObjectDel) {
delete objectSelectedRows[j];
}
}
}
}
},
onSelectRow: function (rowId, status, e) {
if (status === false) {
//preservo estado de la selección por pantalla del usuario
delete selectedRows[rowId];
//preservo estado de la selección por pantalla del usuario
var rowDel = $("#grid2").jqGrid('getRowData', rowId);
var correlativoToEliminar = rowDel["correlativo_pago"];
//con este ciclo obtengo el indice a eliminar!
for (var j = 0; j < objectSelectedRows.length; j++) {
var rowInObjectDel = objectSelectedRows[j];
if (rowInObjectDel != null && rowInObjectDel !== 'undefined')
var correlativoInObjectDel = rowInObjectDel["correlativo_pago"];
if (correlativoToEliminar === correlativoInObjectDel) {
delete objectSelectedRows[j];
}
}
} else {
//preservo estado de la selección por pantalla del usuario
selectedRows[rowId] = status;
//preservo estado de la selección por pantalla del usuario
//obtengo el row seleccionados y los guardo en un OBJETO
var row = $("#grid2").jqGrid('getRowData', rowId);
var correlativoEntrada = row["correlativo_pago"];
var existe = 0;
//recorro el OBJETO para no agregar dos veces el mismo row seleccionado en pantalla por usuario o al moverse en paginación
if (objectSelectedRows.length > 0) {
for (var i = 0; i < objectSelectedRows.length; i++) {
var rowInObject = objectSelectedRows[i];
if (rowInObject != null && rowInObject !== 'undefined')
var correlativoInArray = rowInObject["correlativo_pago"];
if (correlativoInArray === correlativoEntrada) {
existe = 1;
}
}
if (existe === 0) {
objectSelectedRows.push(row);
}
} else {
objectSelectedRows.push(row);
}
//recorro el OBJETO para no agregar dos veces el mismo row seleccionado en pantalla por usuario o al moverse en paginación
}
},
gridComplete: function () {
for (var rowId in selectedRows) {
agentsGrid.setSelection(rowId, true);
}
}
//FIN JC Para preservar estado de la selección
});
$("#grid2").jqGrid('filterToolbar', { stringResult: false, searchOnEnter: false, defaultSearch: 'cn' });
$("#grid2").jqGrid('navGrid', "#pager3", { edit: false, add: false, del: false, refresh: false });
$("#grid2").jqGrid('navButtonAdd', '#pager3', { buttonicon: 'ui-icon-transferthick-e-w', onClickButton: function () { Procesar(); }, caption: 'Facturar Pagos', position: 'last', title: 'Facturar Pagos', cursor: 'pointer' });
} catch (e) {
showMessage('Error al momento de buscar datos', 'Información');
return;
}
}
martes, 31 de mayo de 2016
jueves, 26 de mayo de 2016
C# - Conservar rows seleccionados en grilla JQUERY paginada.-
// Grilla Consulta
function defineGridConsulta() {
try {
var selectedRows = {};
var agentsGrid = $('#grid2');
$("#grid2").jqGrid({
caption: "Factura Pagos",
datatype: "local",
colNames: ['Correlativo', 'RUT Cliente', 'Nombre Cliente', 'Operacion', 'Cuota', 'Fecha Pago', 'Total Iva', 'Total Pagado', 'Fecha Facturacion'],
colModel: [{ name: 'correlativo_pago', index: 'correlativo_pago', width: '150px', align: 'center' },
{ name: 'rut_cliente', index: 'rut_cliente', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'nombre', index: 'nombre', width: '450px', align: 'Left', editable: false, hidden: false },
{ name: 'operacion', index: 'operacion', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'num_cuota_format', index: 'num_cuota_format', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'fecha_pago', index: 'fecha_pago', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'total_iva', index: 'total_iva', width: '150px', editable: false, align: 'right', hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'total_pagado', index: 'total_pagado', width: '150px', align: 'right', editable: false, hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'facturaa', index: 'facturaa', width: '150px', align: 'center', editable: false, hidden: true}],
multiselect: true,
loadtext: 'Cargando datos...',
emptyrecords: 'No hay resultados encontrados o el ciclo de facturación no corresponde',
toppager: true,
gridview: true,
//rownumbers: true,
autoencode: true,
ignoreCase: true,
sortname: 'correlativo_pago',
sortorder: 'desc',
pager: $('#pager3'),
rowNum: 50,
rowList: [25, 50, 100, 150, 200, 250],
//pgtext: null,
viewrecords: true,
width: 950,
shrinkToFit: true,
autowidth: false,
forceFit: true,
height: 950,
editurl: jutils.pageName(),
pgbuttons: true,
footerrow: true,
userDataOnFooter: true,
altRows: true,
//JC Para preservar estado de la selección
onSelectAll: function (rowIds, status) {
if (status === true) {
for (var i = 0; i < rowIds.length; i++) {
selectedRows[rowIds[i]] = true;
}
} else {
for (var i = 0; i < rowIds.length; i++) {
delete selectedRows[rowIds[i]];
}
}
},
onSelectRow: function (rowId, status, e) {
if (status === false) {
delete selectedRows[rowId];
} else {
selectedRows[rowId] = status;
}
},
gridComplete: function () {
for (var rowId in selectedRows) {
agentsGrid.setSelection(rowId, true);
}
}
//FIN JC Para preservar estado de la selección
});
$("#grid2").jqGrid('filterToolbar', { stringResult: false, searchOnEnter: false, defaultSearch: 'cn' });
$("#grid2").jqGrid('navGrid', "#pager3", { edit: false, add: false, del: false, refresh: false });
$("#grid2").jqGrid('navButtonAdd', '#pager3', { buttonicon: 'ui-icon-transferthick-e-w', onClickButton: function () { Procesar(); }, caption: 'Facturar Pagos', position: 'last', title: 'Facturar Pagos', cursor: 'pointer' });
} catch (e) {
showMessage('Error al momento de buscar datos', 'Información');
return;
}
}
function defineGridConsulta() {
try {
var selectedRows = {};
var agentsGrid = $('#grid2');
$("#grid2").jqGrid({
caption: "Factura Pagos",
datatype: "local",
colNames: ['Correlativo', 'RUT Cliente', 'Nombre Cliente', 'Operacion', 'Cuota', 'Fecha Pago', 'Total Iva', 'Total Pagado', 'Fecha Facturacion'],
colModel: [{ name: 'correlativo_pago', index: 'correlativo_pago', width: '150px', align: 'center' },
{ name: 'rut_cliente', index: 'rut_cliente', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'nombre', index: 'nombre', width: '450px', align: 'Left', editable: false, hidden: false },
{ name: 'operacion', index: 'operacion', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'num_cuota_format', index: 'num_cuota_format', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'fecha_pago', index: 'fecha_pago', width: '150px', align: 'center', editable: false, hidden: false },
{ name: 'total_iva', index: 'total_iva', width: '150px', editable: false, align: 'right', hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'total_pagado', index: 'total_pagado', width: '150px', align: 'right', editable: false, hidden: false, formatter: 'currency', formatoptions: { decimalPlaces: 0} },
{ name: 'facturaa', index: 'facturaa', width: '150px', align: 'center', editable: false, hidden: true}],
multiselect: true,
loadtext: 'Cargando datos...',
emptyrecords: 'No hay resultados encontrados o el ciclo de facturación no corresponde',
toppager: true,
gridview: true,
//rownumbers: true,
autoencode: true,
ignoreCase: true,
sortname: 'correlativo_pago',
sortorder: 'desc',
pager: $('#pager3'),
rowNum: 50,
rowList: [25, 50, 100, 150, 200, 250],
//pgtext: null,
viewrecords: true,
width: 950,
shrinkToFit: true,
autowidth: false,
forceFit: true,
height: 950,
editurl: jutils.pageName(),
pgbuttons: true,
footerrow: true,
userDataOnFooter: true,
altRows: true,
//JC Para preservar estado de la selección
onSelectAll: function (rowIds, status) {
if (status === true) {
for (var i = 0; i < rowIds.length; i++) {
selectedRows[rowIds[i]] = true;
}
} else {
for (var i = 0; i < rowIds.length; i++) {
delete selectedRows[rowIds[i]];
}
}
},
onSelectRow: function (rowId, status, e) {
if (status === false) {
delete selectedRows[rowId];
} else {
selectedRows[rowId] = status;
}
},
gridComplete: function () {
for (var rowId in selectedRows) {
agentsGrid.setSelection(rowId, true);
}
}
//FIN JC Para preservar estado de la selección
});
$("#grid2").jqGrid('filterToolbar', { stringResult: false, searchOnEnter: false, defaultSearch: 'cn' });
$("#grid2").jqGrid('navGrid', "#pager3", { edit: false, add: false, del: false, refresh: false });
$("#grid2").jqGrid('navButtonAdd', '#pager3', { buttonicon: 'ui-icon-transferthick-e-w', onClickButton: function () { Procesar(); }, caption: 'Facturar Pagos', position: 'last', title: 'Facturar Pagos', cursor: 'pointer' });
} catch (e) {
showMessage('Error al momento de buscar datos', 'Información');
return;
}
}
jueves, 5 de mayo de 2016
C# - Convertir Grilla en DataTable
protected DataTable ConvertToDataTable(ASPxGridView _gvDeudas)
{
DataTable dt = new DataTable();
for (int i = 0; i < _gvDeudas.VisibleRowCount; i++)
{
DataRow dr;
dr = dt.NewRow();
dr["CodigoConcepto"] = _gvDeudas.GetRowValues(i, "CodigoConcepto");
dr["Rol"] = _gvDeudas.GetRowValues(i, "Rol");
dr["CodigoComuna"] = _gvDeudas.GetRowValues(i, "CodigoComuna");
dr["Periodo"] = _gvDeudas.GetRowValues(i, "CodigoComuna");
dr["Operacion"] = _gvDeudas.GetRowValues(i, "Operacion");
dr["FechaGasto"] = _gvDeudas.GetRowValues(i, "FechaGasto");
dr["MontoPesos"] = _gvDeudas.GetRowValues(i, "MontoPesos");
dr["TipoDocumento"] = _gvDeudas.GetRowValues(i, "TipoDocumento");
dr["NumeroDocumento"] = _gvDeudas.GetRowValues(i, "NumeroDocumento");
dr["RutProveedor"] = _gvDeudas.GetRowValues(i, "RutProveedor");
dr["NombreProveedor"] = _gvDeudas.GetRowValues(i, "NombreProveedor");
dr["EsElectronico"] = _gvDeudas.GetRowValues(i, "EsElectronico");
dr["TipoPago"] = _gvDeudas.GetRowValues(i, "TipoPago");
dt.Rows.Add(dr);
}
return dt;
}
{
DataTable dt = new DataTable();
for (int i = 0; i < _gvDeudas.VisibleRowCount; i++)
{
DataRow dr;
dr = dt.NewRow();
dr["CodigoConcepto"] = _gvDeudas.GetRowValues(i, "CodigoConcepto");
dr["Rol"] = _gvDeudas.GetRowValues(i, "Rol");
dr["CodigoComuna"] = _gvDeudas.GetRowValues(i, "CodigoComuna");
dr["Periodo"] = _gvDeudas.GetRowValues(i, "CodigoComuna");
dr["Operacion"] = _gvDeudas.GetRowValues(i, "Operacion");
dr["FechaGasto"] = _gvDeudas.GetRowValues(i, "FechaGasto");
dr["MontoPesos"] = _gvDeudas.GetRowValues(i, "MontoPesos");
dr["TipoDocumento"] = _gvDeudas.GetRowValues(i, "TipoDocumento");
dr["NumeroDocumento"] = _gvDeudas.GetRowValues(i, "NumeroDocumento");
dr["RutProveedor"] = _gvDeudas.GetRowValues(i, "RutProveedor");
dr["NombreProveedor"] = _gvDeudas.GetRowValues(i, "NombreProveedor");
dr["EsElectronico"] = _gvDeudas.GetRowValues(i, "EsElectronico");
dr["TipoPago"] = _gvDeudas.GetRowValues(i, "TipoPago");
dt.Rows.Add(dr);
}
return dt;
}
C# - validar tipo de datos de un DataTable
*Por ejemplo para carga de datos desde un EXCEL.
private bool ValidaTipoDatoEntrada(DataTable dt, ref string msjValidaEntrada)
{
//97 : CargaDeudaHonorarios 26 : CargaDeudaSeguroCliente
var columnaError = string.Empty;
try
{
foreach (DataRow row in dt.Rows)
{
if (!string.IsNullOrEmpty(row[0].ToString()))
{
columnaError = @"Patente Rol - valor: " + row[0];
var patenteRol = row[0].ToString();
}
if (!string.IsNullOrEmpty(row[1].ToString()))
{
columnaError = @"Operación - valor: " + row[1];
var operacion = Convert.ToDecimal(row[1]);
}
if (!string.IsNullOrEmpty(row[2].ToString()))
{
columnaError = @"Código Material - valor: " + row[2];
var codMaterial = Convert.ToInt32(row[2]);
}
if (!string.IsNullOrEmpty(row[3].ToString()))
{
columnaError = @"Fecha - valor: " + row[3];
var fecha = Convert.ToDateTime(row[3]);
}
if (!string.IsNullOrEmpty(row[4].ToString()))
{
columnaError = @"Monto - valor: " + row[4];
var monto = Convert.ToSingle(row[4]);
}
if (!string.IsNullOrEmpty(row[5].ToString()))
{
columnaError = @"Tipo Documento - valor: " + row[5];
var tipoDocumento = Convert.ToInt32(row[5]);
}
if (!string.IsNullOrEmpty(row[6].ToString()))
{
columnaError = @"Numero Documento - valor: " + row[6];
var numDocum = Convert.ToDecimal(row[6]);
}
if (!string.IsNullOrEmpty(row[7].ToString()))
{
columnaError = @"Rut Beneficiario - valor: " + row[7];
var rutBeneficiario = Convert.ToInt32(row[7]);
}
if (!string.IsNullOrEmpty(row[8].ToString()))
{
columnaError = @"Nombre Beneficiario - valor: " + row[8];
var nombreBeneficiario = row[8].ToString();
}
if (!string.IsNullOrEmpty(row[9].ToString()))
{
columnaError = @"Es Docto Electronico - valor: " + row[9];
var esDoctoElectronico = row[9].ToString();
}
if (!string.IsNullOrEmpty(row[10].ToString()))
{
columnaError = @"Glosa - valor: " + row[10];
var glosa = row[10].ToString();
}
if (!string.IsNullOrEmpty(row[11].ToString()))
{
columnaError = @"Concepto - valor: " + row[11];
var concepto = Convert.ToInt32(row[11]);
}
}
return true;
}
catch (Exception ex)
{
msjValidaEntrada = "El formato de entrada no es correcto para la columna: " + columnaError;
return false;
}
}
/*Llamada del Método*/
if (ValidaTipoDatoEntrada(dt, tipoDeuda, ref msjValidaEntrada))
{
}
else
{
fupArchivo.JSProperties["cpError"] = "true";
fupArchivo.JSProperties["cpMensaje"] = "alert('" + msjValidaEntrada + "')";
}
private bool ValidaTipoDatoEntrada(DataTable dt, ref string msjValidaEntrada)
{
//97 : CargaDeudaHonorarios 26 : CargaDeudaSeguroCliente
var columnaError = string.Empty;
try
{
foreach (DataRow row in dt.Rows)
{
if (!string.IsNullOrEmpty(row[0].ToString()))
{
columnaError = @"Patente Rol - valor: " + row[0];
var patenteRol = row[0].ToString();
}
if (!string.IsNullOrEmpty(row[1].ToString()))
{
columnaError = @"Operación - valor: " + row[1];
var operacion = Convert.ToDecimal(row[1]);
}
if (!string.IsNullOrEmpty(row[2].ToString()))
{
columnaError = @"Código Material - valor: " + row[2];
var codMaterial = Convert.ToInt32(row[2]);
}
if (!string.IsNullOrEmpty(row[3].ToString()))
{
columnaError = @"Fecha - valor: " + row[3];
var fecha = Convert.ToDateTime(row[3]);
}
if (!string.IsNullOrEmpty(row[4].ToString()))
{
columnaError = @"Monto - valor: " + row[4];
var monto = Convert.ToSingle(row[4]);
}
if (!string.IsNullOrEmpty(row[5].ToString()))
{
columnaError = @"Tipo Documento - valor: " + row[5];
var tipoDocumento = Convert.ToInt32(row[5]);
}
if (!string.IsNullOrEmpty(row[6].ToString()))
{
columnaError = @"Numero Documento - valor: " + row[6];
var numDocum = Convert.ToDecimal(row[6]);
}
if (!string.IsNullOrEmpty(row[7].ToString()))
{
columnaError = @"Rut Beneficiario - valor: " + row[7];
var rutBeneficiario = Convert.ToInt32(row[7]);
}
if (!string.IsNullOrEmpty(row[8].ToString()))
{
columnaError = @"Nombre Beneficiario - valor: " + row[8];
var nombreBeneficiario = row[8].ToString();
}
if (!string.IsNullOrEmpty(row[9].ToString()))
{
columnaError = @"Es Docto Electronico - valor: " + row[9];
var esDoctoElectronico = row[9].ToString();
}
if (!string.IsNullOrEmpty(row[10].ToString()))
{
columnaError = @"Glosa - valor: " + row[10];
var glosa = row[10].ToString();
}
if (!string.IsNullOrEmpty(row[11].ToString()))
{
columnaError = @"Concepto - valor: " + row[11];
var concepto = Convert.ToInt32(row[11]);
}
}
return true;
}
catch (Exception ex)
{
msjValidaEntrada = "El formato de entrada no es correcto para la columna: " + columnaError;
return false;
}
}
/*Llamada del Método*/
if (ValidaTipoDatoEntrada(dt, tipoDeuda, ref msjValidaEntrada))
{
}
else
{
fupArchivo.JSProperties["cpError"] = "true";
fupArchivo.JSProperties["cpMensaje"] = "alert('" + msjValidaEntrada + "')";
}
Suscribirse a:
Entradas (Atom)