arielgatti444

Ejercicio Recuperatorio Mundiales

Jun 18th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private Function cargarPartidos (anioMundial as Integer, equipoCodigo as Integer, lstSalida as ListBox) as Integer
  2. Dim rsPartido as Recordset
  3. Dim strCriterio as String , strCriterioGlobal as String
  4. Dim contList as Integer
  5.  
  6. contList = 0
  7.  
  8. set rsPartido = abrirRs("Partido")
  9.  
  10. lstSalida.clear
  11.  
  12. strCriterio = "ptdMundialAnio = " & anioMundial & " AND ((ptdEqLocal = " & equipoCodigo & ") OR (ptdEqVisitante = " & equipoCodigo & ") AND
  13. ptdFecha < #" & format(now,"yyyy-mm-dd") & "#"
  14. strCriterioGlobal = "ptdMundialAnio = " & anioMundial & " AND ptdFecha < #" & format(now,"yyyy-mm-dd") & "#"
  15.  
  16. 'si equipo codigo es -1 tengo que mostrar todos los partidos del mundial , caso contrario muestro el codigo del equipo que me solicitan y cargo dichos
  17. 'partidos en el listbox'
  18.  
  19. lstSalida.addItem "-Seleccione-"
  20. lstSalida.itemData(lstSalida.newIndex) = -1
  21. lstSalida.newIndex = 0
  22.  
  23. If equipoCodigo = -1 Then
  24.     rsPartido.findFirst strCriterioGlobal
  25.         Do while not rsPartido.noMatch strCriterioGlobal
  26.             lstSalida.addItem rsPartido("ptdFecha") & " " & rsPartido("ptdLocal") & " " & rsPartido("ptdEqLocGoles") & " - " &
  27.             rsPartido("ptdEqVisGoles") & " " & rsPartido("ptdEqVisitante")
  28.             lstSalida.itemData(lstSalida.newIndex) = rsPartido(ptdCodigo)
  29.             contList = contList + 1
  30.             rsPartido.findNext strCriterioGlobal
  31.         loop
  32.     else
  33.         rsPartido.findFirst strCriterio
  34.             Do while not rsPartido.noMatch strCriterio
  35.                 lstSalida.addItem rsPartido("ptdFecha") & " " & rsPartido("ptdLocal") & " " & rsPartido("ptdEqLocGoles") & " - " &
  36.                 rsPartido("ptdEqVisGoles") & " " & rsPartido("ptdEqVisitante")
  37.                 lstSalida.itemData(lstSalida.newIndex) = rsPartido(ptdCodigo)
  38.                 contList = contList + 1
  39.                 rsPartido.findNext strCriterio
  40.             loop
  41. End If
  42.  
  43. rsPartido.close
  44. set rsPartido = nothing
  45.  
  46. cargarPartidos = contList
  47.  
  48. End Function
  49.  
  50. -------------------------------------------------------------------------------------
  51.  
  52. 'Debe mostrar el nombre del campeon en el campo txtGanador, cargar los equipos participantes en lstEquipos y llamar a cargarPartidos para completar
  53. 'lstPartidos, mostrar la salida en lblCantidad
  54.  
  55. private Sub cargarMundial(anioMundial as Integer)
  56.  
  57. Dim strCriterio as String , strCriterioAux as String
  58. Dim rsMundial as Recordset
  59. Dim rsMundialEquipo as Recordset
  60. Dim rsEquipo as Recordset
  61.  
  62. 'cargo el ganador del mundial'
  63. txtGanador.clear
  64.  
  65. strCriterio = "mdl_anio = " & anioMundial
  66.  
  67. set rsMundial = abrirRs("Mundial")
  68.  
  69. rsMundial.findFirst strCriterio
  70.  
  71. if not rsMundial.noMatch strCriterio then
  72.     txtGanador.text = rsMundial("mdl_Ganador")
  73. end if
  74.  
  75. 'cargo los equipos participantes'
  76.  
  77. lstEquipos.clear
  78.  
  79. lstEquipos.addItem "-Seleccione-"
  80. lstEquipos.itemData(lstEquipos.newIndex) = -1
  81. lstEquipos.newIndex = 0
  82.  
  83. set rsMundialEquipo = abrirRs("MundialEquipo")
  84.  
  85. strCriterio = "mxeMundialAnio = " & anioMundial
  86. strCriterioAux = "eqpCodigo = " & rsMundialEquipo("mxeEquipoCodigo")
  87.  
  88. rsMundialEquipo.findFirst strCriterio
  89.  
  90. Do While not rsMundialEquipo.noMatch strCriterio
  91.     set rsEquipo = buscarRegistro("Equipo", strCriterioAux)
  92.     lstEquipos.addItem rsEquipo("eqpNombre")
  93.     lstEquipos.itemData(lstEquipos.newIndex) = rsEquipo("eqpCodigo")
  94.     rsEquipo.close
  95.     set rsEquipo = nothing
  96.     rsMundialEquipo.findNext strCriterio
  97. Loop
  98.  
  99. rsMundialEquipo.close
  100.  
  101. set rsMundialEquipo = nothing
  102.  
  103. 'cargo los partidos'
  104.  
  105. lstPartidos.clear
  106. lblCantidad.clear
  107.  
  108. lstPartidos.addItem "-Seleccione-"
  109. lstPartidos.itemData(lstPartidos.newIndex) = -1
  110. lstPartidos.newIndex = 0
  111.  
  112. lblCantidad.text = cargarPartidos(anioMundial,-1,lstPartidos)
  113.  
  114. End Sub
  115.  
  116. ---------------------------------------------------------------------------------------
  117. 'supongo que obtengo como parametro el año del mundial'
  118. private Sub lstEquipos_click (anioMundial as Integer)
  119.     call cargarPartidos(anioMundial,Cint(lstEquipos.itemData(lstEquipos.listIndex),lstPartidos)
  120. End Sub
  121.  
  122. ---------------------------------------------------------------------------------------
  123.  
  124. private Sub btnCargarMundial_click ()
  125.     'se debe validar el txtMundial para que ingrese correctamente a la funcion cargarMundial'
  126.  
  127.     If not IsDate(txtMundial) Then
  128.         msgBox "El contenido ingresado no corresponde a una fecha"
  129.         exit Sub
  130.     End If
  131.  
  132.     If not Cdate(txtMundial) <= date.now Then
  133.         msgBox "El anio seleccionado no es valido"
  134.         exit sub
  135.     End If
  136.  
  137.     'tengo que validar la regla de negocios que en este caso seria que exista un mundial en el anio seleccionado'
  138.  
  139.     If not hayMundial(txtMundial) Then
  140.         msgBox "No existe mundial en el anio seleccionado"
  141.         exit Sub
  142.     End If
  143.  
  144. call cargarMundial(Cint(txtMundial))
  145.  
  146. End Sub
  147.  
  148. ------------------------------------------------------------------------------------------
  149.  
  150. 'a- Obtener los partidos en que el equipo (que está disponible a través del recordset almacenado en la variable orsEquipo) haya ganado por una diferencia
  151. 'de goles mayor o igual al valor de intDif. Para evitar posibles errores, solo considerar fechas anteriores al dia actual'
  152.  
  153. strCriterio = "((ptdEqLocal = " & orsEquipo("eqpCodigo") & ") OR (ptdEqVisitante = " & orsEquipo("eqpCodigo") & ")) AND ptdFecha < #" &
  154. format(date.now,"yyyy-mm-dd") & "# AND ((ptdEqLocGoles - ptdEqVisGoles >= " & intDif & ") OR (ptdEqVisGoles - ptdEqLocGoles >= " & intDif & "))"
  155.  
  156. 'b- Obtener todos los eventos del equipo IngEquipo que en su descripcion tengan la cadena parcial strEvento y sean de tipo 2, 3, o 6'
  157.  
  158. strCriterio = "evtEquipo = " & lngEquipo & " AND ((evtTipo = " & 2 & ") OR (evtTipo = " & 3 & ") OR (evtTipo = " & 6 & ")) AND
  159. evtDescripcion like '*" & strEvento & "*'"
Advertisement
Add Comment
Please, Sign In to add comment