Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Creando Un Inventario Para Los Productos De Limpieza. :-D
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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).
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 14 Septiembre 2017, 14:27; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Creando Un Inventario Para Los Productos De Limpieza. :-D 
 
muy bueno Shell, ya pensare algún lugar donde aplicarlo...

saludos
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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?)
 




===================
No podemos regresar
 
última edición por shordi el Viernes, 15 Septiembre 2017, 19:02; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Creando Un Inventario Para Los Productos De Limpieza. :-D 
 
Shell, efectivamente, me parece que shordi es anti dark  

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...    
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Creando Rutas Desde Un Movil Con Gps Para ... jsbsan Aplicaciones/Fragmentos de Código 1 Domingo, 22 Julio 2012, 20:00 Ver último mensaje
misael
No hay nuevos mensajes Creando Una Aplicación.Metodos Para El Co... Shell General 4 Sabado, 15 Diciembre 2012, 00:35 Ver último mensaje
Shell
No hay nuevos mensajes Por Seguridad Del Proyecto Y Una Limpieza ... Shell General 1 Jueves, 06 Diciembre 2018, 14:59 Ver último mensaje
Shell
No hay nuevos mensajes Creando Un IDE Para Programar En GO (golan... tincho Aplicaciones/Fragmentos de Código 4 Domingo, 20 Octobre 2019, 15:00 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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
No puede descargar archivos
No puede publicar eventos en el calendario