miércoles, 31 de julio de 2013
lunes, 22 de julio de 2013
Crecer y disminuir DIV con javascript
function AumnetarTamanio(pAumentar){
var tabla = document.getElementById("divDinamic");
var anchoTabla = tabla.offsetWidth;
var altoTabla = tabla.offsetHeight;
altoTabla = altoTabla + pAumentar + "px"
document.getElementById("divDinamic")
.style.height = altoTabla ;
// .style.height="400px";
//alert("NewHeigth " + altoTabla) ;
}
function DisminuirTamanio(pDisminuir){
var tabla = document.getElementById("divDinamic");
var anchoTabla = tabla.offsetWidth;
var altoTabla = tabla.offsetHeight;
altoTabla = altoTabla - pDisminuir; //+ "px" ;
altoTabla = altoTabla + "px";
document.getElementById("divDinamic")
.style.height = altoTabla ;
}
Valor no repetido en JavaScript
/* Validacion si se repiden codigos Servicios */
for (var i = 0; i < parseInt(rowCount) ; i++){
if ($("#TXTCodigo" + (i+1)).val() != undefined && $("#TXTCodigo" + (i+1)).val() != 'undefined' && $("#TXTCodigo" + (i+1)).val() != '' ){
var count= 0 ;
if(Salir =="S") break;
CodigoServi1 = $("#TXTCodigo" + (i+1)).val() ;
for (var j = 0; j < parseInt(rowCount) ; j++){
if ($("#TXTCodigo" + (j+1)).val() != undefined && $("#TXTCodigo" + (j+1)).val() != 'undefined' && $("#TXTCodigo" + (j+1)).val() != '' ){
CodigoServi2 = $("#TXTCodigo" + (j+1)).val();
if(CodigoServi1 == CodigoServi2 ){
if(count>0){
cadenaValores += CodigoServi1 ;
//cadenaValores += CodigoServi1 + ",";
cadenaIDRepetidos += "TXTCodigo" + (j+1);
Salir ="S";
break ;
}
count ++;
}
}
}
}
}
if(cadenaValores != "")
{
r_PopupAlert('El codigo de servicio ' + cadenaValores + ' se esta repitiendo',0,cadenaIDRepetidos ,"");
return false;
}
for (var i = 0; i < parseInt(rowCount) ; i++){
if ($("#TXTCodigo" + (i+1)).val() != undefined && $("#TXTCodigo" + (i+1)).val() != 'undefined' && $("#TXTCodigo" + (i+1)).val() != '' ){
var count= 0 ;
if(Salir =="S") break;
CodigoServi1 = $("#TXTCodigo" + (i+1)).val() ;
for (var j = 0; j < parseInt(rowCount) ; j++){
if ($("#TXTCodigo" + (j+1)).val() != undefined && $("#TXTCodigo" + (j+1)).val() != 'undefined' && $("#TXTCodigo" + (j+1)).val() != '' ){
CodigoServi2 = $("#TXTCodigo" + (j+1)).val();
if(CodigoServi1 == CodigoServi2 ){
if(count>0){
cadenaValores += CodigoServi1 ;
//cadenaValores += CodigoServi1 + ",";
cadenaIDRepetidos += "TXTCodigo" + (j+1);
Salir ="S";
break ;
}
count ++;
}
}
}
}
}
if(cadenaValores != "")
{
r_PopupAlert('El codigo de servicio ' + cadenaValores + ' se esta repitiendo',0,cadenaIDRepetidos ,"");
return false;
}
jueves, 11 de julio de 2013
CURSOR Y SQL DINAMICO
Un ejemplo de un cursor con SQL Dinamico que muchas veces es nuestra ultima alternativa a una solucion , pero nos ayuda a resolver problemas a nivel de base de datos
CREATE PROCEDURE CURSORDINAMICO -- 1,'001,003,004,006,005,002,007,007'
@FirstParamters NUMERIC(2),
@StringValues VARCHAR(MAX)
as
-- Declaración del cursor
declare @Valor1 VARCHAR(MAX) = ''
declare @Valor2 VARCHAR(MAX) = ''
declare @Resultado VARCHAR(MAX)= ''
declare @Contador numeric = 0
DECLARE CursorSplit CURSOR
FOR
select * from dbo.split(@StringValues,',')
-- Open Cursor
OPEN CursorSplit
--Reading First row
FETCH CursorSplit INTO @Valor1 , @Valor2
WHILE (@@FETCH_STATUS = 0)
BEGIN
--Reading Second row
if(@Valor2 != '')
begin
if(@Contador = 0)
begin
set @Resultado = CHAR(39) + ' and XXX LIKE ' + CHAR(39) + '%' + @Valor2 + '%' + CHAR(39)
end
else
begin
set @Resultado =@Resultado + ' or XXX LIKE ' + CHAR(39) + '%' + @Valor2 + '%' + CHAR(39)
end
set @Contador = @Contador+1
end
FETCH CursorSplit INTO @Valor1 , @Valor2
END -- end loop while
CLOSE CursorSplit
DEALLOCATE CursorSplit
DECLARE @TSQL VARCHAR(MAX)
SET @TSQL = ' SELECT XXX,XXX,XXX
FROM XXX
where XXX LIKE ''%' +RTRIM(CONVERT(CHAR(2),@FirstParameter)) + '%' + @Resultado
--SELECT @TSQL AS TSQL
EXEC (@TSQL )
go
CREATE PROCEDURE CURSORDINAMICO -- 1,'001,003,004,006,005,002,007,007'
@FirstParamters NUMERIC(2),
@StringValues VARCHAR(MAX)
as
-- Declaración del cursor
declare @Valor1 VARCHAR(MAX) = ''
declare @Valor2 VARCHAR(MAX) = ''
declare @Resultado VARCHAR(MAX)= ''
declare @Contador numeric = 0
DECLARE CursorSplit CURSOR
FOR
select * from dbo.split(@StringValues,',')
-- Open Cursor
OPEN CursorSplit
--Reading First row
FETCH CursorSplit INTO @Valor1 , @Valor2
WHILE (@@FETCH_STATUS = 0)
BEGIN
--Reading Second row
if(@Valor2 != '')
begin
if(@Contador = 0)
begin
set @Resultado = CHAR(39) + ' and XXX LIKE ' + CHAR(39) + '%' + @Valor2 + '%' + CHAR(39)
end
else
begin
set @Resultado =@Resultado + ' or XXX LIKE ' + CHAR(39) + '%' + @Valor2 + '%' + CHAR(39)
end
set @Contador = @Contador+1
end
FETCH CursorSplit INTO @Valor1 , @Valor2
END -- end loop while
CLOSE CursorSplit
DEALLOCATE CursorSplit
DECLARE @TSQL VARCHAR(MAX)
SET @TSQL = ' SELECT XXX,XXX,XXX
FROM XXX
where XXX LIKE ''%' +RTRIM(CONVERT(CHAR(2),@FirstParameter)) + '%' + @Resultado
--SELECT @TSQL AS TSQL
EXEC (@TSQL )
go
SPLIT EN MS SQL SERVER 2008
Ya hace mucho tiempo que no publicaba nada, las disculpas a mis seguidores , ya que por motivos de trabajo no pude publicar pero regresamos con fuerza y a eguir colaborando con este blog con mas de 3 años de antiguedad, esta vez veremos como realizar un split en MS SQL Server. CREATE FUNCTION [dbo].[split]( |
@delimited NVARCHAR(MAX), |
@delimiter NVARCHAR(100) |
) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX)) |
AS |
BEGIN |
DECLARE @xml XML |
SET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>' |
INSERT INTO @t(val) |
SELECT r.value('.','varchar(MAX)') as item |
FROM @xml.nodes('/t') as records(r) |
RETURN |
END |
Suscribirse a:
Entradas (Atom)