Varios nos preguntamos cómo convertir números decimales o enteros en texto (Ejm: DIEZ con 00/100 soles) en base de datos SQL Server.
Aquí tengo una función donde podría ayudar a resolver este problema.
--TEST:
--select [dbo]].[CantidadConLetra](50580.25)
CREATE FUNCTION [dbo].[CantidadConLetra]
(
@Numero Decimal(18,2)
)
RETURNS Varchar(180)
AS
BEGIN
DECLARE @ImpLetra Varchar(180)
DECLARE @lnEntero INT,
@lcRetorno VARCHAR(512),
@lnTerna INT,
@lcMiles VARCHAR(512),
@lcCadena VARCHAR(512),
@lnUnidades INT,
@lnDecenas INT,
@lnCentenas INT,
@lnFraccion INT
SELECT @lnEntero = CAST(@Numero AS INT),
@lnFraccion = (@Numero - @lnEntero) * 100,
@lcRetorno = '',
@lnTerna = 1
WHILE @lnEntero > 0
BEGIN /* WHILE */
-- Recorro terna por terna
SELECT @lcCadena = ''
SELECT @lnUnidades = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
SELECT @lnDecenas = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
SELECT @lnCentenas = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
-- Analizo las unidades
SELECT @lcCadena =
CASE /* UNIDADES */
WHEN @lnUnidades = 1 THEN 'UN ' + @lcCadena
WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena
WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena
WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena
WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena
WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena
WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena
WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena
WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena
ELSE @lcCadena
END /* UNIDADES */
-- Analizo las decenas
SELECT @lcCadena =
CASE /* DECENAS */
WHEN @lnDecenas = 1 THEN
CASE @lnUnidades
WHEN 0 THEN 'DIEZ '
WHEN 1 THEN 'ONCE '
WHEN 2 THEN 'DOCE '
WHEN 3 THEN 'TRECE '
WHEN 4 THEN 'CATORCE '
WHEN 5 THEN 'QUINCE '
WHEN 6 THEN 'DIEZ Y SEIS '
WHEN 7 THEN 'DIEZ Y SIETE '
WHEN 8 THEN 'DIEZ Y OCHO '
WHEN 9 THEN 'DIEZ Y NUEVE '
END
WHEN @lnDecenas = 2 THEN
CASE @lnUnidades
WHEN 0 THEN 'VEINTE '
ELSE 'VEINTI' + @THEN
END
WHEN @lnDecenas = 3 THEN
CASE @lnUnidades
WHEN 0 THEN 'TREINTA '
ELSE 'TREINTA Y ' + @lcCadena
END
WHEN @lnDecenas = 4 THEN
CASE @lnUnidades
WHEN 0 THEN 'CUARENTA'
ELSE 'CUARENTA Y ' + @lcCadena
END
WHEN @lnDecenas = 5 THEN
CASE @lnUnidades
WHEN 0 THEN 'CINCUENTA '
ELSE 'CINCUENTA Y ' + @lcCadena
END
WHEN @lnDecenas = 6 THEN
CASE @lnUnidades
WHEN 0 THEN 'SESENTA '
ELSE 'SESENTA Y ' + @lcCadena
END
WHEN @lnDecenas = 7 THEN
CASE @lnUnidades
WHEN 0 THEN 'SETENTA '
ELSE 'SETENTA Y ' + @lcCadena
END
WHEN @lnDecenas = 8 THEN
CASE @lnUnidades
WHEN 0 THEN 'OCHENTA '
ELSE 'OCHENTA Y ' + @lcCadena
END
WHEN @lnDecenas = 9 THEN
CASE @lnUnidades
WHEN 0 THEN 'NOVENTA '
ELSE 'NOVENTA Y ' + @lcCadena
END
ELSE @lcCadena
END /* DECENAS */
-- Analizo las centenas
SELECT @lcCadena =
CASE /* CENTENAS */
WHEN @lnCentenas = 1 THEN 'CIENTO ' + @lcCadena
WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena
WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena
WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena
WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena
WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena
WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena
WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena
WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena
ELSE @lcCadena
END /* CENTENAS */
-- Analizo la terna
SELECT @lcCadena =
CASE /* TERNA */
WHEN @lnTerna = 1 THEN @lcCadena
WHEN @lnTerna = 2 THEN @lcCadena + 'MIL '
WHEN @lnTerna = 3 THEN @lcCadena + 'MILLONES '
WHEN @lnTerna = 4 THEN @lcCadena + 'MIL '
ELSE ''
END /* TERNA */
-- Armo el retorno terna a terna
SELECT @lcRetorno = @lcCadena + @lcRetorno
SELECT @lnTerna = @lnTerna + 1
END
IF @lnTerna = 1
SELECT @lcRetorno = 'CERO'
DECLARE @sFraccion VARCHAR(15)
SET @sFraccion = '00' + LTRIM(CAST(@lnFraccion AS varchar))
SELECT @ImpLetra = RTRIM(@lcRetorno) +' con '+ SUBSTRING(@sFraccion,LEN(@sFraccion)-1,2) + '/100 soles'
RETURN @ImpLetra
END
Para comprobar el resultado de la función, invocaremos lo siguiente:
select [dbo].[CantidadConLetra](150.60)
quedando como resultado:
martes, 23 de febrero de 2016
viernes, 7 de marzo de 2014
AJAX - File Upload
AJAX - FILE UPLOAD
1.- Importar las librerias o Pluggin a utilizar, en la pagina Index de tu Vista (donde vas a cargar tu archivo).

2. Luego, en mi PartView le agrego mi Form y demás controles.
3. En la misma página, Pego mi JavaScript
4. En mi Controller "Home": Metodo "ObtenerRutaArchivo"
[HttpPost]
public ActionResult ObtenerRutaArchivo()
{
DataTable dt = new DataTable();
var file = Request.Files[0];
VMWBS BE = new VMWBS();
string momentImport = DateTime.Now.ToString(Constantes.Formaters.datePatt);
try
{
var fileName = Path.GetFileName(file.FileName);
string nombre = momentImport + "_" +file.FileName;
var path = Path.Combine(Server.MapPath("~/xlsx/"), nombre);
file.SaveAs(path);
//Listado.Add(new Cronograma
//{
// cronograma = 1,
// descripcion = "prueba"
//});
dt = CargarExcel(path);
BE.ListCronograma = InsertarExcel(dt);
}
catch (Exception ex)
{
throw ex;
}
return PartialView("_ListWBS", BE);
}
1.- Importar las librerias o Pluggin a utilizar, en la pagina Index de tu Vista (donde vas a cargar tu archivo).

2. Luego, en mi PartView le agrego mi Form y demás controles.
<form name="ajaxform" id="ajaxform" action="./Home/ObtenerRutaArchivo/" method="POST"> Archivo :<input type="file" name="photo" accept="xls" /><br/> <input type="submit" id="btn" value="Enviar" />
<div id="progress"> <div id="bar"></div> <div id="percent">0%</div> </div>
</form>
3. En la misma página, Pego mi JavaScript
<script type="text/javascript">
//callback handler for form submit
$('#ajaxform').ajaxForm(function () {
alert("Form is submitted");});function uploadFiles(event) {var formObj = $(this);var formURL = formObj.attr("action");var formData = new FormData(this);$.ajax({url: formURL,type: 'POST',data: formData,mimeType: "multipart/form-data",contentType: false,cache: false,processData: false,success: function (data, textStatus, jqXHR) {$("#div_listWBS").html(data);},error: function (jqXHR, textStatus, errorThrown) {}});//event.preventDefault(); //Prevent Default action.//event.unbind();}$('#ajaxform').on('submit', uploadFiles);</script>
4. En mi Controller "Home": Metodo "ObtenerRutaArchivo"
[HttpPost]
public ActionResult ObtenerRutaArchivo()
{
DataTable dt = new DataTable();
var file = Request.Files[0];
VMWBS BE = new VMWBS();
string momentImport = DateTime.Now.ToString(Constantes.Formaters.datePatt);
try
{
var fileName = Path.GetFileName(file.FileName);
string nombre = momentImport + "_" +file.FileName;
var path = Path.Combine(Server.MapPath("~/xlsx/"), nombre);
file.SaveAs(path);
//Listado.Add(new Cronograma
//{
// cronograma = 1,
// descripcion = "prueba"
//});
dt = CargarExcel(path);
BE.ListCronograma = InsertarExcel(dt);
}
catch (Exception ex)
{
throw ex;
}
return PartialView("_ListWBS", BE);
}
Eso es Todo!!
Referencias URL : Otra solucion aquí
miércoles, 3 de julio de 2013
Modelar en Oracle SQL Developer Data Modeler
Antes mas que todo, les dejo el link de descarga gratuita de Oracle SQL Developer Data Modeler:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
1. - Luego de haber hecho la descarga, ingresamos y aparece esta pantalla, el cual ingresaremos al Menú Archivo, Importar, Diccionario de Datos
2.- Luego se abre un Asistente de Conexión
3.- Si eres nuevo, Le haces Click en el botón Agregar. y se muestra la siguiente pantalla, donde:
Nombre de Conexion: "Cualquier nombre deseable"
Usuario: "Por defecto system o un usuario que hayas creado en oracle"
Contraseña: "La clave del usuario ingresado anteriormente"
SID: "XE es por defecto pero si hayas creado un esquema o base de datos le colocas el nombre"
Después, hace click en el Botón Guardar y luego Conectar
Se va actualizar la pantalla inicial con los usuario registrados hasta el momento, seleccionamos uno de ellos y Damos click en el Botón Siguiente
Aparece una pantalla con la lista de tablas que tiene la base de datos seleccionada, seleccionamos todas las tablas que queremos modelar.
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
1. - Luego de haber hecho la descarga, ingresamos y aparece esta pantalla, el cual ingresaremos al Menú Archivo, Importar, Diccionario de Datos
2.- Luego se abre un Asistente de Conexión
3.- Si eres nuevo, Le haces Click en el botón Agregar. y se muestra la siguiente pantalla, donde:
Nombre de Conexion: "Cualquier nombre deseable"
Usuario: "Por defecto system o un usuario que hayas creado en oracle"
Contraseña: "La clave del usuario ingresado anteriormente"
SID: "XE es por defecto pero si hayas creado un esquema o base de datos le colocas el nombre"
Después, hace click en el Botón Guardar y luego Conectar
Se va actualizar la pantalla inicial con los usuario registrados hasta el momento, seleccionamos uno de ellos y Damos click en el Botón Siguiente
Aparece una pantalla con todos los esquemas/usuarios o base de datos creados, seleccionamos el que deseamos modelar y damos click en el botón Siguiente
Aparece una pantalla con la lista de tablas que tiene la base de datos seleccionada, seleccionamos todas las tablas que queremos modelar.
Luego, Click en Terminar
Y aparece nuestro modelado que tanto se buscaba. Al inicio le aparecerá DESORDENADO, tendrá que ordenarlo uno por uno.
Etiquetas:
ORACLE,
SQL DEVELOPER
Ubicación:
San Martin de Porres, Perú
Conectar Erwin con Oracle 11g
Recuerda que: Para Migrar tu modelado, tiene que estar en forma FÍSICA, de otra forma no aparecerá las opciones más adelante.
1.- Una vez diseñado tu base de datos en Erwin, hacemos click en el menú Tools/ Forward Engineer/ Schema Generation.
2.- Aparece la siguiente Pantalla
Aquí, encontramos dos opciones.
Ahora Si elegimos la opción 2, Presionamos el botón Generate...
En esta pantalla, Se ingresa el usuario (system) la contraseña (la que ingresaste al instalar oracle) y en cuadro, en el campo blanco debajo de Value, colocas el esquema que por Default es ORCL, en este caso yo le puse SIR porque había creado una base de datos o esquema anteriormente con ese nombre.
1.- Una vez diseñado tu base de datos en Erwin, hacemos click en el menú Tools/ Forward Engineer/ Schema Generation.
2.- Aparece la siguiente Pantalla
Aquí, encontramos dos opciones.
- Hacer una vista previa del Codigo o Script de todas las tablas para luego copiar y pegar
- Si no, Generarlo directamente en Oracle, conectado a su base de datos.
Ahora Si elegimos la opción 2, Presionamos el botón Generate...
En esta pantalla, Se ingresa el usuario (system) la contraseña (la que ingresaste al instalar oracle) y en cuadro, en el campo blanco debajo de Value, colocas el esquema que por Default es ORCL, en este caso yo le puse SIR porque había creado una base de datos o esquema anteriormente con ese nombre.
Suscribirse a:
Comentarios (Atom)

















