Primero que nada buenas noches, soy nuevo en ésta página y quería ir consultando un par de dudas que estoy teniendo, pero bueno vamos a empezar por la primera.
Soy un alumno de una escuela técnica realizando mi tercer año en informática (el ante último) y por medio de un conocido me solicitaron realizar un sistema a una empresa de aguadas (que se encarga de la venta de tanques de agua, bebederos y comederos para los animales, etc.) al cual yo me ofrecí con animos de aprender un poco más.
Una de las tantas dudas que tengo es "¿Cómo manejar precios para luego realizar el presupuesto y/o lista de materiales de una determinada Obra (sea un Tanque, un Bebedero, etc.)"
Lo que hice fue lo siguiente:
- Cree una base de datos la cual contenia Nombre del Producto,
Precio Costo,
Precio Lista,
Cantidad (Ej.: 1000), Unidad (Ej.: "Metros")
* Los marcados en cursiva son los que estan habilitados para la edición del usuario
- Cree una variable para cada registro, tipo de variable "MiClase" (todo esto realizado en un modulo)
Código:
Public Class MiClase
Private m_Producto As String
Public Property ProductoNombre() As String
Get
Return m_Producto
End Get
Set(ByVal value As String)
m_Producto = value
End Set
End Property
Private m_PrecioCosto As Single
Public Property PrecioCosto() As Single
Get
Return m_PrecioCosto
End Get
Set(ByVal value As Single)
m_PrecioCosto = value
End Set
End Property
Private m_PrecioLista As Single
Public Property PrecioLista() As Single
Get
Return m_PrecioLista
End Get
Set(ByVal value As Single)
m_PrecioLista = value
End Set
End Property
Private m_Cantidad As Single
Public Property Cantidad() As Single
Get
Return m_Cantidad
End Get
Set(ByVal value As Single)
m_Cantidad = value
End Set
End Property
Private m_Unidad As String
Public Property Unidad() As String
Get
Return m_Unidad
End Get
Set(ByVal value As String)
m_Unidad = value
End Set
End Property
End Class
Ej.:
Código:
Public Cemento As New MiClase
Public Arena As New MiClase
Public Piedra As New MiClase
Public MallaSima As New MiClase
Bueno, ahora si, mi procedimiento fue el siguiente y aquí es donde esta una de mis mayores dudas:
Al crear una variable para cada Registro, realice un procedimiento el cual recibia un ParramArray de Objetos "MiClase" de igual forma en la que estaban ordenados en la base de datos, así sea "Cemento" el primer registro de mi base de datos, la variable "Cemento" debia ser el primer parámetro en pasarse, asi se le asignaba un valor a las propiedades correspondientes. Ej:
Código:
Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CargarPrecios(Cemento,Arena,Piedra,MallaSima)
End Sub
Private Sub CargarPrecios(ByVal ParamArray Precio() As MiClase)
' Obtener origen de datos, en este caso la tabla del DataGrid
Dim dtPrecios as DataTable = CType(bsPrecios.DataSource, DataTable)
For I As Integer = 0 To Precio.Length - 1
With Precio(I)
' El "Item(0)" es el campo ID
.ProductoNombre = CType(dtTanque.Rows(I).Item(1), String)
.PrecioCosto = CType(dtTanque.Rows(I).Item(2), Single)
.PrecioLista = CType(dtTanque.Rows(I).Item(3),Single)
.Cantidad = CType(dtTanque.Rows(I).Item(4), Single)
.Unidad = CType(dtTanque.Rows(I).Item(5), String)
End With
Next
End Sub
Bueno por ahora quedemosnos con esto, cual creen que es la mejor forma de almacenar los precios para luego relacionarlos con la lista de materiales de dicha Obra?, espero que puedan ayudarme, por ahora solo lo dejare acá a ver si con esto se puede hacer algo, si necesitan que sea más especificos no duden en decirmelo, solamente quise dar un repaso rápido de mi problema y ver si esta información basta para entender y ayudarme a resolver el mismo.
Desde ya muchas gracias.