-------------------------------------------------------------------------------------------
.ASPX
-------------------------------------------------------------------------------------------
.javascript
-------------------------------------------------------------------------------------------
$(document).ready(function () {
loadPeriodo();
});
function loadPeriodo() {
var params = "{}";
jutils.ajax.loadCombo('listaPeriodo', params, 'cbxAgno', 'ID', 'YEAR');
}
-------------------------------------------------------------------------------------------
.HTML
-------------------------------------------------------------------------------------------
<td width="180">
<span id="spanPer">
<select id="cbxAgno" name="cbxAgno" class="cont_combo">
</select>
</span>
</td>
// LLENADO EN DURO
<select id="cbxMes" name="cbxMes" style="font-family: Calibri; font-size: 13px; cursor: default;
width: 135px; height: 21px; margin-left: 0px;">
<option value="1">Abril</option>
<option value="2">Junio</option>
<option value="3">Septiembre</option>
<option value="4">Noviembre</option>
</select>
-------------------------------------------------------------------------------------------
.CS
-------------------------------------------------------------------------------------------
[WebMethod]
public static string listaPeriodo()
{
var dt = new TributarioWebBc().RecuperaAnos();
string result = JsonConvert.SerializeObject(dt).Replace("ö", "o");
return JsonConvert.SerializeObject(dt);
}
jueves, 30 de marzo de 2017
lunes, 27 de marzo de 2017
C# - Split con más de un caracter
var queryPreWhere = strcompletequeryupdate.Split(new string[] {"WHERE"}, StringSplitOptions.None)[0];
var queryPostWhere = strcompletequeryupdate.Split(new string[] { "WHERE" }, StringSplitOptions.None)[1].Replace("= NULL", "IS NULL");
martes, 29 de noviembre de 2016
C# - Encontrar una cadena dentro de una cadena
LA CADENA EN ESTE CASO SERÁ:
valorAuxCadenaCompleta = "<INPUT onblur=\"format(this) style=\" id=txtvalorlibro_0 class=caja-datos onkeyup=format(this) onchange=format(this) value=600.000 name=txtvalorlibro ? height:10px;width:120px;text-align:right?>"
var valorAuxCadenaCompleta = row["valor_libro"].Value;
//JC tengo el valor auxiliar pero con la cadena input completa, asi que obtengo la cadena (valor) de entre la cadena
int primero = valorAuxCadenaCompleta.IndexOf("value="); //Última ocurrencia del valor indicado
int ultimo = valorAuxCadenaCompleta.LastIndexOf("name="); //Última ocurrencia del valor indicado
//ahora tomo el valor de cadena dentro de la cadena.-
var valorAux = valorAuxCadenaCompleta.Substring(primero, ultimo - primero);
//para no incluir el "value ="
var valorAux = valorAuxCadenaCompleta.Substring(primero + 6, ultimo - primero - 6);
//donde +6 y - 6 corresponden al largo de "value="
valorAuxCadenaCompleta = "<INPUT onblur=\"format(this) style=\" id=txtvalorlibro_0 class=caja-datos onkeyup=format(this) onchange=format(this) value=600.000 name=txtvalorlibro ? height:10px;width:120px;text-align:right?>"
var valorAuxCadenaCompleta = row["valor_libro"].Value;
//JC tengo el valor auxiliar pero con la cadena input completa, asi que obtengo la cadena (valor) de entre la cadena
int primero = valorAuxCadenaCompleta.IndexOf("value="); //Última ocurrencia del valor indicado
int ultimo = valorAuxCadenaCompleta.LastIndexOf("name="); //Última ocurrencia del valor indicado
//ahora tomo el valor de cadena dentro de la cadena.-
var valorAux = valorAuxCadenaCompleta.Substring(primero, ultimo - primero);
//para no incluir el "value ="
var valorAux = valorAuxCadenaCompleta.Substring(primero + 6, ultimo - primero - 6);
//donde +6 y - 6 corresponden al largo de "value="
viernes, 28 de octubre de 2016
SQL - Saber que se esta ejecutando en BD desde APP.
DECLARE @BD VARCHAR(100)
--SET @BD = 'leasecom'
SET @BD = 'leaseoper'
select b.name, a.last_execution_time
from sys.dm_exec_procedure_stats
a
inner join sys.objects b on a.object_id = b.object_id
where DB_NAME(a.database_ID) = LTRIM(RTRIM(@BD))
ORDER BY 2 DESC
martes, 18 de octubre de 2016
SQL - Último dia del MES en base a una fecha
USE [leaseoper]
GO
/*
Creado : 20161018 JC
Historial : Ultimo día del mes
Ejecución : SELECT leaseoper.dbo.fn_termino_mes (GETDATE())
*/
ALTER FUNCTION fn_termino_mes (
@fecha SMALLDATETIME
)
RETURNS SMALLDATETIME
AS
BEGIN
DECLARE @inicio_mes SMALLDATETIME,
@termino_mes SMALLDATETIME,
@fecha_mes CHAR(6)
SELECT @fecha_mes = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes
SELECT @termino_mes = DATEADD(DAY, - 1, DATEADD(MONTH, 1, @inicio_mes)) --ultimo dia del mes
RETURN @termino_mes
END
GO
/*
Creado : 20161018 JC
Historial : Ultimo día del mes
Ejecución : SELECT leaseoper.dbo.fn_termino_mes (GETDATE())
*/
ALTER FUNCTION fn_termino_mes (
@fecha SMALLDATETIME
)
RETURNS SMALLDATETIME
AS
BEGIN
DECLARE @inicio_mes SMALLDATETIME,
@termino_mes SMALLDATETIME,
@fecha_mes CHAR(6)
SELECT @fecha_mes = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes
SELECT @termino_mes = DATEADD(DAY, - 1, DATEADD(MONTH, 1, @inicio_mes)) --ultimo dia del mes
RETURN @termino_mes
END
SQL - Primer dia del MES en base a una fecha
USE [leaseoper]
GO
/*
Creado : 20161018 JC
Historial : Primer día del mes
Ejecución : SELECT leaseoper.dbo.fn_inicio_mes (GETDATE())
*/
ALTER FUNCTION fn_inicio_mes (
@fecha SMALLDATETIME )
RETURNS SMALLDATETIME
AS
BEGIN
DECLARE @inicio_mes SMALLDATETIME,
@fecha_mes CHAR(6)
SELECT @fecha_mes = CONVERT(CHAR(06), DATEADD(MONTH, - 1, @fecha), 112)
SELECT @inicio_mes = CONVERT(SMALLDATETIME, @fecha_mes + '01', 112) --primer dia del mes de proceso
RETURN @inicio_mes
END
martes, 20 de septiembre de 2016
C# - Generar Grilla Jquery Standard pasando solo columnas (separadas por ;)
.ASPX (tiene pagina maestra, pero no es necesaria)
_________________________________________________________
<%@ Page Title="Genera Grilla Standard" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="GeneraGrillaStandard.aspx.cs" Inherits="LeaseOperWeb.Utils.GeneraGrillaStandard" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="HeaderContent" runat="server">
<table width="100%" border="2">
<tr>
<td>
</td>
<td align="center">
GENERADOR GRILLA STANDARD JQUERY
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Ingrese Columnas<br />
Separador de Columnas ";"
</td>
<td>
<asp:Button ID="BtnGenerarGrilla" runat="server" Text="Generar Grilla JQUERY" ToolTip="el separador debe ser ;"
Height="67px" Width="154px" onclick="BtnGenerarGrilla_Click1"/>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Grilla Standard
</td>
<td>
<asp:TextBox ID="txtColumnasEntrada" runat="server" Height="182px"
TextMode="MultiLine" Width="574px"></asp:TextBox>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:TextBox ID="txtGrillaJqueryStandard" runat="server" Height="492px" TextMode="MultiLine"
Width="726px"></asp:TextBox>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</asp:Content>
.CS
_________________________________________________________
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LeaseOperWeb.Utils
{
public partial class GeneraGrillaStandard : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
txtGrillaJqueryStandard.Attributes.Add("onfocus", "this.select();");
}
protected void BtnGenerarGrilla_Click1(object sender, EventArgs e)
{
try
{
if (txtColumnasEntrada.Text.Trim() != string.Empty)
PrepararGrilla();
else
Response.Write("<script language='JavaScript'>alert('Debe indicar las columnas para generar Grilla JQuery');</script>");
}
catch (Exception ex)
{
throw ex;
}
}
private void PrepararGrilla()
{
try
{
const string quote = "\"";
var listaColumnas = txtColumnasEntrada.Text.Trim().Split(';');
var grillaEncabezado = @"var lastsel;" + Environment.NewLine +
@"function defineGrid() {" + Environment.NewLine +
@"try {" + Environment.NewLine +
@" $(" + quote + "#Grid" + quote + ").jqGrid({" + Environment.NewLine +
@"datatype:" + quote + "local" + quote +","+ Environment.NewLine +
@"colNames: [";
var grillaColumnasEncabezado = string.Empty;
var tope = listaColumnas.Length - 1;
for (int j = 0; j < listaColumnas.Length; j++)
{
if (j != tope)
grillaColumnasEncabezado = grillaColumnasEncabezado + "'" + listaColumnas[j] + "',";
else
grillaColumnasEncabezado = grillaColumnasEncabezado + "'" + listaColumnas[j] + "']," + Environment.NewLine;
}
var grillaPreColumnas = @"colModel: [";
const string columnasStandard =
@"{name: 'nomCol', index: 'nomCol', align: 'center', width: '100px', editable: false, hidden: false }";
var grillaColumnaDetalle = string.Empty;
for (int i = 0; i < listaColumnas.Length; i++)
{
listaColumnas[i] = columnasStandard.Replace("nomCol", listaColumnas[i]);
if (i != tope)
grillaColumnaDetalle = grillaColumnaDetalle + listaColumnas[i]+","+ Environment.NewLine;
else
grillaColumnaDetalle = grillaColumnaDetalle + listaColumnas[i] + @"]," + Environment.NewLine;
}
var grillaPie = @" //multiselect: true," + Environment.NewLine +
"rowNum: 150," + Environment.NewLine +
"rowList: [10, 25, 50, 100, 150, 200, 250, 300, 350]," + Environment.NewLine +
"pgbuttons: false," + Environment.NewLine +
"pager: $('#pager2')," + Environment.NewLine +
"viewrecords: true," + Environment.NewLine +
"width: 1000," + Environment.NewLine +
"shrinkToFit: false," + Environment.NewLine +
"autowidth: false," + Environment.NewLine +
"forceFit: true," + Environment.NewLine +
"height: 200," + Environment.NewLine +
"editurl: jutils.pageName()," + Environment.NewLine +
"onSelectRow: function (id, status) {" + Environment.NewLine +
"if (id && id !== lastsel) {" + Environment.NewLine +
" $('#Grid').jqGrid('restoreRow', lastsel);" + Environment.NewLine +
"}" + Environment.NewLine +
"}" + Environment.NewLine +
"});" + Environment.NewLine +
"$(" + quote + "#Grid" + quote + ").jqGrid('navGrid'," + quote + "#pager2" + quote + ", { edit: false, add: false, del: false, refresh: false, search: false });" + Environment.NewLine +
"} catch (e) {" + Environment.NewLine +
"jutils.showError(e, arguments.callee.name);" + Environment.NewLine +
"}" + Environment.NewLine +
"}";
ArmarGrilla(grillaEncabezado, grillaColumnasEncabezado, grillaPreColumnas, grillaColumnaDetalle,
grillaPie);
}
catch (Exception ex)
{
throw ex;
}
}
private void ArmarGrilla(string grillaEncabezado, string grillaColumnasEncabezado, string grillaPreColumnas, string grillaColumnaDetalle, string grillaPie)
{
txtGrillaJqueryStandard.Text = grillaEncabezado + grillaColumnasEncabezado + grillaPreColumnas +
grillaColumnaDetalle + grillaPie;
txtGrillaJqueryStandard.Focus();
}
}
}
.ASPX (representación de la grilla en una pantalla)
_________________________________________________________
_________________________________________________________
<%@ Page Title="Genera Grilla Standard" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="GeneraGrillaStandard.aspx.cs" Inherits="LeaseOperWeb.Utils.GeneraGrillaStandard" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="HeaderContent" runat="server">
<table width="100%" border="2">
<tr>
<td>
</td>
<td align="center">
GENERADOR GRILLA STANDARD JQUERY
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Ingrese Columnas<br />
Separador de Columnas ";"
</td>
<td>
<asp:Button ID="BtnGenerarGrilla" runat="server" Text="Generar Grilla JQUERY" ToolTip="el separador debe ser ;"
Height="67px" Width="154px" onclick="BtnGenerarGrilla_Click1"/>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Grilla Standard
</td>
<td>
<asp:TextBox ID="txtColumnasEntrada" runat="server" Height="182px"
TextMode="MultiLine" Width="574px"></asp:TextBox>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:TextBox ID="txtGrillaJqueryStandard" runat="server" Height="492px" TextMode="MultiLine"
Width="726px"></asp:TextBox>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</asp:Content>
.CS
_________________________________________________________
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LeaseOperWeb.Utils
{
public partial class GeneraGrillaStandard : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
txtGrillaJqueryStandard.Attributes.Add("onfocus", "this.select();");
}
protected void BtnGenerarGrilla_Click1(object sender, EventArgs e)
{
try
{
if (txtColumnasEntrada.Text.Trim() != string.Empty)
PrepararGrilla();
else
Response.Write("<script language='JavaScript'>alert('Debe indicar las columnas para generar Grilla JQuery');</script>");
}
catch (Exception ex)
{
throw ex;
}
}
private void PrepararGrilla()
{
try
{
const string quote = "\"";
var listaColumnas = txtColumnasEntrada.Text.Trim().Split(';');
var grillaEncabezado = @"var lastsel;" + Environment.NewLine +
@"function defineGrid() {" + Environment.NewLine +
@"try {" + Environment.NewLine +
@" $(" + quote + "#Grid" + quote + ").jqGrid({" + Environment.NewLine +
@"datatype:" + quote + "local" + quote +","+ Environment.NewLine +
@"colNames: [";
var grillaColumnasEncabezado = string.Empty;
var tope = listaColumnas.Length - 1;
for (int j = 0; j < listaColumnas.Length; j++)
{
if (j != tope)
grillaColumnasEncabezado = grillaColumnasEncabezado + "'" + listaColumnas[j] + "',";
else
grillaColumnasEncabezado = grillaColumnasEncabezado + "'" + listaColumnas[j] + "']," + Environment.NewLine;
}
var grillaPreColumnas = @"colModel: [";
const string columnasStandard =
@"{name: 'nomCol', index: 'nomCol', align: 'center', width: '100px', editable: false, hidden: false }";
var grillaColumnaDetalle = string.Empty;
for (int i = 0; i < listaColumnas.Length; i++)
{
listaColumnas[i] = columnasStandard.Replace("nomCol", listaColumnas[i]);
if (i != tope)
grillaColumnaDetalle = grillaColumnaDetalle + listaColumnas[i]+","+ Environment.NewLine;
else
grillaColumnaDetalle = grillaColumnaDetalle + listaColumnas[i] + @"]," + Environment.NewLine;
}
var grillaPie = @" //multiselect: true," + Environment.NewLine +
"rowNum: 150," + Environment.NewLine +
"rowList: [10, 25, 50, 100, 150, 200, 250, 300, 350]," + Environment.NewLine +
"pgbuttons: false," + Environment.NewLine +
"pager: $('#pager2')," + Environment.NewLine +
"viewrecords: true," + Environment.NewLine +
"width: 1000," + Environment.NewLine +
"shrinkToFit: false," + Environment.NewLine +
"autowidth: false," + Environment.NewLine +
"forceFit: true," + Environment.NewLine +
"height: 200," + Environment.NewLine +
"editurl: jutils.pageName()," + Environment.NewLine +
"onSelectRow: function (id, status) {" + Environment.NewLine +
"if (id && id !== lastsel) {" + Environment.NewLine +
" $('#Grid').jqGrid('restoreRow', lastsel);" + Environment.NewLine +
"}" + Environment.NewLine +
"}" + Environment.NewLine +
"});" + Environment.NewLine +
"$(" + quote + "#Grid" + quote + ").jqGrid('navGrid'," + quote + "#pager2" + quote + ", { edit: false, add: false, del: false, refresh: false, search: false });" + Environment.NewLine +
"} catch (e) {" + Environment.NewLine +
"jutils.showError(e, arguments.callee.name);" + Environment.NewLine +
"}" + Environment.NewLine +
"}";
ArmarGrilla(grillaEncabezado, grillaColumnasEncabezado, grillaPreColumnas, grillaColumnaDetalle,
grillaPie);
}
catch (Exception ex)
{
throw ex;
}
}
private void ArmarGrilla(string grillaEncabezado, string grillaColumnasEncabezado, string grillaPreColumnas, string grillaColumnaDetalle, string grillaPie)
{
txtGrillaJqueryStandard.Text = grillaEncabezado + grillaColumnasEncabezado + grillaPreColumnas +
grillaColumnaDetalle + grillaPie;
txtGrillaJqueryStandard.Focus();
}
}
}
.ASPX (representación de la grilla en una pantalla)
_________________________________________________________
<tr>
<td class="modul_bordes">
<div id="printerElement2">
<table id="Grid">
<tr>
<td>
</td>
</tr>
</table>
</div>
<div id="pager2">
</div>
</td>
<td width="10">
</td>
</tr>
viernes, 2 de septiembre de 2016
SQL - update select con columnas agregadas (suma)
--NC VALOR JC
UPDATE #ficha_det
SET valor_nota_credito = tablaAdd.campoSum
FROM #ficha_det det, (SELECT a.num_factura,a.rut_proveedor, nc.tipo_docum, SUM(ISNULL(nc.neto,0)+ISNULL(nc.exento,0)) campoSum
FROM #ficha_det a, t_nota_credito_debito nc
WHERE nc.num_factura=a.num_factura
AND nc.rut_proveedor=a.rut_proveedor AND tipo_docum=1
GROUP BY a.num_factura,a.rut_proveedor, nc.tipo_docum ) tablaAdd
WHERE det.num_factura = tablaAdd.num_factura AND det.rut_proveedor = tablaAdd.rut_proveedor
AND tablaAdd.tipo_docum = 1
Otro Ejemplo:
--dias mora
UPDATE #universo
SET dias_mora = tablaAdd.dias_mora
FROM leaseoper..t_cuotas cu , (SELECT DATEDIFF(DAY,MIN(c.fecha_vencimiento),GETDATE()) AS dias_mora, u.operacion FROM leaseoper..t_cuotas c ,#universo u
WHERE c.operacion = u.operacion
GROUP BY dias_mora, u.operacion ) tablaAdd
WHERE cu.operacion = tablaAdd.operacion AND #universo.operacion = cu.operacion AND
cu.estado IN (1,3)
Otro Ejemplo:
--total de nominas
UPDATE #nominas_universo
SET total_nomina = tablaAdd.campoSum
FROM #nominas_universo uni , (SELECT b.numero_nomina, (SUM(ISNULL(b.monto,0))) campoSum
FROM #nominas_universo a , dbo.t_req_pago b
WHERE a.numero_nomina = b.numero_nomina
GROUP BY b.numero_nomina )tablaAdd
WHERE uni.numero_nomina = tablaAdd.numero_nomina
UPDATE #ficha_det
SET valor_nota_credito = tablaAdd.campoSum
FROM #ficha_det det, (SELECT a.num_factura,a.rut_proveedor, nc.tipo_docum, SUM(ISNULL(nc.neto,0)+ISNULL(nc.exento,0)) campoSum
FROM #ficha_det a, t_nota_credito_debito nc
WHERE nc.num_factura=a.num_factura
AND nc.rut_proveedor=a.rut_proveedor AND tipo_docum=1
GROUP BY a.num_factura,a.rut_proveedor, nc.tipo_docum ) tablaAdd
WHERE det.num_factura = tablaAdd.num_factura AND det.rut_proveedor = tablaAdd.rut_proveedor
AND tablaAdd.tipo_docum = 1
Otro Ejemplo:
--dias mora
UPDATE #universo
SET dias_mora = tablaAdd.dias_mora
FROM leaseoper..t_cuotas cu , (SELECT DATEDIFF(DAY,MIN(c.fecha_vencimiento),GETDATE()) AS dias_mora, u.operacion FROM leaseoper..t_cuotas c ,#universo u
WHERE c.operacion = u.operacion
GROUP BY dias_mora, u.operacion ) tablaAdd
WHERE cu.operacion = tablaAdd.operacion AND #universo.operacion = cu.operacion AND
cu.estado IN (1,3)
Otro Ejemplo:
--total de nominas
UPDATE #nominas_universo
SET total_nomina = tablaAdd.campoSum
FROM #nominas_universo uni , (SELECT b.numero_nomina, (SUM(ISNULL(b.monto,0))) campoSum
FROM #nominas_universo a , dbo.t_req_pago b
WHERE a.numero_nomina = b.numero_nomina
GROUP BY b.numero_nomina )tablaAdd
WHERE uni.numero_nomina = tablaAdd.numero_nomina
jueves, 18 de agosto de 2016
C# - Crystal Reports Setear número en reporte.-
ToText(numero a setear, decimales, separador de miles, separador decimal)
ENTRADA 10.000,00
Totext(ToNumber({Table.operacion}),0,"")
SALIDA 10000
------------------------------------------------
ENTRADA 10.000,00
Totext(ToNumber({Table.operacion}),0,".")
SALIDA 10.000
------------------------------------------------
ENTRADA 10.000,00
Totext(ToNumber({Table.operacion}),2,".",",")
SALIDA 10.000,00
martes, 16 de agosto de 2016
C# - Editar columnas en DataTable de solo lectura (table.Load())
foreach
(DataColumn col in sdtDetalleBien.Columns)
{
col.ReadOnly = false;
}
Suscribirse a:
Entradas (Atom)