SARCAI v.2.0 ANEXO 3 ANEXO 3 Ejemplos de Informes SARCAI v. 2.0 © EPB – ULA 1997 SARCAI v.2.0 ANEXO 4 ANEXO 4 Macros y Código fuente del Módulo General del SARCAI v. 2.0 © EPB – ULA 1997 1 SARCAI v.2.0 ANEXO 4 MACROS: Abrir Existencia Real en Almacén I InicializarInforme("Existencia Real en Almacén I") OpenForm Pedir Dos Fechas Abrir Existencia Real en Almacén T InicializarInforme("Existencia Real en Almacén T") OpenForm Pedir Dos Fechas Abrir Existencia Total Real en Almacén I InicializarInforme("Existencia Total Real en Almacén I") OpenForm Pedir Dos Fechas Abrir Existencia Total Real en Almacén T InicializarInforme("Existencia Total Real en Almacén T") OpenForm Pedir Dos Fechas Abrir Explosión de Materiales InicializarInforme("Explosión de Materiales") OpenForm Pedir Número del Plan Abrir Lista de Precios Vigente en Fecha Buscada InicializarInforme(" Lista de Precios Vigente en Fecha Buscada") OpenForm Pedir Dos Fechas Llamar a Procedimiento llamar () © EPB – ULA 1997 2 SARCAI v.2.0 ANEXO 4 MÓDULO BIBLIOTECA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Attribute VB_Name = "Biblioteca" Option Compare Database Option Explicit Public NomInforme As String Public Function TransformaFecha(F As Date) As Date TransformaFecha = CDate(Str(Day(F)) & "/" & Str(Month(F)) & "/" & Str(Year(F))) End Function Public Sub PreparaGráficoDeProductosEstrella() Dim dbs As Database, rst As Recordset, strSQL As String, _ NReg As Long, qdf As QueryDef Set dbs = CurrentDb Set qdf = dbs.CreateQueryDef("") strSQL = "PARAMETERS [Forms]![Pedir Fechas para Ventas por Productos]![FechaInicial] DateTime, [Forms]![Pedir Fechas para Ventas por Productos]![FechaFinal] DateTime;" & _ "SELECT [Productos Pedidos y Despachados entre Fechas].Nombre AS Producto, Sum([Productos Pedidos y Despachados entre Fechas].[Total Ventas]) AS [Total Ventas] " & _ "FROM [Productos Pedidos y Despachados entre Fechas] " & _ "GROUP BY [Productos Pedidos y Despachados entre Fechas].Nombre " & _ "ORDER BY Sum([Productos Pedidos y Despachados entre Fechas].[Total Ventas]) DESC;" qdf.SQL = strSQL qdf.Parameters("[Forms]![Pedir Fechas para Ventas por Productos]![FechaInicial]") = [Forms]![Pedir Fechas para Ventas por Productos]![FechaInicial] qdf.Parameters("[Forms]![Pedir Fechas para Ventas por Productos]![FechaFinal]") = [Forms]![Pedir Fechas para Ventas por Productos]![FechaFinal] Set rst = qdf.OpenRecordset(dbOpenSnapshot) rst.MoveLast NReg = rst.RecordCount rst.Close Set dbs = Nothing DoCmd.SetWarnings False 'Inicialización de la tabla con los NProd primeros productos strSQL = "DELETE [Gráfico de Productos Estrella T1].* " & _ "FROM [Gráfico de Productos Estrella T1];" DoCmd.RunSQL strSQL 'Inicialización de la tabla con los NReg - NProd últimos productos strSQL = "DELETE [Gráfico de Productos Estrella T2].* " & _ © EPB – ULA 1997 3 SARCAI v.2.0 42 43 44 45 46 47 48 49 50 51 52 ANEXO 4 "FROM [Gráfico de Productos Estrella T2];" DoCmd.RunSQL strSQL 'Inserción de los primeros NProd productos en T1 strSQL = "INSERT INTO [Gráfico de Productos Estrella T1] ( Producto, [Total Ventas] ) " & _ "SELECT TOP " & Str(Forms![Pedir Fechas para Ventas por Productos]!NProd) & " [Gráfico de Productos Estrella].Producto, [Gráfico de Productos Estrella].[Total Ventas] " & _ "FROM [Gráfico de Productos Estrella] " & _ "ORDER BY [Gráfico de Productos Estrella].[Total Ventas] DoCmd.RunSQL strSQL If Forms![Pedir Fechas para Ventas por Productos]!NProd < NReg Then 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 'Inserción de los últimos NReg - NProd productos en T2 strSQL = "INSERT INTO [Gráfico de Productos Estrella T2] ( Producto, [Total Ventas] ) " & _ "SELECT TOP " & Str(NReg - Forms![Pedir Fechas para Ventas por Productos]!NProd) & " [Gráfico de Productos Estrella].Producto, [Gráfico de Productos Estrella].[Total Ventas] " & _ "FROM [Gráfico de Productos Estrella] " & _ "ORDER BY [Gráfico de Productos Estrella].[Total Ventas] DoCmd.RunSQL strSQL End If DoCmd.SetWarnings True End Sub Public Function NDías(F1 As Date, F2 As Date) As Integer NDías = F2 - F1 + 1 End Function Public Function NSemanas(F1 As Date, F2 As Date) As Integer NSemanas = NDías(F1, F2) / 7 End Function Public Function NQuincenas(F1 As Date, F2 As Date) As Integer NQuincenas = NDías(F1, F2) / 15 End Function Public Function NMeses(F1 As Date, F2 As Date) As Integer NMeses = NDías(F1, F2) / 30 End Function Public Function NBimestres(F1 As Date, F2 As Date) As Integer NBimestres = NDías(F1, F2) / 60 End Function Public Function NTrimestres(F1 As Date, F2 As Date) As Integer NTrimestres = NDías(F1, F2) / 90 End Function © EPB – ULA 1997 4 SARCAI v.2.0 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 ANEXO 4 Public Function NSemestres(F1 As Date, F2 As Date) As Integer NSemestres = NDías(F1, F2) / 180 End Function Public Function NAños(F1 As Date, F2 As Date) As Integer NAños = NDías(F1, F2) / 365 End Function Public Function Nbiaños(F1 As Date, F2 As Date) As Integer Nbiaños = NDías(F1, F2) / 730 End Function Public Function InicializarInforme(Nom As String) NomInforme = Nom End Function Public Sub Exportar_Tabla(NomTab As String) DoCmd.TransferSpreadsheet acExport, 5, _ NomTab, "c:\datos\excel\" & NomTab, True End Sub Sub Compacta() DBEngine.CompactDatabase "C:\Datos\PROULA Tesis\SARCAI versión 1.0.mdb", "C:\Datos\PROULA Tesis\Prueba.mdb" End Sub Public Sub Cerrar() DoCmd.DoMenuItem acFormBar, acFile, 3, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acFile, 4, , acMenuVer70 End Sub Sub CompactaInventario() DBEngine.CompactDatabase "C:\Datos\Access\Inventario.mdb", "C:\Datos\PROULA Tesis\Prueba.mdb" End Sub Sub VerTablas() Dim dbs As Database, tabla As TableDef, i As Integer © EPB – ULA 1997 Set dbs = CurrentDb With dbs 'Debug.Print .TableDefs.Count & _ ' "TableDefs en " & .Name i = 0 For Each tabla In .TableDefs If Left(tabla.Name, 4) <> "MSys" Then i = i + 1 Debug.Print "No.: " & Str(i) & " End If Next tabla End With " & tabla.Name 5 SARCAI v.2.0 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 ANEXO 4 End Sub Sub InicializarBD() Dim SQLstr As String, dbs As Database Dim tabla As TableDef Set dbs = CurrentDb DoCmd.SetWarnings False With dbs For Each tabla In .TableDefs If (Left(tabla.Name, 4) <> "MSys") And (tabla.Name <> "Elementos del Panel de control") Then SQLstr = "DELETE DISTINCTROW * FROM [" & tabla.Name DoCmd.RunSQL SQLstr End If Next tabla End With DoCmd.SetWarnings True End Sub Function llamar() 'InicializarBD 'EstablecerParámetro 'VerTablas End Function Public Sub Llena_PruebaOLE(Nobs As Long) Dim Cont As Long DoCmd.OpenForm "PruebaOLE" For Cont = 1 To Nobs DoCmd.GoToRecord acForm, "PruebaOLE", acGoTo, Cont Forms!PruebaOLE.[Fecha] = Now() + Cont Forms!PruebaOLE.[Demanda] = Int(50001 * Rnd) Next Cont End Sub Public Sub PoneClaves(Hasta As Long) Dim Cont As Long For Cont = 1 To Hasta DoCmd.GoToRecord acForm, "Insumos Tempo", acGoTo, Cont Forms![Insumos Tempo]![CODIGO] = Str(Cont) Next Cont End Sub Public Function PonPuntoyCadena(num As Double) As String Dim PosComa As Integer, LonCad As Integer, CantiCad As String CantiCad = Str(num) LonCad = Len(CantiCad) PosComa = InStr(1, CantiCad, ",") MsgBox PosComa PonPuntoyCadena = Left(CantiCad, PosComa - 1) & "." & Right(CantiCad, LonCad - PosComa) End Function Function EstáCargado(cadNombreFormulario As String) As Boolean © EPB – ULA 1997 6 SARCAI v.2.0 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 ANEXO 4 ' Determina si un formulario está cargado. Const conDiseñoFormulario = 0 Dim entX As Integer EstáCargado = False For entX = 0 To Forms.Count - 1 If Forms(entX).FormName = cadNombreFormulario Then If Forms(entX).CurrentView <> conDiseñoFormulario Then EstáCargado = True Exit Function ' Salir de la función al encontrar el End If End If Next End Function Sub EstablecerParámetro(prm As Variant) Dim dbs As Database, qdf As QueryDef, rst As Recordset ' Set dbs = CurrentDb Set qdf = dbs.QueryDefs![Existencia Total Real an Almacén I] qdf.Parameters![Fecha Buscada] = prm Set rst = qdf.OpenRecordset SalidaAbrirRecordset rst End Sub Sub SalidaAbrirRecordset(rstOutput As Recordset) Dim i As Integer With rstOutput For i = 0 To rstOutput.Fields.Count - 1 Debug.Print .Fields(i).Name, Next i Debug.Print Do While Not .EOF For i = 0 To rstOutput.Fields.Count - 1 Debug.Print .Fields(i), Next i Debug.Print .MoveNext Loop End With End Sub © EPB – ULA 1997 7 SARCAI v.2.0 ANEXO 4 Estadísticas Generales Base de datos: C:\Datos\PROULA 97\SARCAI2.mdb AccessVersion: AllowBuiltInToolbars: AllowShortcutMenus: AllowToolbarChanges: Build: Mostrar límite de Mostrar valores en No Orden de combinación: Show Values in Show Values in StartUpForm: StartUpShowStatusBar: Transactions: 07.53 Verdadero Verdadero Verdadero 3512 1000 1 General 1 0 Panel de control Verdadero Verdadero AllowBreakIntoCode: AllowFullMenus: AllowSpecialKeys: AppTitle: Def. actualizable: Mostrar valores en Mostrar valores en Registros afectados: Show Values in Show Values Limit: StartUpShowDBWindo Tiempo de espera de la Versión : Verdadero Verdadero Verdadero SARCAI versión 2.0 Verdadero 1 0 0 1 1000 Falso 60 3.0 Permisos de usuario: admin Permisos de grupo: Admins, Users © EPB – ULA 1997 8