Visual Basic - Agregar un boton automaticamente

Life is soft - evento anual de software empresarial
   
Vista:

Agregar un boton automaticamente

Publicado por jaimico (21 intervenciones) el 16/02/2010 21:50:19
buenas, les explico mi problema. Estoy aciendo un modulo de facturacion, y tengo un boton donde le pregunta al usuario el codigo del producto y la cantidad del producto a facturar, ok ahora les pongo el codigo, la cosa es que yo quiero que cuando se termine las lineas de comando que rellenan las labels con la informacion me agregue otra linea con el mismo boton automaticamente, yo lo hize pero tengo que tener los botones ocultados y al final del comando poner Command5.Show y sucesivamente y ocultar los labels tambien. El problema es ese, que si el cliente quiero facturar 100 productos (ejemplo) no tenga yo que poner 100 botones, si no que el programa los vaya creando conforme termine cada linea.
Aqui va el codigo

'el primer boton que pregunta sobre el codigo y la cantidad a facturar'
Private Sub Command3_Click()
Dim t, c As Integer
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Label8.Visible = True
t = Val(InputBox("Introduce el Codigo del Producto", "Búsqueda de Productos"))
c = Val(InputBox("Introduce la cantidad a facturar", "Facturacion de Productos"))
Data1.RecordSource = "select DESCRIPCION,COSTO from productos where CODIGO=" & t & ""
Data1.Refresh
Label4 = t
Label5 = Data1.Recordset!DESCRIPCION
Label6 = Data1.Recordset!COSTO
Label7 = c
Label8 = SkinLabel7 * SkinLabel6
Command4.Visible = True
End Sub

'este es el segundo, la idea no es que los ponga yo, ni cree en el disenador los labels y eso si no que el mismo los cree, me explico.'
Private Sub Command4_Click()
Label14.Visible = True
Label13.Visible = True
Label12.Visible = True
Label11.Visible = True
Label10.Visible = True
t = Val(InputBox("Introduce el Codigo del Producto", "Búsqueda de Productos"))
c = Val(InputBox("Introduce la cantidad a facturar", "Facturacion de Productos"))
Data1.RecordSource = "select DESCRIPCION,COSTO from productos where CODIGO=" & t & ""
Data1.Refresh
Label14 = t
Label13 = Data1.Recordset!DESCRIPCION
Label12 = Data1.Recordset!COSTO
Label11 = c
Label10 = SkinLabel12 * SkinLabel11

End Sub
ah y otra pregunta, es posible copiar y pegar cosas de un msflexgrid a un textbox? inclusive si esta en forms diferentes? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Agregar un boton automaticamente

Publicado por Josman Pérez (40 intervenciones) el 18/02/2010 04:59:07
hola me parece que el diseño de tu programa no es el mas adecuado para un progrma de facturación no necesitas hacer ese tipo de cosas
pero iual ahi te va la forma de hacer eso que dices
crea solo una ves los label de la siguiente manera

lblCodigo
lbldescripcion
lblCan
lblCosto
lblsubtotal

coloca la propiedad visible en false y la propiedad Index a cada uno en 0 (esto te creara una matriz de controles a partir de la cual crearas los demas labels a partir de estos)

coloca un comand button (command1)

alinea los label como si fuera una fila como quieres que te aparezca cuando introduzcas los datos debajo del boton

y el formulario debe tener este codigo

Dim Linea As Integer
Private Sub Command1_Click()
t = Val(InputBox("Introduce el Codigo del Producto", "Búsqueda de Productos"))
C = Val(InputBox("Introduce la cantidad a facturar", "Facturacion de Productos"))
'pongo esto comentario porque no estoy usando una base de datos ya que tu _
la tienes solo te dare la idea del codigo y tu lo imprementas
'Data1.RecordSource = "select DESCRIPCION,COSTO from productos where CODIGO=" & t & ""
'Data1.Refresh
Linea = Linea + 1

'esto te crea el label nuevo de codigo y le asigna su valor
Load lblCodigo(Linea)
lblCodigo(Linea).Visible = True
lblCodigo(Linea).Left = lblCodigo(Linea - 1).Left
lblCodigo(Linea).Top = lblCodigo(Linea - 1).Top + 300 'esta medida se la puedes cambiar a tu antojo
lblCodigo(Linea).Caption = t

'esto te crea e nuevo label de descripción
Load lblDescripcion(Linea)
lblDescripcion(Linea).Visible = True
lblDescripcion(Linea).Left = lblDescripcion(Linea - 1).Left
lblDescripcion(Linea).Top = lblDescripcion(Linea - 1).Top + 300 'esta medida se la puedes cambiar a tu antojo
lblDescripcion(Linea).Caption = Data1.Recordset!DESCRIPCION

'esto te crea e nuevo label de la cantidad
Load lblCan(Linea)
lblCan(Linea).Visible = True
lblCan(Linea).Left = lblCan(Linea - 1).Left
lblCan(Linea).Top = lblCan(Linea - 1).Top + 300 'esta medida se la puedes cambiar a tu antojo
lblCan(Linea).Caption = C

'esto te crea e nuevo label de costo
Load lblcosto(Linea)
lblcosto(Linea).Visible = True
lblcosto(Linea).Left = lblcosto(Linea - 1).Left
lblcosto(Linea).Top = lblcosto(Linea - 1).Top + 300 'esta medida se la puedes cambiar a tu antojo
lblcosto(Linea).Caption= Data1.Recordset!COSTO

'esto te crea e nuevo label de SUBTOTAL
Load lblsubtotal(Linea)
lblsubtotal(Linea).Visible = True
lblsubtotal(Linea).Left = lblsubtotal(Linea - 1).Left
lblsubtotal(Linea).Top = lblsubtotal(Linea - 1).Top + 300 'esta medida se la puedes cambiar a tu antojo
lblsubtotal(Linea).Caption = CDbl(C) * CDbl(Data1.Recordset!COSTO)

End Sub

esto t ira creando una fila por cada ves que le des clic al boton.

de aqui en adelante podras hacer los ajustes que necesites
pero la verdad deberias hacer el programa de otra forma
este es mi correo por si acaso quieres ver el ejemplo que hice para que veas como funciona esto que te escribi arriba
josmanjp@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agregar un boton automaticamente

Publicado por Jaimico (21 intervenciones) el 18/02/2010 20:11:15
ok gracias, pero me da error de wrong number of arguments or invalid properpty assignment, y estan todos los nombres en el script bien, lo unico quie hize fue poner la declaracion de Linea abajo de command1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar