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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación Visual Basic / Macro Excell - Recorrer Filtro de Informe en: 19 Septiembre 2016, 11:12 am
Muy buenas, he programado muy poco en VBA y nos han encargado en el curro agilizar un proceso y sería mediante macros. Mi duda es ¿cómo se puede ir recorriendo el filtro de una tabla dinámica? Y para cada resultado, recorrer sus filas (que no en cada item del filtro es igual).

Me explico mejor: tengo el libro "Enero2016" con la tabla dinamica filtrada por proyectos, puedes elegir Proyecto1, Proyecto2, Proyecto3. Cada proyecto tiene varios programas prog1a, prog1b, ... prog1n, prog2a, ..., prog2m, etc. Y cada uno con sus datos, que son etiquetas de fila. Y luego Fecha de inicio, presupuesto, horas de trabajo y tal. Que son valores.

El objetio es una macro que recorra en "Enero2016" todo Proyecto1, recorra cada programa (fila), copie los valores y los lleve a otro archivo (cada Proyecto tendría el suyo). Lo mismo para Proyecto 2, etc.


Uno a uno se podría poner ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Proyecto").CurrentPage = "Proyecto1" y así para todos, pero no es muy práctico si existe un bucle.

Muchas gracias! :)
2  Programación / PHP / Duda PHP con include("pagina.php") en: 27 Agosto 2016, 12:04 pm
Buenas, no llevo mucho tiempo con PHP, así que igual sabéis guiarme en esto.

- Tengo tres páginas: 'vehiculo.php', 'cliente_vehiculo.php', 'test_cliente.php'.

 1. vehiculo.php tiene varias clases: Vehiculo{}, Coche extends Vehiculo {}, Moto extends Vehiculo {}, etc. Y todo funciona perfectamente.

2. cliente_vehiculo.php tiene la clase Cliente{}, en la que recibe nombre, identidad, se crea con cero vehiculos alquilados, etc... y luego función boolean de ha_alquilado_vehiculo(), alquilar vehiculo($vehiculo), devolver_vehiculo($vehiculo), etc. Y todo funciona perfectamente.

3. test_cliente.php es para hacer pruebas. Crea objetos Cliente, crea objetos Vehiculo y los alquila, devuelve, etc...

MI DUDA: En 'test_cliente.php' tengo include("vehiculo.php") e include("cliente_vehiculo.php") y funciona genial. Pero si pongo include ("vehiculo.php") en cliente_vehiculo.php también (y lo veía lógico porque las funciones de esa clase trabajan también con objetos de Vehiculo para alquilarlos, compararlos, etc.), entonces la página test_cliente.php se queda en blanco. Y si vuelvo a quitar el include("vehiculo.php") de cliente_vehiculo.php entonces vuelve a funcionar a las mil maravillas.

¿No necesita cliente_vehiculo.php incluir las clases de vehiculo.php? ¿Sólo tienen que estar en test_cliente.php? ¿Por qué?

Muchas gracias, y perdonad si no me he expresado bien o si es lioso. Si necesitáis código hacédmelo saber.
Gracias.
3  Programación / PHP / Ejecuto una web php, no da error, pero se queda en blanco. No muestra nada. en: 24 Agosto 2016, 19:10 pm
Muy buenas, sé que va a ser mucho código e igual sabéis responderme sin necesidad de verlo todo. Tengo tres archivos php (videoclub.php, clienteVideoclup.php, testCliente.php). La idea es que videoclub tenga una clase 'Soporte' y de ella heredan 'DVD' y 'Videojuego' que son cosas que se pueden alquilar. Con todos sus parámetros.
Luego clienteVideoclub tiene la clase 'Cliente' para crear usuarios que alquilan (un máximo de tres soportes). Y luego la clase test en la que quiero hacer pruebas y que se impriman diferentes formas del programa según los datos. Pero se queda en blanco:

MUCHAS GRACIAS DE ANTEMANO! :)

testClient.php:
Código
  1. <?php
  2.  
  3. include ("videoclub.php");
  4. include ("clienteVideoclub.php");
  5.  
  6. $client1 = new Cliente ("Carlos López", "CL001", false);
  7. $peli1 = new DVD ("Los Otros", 1, 2.99, 120, "Español");
  8. $peli2 = new DVD ("Los Vengadores", 2, 2.99, 140, "Español, inglés y francés");
  9. $peli3 = new DVD ("El Hundimiento", 3, 2.99, 167, "Español, inglés y alemán");
  10. $vidJu1 = new Videojuego ("FIFA 17", 4, 5.99, "Play Station 4", "Deporte", 1, 4);
  11. $vidJu2 = new Videojuego ("Tomb Raider VII", 5, 6.99, "PC", "Aventuras", 1, 1);
  12.  
  13. $peli1->imprime_caracteristicas();
  14. $peli3->imprime_caracteristicas();
  15.  
  16. echo '<br>Mostramos info de cliente nada más crearlo: <br>';
  17. $client1->show_info();
  18. echo '<br> * - - - - - - - - - - - - * <br>';
  19. $client1->alquila_soporte($peli1); echo '<br>';
  20. $client1->alquila_soporte($peli2); echo '<br>';
  21. $client1->show_info(); echo '<br>';
  22. echo '<br> * - - - - - - - - - - - - * <br>';
  23.  
  24.  
  25. ?>
  26.  

videoclub.php
Código
  1. <meta charset="utf-8">
  2. <?php
  3.  
  4. class Soporte {
  5.  
  6.   public $titulo;
  7.   protected $numero;
  8.   private $precio;
  9.  
  10.   function __construct($tit,$num,$precio){
  11.       $this->titulo = $tit;
  12.       $this->numero = $num;
  13.       $this->precio = $precio;
  14. }
  15.  
  16.   public function dame_precio_sin_iva(){
  17.       return $this->precio;
  18. }
  19.  
  20.   public function dame_precio_con_iva(){
  21.       return $this->precio * 1.16;
  22. }
  23.  
  24.   public function dame_numero_identificacion(){
  25.     return $this->numero;
  26. }
  27.  
  28. public function imprime_caracteristicas(){
  29.       echo $this->titulo;
  30.       echo "<br>" . $this->precio . " (IVA no incluido)";
  31. }
  32.  
  33. public function dame_titulo(){
  34. return $this->titulo;
  35. }
  36. }
  37.  
  38.  
  39. class DVD extends Soporte {
  40. private $duracion;
  41. private $idiomas_disponibles;
  42.  
  43. function __construct ($tit, $num, $precio, $duracion, $idiomas){
  44. parent::__construct($tit, $num, $precio);
  45. $this->duracion = $duracion;
  46. $this->idiomas_disponibles = $idiomas;
  47. }
  48.  
  49. public function dame_duracion(){
  50. return $this->duracion;
  51. }
  52.  
  53. public function dame_idiomas(){
  54. return $this->idiomas_disponibles;
  55. }
  56.  
  57. public function imprime_caracteristicas(){
  58. echo 'Pelicula DVD<br>';
  59. parent::imprime_caracteristicas();
  60. echo '<br>Duración: ' . $this->dame_duracion() . ' min.';
  61. echo '<br>Idimas: ' . $this->dame_idiomas();
  62. }
  63. }
  64.  
  65. class Videojuego extends Soporte{
  66. private $consola;
  67. private $tipo;
  68. private $numMinJug;
  69. private $numMaxJug;
  70.  
  71. function __construct ($tit, $num, $precio, $consola, $estilo, $min_j, $max_j){
  72. parent::__construct($tit, $num, $precio);
  73. $this->consola = $consola;
  74. $this->tipo = $estilo;
  75. $this->numMinJug = $min_j;
  76. $this->numMaxJug = $max_j;
  77. }
  78.  
  79. public function dame_consola(){
  80. return $this->consola;
  81. }
  82.  
  83. public function dame_tipo(){
  84. return $this->tipo;
  85. }
  86.  
  87. public function dame_jugadores(){
  88. if($this->numMinJug == $this->numMaxJug){
  89. if($this->numMinJug == 1){
  90. echo 'Juego de un jugador';
  91. } else {
  92. echo 'Juego de ' . $this->numMinJug . ' jugadores.';
  93. }
  94. } else {
  95. echo 'De ' . $this->numMinJug . ' a ' . $this->numMaxJug . ' jugadres.';
  96. }
  97. }
  98. public function imprime_caracteristicas(){
  99. echo 'Juego de ' . $this->dame_consola() . '<br>';
  100. parent::imprime_caracteristicas();
  101. echo '<br> Num. Jugadores: ';
  102. $this->dame_jugadores();
  103. echo '<br>Tipo: ' . $this->dame_tipo();
  104. }
  105. }
  106. ?>
  107.  


clienteVideoclub.php:
Código
  1. <meta charset="utf-8">
  2.  
  3. <?php
  4.  
  5. include ("videoclub.php");
  6. class Cliente {
  7. private $user_name;
  8. private $user_id;
  9. private $max_rent_prd;
  10. private $isPremium;
  11. private $rented_products;
  12. private $num_of_rentPrd;
  13.  
  14. function __construct ($name, $id, $premium){
  15. $this->user_name = $name;
  16. $this->user_id = $id;
  17. $this->isPremium = $premium;
  18. if($this->isPremium == true){
  19. $this->max_rent_prd = 5;
  20. } else {
  21. $this->max_rent_prd = 3;
  22. }
  23. $this->rented_prd = array();
  24. $this->num_of_rentPrd = 0;
  25. for($i=0; $i<$this->max_rent_prd; $i++){
  26. $this->rented_prd[$i] = null;
  27. }
  28. }
  29.  
  30. public function get_privilege(){
  31. if ($this->isPremium == true ){
  32. return true;
  33. } else {
  34. return false;
  35. }
  36. }
  37.  
  38. public function get_userName(){
  39. return $user_name;
  40. }
  41.  
  42. public function get_userID(){
  43. return $user_id;
  44. }
  45.  
  46. /**Este método recibe un soporte y devuelve true si está entre los alquileres del
  47. cliente. Devuelve false en caso contrario. */
  48. public function ha_alquilado ($soporte){
  49. foreach ($this->rented_products as $product){
  50. if(!is_null($product)){
  51. if($product->dame_numero_identificacion() ==
  52. $soporte->dame_numero_identificacion()){
  53. return true;
  54. }
  55. }
  56. }
  57. }
  58.  
  59. /**Este método comprueba si el cliente tiene alquilados todos los soportes
  60. que puede alquilar de una vez */
  61. public function is_full(){
  62. foreach ($this->rented_products as $product){
  63. if(is_null($product)){
  64. return false;
  65. }
  66. }
  67. return true;
  68. }
  69.  
  70. /** Este método sirve para alquilar una peli&#769;cula o juego por parte del cliente.
  71. Recibe el soporte a alquilar y, en caso que el alquiler se pueda producir, debe
  72. introducir el objeto soporte recibido en el array de soportes alquilados del
  73. cliente. */
  74. public function alquila_soporte($soporte){
  75. if ($this->ha_alquilado($soporte)){
  76. echo 'El cliente ya ha alguilado el soporte';
  77. } else if ($this->is_full()) {
  78. echo 'No puede alquilar más. Devuelva algún soporte';
  79. } else {
  80. foreach($this->rented_products as $product){
  81. if ($product == null){
  82. echo 'Ha alquilado ' . $product->dame_titulo();
  83. $product = $soporte;
  84. $num_of_rentPrd ++;
  85. break;
  86. }
  87. }
  88. }
  89. }
  90.  
  91. /** Método que devuelve el soporte a caja. El soporte desaparece del array
  92. $rented_products del cliente*/
  93. public function devuelve_soporte($soporte){
  94. foreach ($this->rented_products as $product){
  95. if($soporte->dame_numero_indentificacion() ==
  96. $product->dame_numero_identificacion()){
  97. echo 'Devuelto: ' . $product->dame_titulo();
  98. $product = null;
  99. $num_of_rentPrd --;
  100. }
  101. }
  102. }
  103.  
  104. /** Método que muestra toda la información disponible del cliente*/
  105. public function show_info(){
  106. echo '<br> Nombre: ' . $this->get_userName();
  107. echo '<br> ID_client: ' . $this->get_userID();
  108. if ($this->get_privilege()) {
  109. echo "Es premium.<br>";
  110. } else {
  111. echo "No es premium.<br>";
  112. }
  113. //echo "Ha alquilado " . $num_of_rentPrd . " productos.";
  114. foreach ($this->rented_products as $product){
  115. if ($product = null){
  116. echo '<br>- ...';
  117. } else {
  118. echo'<br>- ' . $product->dame_titulo();
  119. }
  120. }
  121. }
  122.  
  123. }
  124.  
  125. ?>
  126.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines