elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10
11  Programación / Programación Visual Basic / Re: poner tanto por ciento en el grafico circular en: 3 Abril 2022, 16:21 pm
ok

es algo parecido en 3d

porque en 3d seria de mas grosor
un ejemplo en 3d

gracias
12  Programación / Programación Visual Basic / Re: poner tanto por ciento en el grafico circular en: 3 Abril 2022, 15:48 pm
ok

he puesto el valor relativo en los 4 cajos


Valor relativo (porcentaje): (cstr(v1) & "%")


muchas gracias
13  Programación / Programación Visual Basic / Re: poner tanto por ciento en el grafico circular en: 3 Abril 2022, 13:44 pm
perfecto justo lo que necesitaba


muchisimas gracias serapis
14  Programación / Programación Visual Basic / Re: poner tanto por ciento en el grafico circular en: 1 Abril 2022, 14:02 pm
lo que quiero es poner los valores numericos que hay en los textbox osea text2,text3,text4,text5,en cada particion del grafico circular que sean visibles

lo del indice no hace falta, ya lo he solucionado


y perdona si no me expreso bien



gracias
15  Programación / Programación Visual Basic / Re: poner tanto por ciento en el grafico circular en: 31 Marzo 2022, 22:01 pm
he mejorado el codigo del grafico ahora introduzco los datos fijos y los lee

solo quisiera poner el porcentaje en el grafico circular

el codigo es el siguiente


Código
  1.  
  2.  
  3.  
  4. Option Explicit
  5. Private Type departamento
  6. d As Date
  7. x As Double
  8. y As Double
  9. z As Double
  10. w As Double
  11. End Type
  12.  
  13. Dim dpto As departamento
  14. Dim NumRecs As Long
  15.  
  16. Private Sub Command1_Click()
  17. 'Grafico
  18. DrawPie
  19. End Sub
  20.  
  21.  
  22.  
  23. Private Sub DrawPie()
  24. Const PI As Double = 3.14159265359
  25. Dim x1 As Double, y1 As Double, z1 As Double, w1 As Double
  26. Dim x As Double, y As Double, z As Double, w As Double
  27. Dim r As Double, midx As Double, midy As Double
  28. Dim sum As Double
  29. 'Text1.Text = Format$(Date, "dd/mm/yyyy")
  30.  Picture2.Cls
  31.  
  32.  Picture2.FillStyle = 0
  33.  
  34.  x1 = Val(Text2.Text)
  35.  y1 = Val(Text3.Text)
  36.  z1 = Val(Text4.Text)
  37.  w1 = Val(Text5.Text)
  38.  
  39.  sum = x1 + y1 + z1 + w1
  40.  
  41.  x = x1 / sum
  42.  y = y1 / sum
  43.  z = z1 / sum
  44.  w = w1 / sum
  45.  
  46.  midx = Picture2.Width / 2
  47.  midy = Picture2.Height / 2
  48.  
  49.  r = Picture2.Width / 2 - 300
  50.  
  51.  If x <> 0 And y <> 0 And z <> 0 Then
  52.  
  53.  Picture2.FillColor = vbRed
  54.  Picture2.Circle (midx, midy), r, , -2 * PI, -2 * PI * x, 2 / 3
  55.  Picture2.FillColor = vbYellow
  56.  Picture2.Circle (midx, midy), r, , -2 * PI * x, -2 * PI * (x + y), 2 / 3
  57.  Picture2.FillColor = vbBlue
  58.  Picture2.Circle (midx, midy), r, , -2 * PI * (x + y), -2 * PI * (x + y + z), 2 / 3
  59.  Picture2.FillColor = vbGreen
  60.  Picture2.Circle (midx, midy), r, , -2 * PI * (x + y + z), -2 * PI, 2 / 3
  61.  End If
  62.  
  63. End Sub
  64.  
  65. Private Sub Command2_Click()
  66. 'Guardar
  67. With dpto
  68.      .d = Text1.Text
  69.      .x = Val(Text2.Text)
  70.      .y = Val(Text3.Text)
  71.      .z = Val(Text4.Text)
  72.      .w = Val(Text5.Text)
  73.    End With
  74.  
  75.    NumRecs = 1
  76.    Open App.Path & "\PieData.dat" For Random As #1 Len = Len(dpto)
  77.      Put #1, 1, NumRecs
  78.      Put #1, NumRecs + 1, dpto
  79.    Close #1
  80. End Sub
  81.  
  82. Private Sub Command3_Click()
  83. 'Leer
  84.  
  85.  
  86.  
  87.  
  88. 'If FileLen(App.Path & "\PieData.dat") > 60 Then
  89.    Open App.Path & "\PieData.dat" For Random As #1 Len = Len(dpto)
  90.      Get #1, 1, NumRecs
  91.      Get #1, NumRecs + 1, dpto
  92.  
  93.      With dpto
  94.       Text1.Text = .d
  95.       Text2.Text = Val(.x)
  96.       Text3.Text = Val(.y)
  97.       Text4.Text = Val(.z)
  98.       Text5.Text = Val(.w)
  99. End With
  100.  
  101.  
  102.  
  103.  
  104.    Close #1
  105.    DrawPie
  106.  'End If
  107. End Sub
  108.  
  109. Private Sub Command4_Click()
  110. End
  111. End Sub
  112.  
  113. Private Sub Command5_Click()
  114. Picture2.Cls
  115. Text2.SetFocus
  116. End Sub
  117.  
  118.  
  119.  
  120.  
  121. Private Sub Form_Load()
  122. Text1.Text = Format$(Date, "dd/mm/yyyy")
  123. End Sub
  124.  
  125.  
  126.  
  127.  
  128.  






Gracias
16  Programación / Programación Visual Basic / poner tanto por ciento en el grafico circular en: 30 Marzo 2022, 12:30 pm
estoy haciendo un pequeño programa con el cual hay unos datos fijos y quisiera poner esos datos en el grafico circular hay cuatro datos pero hay un quinto dato que falta dibujar  que es la variable z1 en el grafico y poner el dato en el grafico.

en el programa faltaria controlar el indice de introducir los datos que empezara por 1,2,3,4,5, etc


el ejemplo que tengo hasta ahora es el siguiente:


Código
  1.  
  2.  
  3. Option Explicit
  4. Private Type departamento
  5. d As Date
  6. w As Double
  7. x As Double
  8. y As Double
  9. z As Double
  10. zl As Double
  11. End Type
  12.  
  13. Dim dpto As departamento
  14. Dim NumRecs As Long
  15.  
  16. Private Sub Command1_Click()
  17. 'Grafico
  18. DrawPie
  19. End Sub
  20.  
  21. Private Sub DrawPiePiece(lColor As Long, ByVal fStart As Double, ByVal fEnd As Double)
  22.  Const PI As Double = 3.14159265359
  23.  Const CircleEnd As Double = -2 * PI
  24.  Dim dStart As Double
  25.  Dim dEnd As Double
  26.  
  27.  Picture2.FillColor = lColor
  28.  Picture2.FillStyle = 0
  29.  dStart = fStart * (CircleEnd / 100)
  30.  dEnd = fEnd * (CircleEnd / 100)
  31.  Picture2.Circle (170, 150), 100, , dStart, dEnd
  32. End Sub
  33.  
  34. Private Sub DrawPie()
  35.  Dim Disp As Single, Alq As Single, i As Byte, Vt As Integer, Ang1 As Single, Ang2 As Single
  36.  
  37.  Picture2.Cls
  38.  
  39.  Picture2.AutoRedraw = True
  40.  Picture2.BackColor = &H8000000E
  41.  Picture2.ScaleMode = vbPixels
  42.  
  43.  
  44.  Dim xx As Double
  45.  Dim yy As Double
  46.  Dim zz As Double
  47.  Dim uu As Double
  48.  
  49.  
  50.  With dpto
  51.    If .w = 0 Then MsgBox "No hay registros para" & DateTime.Date & "para ser mostrado"
  52.        Text1.Text = .d
  53.        If .w > 0 Then
  54.        xx = (.x * 100) / .w
  55.        yy = xx + (.y * 100) / .w
  56.        zz = yy + (.z * 100) / .w
  57.        uu = zz + (.zl * 100) / .w
  58.  
  59.        Call DrawPiePiece(QBColor(1), 0.001, xx)
  60.        Call DrawPiePiece(QBColor(6), xx, yy)
  61.        Call DrawPiePiece(QBColor(3), yy, zz)
  62.        Call DrawPiePiece(QBColor(5), zz, uu)
  63.    End If
  64.  
  65.  End With
  66. End Sub
  67.  
  68. Private Sub Command2_Click()
  69. 'Guardar
  70. With dpto
  71.      .d = Date
  72.      .w = 650
  73.      .x = 301
  74.      .y = 39
  75.      .z = 109
  76.      .zl = 201
  77.    End With
  78.  
  79.    NumRecs = 1
  80.    Open App.Path & "\PieData.dat" For Random As #1 Len = 64
  81.      Put #1, 1, NumRecs
  82.      Put #1, NumRecs + 1, dpto
  83.    Close #1
  84. End Sub
  85.  
  86. Private Sub Command3_Click()
  87. 'Leer
  88. If FileLen(App.Path & "\PieData.dat") > 60 Then
  89.    Open App.Path & "\PieData.dat" For Random As #1 Len = 64
  90.      Get #1, 1, NumRecs
  91.      Get #1, NumRecs + 1, dpto
  92.    Close #1
  93.    DrawPie
  94.  End If
  95. End Sub
  96.  
  97. Private Sub Command4_Click()
  98. End
  99. End Sub
  100.  
  101. Private Sub Command5_Click()
  102. Picture2.Cls
  103. End Sub
  104.  
  105.  
  106.  
  107.  




gracias
17  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 14 Marzo 2022, 23:13 pm
Hola Serapis

ahora si que suma

Código
  1.  
  2. txtTotalFactura.Text = cstr(regx.total)
  3.  
  4.  


muchas gracias
18  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 14 Marzo 2022, 16:18 pm
Hola Serapis

se que soy muy pesado en esto de la programacion ahora son detalles

ahora me faltaria hacer la suma una vez que lees la compra, hacer el total de la suma


gracias
19  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 12 Marzo 2022, 22:03 pm
Hola Serapis


ya lo he corregido funciona correctamente

me habia puesto un poco nervioso, pero depues con mas tranquilidad lo he podido solucionar


muchas gracias
20  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 12 Marzo 2022, 19:38 pm
Hola Serapis


He conseguido buscar con el texbox pero tiene que ir con el listado de  listlotes

si carga con listlotes busca si no carga no busca


hay alguna manera de hacer la busqueda sin listlotes


Código
  1.  
  2. Private Sub Command1_Click()
  3. 'Buscar
  4. Dim Id As Integer
  5.  
  6.    If (NumRegsLotes > 0) Then '  If (LisLotes.ListCount > 0) Then   ' si hay registros en la facturación...
  7.        If (IsNumeric(txtNumeroFactura.Text)) Then    ' si el textbox tiene un número válido
  8.            Id = CInt(txtNumeroFactura.Text)               ' el textbox es quien indica ahora el numero de factura
  9.            If (Id <= NumRegsLotes) Then
  10.                Call PosicionarRegLote(Id)  ' Call PosicionarRegLote(LisLotes.ListIndex + 1)          ' allí se resta 1.
  11.                Get #CanalLote, , RegX
  12.                IdLote = RegX.IdPedido
  13.                Call ListarCompraDelLote(RegX.Index, RegX.Cantidad)
  14.                'txtFactura.Text = RegCompraToString(Reg)
  15.                Exit Sub
  16.            End If
  17.        End If
  18.    End If
  19.  
  20.    ' Si el botón está siempre activado... lo ideal es que esté activo solo si el número de factura es válido.
  21.    'txtFactura.Text = ""
  22.    Call MsgBox("Número de factura no reconocido. Debe haber facturas y el número de factura ser mayor que 0 y menor que el número de registros actuales")
  23. End Sub
  24.  
  25.  
  26.  
  27.  
  28.  
  29. ' Abre y carga el fichero de facturación. También abre el fichero de productos comprados (solo carga los productos asociados al primer lote en el listado).
  30. ' NOTA: No establecer la propiedad SORTED a TRUE, en los listados, ya que entonces el añadido sería ordenado y no al final.
  31. Private Function ListarFacturacion(ByRef Ruta1 As String, ByRef Ruta2 As String) As Boolean
  32.  '...
  33.    Dim k As Integer
  34.  
  35.    Call CerrarFacturacion
  36.  
  37.    If ((Abrir(Ruta1, CanalLote) = True) And (Abrir(Ruta2, CanalProducto) = True)) Then
  38.        Get #CanalLote, 1, NumRegsLotes
  39.        Get #CanalLote, , AutoIncLote
  40.  
  41.        Get #CanalProducto, 1, NumRegsProds
  42.        Get #CanalProducto, , AutoIncProducto
  43.  
  44.        If (NumRegsLotes > 0) Then
  45.            With LisLotes
  46.                .Clear
  47.  
  48.                Call PosicionarRegLote(1)       ' allí se resta 1
  49.                For k = 0 To NumRegsLotes - 1
  50.                    Get #CanalLote, , RegX
  51.                    Call .AddItem(RegCompraToString(RegX))
  52.                    .ItemData(k) = RegX.IdPedido
  53.  
  54.                    If (RegX.MetodoDePago = MetodosDePago.PAGO_AL_CONTADO) Then
  55.                        TotalContado = (TotalContado + RegX.Total)
  56.                    Else
  57.                        TotalCredito = (TotalCredito + RegX.Total)
  58.                    End If
  59.                Next
  60.  
  61.                Call ShowTotales
  62.  
  63.                ' Ahora si se quiere puede leerse de nuevo el primer registro para transferirlo a los textbox...
  64.                .ListIndex = 0 ' para ello delegamos en el código que pondremos al listbox...
  65.            End With
  66.        End If
  67.  
  68.        mnuLotes(0).Enabled = True
  69.        ListarFacturacion = True
  70.    End If
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.    ' Remplazar/eliminar las líneas aqui comentadas:
  78.    If (NumRegsLotes > 0) Then
  79.            'With LisLotes
  80.             '   .Clear
  81.  
  82.                Call PosicionarRegLote(1)       ' allí se resta 1
  83.                For k = 0 To NumRegsLotes - 1
  84.                    Get #CanalLote, , RegX
  85.             '       Call .AddItem(RegCompraToString(RegX))
  86.              '      .ItemData(k) = RegX.IdPedido
  87.  
  88.                    If (RegX.MetodoDePago = MetodosDePago.PAGO_AL_CONTADO) Then
  89.                        TotalContado = (TotalContado + RegX.Total)
  90.                    Else
  91.                        TotalCredito = (TotalCredito + RegX.Total)
  92.                    End If
  93.                Next
  94.  
  95.                Call ShowTotales
  96.  
  97.                ' <---- Ahora si se quiere puede leerse de nuevo el primer registro para transferirlo a los textbox...
  98.             '   .ListIndex = 0 ' para ello delegamos en el código que pondremos al listbox...
  99.            'End With
  100.  
  101.    ' Y añadir estas dos en esta posición:  <---- Ahora si se quiere puede leerse de nuevo el primer registro para transferirlo
  102.             txtNumeroFactura.Text = "1"
  103.             Call Command1_Click
  104.   End If
  105. End Function
  106.  
  107.  
  108. ' Guarda el registro del lote. Cada lote puede componerse de varios registros de artículso comprados,
  109. Friend Sub GuardarCompra(ByRef Reg As RegLote, ByVal Productos As Integer)
  110.    NumRegsLotes = (NumRegsLotes + 1)
  111.    AutoIncLote = (AutoIncLote + 1)
  112.  
  113.    With Reg
  114.        .IdPedido = AutoIncLote                             ' Completa los datos del registro que (mejor) procede hacer aquí.
  115.        .Cantidad = Productos
  116.        .FechaCompra = DateTime.Now
  117.        .Index = (NumRegsProds - .Cantidad)
  118.  
  119.        If (.MetodoDePago = PAGO_AL_CONTADO) Then
  120.            TotalContado = (TotalContado + .Total)
  121.        Else
  122.            TotalCredito = (TotalCredito + .Total)
  123.        End If
  124.        Call ShowTotales                                    ' Actualiza los valores totales.
  125.    End With
  126.  
  127.    Call PosicionarRegLote(NumRegsLotes)                    ' Posiciona el cursor de escritura al final del fichero.
  128.    Put #CanalLote, , Reg                                   ' Guarda el registro.
  129.    'With LisLotes
  130.       ' Call .AddItem(RegCompraToString(Reg))               ' También lo añade al listado.
  131.        '.ItemData(.ListCount - 1) = AutoIncLote
  132.   ' End With
  133.  
  134.    txtNumeroFactura.Text = CStr(Reg.IdPedido)
  135.     txtFactura.Text = RegCompraToString(Reg)
  136.     Call Command1_Click
  137.  
  138.  
  139.    Put #CanalLote, 1, NumRegsLotes                         ' Guarda la cantidad de registros
  140.    Put #CanalLote, , AutoIncLote                           ' Guarda el valor de autoincrmeento (es un valor único).
  141.  
  142.    Put #CanalProducto, 1, NumRegsProds
  143.    Put #CanalProducto, , AutoIncProducto                   ' Guarda el valor de autoincrmeento (es un valor único).
  144.  
  145.   'LisLotes.ListIndex = (LisLotes.ListCount - 1)           ' Fuerza a listar los productos comprados en este lote.
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  






gracias


Páginas: 1 [2] 3 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines