rp-basic2015 v3.0.0.1 Sistema de registro de pacientes gratuito.

Buenas !!

ya esta disponible para la descarga la versión 3.0.0.1 de rp-basic ,

rp-basic  ---> Es un programa para registro de pacientes y turnos sencillo pensado para un consultorio , , ingresa a http://mybrainfree.blogspot.com.ar/p/registro-de-paciente.html
donde podrás ver mas detalles del programa y descargarlo Gratis !!.


RP-Basic -programa para registro de pacientes

Funcion para validar Fechas , en Visual Basic (Visual estudio 2010)



La función toma un string y verifica si es una fecha , en caso positivo devuelve true, en casos negativos False .


Public Function Esfecha(Fecha As String)
        Dim cadena As Date
        If Fecha = "" Then
            Return False
        End If
        Try
            cadena = CDate(Fecha)
            If Not IsDate(cadena) Then
                Return False
            End If
        Catch ex As Exception
            Return False
        End Try

        Return True
    End Function

SQL Server Function - Convertir Bytes en KB, MB, GB, TB, PB o EB en un formato de salida "humano" que sea mas entendible.

Buenas   !!

Estaba haciendo una aplicación que escanea archivos del pc y guarda sus datos en sql server , uno de los datos importantes que guarda en el tamaño , al dato lo guardo en bytes , como se ve en el siguiente gráfico

armando la vista :









con lo cual me había  surgido el tema de poder hacer una vista en sql server que me mostrara los detalles de los archivos pero que el tamaño pudiera verse en unidades mas "humanas" 

buscando en internet encontré esta función: http://myitforum.com/cs2/blogs/jnelson/archive/2008/01/11/111351.aspx

a la cual le corregi el "after por el "Create" y la ejecute , se creo la función sin ningún problema .
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      Number2 (John Nelson) - http://number2blog.com
-- Create date: 01-10-2006
-- Modified:    09-04-2008 - Added ZB, YB, BB, GeopBytes and allow larger input numbers
-- Description: Format bytes as largest unit (KB, MB, GB, TB, PB, EB, ZB, YB, BB, Geopbytes)
--              Will take any unit of measurement as input (bytes,
--              KB, MB, GB, TB, PB, EB, ZB, YB, BB, Geopbytes) and converts them first to
--              bytes, then formats that as the largest whole UOM in
--              a human readable format.  1024MB becomes 1.00GB, 0.5GB
--              becomes 512MB, etc.
-- INPUT: @InputNumber - Decimal(38,2)
-- =============================================


Create FUNCTION [dbo].[udf_FormatBytes]
(
   @InputNumber   DECIMAL(38,7),
   @InputUOM      VARCHAR(5) = 'Bytes'
)
RETURNS VARCHAR(20)
WITH SCHEMABINDING
AS
BEGIN
   -- Declare the return variable here
   DECLARE @Output VARCHAR(48)
   DECLARE @Prefix MONEY
   DECLARE @Suffix VARCHAR(6)
   DECLARE @Multiplier DECIMAL(38,2)
   DECLARE @Bytes  DECIMAL(38,2)

   SELECT @Multiplier =
      CASE @InputUOM
         WHEN 'Bytes'         THEN 1
         WHEN 'Byte'          THEN 1
         WHEN 'B'             THEN 1
         WHEN 'Kilobytes'     THEN 1024
         WHEN 'Kilobyte'      THEN 1024
         WHEN 'KB'            THEN 1024
         WHEN 'Megabytes'     THEN 1048576
         WHEN 'Megabyte'      THEN 1048576
         WHEN 'MB'            THEN 1048576
         WHEN 'Gigabytes'     THEN 1073741824
         WHEN 'Gigabyte'      THEN 1073741824
         WHEN 'GB'            THEN 1073741824
         WHEN 'Terabytes'     THEN 1099511627776
         WHEN 'Terabyte'      THEN 1099511627776
         WHEN 'TB'            THEN 1099511627776
         WHEN 'Petabytes'     THEN 1125899906842624
         WHEN 'Petabyte'      THEN 1125899906842624
         WHEN 'PB'            THEN 1125899906842624
         WHEN 'Exabytes'      THEN 1152921504606846976
         WHEN 'Exabyte'       THEN 1152921504606846976
         WHEN 'EB'            THEN 1152921504606846976
         WHEN 'Zettabytes'    THEN 1180591620717411303424
         WHEN 'Zettabyte'     THEN 1180591620717411303424
         WHEN 'ZB'            THEN 1180591620717411303424
         WHEN 'Yottabytes'    THEN 1208925819614629174706176
         WHEN 'Yottabyte'     THEN 1208925819614629174706176
         WHEN 'YB'            THEN 1208925819614629174706176
         WHEN 'Brontobytes'   THEN 1237940039285380274899124224
         WHEN 'Brontobyte'    THEN 1237940039285380274899124224
         WHEN 'BB'            THEN 1237940039285380274899124224
         WHEN 'Geopbytes'     THEN 1267650600228229401496703205376
         WHEN 'Geopbyte'      THEN 1267650600228229401496703205376
      END

   SELECT @Bytes = @InputNumber*@Multiplier

   SELECT @Prefix =
      CASE
         WHEN ABS(@Bytes) < 1024 THEN @Bytes --bytes
         WHEN ABS(@Bytes) < 1048576 THEN (@Bytes/1024) --kb
         WHEN ABS(@Bytes) < 1073741824 THEN (@Bytes/1048576) --mb
         WHEN ABS(@Bytes) < 1099511627776 THEN (@Bytes/1073741824) --gb
         WHEN ABS(@Bytes) < 1125899906842624 THEN (@Bytes/1099511627776) --tb
         WHEN ABS(@Bytes) < 1152921504606846976 THEN (@Bytes/1125899906842624) --pb
         WHEN ABS(@Bytes) < 1180591620717411303424 THEN (@Bytes/1152921504606846976) --eb
         WHEN ABS(@Bytes) < 1208925819614629174706176 THEN (@Bytes/1180591620717411303424) --zb
         WHEN ABS(@Bytes) < 1237940039285380274899124224 THEN (@Bytes/1208925819614629174706176) --yb
         WHEN ABS(@Bytes) < 1267650600228229401496703205376 THEN (@Bytes/1237940039285380274899124224) --bb
         ELSE (@Bytes/1267650600228229401496703205376) --geopbytes
      END,
          @Suffix =
     CASE
         WHEN ABS(@Bytes) < 1024 THEN ' Bytes'
         WHEN ABS(@Bytes) < 1048576 THEN ' KB'
         WHEN ABS(@Bytes) < 1073741824 THEN ' MB'
         WHEN ABS(@Bytes) < 1099511627776 THEN ' GB'
         WHEN ABS(@Bytes) < 1125899906842624 THEN ' TB'
         WHEN ABS(@Bytes) < 1152921504606846976 THEN ' PB'
         WHEN ABS(@Bytes) < 1180591620717411303424 THEN ' EB'       
         WHEN ABS(@Bytes) < 1208925819614629174706176 THEN ' ZB'       
         WHEN ABS(@Bytes) < 1237940039285380274899124224 THEN ' YB'       
         WHEN ABS(@Bytes) < 1267650600228229401496703205376 THEN ' BB'       
         ELSE ' Geopbytes'
      END

   -- Return the result of the function
   SELECT @Output = CAST(@Prefix AS VARCHAR(39)) + @Suffix
   RETURN @Output

END

GO


Luego comprobé el funcionamiento en unas consultas de pruebas 





Por ultimo no me quedo mas que modificar la vista que ya tenia creada modificando el campo tamaño para formatear usando la funcion recien creada .




 Dando como resultado :




Bueno , espero les sea útil , ya saben , si gusto , compartan la información !:

Saludos . 

Adrian Seimandi