miércoles, 26 de diciembre de 2012

Aplicación de gestión desarrollada en Velneo

velneo
Hola amigos, hoy os dejo un regalito de Navidad, un programa íntegramente desarrollado en velneo, funcional y con infinidad de informes, con muchas posibilidades de modificación. Aquí tenéis el vínculo.
Sólo tiene tres archivos, vrunner.exe, gestión.vam y gestion.ico.
Se instala en la carpeta c:\avsoft y al iniciar generará la base de datos, con los archivos auxiliares por defecto, tipos de iva, familia, series, etc.

Descarga setup.exe



programa de gestión velneo
Al iniciar la aplicación os pedirá el usuario y la clave.

Usuario: SUPERVISOR.
Clave: 1234



programa de gestión velneo
Ahora deberemos asignar ejercicio, pulsando sobre el botón que hay en el campo "Ejercicio" y seleccionando "Crear" del menú contextual. Daremos de alta el ejercicio 2012.




programa de gestión velneo
Ahora ya entramos en el menú principal, tenemos un menú a la izquierda y según la selección podremos entrar en los distintos sub-menús.









programa de gestión velneo
Vamos a realizar una modificación sobre los tipos de iva en tablas auxiliares. 
Seleccionamos el menú "Tablas auxiliares".
Opción "A. Tipos de Iva"









programa de gestión velneo
Aparece una rejilla con todos los tipos de iva que podemos utilizar. 

Para modificar un registro bastará con pulsar doble click sobre el registro que vamos a modificar y abrirá la pantalla de edición de registros.

Para crear uno nuevo doble click sobre un registro vacio, o la tecla insert.

Para eliminar un registro doble click sobre el mismos y en la barra de acciones, abajo la opción "Opciones" y "Eliminar" pedirá la confirmación y eliminará el registro.


programa de gestión velneo
Aquí tenemos una muestra de como es el formulario para la modificación de registros. 
Para grabar el registro que estamos modificando o dando de alta deberemos pulsar sobre el botoón "Aceptar (F12)", F12 es la tecla rápida, pulsando F12 realizará la misma acción que pulsando sobre el botón "Aceptar"



Espero que lo veáis interesante.





Esta versión del programa es de prueba.

domingo, 9 de diciembre de 2012

Error de acceso a usuarios anonymous en vsftpd

vsftpdHoy me he encontrado con un problema al intentar conectar al servidor vsftpd desde un usuario anónimo "anonymous", el error es "500 OOPS: vsftpd: refusing to run with writable anonymous root"



Solución al problema, asignar los permisos adecuados a cada carpeta

Para los usuarios anónimos he creado la siguiente carpeta:
/srv/ftp/anonimo

la carpeta anonimo deberá tener permisos para todos los usuarios 


chmod 777 /srv/ftp/anonimo



la carpeta ftp deberá tener denegados los permisos de escritura a todos los usuario
chmod a-w /srv/ftp

solo nos queda reiniciar el servicio con
sudo service vsftpd restart



miércoles, 24 de octubre de 2012

Eliminar el primer registro de una tabla

sqlserver

¿Cómo eliminar el primer registro de una tabla con SQLServer?









Hola amigos, hoy voy a explicar como eliminar el primer registro de una tabla con una sencilla instrucción SQL.

He aquí la maravillosa instrucción:

DELETE FROM ARTICULOS2 WHERE ID = (SELECT TOP 1 ID FROM ARTICULOS2);

Creo que no hace falta explicar nada, pero por si acaso.

ARTICULOS2 es la tabla de la que queremos prescindir del primer registro.

ID es el PrimaryKey de la tabla, deberá ser un campo único, en mi caso he cogido el autonumérico de la tabla, con este no fallo, puede ser la referencia del artículo, el Nif del cliente, etc.

Hoy el post ha sido corto, pero pronto habrá más y mejor.

martes, 16 de octubre de 2012

¿Cómo crear una imagen de un DVD en Windows 7?

Hoy me he encontrado con el problema de realizar una imagen de un DVD en Windows 7, ya que el sistema operativo tiene una utilidad para grabar de una imagen a un dvd o cd-rom sin tener instalado ningún programa, creí que también se podría generar una imagen en el disco duro para después grabarla a un DVD vacío.

Hay muchos programas en internet, pero el que os voy a indicar es muy sencillo de utilizar, ya que se integra con el explorador de Windows.

El programa para realizar imágenes de un DVD se llama iso-recorder. Una vez seleccionada la descarga, 32 o 64 bits, descargamos el programa y la instalación es muy sencilla, doble click, siguiente, aceptar, ...






iso recorderUna vez instalado el programa ISO-RECORDER V3, seleccionando la unidad de DVD pulsando con el botón derecho sobre la unidad, aparecerá una nueva opción en el menú contextual "Create image from CD/DVD", desde aquí podremos crear una nueva imagen desde un DVD o CD en un disco local.

iso recorder
Aparece una pantalla donde nos indica el origen de la imagen, en nuestro caso la unidad D: el DVD y el destino, por defecto cogerá la carpeta de documentos del usuario actual.
iso recorder
 Al pulsar sobre el botón "Next" empieza la grabación de la imagen.











iso recorder
 Al finalizar la grabación se activará el botón "Finish", pulsamos sobre el y ya tenemos la imagen de nuestro DVD en nuestro disco local C:










iso recorderAhora para grabar la imagen creada en los pasos anteriores la seleccionaremos con el botón derecho del ratón, para que aparezca el menú contextual de la imagen de la derecha, pulsaremos sobre la opción "Copy image to CD/DVD" con el botón izquierdo del ratón. Antes de realizar todo esto deberemos  introducir en el DVD un DVD en blanco.
iso recorder

Nos indica "Source" el fichero imagen y "Recorder" la unidad DVD, pulsamos sobre el botón "Next" y ya tenemos una copia idéntica al DVD original.









Aquí finaliza este pequeño tutorial, espero que a alguien le sirva de ayuda.

viernes, 12 de octubre de 2012

Inhabilitar los botones de un formulario

vb.net



Hoy voy a intentar explicar como inhabilitar los botones de un formulario de visual basic .net mediante una línea de código.












Con esta sencilla instrucción evitaremos que el usuario cierre el formulario sin introducir los datos de validación, ya que si pulsa sobre el botón cerrar finalizaremos la aplicación, y si pulsa sobre el botón aceptar validaremos los datos de entrada, comprobando que el usuario y la contraseña existan en la base de datos.

   Private Sub FrmLogin_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.ControlBox = False
    End Sub



El resultado será este:

visual basic .net loginComo podemos observar en la imagen, no aparecen los botones de minimizar, maximizar y cerrar, por lo tanto obligamos al usuario a utilizar los botones creados por el programador para la aplicación, tendremos control absoluto sobre lo que puede hacer o no el usuario.





Firebird configurar el acceso a datos desde vb.net

Hoy voy a escribir sobre como configurar el acceso a datos Firebird nativo desde vb.net 2010, al igual que podemos acceder a MS SQL, Access o MySql, también podemos acceder a bases de datos Firebird desde el Explorador de servidores, conexiones de datos y Orígenes de datos.

Necesitaremos dos ficheros descargados desde la pagina oficial de Firebird


Firebird ADO.NET Data Provider downloads


DDEX Provider for Visual Studio downloads





Instalación

Firebird ADO.NET Data provider



Una vez instalado el programa Firebird ADO.NET, siguiendo las instrucciones, aceptar, siguiente, finalizar, ...
firebird acceso vb.netDesde la consola de Visual Studio 2010 buscamos la carpeta "C:\Program Files (x86)\FirebirdClient"



firebird acceso vb.net
Ejecutaremos el siguiente comando 
"gacutil /i FirebirdSql.Data.FirebirdClient.dll"


firebird acceso vb.net
Si el comando resultó satisfactorio ejecutaremos el siguiente: "gacutil /l FirebirdSql.Data.FirebirdClient"




Instalación.

DDEX Provider for Visual Studio downloads

Descomprimiremos el archivo descargado en la carpeta "c:\fb," 
¡¡¡ Ojo !!! esta carpeta no se puede borrar.


Ahora tenemos que modificar el archivo "c:\windows\Microsoft.NET\Framework\v4.0.30319\machine.config" Deberemos modificar la versión de 32 bits, que está en la carpeta Framework sin 64, antes de realizar cualquier modificación sobre el fichero es conveniente crear una copia de seguridad del mismo.
firebird acceso vb.net





Dentro de este fichero hay que añadir dos líneas que voy a poner a continuación.


La primera irá dentro de la etiqueta "configSections"

<configSections>
      <section name="firebirdsql.data.firebirdclient"             type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0,     Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

La segunda irá dentro de "DbProviderFactories"



<DbProviderFactories>
 <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.5.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
</DbProviderFactories>

Modificación del registro.


Ahora solo queda modificar el registro y a funcionar, para ello accederemos a un fichero dentro de la carpeta "c:\fb\reg_files\VS2010\FirebirdDDEXProvider64.reg"
Cambiaremos la línea donde pone
"CodeBase"="C:%Path%\\FirebirdSql.VisualStudio.DataTools.dll" por 
"CodeBase"="C:\\Firebird\\FirebirdSql.VisualStudio.DataTools.dll"

Ejecutamos el fichero "c:\fb\reg_files\VS2010\FirebirdDDEXProvider64.reg"

Podremos comprobar que a partir de ahora es mucho más sencillo crear una aplicación de gestión utilizando Firebird como base de datos y VS.net como plataforma de desarrollo.

firebird cambio origen datos
Cambiando el origen de la conexión podremos comprobar como aparece la conexión para Firebird Data Source.













firebird agregar conexión

Podemos agregar la conexión utilizando los parámetros de nuestra base de datos Firebird


firebird conexion correcta
La conexión de prueba se realizó correctamente.











Aquí finaliza este tutorial.

lunes, 1 de octubre de 2012

Relaciones uno a muchos en Firebird

firebirdVoy a explicar como realizar una relación de uno a muchos en Firebird, Foreign Key.


Dispondremos del programa SQL manager lite for InterBase and Firebird, ya que todos los procesos que vamos a ver en este post están realizadas sobre dicho programa.

firebird relacionUna vez dentro del programa, tendremos por lo menos dos tablas, seleccionaremos la tabla que tendrá la relación muchos.


firebird relacion
En la zona derecha del programa seleccionamos la ficha "Constraints" y dentro de esta ficha seleccionamos la ficha "Foreign Keys".






firebird relacion
Por último seleccionaremos el campo que vamos a relacionar con la tabla foránea, en este caso el campo se llama "CONCEPTO", en el campo "Foreign Table" seleccionamos la tabla "CONCEPTO",  dentro de ésta tabla seleccionamos el campo clave primaria "ID". Finalizaremos el proceso pulsando sobre el botón "Ok" y después sobre el botón "Compile".








sábado, 29 de septiembre de 2012

Firebird tipo de datos Boolean, ¡¡¡ El vídeo !!!

Voy a intentar explicar cómo podemos definir un tipo de datos boolean,  con los valores (True, False), o en este caso (1, 0).


Dispondremos del programa SQL manager lite for InterBase and Firebird, ya que todos los procesos que vamos a ver en este post están realizadas sobre dicho programa.

Para empezar tendremos creada una base de datos, en la que vamos a introducir un nuevo domain de tipo boolean.

Para ello pulsaremos botón derecho sobre el objeto "Domain" y "New Domain"

firebird domain boolean


En la siguiente pantalla le daremos la definición del campo:
Nombre: "BOOLEAN"
Tipo: "CHAR"
Longitud: "1"


firebird domain boolean

En la pestaña "Check" le daremos el valor "VALUE IN ('0','1')", los dos posibles valores para el dominio.


firebird domain boolean
Comprobamos que en el objeto "Domains" se ha creado el tipo de dominio "BOOLEAN", bien ya estamos preparados para utilizar éste tipo de dato.
firebird domain boolean




martes, 25 de septiembre de 2012

Facturas duplicadas en Facturaplus

facturaplus
Hoy me he encontrado con un problema con el programa Facturaplus. 
Cuando he agrupado un albarán en una factura, resulta que ha duplicado la factura, junto con otra que ya existía.
He borrado las dos facturas, con el mismo  número de factura, he revisado los contadores, he vuelto a crear la factura original, la que en principio estaba bien, vuelvo a entrar en los contadores, pongo el número de factura uno más de la última factura que tengo en la aplicación y cuando vuelvo a facturar el albarán, para mi sorpresa vuelve a duplicar la misma factura que me duplicó en el proceso anterior.

Solución:

Antes de hacer nada realizar una copia de seguridad, por lo que pueda pasar.

1.- Coger el fichero huecos.dbf de la carpeta de la empresa que nos está dando el error y lo renombramos, por ejemplo huecos.bak. La carpeta vendrá a ser algo así "X:\FactuE\DBFxx", donde X es la unidad donde está instalado el Facturaplus y xx es el código de la empresa en la que tenemos el problema.

2.- Coger el fichero huecos.dbf de la carpeta .\DBF y copiarlo en la carpeta de la empresa que nos está dando el error. Facturaplus crea las carpetas con el prefijo DBF y le añade el código de la empresa, por lo tanto si estamos trabajando en la empresa 12 la carpeta será .\DBF12.

3.- Organizar ficheros.

Con esto tenemos solucionado el problema de las facturas duplicadas.

Hasta pronto.

sábado, 22 de septiembre de 2012

Validar entrada numérica en DataGridView

vb.net
Voy a explicar cómo conseguí validar, en una columna de un DataGridView en vb.net 2010, que el campo introducido sea numérico, incluyendo la coma decimal.

Aquí os dejo el código:

    '----------------------------------------------------------------------------------
    '
    '
    ' INICIO RUTINA PARA VALIDAR CAMPOS NUMÉRICOS EN DATAGRIDVIEW
    '
    '
    '----------------------------------------------------------------------------------
    Private WithEvents cellTextBox As DataGridViewTextBoxEditingControl

    Private Sub cellTextBox_KeyDown( _
        ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles cellTextBox.KeyDown

    End Sub

    Private Sub cellTextBox_KeyPress( _
        ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cellTextBox.KeyPress
        e.KeyChar = ValidarCampoNumerico(e.KeyChar, cellTextBox.Text)
    End Sub

    Private Sub cellTextBox_KeyUp( _
        ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles cellTextBox.KeyUp

    End Sub

    Private Sub DataGridView1_EditingControlShowing( _
                    ByVal sender As Object, _
                    ByVal e As DataGridViewEditingControlShowingEventArgs) _
                    Handles ReparacionesdetDataGridView.EditingControlShowing

        ' Este evento se producirá cuando la celda pasa a modo de edición.

        ' Referenciamos el control DataGridViewTextBoxEditingControl actual.
        '
        cellTextBox = TryCast(e.Control, DataGridViewTextBoxEditingControl)

        ' Obtenemos el estilo de la celda actual
        '
        Dim style As DataGridViewCellStyle = e.CellStyle

        ' Mientras se edita la celda, aumentaremos la fuente
        ' y rellenaremos el color de fondo de la celda actual.
        '
        With style
            .Font = New Font(style.Font.FontFamily, 10, FontStyle.Bold)
            .BackColor = Color.Beige
        End With

    End Sub
    '----------------------------------------------------------------------------------
    '
    '
    ' FIN RUTINA PARA VALIDAR CAMPOS NUMÉRICOS EN DATAGRIDVIEW
    '
    '
    '----------------------------------------------------------------------------------

El resultado será el de la imagen.

datagridview



miércoles, 19 de septiembre de 2012

Problema con Maestro-Detalle vb.net y MySql











Hoy voy a comentar un error que suele dar vb.net con la base de datos MySql en los formularios con Maestro-Detalle. El error lo da al eliminar algún registro de la tabla Maestro, grabar en la base de datos y después intentar dar de alta un nuevo registro en la misma tabla.

Vamos a intentar averiguar el porqué de este error.
Lo primero que vamos a ver es la estructura de las tablas afectadas en este error.

Tabla Detalle:

Relaciones de la tabla Detalle. Podemos observar que la relación es con la tabla "ReparacionesCab" con el campo "Id"

Tabla "ReparacionesCab". Campo "Id" Autoincremento

¿Por qué devuelve este error?
Básicamente es porque vb.net trabaja con los datos desconectados, es decir, cuando abres el formulario carga los datos de la base de datos en memoria, realiza todas las operaciones sobre la tabla en memoria y cuando le damos a grabar es cuando envía los datos a la base de datos, si la clave foránea está asignada a un valor auto numérico, cuando borramos un registro, en la base de datos se queda el hueco, este no lo volverá a utilizar MySql, pero en el DataSet de vb.net si que lo utilizará, con lo cual cuando grabamos el registro actualizará el campo auto numérico de la tabla generará el código que corresponda, dejando los huecos de los registros que borramos previamente, el detalle que tenía asignado un registro inicial, lo perderá y devolverá el error "Cannot add or update a child row: a foring key constraint fails".

¿Cómo solucionar este problema?
Aquí os dejo las sentencias SQL con sus respectivos comentarios.

-- ELIMINAR LA CLAVE FORÁNEA "FK_REPARACIONESDET_REPARACIONESCAB

ALTER TABLE `hl_20120614`.`reparacionesdet` DROP FOREIGN KEY `fk_ReparacionesDet_ReparacionesCab1` ;

-- CREAR NUEVO CAMPO CONTROLADO DESDE EL PROGRAMA "IdCab"

ALTER TABLE `hl_20120614`.`reparacionescab` ADD COLUMN `IdCab` INT NOT NULL  AFTER `Vehiculo`
, ADD UNIQUE INDEX `IdCab_UNIQUE` (`IdCab` ASC) ;

-- CREAR LA NUEVA RELACION DE LA TABLA DETALLE CON MAESTRO

ALTER TABLE `hl_20120614`.`reparacionesdet`
  ADD CONSTRAINT `fk_ReparacionesDet_Cab`
  FOREIGN KEY (`ReparacionesCab` )
  REFERENCES `hl_20120614`.`reparacionescab` (`IdCab` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
, ADD INDEX `fk_ReparacionesDet_Cab` (`ReparacionesCab` ASC) ;


Ahora sólo queda modificar el dataset en el programa vb.net, de forma que el campo "IdCab" será autonumérico, clave única, así será el programa vb.net el que controlará las actualizaciones del campo "IdCab". Quedará de la siguiente forma:

 





Un consejo: no useis campos autonuméricos para crear las relaciones, ya que más pronto o más tarde os dará error.

Datos personales

avjsite

elxopet.blogspot.com.es

elxopet.blogspot.com.es
banner elxopet.blogspot.com.es

Muchas gracias a tod@s