Buenas en esta ocasion veremos como obtener todos los sp de una bd, para esto genero un store procedure.
CREATE PROC MAESTROS.PA_OBTENER_STOREPROCEDURE 'Relacionado'
@NameSp VARCHAR(50)
AS
select name from sysobjects where type='P' and name like '%' + @NameSp +'%'
Order By Name
y de esta manera podemos obteneros de una manera sencilla.
domingo, 17 de noviembre de 2013
sábado, 9 de noviembre de 2013
VARIABLE TABLE SQL SERVER 2008
Buenas en esta ocasion veremos el uso de la variable tipo TABLE , conbinandose con otras sentencias dentro del Transact SQL.
/*
Autor : Martin Cox R.
*/
CREATE PROC [FINANZAS].[PA_ESTADOCUENTA_CLIENTES] --1, 24,1 , '21/01/2013','21/08/2013'
@IDCompania numeric ,
@IDCliente numeric ,
@IDMoneda numeric ,
@FechaInicio datetime ,
@FechaFinal datetime
AS
declare @FechaRegistro DateTime
declare @NumeroComprobante varchar(100)
declare @TipoDocumento varchar(100)
declare @Total decimal(18,4)
declare @Flag char(1)
declare @Contador numeric = 1
declare @Saldo decimal(18,4)= 0
declare @RazonSocial varchar(200)=''
declare @Ruc varchar(15)=''
DECLARE @tempEstadoCuentaFinal table(
FechaRegistro DateTime ,
NumeroComprobante varchar(100),
TipoDocumento varchar(100),
Debito decimal(18,4),
Credito decimal(18,4),
Saldo decimal(18,4) ,
RazonSocial varchar(200) ,
Ruc varchar(15)
)
select
FechaEmision as FechaRegistro ,NumeroDocumento as NumeroComprobante ,
tipDoc_cNombreTipoDocumento as TipoDocumento ,
Total , 'H' AS Flag , RazonSocial , Ruc
into #tempDoc from MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR
where MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR.FormaPago = 2
and IDPersona =@IDCliente and IDMonedaDocumento = @IDMoneda
Union All
SELECT FINANZAS.COMPROBANTECAJA.FechaRegistro, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobante,
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.TipoDocumento, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.ImportePagar AS Total,
'D' AS Flag , MAESTROS.MAE_CLIENTES.cli_cNombreCompletoCliente as RazonSocial ,MAESTROS.MAE_CLIENTES.cli_cRucCliente as Ruc
FROM FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR
INNER JOIN FINANZAS.COMPROBANTEENTRADACAJA ON FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCompania = FINANZAS.COMPROBANTEENTRADACAJA.IDCompania AND FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDTipoDocumento = FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDSede = FINANZAS.COMPROBANTEENTRADACAJA.IDSede AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCentroFinanciero = FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobanteCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroSerieCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie
INNER JOIN FINANZAS.COMPROBANTECAJA ON FINANZAS.COMPROBANTEENTRADACAJA.IDCompania = FINANZAS.COMPROBANTECAJA.IDCompania AND
FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento = FINANZAS.COMPROBANTECAJA.IDTipoDocumento AND
FINANZAS.COMPROBANTEENTRADACAJA.IDSede = FINANZAS.COMPROBANTECAJA.IDSede AND
FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero = FINANZAS.COMPROBANTECAJA.IDCentroFinanciero AND
FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante = FINANZAS.COMPROBANTECAJA.NumeroComprobante AND
FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie = FINANZAS.COMPROBANTECAJA.NumeroSerie
inner join MAESTROS.MAE_CLIENTES on FINANZAS.COMPROBANTEENTRADACAJA.IDCliente =MAESTROS.MAE_CLIENTES.cli_nCodigoCliente
WHERE (FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.FormaPago = 'CREDITO') and (FINANZAS.COMPROBANTEENTRADACAJA.IDCliente = @IDCliente)
and FINANZAS.COMPROBANTECAJA.IDMoneda = @IDMoneda and RTRIM( FINANZAS.COMPROBANTECAJA.EstadoEntrega) != 'ANULADO'
DECLARE CursorEstadoCuenta CURSOR
FOR
select * from #tempDoc
--where FechaRegistro between CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal ,103)
where CONVERT(CHAR(10),FechaRegistro,103) between CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal ,103)
OPEN CursorEstadoCuenta
FETCH CursorEstadoCuenta
INTO @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag ,@RazonSocial ,@Ruc
WHILE (@@FETCH_STATUS = 0)
begin
if(@Flag = 'D')
begin
set @Saldo = @Saldo - @Total - 0 ;
insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,
@TipoDocumento ,@Total ,0,@Saldo,rtrim(@RazonSocial) ,@Ruc )
end
else if(@Flag = 'H')
begin
set @Saldo = @Saldo + @Total - 0 ;
insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,
@TipoDocumento ,0 ,@Total,@Saldo ,RTRIM( @RazonSocial),@Ruc)
end
FETCH CursorEstadoCuenta INTO @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag ,@RazonSocial
,@Ruc
set @Contador =@Contador +1;
END -- end loop while
CLOSE CursorEstadoCuenta
DEALLOCATE CursorEstadoCuenta
select * from @tempEstadoCuentaFinal
drop table #tempDoc
/*
Autor : Martin Cox R.
*/
CREATE PROC [FINANZAS].[PA_ESTADOCUENTA_CLIENTES] --1, 24,1 , '21/01/2013','21/08/2013'
@IDCompania numeric ,
@IDCliente numeric ,
@IDMoneda numeric ,
@FechaInicio datetime ,
@FechaFinal datetime
AS
declare @FechaRegistro DateTime
declare @NumeroComprobante varchar(100)
declare @TipoDocumento varchar(100)
declare @Total decimal(18,4)
declare @Flag char(1)
declare @Contador numeric = 1
declare @Saldo decimal(18,4)= 0
declare @RazonSocial varchar(200)=''
declare @Ruc varchar(15)=''
DECLARE @tempEstadoCuentaFinal table(
FechaRegistro DateTime ,
NumeroComprobante varchar(100),
TipoDocumento varchar(100),
Debito decimal(18,4),
Credito decimal(18,4),
Saldo decimal(18,4) ,
RazonSocial varchar(200) ,
Ruc varchar(15)
)
select
FechaEmision as FechaRegistro ,NumeroDocumento as NumeroComprobante ,
tipDoc_cNombreTipoDocumento as TipoDocumento ,
Total , 'H' AS Flag , RazonSocial , Ruc
into #tempDoc from MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR
where MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR.FormaPago = 2
and IDPersona =@IDCliente and IDMonedaDocumento = @IDMoneda
Union All
SELECT FINANZAS.COMPROBANTECAJA.FechaRegistro, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobante,
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.TipoDocumento, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.ImportePagar AS Total,
'D' AS Flag , MAESTROS.MAE_CLIENTES.cli_cNombreCompletoCliente as RazonSocial ,MAESTROS.MAE_CLIENTES.cli_cRucCliente as Ruc
FROM FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR
INNER JOIN FINANZAS.COMPROBANTEENTRADACAJA ON FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCompania = FINANZAS.COMPROBANTEENTRADACAJA.IDCompania AND FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDTipoDocumento = FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDSede = FINANZAS.COMPROBANTEENTRADACAJA.IDSede AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCentroFinanciero = FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobanteCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante AND
FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroSerieCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie
INNER JOIN FINANZAS.COMPROBANTECAJA ON FINANZAS.COMPROBANTEENTRADACAJA.IDCompania = FINANZAS.COMPROBANTECAJA.IDCompania AND
FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento = FINANZAS.COMPROBANTECAJA.IDTipoDocumento AND
FINANZAS.COMPROBANTEENTRADACAJA.IDSede = FINANZAS.COMPROBANTECAJA.IDSede AND
FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero = FINANZAS.COMPROBANTECAJA.IDCentroFinanciero AND
FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante = FINANZAS.COMPROBANTECAJA.NumeroComprobante AND
FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie = FINANZAS.COMPROBANTECAJA.NumeroSerie
inner join MAESTROS.MAE_CLIENTES on FINANZAS.COMPROBANTEENTRADACAJA.IDCliente =MAESTROS.MAE_CLIENTES.cli_nCodigoCliente
WHERE (FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.FormaPago = 'CREDITO') and (FINANZAS.COMPROBANTEENTRADACAJA.IDCliente = @IDCliente)
and FINANZAS.COMPROBANTECAJA.IDMoneda = @IDMoneda and RTRIM( FINANZAS.COMPROBANTECAJA.EstadoEntrega) != 'ANULADO'
DECLARE CursorEstadoCuenta CURSOR
FOR
select * from #tempDoc
--where FechaRegistro between CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal ,103)
where CONVERT(CHAR(10),FechaRegistro,103) between CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal ,103)
OPEN CursorEstadoCuenta
FETCH CursorEstadoCuenta
INTO @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag ,@RazonSocial ,@Ruc
WHILE (@@FETCH_STATUS = 0)
begin
if(@Flag = 'D')
begin
set @Saldo = @Saldo - @Total - 0 ;
insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,
@TipoDocumento ,@Total ,0,@Saldo,rtrim(@RazonSocial) ,@Ruc )
end
else if(@Flag = 'H')
begin
set @Saldo = @Saldo + @Total - 0 ;
insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,
@TipoDocumento ,0 ,@Total,@Saldo ,RTRIM( @RazonSocial),@Ruc)
end
FETCH CursorEstadoCuenta INTO @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag ,@RazonSocial
,@Ruc
set @Contador =@Contador +1;
END -- end loop while
CLOSE CursorEstadoCuenta
DEALLOCATE CursorEstadoCuenta
select * from @tempEstadoCuentaFinal
drop table #tempDoc
jueves, 7 de noviembre de 2013
Acceder a los DataKeys de un GridView desde el evento RowDeleting
Buenas mis estimados ,
Despues de algun tiempo que deje de publicar ya que por motivos de tiempo se me hace muy dificil , pero bueno aqui estamos , en esta ocasion veremos obtener los valores de un DataKey desde el evento RowDeleting de nuestro GridView
Aqui el ejemplo:
protected void GridFamiliaProductos_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int rowIndex = e.RowIndex;
DataKeyArray ArrayKeys = GridFamiliaProductos.DataKeys;
string IDCompania = Convert.ToString(ArrayKeys[rowIndex].Values[0]);
string IDTipodocumento = Convert.ToString(ArrayKeys[rowIndex].Values[1]);
string IDSede = Convert.ToString(ArrayKeys[rowIndex].Values[2]);
string IDCentroFinanciero = Convert.ToString(ArrayKeys[rowIndex].Values[3]);
string NumeroSerie = Convert.ToString(ArrayKeys[rowIndex].Values[4]);
string NumeroComprobante = Convert.ToString(ArrayKeys[rowIndex].Values[5]);
}
Nos vemos
Despues de algun tiempo que deje de publicar ya que por motivos de tiempo se me hace muy dificil , pero bueno aqui estamos , en esta ocasion veremos obtener los valores de un DataKey desde el evento RowDeleting de nuestro GridView
Aqui el ejemplo:
protected void GridFamiliaProductos_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int rowIndex = e.RowIndex;
DataKeyArray ArrayKeys = GridFamiliaProductos.DataKeys;
string IDCompania = Convert.ToString(ArrayKeys[rowIndex].Values[0]);
string IDTipodocumento = Convert.ToString(ArrayKeys[rowIndex].Values[1]);
string IDSede = Convert.ToString(ArrayKeys[rowIndex].Values[2]);
string IDCentroFinanciero = Convert.ToString(ArrayKeys[rowIndex].Values[3]);
string NumeroSerie = Convert.ToString(ArrayKeys[rowIndex].Values[4]);
string NumeroComprobante = Convert.ToString(ArrayKeys[rowIndex].Values[5]);
}
Nos vemos
lunes, 19 de agosto de 2013
Obtener Hora del Sistema en MS SQL SERVER 2008
Buenas , en esta ocasion veremos algo bastante sencillo, pero que hay veces nos hace perder un poco de tiempo o mas bien dicho invertir un poco de tiempo en googlear , es recuperar la Hora actual en SQL server
declare @HORREG char(8)
set @HORREG = CONVERT (time, SYSDATETIME())
select @HORREG as Hora
Saludos
declare @HORREG char(8)
set @HORREG = CONVERT (time, SYSDATETIME())
select @HORREG as Hora
Saludos
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 |
domingo, 28 de abril de 2013
SISTEMAS EN LA NUBE LA TECNOLOGIA DE HOY
En esta ocasión hablaremos de la tecnologia actual y que ocupará al 100% en el futuro, SI ESTAMOS HABLANDO de los sistemas en la NUBE, ya sean MEDIANOS O GRANDES o conocidos como ERP(Planeamiento de Recursos Empresariales), asu unos añlos sistos se soñaba, se imaginaba pero hoy en dia es un realidad, los sistemas en la nube son la mejor opcion para las empresas actualmente, ya que tiene multiples ventajas frente a los ya viejos "SOFTWARE DE ESCRITORIO", tanto en ser mas factible , mas escalable, sin problemas de confilctos de software, reinstalaciones , actualizacion, estar instalando en dferentes maquinas cuando se desea visualizar simples reportes, son inumerables las ventajas de los sistemas en la NUBE , Hoy en dia es la mejor opción para las empresas tanto en lo economico como en lo tecnologico.
Aqui un link para que con un ejemplo puedan ver todo lo explicado en un pequeño video ,
http://www.explania.com/fr/chaines/entreprises/sap/detail/las-ventajas-del-erp-en-la-nube
Saludos.
miércoles, 9 de enero de 2013
PROBLEMAS IMPRESION MATRICIAL ASP.NET SOLUCION
Muchos de los que desarrollamos aplicaciones web con asp.net , nos hemos visto en el problema con impresiones matriciales ya que no respeta el tamaña que le indicamos , algo bastante grave ,ya que no podriamos imprimir nuestras facturas, boletas, N.C,N.D etc, una solucion a este problema fue construir un reporteador para este problema ,
Les mando el link donde podemos visualizar mejor este pequeño ejemplo
http://www.youtube.com/watch?v=Q7-k8yQCK7U&feature=youtu.be
Saludos
Les mando el link donde podemos visualizar mejor este pequeño ejemplo
http://www.youtube.com/watch?v=Q7-k8yQCK7U&feature=youtu.be
Saludos
Suscribirse a:
Entradas (Atom)