Creando Un Inventario Para Los Productos De Limpieza. :-D


Ir a la página 1, 2  Siguiente

Objetivo: Creando Un Inventario Para Los Productos De Limpieza. :-D
Buenos días!.

En el trabajo a veces tengo que llevar el control de los productos de limpieza. No es que sea algo complicado, pero
si te falta uno, corre al super y el más cercano te clavará a la primera de cambio.

Con motivo de recordar y hacer algo sencillo. La idea es crear una especie de componente o algo parecido a eso, personalizado,
donde se muestra el nombre del producto o su imagen, su número, poder añadir y eliminar existencias.

La primera vez cree dos formularios. Acabé insertando el formulario con el control personalizado en cada parte de un control
donde se va mostrando el inventario.

Fijaros:

Private unformulario As FormControlInventario
Private y As Integer

Public Sub BtnAddControles_Click()


unformulario = New FormControlInventario(ScrHoja, txtNomProducto.Text)
With unformulario
.Y = y
End With
y += unformulario.H

End


Si vemos el otro ejemplo, el resultado visualmente puede parecer lo mismo.
Este es con el formulario.

insertandounformularioencontrol

Decir que tan solo es un comienzo, ya que no dispongo de mucho tiempo.
Y al final decidí hacerlo con una clase.

Fmain:

Private y As Integer
Private micontrolinventario As ControlInventario

Public Sub Form_Open()


End

Public Sub BtnAddControles_Click()


micontrolinventario = New ControlInventario(ScrHoja, txtNomProducto.Text)
With micontrolinventario
.Y = y
End With
y += micontrolinventario.H

End


La Clase:

Inherits HBox

Private hnombreproducto As String
Property nombreproducto As String

Private lbnomproducto As Label
Private lcdcontador As LCDLabel
Private grupobotones As New Button[]

Public Sub _new(Optional nombre As String)
Dim unboton As Button

'Dimensiona el contenedor principal
With Me
.Background = Color.Cyan
.Height = 35
.Spacing = True
.W = 427
End With

'Crea la etiqueta
lbnomproducto = New Label(Me)
With lbnomproducto
.Alignment = Align.Center
.Background = Color.White
.Border = Border.Plain
'.Expand = True
.H = 28
.W = 168
End With

'Asignar nombre del producto o nombre por defecto
If Len(nombre) = 0 Then
hnombreproducto = "Producto por defecto"
Else
hnombreproducto = nombre
End If

lbnomproducto.Text = hnombreproducto

'Crea la etiqueta lcd
lcdcontador = New LCDLabel(Me)
With lcdcontador
.Alignment = Align.Center
.H = 28
.w = 77
.Text = "0"
End With

'Crea el botón de sumar
unboton = New Button(Me) As "Botones"
With unboton
.Tag = "sumar"
.H = 30
.W = 70
.Picture = Picture["icon:/medium/add"]
End With
grupobotones.Add(unboton)

'Crea el botón de restar
unboton = New Button(Me) As "Botones"
With unboton
.Tag = "restar"
.H = 30
.W = 70
.Picture = Picture["icon:/medium/remove"]
End With
grupobotones.Add(unboton)

End

Public Sub Botones_Click()

Select Case Last.tag
Case "sumar"
lcdcontador.Text = CInt(lcdcontador.Text) + 1
Case "restar"
If CInt(lcdcontador.Text) > 0 Then
lcdcontador.Text = CInt(lcdcontador.Text) - 1
Else
lcdcontador.Text = "0"
Endif
End Select

End

Private Function nombreproducto_Read() As String

Return hnombreproducto

End

Private Sub nombreproducto_Write(Value As String)

hnombreproducto = Value

End


Y esta fue la salida:

inventariolimpieza

Fue lo primero que se me ocurrió para comenzar.

Aquí os subo el código. Le faltan muchas cosas, pero es el comienzo.

Saludos de Mr Shell. ( Es que no puedo poner el calvo de la limpieza).


ControlParaInventarioClases.tar.gz
Descripción:  
Descargar
Nombre del archivo: ControlParaInventarioClases.tar.gz
Tamaño: 13.82 KB
Descargado: 55 veces
ControlParaInventarioClases.tar.gz
Descripción:  
Descargar
Nombre del archivo: ControlParaInventarioClases.tar.gz
Tamaño: 13.82 KB
Descargado: 55 veces
ControlParaInventarioClases.tar.gz
Descripción:  
Descargar
Nombre del archivo: ControlParaInventarioClases.tar.gz
Tamaño: 13.82 KB
Descargado: 55 veces

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Shell:

¿como tienes pensado guardar los datos?
¿añadirias un método a la clase FormControlInventario para guardarlos y luego leerlos?
¿usarias gb.setting, para guardar la información o base de datos?

Podias añadir una propiedad a la clase, para guardar el dato del numero de productos, parece que usas un lcdlabel para mostrar (y tienes almacenada) esa información.

También un método para cuando se modifice el valor de número de productos a la baja, si compruebe un stock minimo, para que si se baja de este se ponga rojo el hbox, para indicar que tienes que hacer una compra...

Saludos

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Julio:

Citar:

¿como tienes pensado guardar los datos?
¿añadirias un método a la clase FormControlInventario para guardarlos y luego leerlos?

Si. Ahora está un poco verde. Pero lo principal va funcionando.

¿usarias gb.setting, para guardar la información o base de datos?


Como los productos de limpieza no son tantos es preferible usar gb.setting que complicarse con una base de datos.
La idea es que sea muy visual y rápido.

Citar:

Podias añadir una propiedad a la clase, para guardar el dato del numero de productos, parece que usas un lcdlabel para mostrar (y tienes almacenada) esa información.


Si es buena idea. Es que llevo mucho tiempo sin tocar gambas y tengo que ir refrescando conceptos poco a poco. Este ejemplo
es en parte un intento de esto.

Por ejemplo. No recordaba como se podía hacer algo parecido a la propiedad grupo de controles desde código.
Un array y un manejador común. Con eso, estuve modificando un ejemplo anterior que deje colgado en su día, lo acabé
y luego lo apliqué a este.

Citar:

También un método para cuando se modifice el valor de número de productos a la baja, si compruebe un stock minimo, para que si se baja de este se ponga rojo el hbox, para indicar que tienes que hacer una compra...


Eso quedaría muy bien y es una forma de ver rápidamente algo.

Gracias. Espero poder continuarlo de vez de en cuando.

Saludos

última edición por Shell el Jueves, 14 Septiembre 2017, 13:27; editado 1 vez
Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
muy bueno Shell, ya pensare algún lugar donde aplicarlo...

saludos

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Citar:

También un método para cuando se modifice el valor de número de productos a la baja, si compruebe un stock minimo, para que si se baja de este se ponga rojo el hbox, para indicar que tienes que hacer una compra...


Este código parece funcional, tendré que optimizarlo si se puede.
La condición se comprueba y luego se comprueba el valor del texto del LCD para asignar un color al Hbox

Public Sub Botones_Click()

'Tomar una decisión en caso de que sea sumar o restar
Select Case Last.tag
Case "sumar"
lcdcontador.Text = CInt(lcdcontador.Text) + 1
Case "restar"
lcdcontador.Text = CInt(lcdcontador.Text) - 1
End Select

'Según el valor del lcd, el color del Hbox cambia
If CInt(lcdcontador.Text) > 0 Then
Me.Background = Color.Cyan
Else If CInt(lcdcontador.Text) <= 0 Then
Me.Background = Color.Red
lcdcontador.Text = 0
Endif

End


También hay que entender de que si se crea un producto de limpieza. Al menos debe tener el valor de uno ya que es el primero.
Existe una unidad como mínimo.

Cambiando en la clase el código de la creación del LCD:
....
'Crea la etiqueta lcd
lcdcontador = New LCDLabel(Me)
With lcdcontador
.Alignment = Align.Center
.H = 28
.w = 77
.Text = "1"
End With
....


Saludos

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Otra posibilidad:

Public Sub Botones_Click()

Dim valorlcd As Integer

valorlcd = CInt(lcdcontador.text)

Select Case Last.tag
Case "sumar"
valorlcd += 1
Me.Background = Color.Cyan
Case "restar"
If valorlcd = 0 Then
valorlcd = 0
Else
valorlcd -= 1
Endif
End Select
If valorlcd = 0 Then Me.Background = Color.Red
lcdcontador.Text = valorlcd

End


Saludos

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
...y si quieres más de uno de algo ¿tienes que estar haciendo click-click-click-click?

Por otra parte (ahí va una malvadez ) ese color azul es la segunda cosa más horrible que he visto en este foro...


(Con todo el cariño, ¿Eh?)

última edición por shordi el Viernes, 15 Septiembre 2017, 18:02; editado 1 vez
Perfil MP  
Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Shordi:

Citar:

...y si quieres más de uno de algo ¿tienes que estar haciendo click-click-click-click?


Que se gasta el ratón.
Eso podría ser definible en el constructor.

Citar:

Por otra parte (ahí va una malvadez ) ese color azul es la segunda cosa más horrible que he visto en este foro...
(Con todo el cariño, ¿Eh?)

Pues claro.

Pero si eso fue por poner un color claro.
Aleee, como eres con los colores. Ya recuerdo el día de la caja de pc que era blanca ( no es que fuera, era aluminio, las he visto blanca (hospital) ).

A ver, ¿ cual pondrías ?. Oscuro no, desde luego y recuerda que cuando no hay unidades es rojo.
Ahora no te gustará el rojo cantoso.

Como siempre dicho con buen humor.

Realmente Shordi, los colores no creo que sea lo que más preocupe a la hora de una mini-aplicación que no está
aun completa. Eso son pequeños detalles.

Saludos

Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
Shell, efectivamente, me parece que shordi es anti dark

Saludos.

Perfil MP  
Objetivo: Re: Creando Un Inventario Para Los Productos De Limpieza. :-D
viejo, sólo viejo... aunque esperaba que alguien preguntase cuál es la primera cosa más horrible...

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 8.7965s (PHP: -95% SQL: 195%)
Consultas SQL: 49 - Debug off - GZIP Activado