Files
SoporteKeymonsoft/Subs.bas
Jose Alberto Guerra Ugalde 79fda54144 - VERSION 4.11.18
- Se agregó que cuando se revisa una venta de Kelloggs, también revise si hay duplicados en la venta y si los hay, da la opción de borrarlos.
2024-11-18 15:01:13 -06:00

194 lines
8.4 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=StaticCode
Version=11.2
@EndOfDesignText@
'Code module
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
'Hace visible el panel con los parametros "Top" y "Left" dados
'y lo hace del ancho y alto de la pantalla
Sub panelVisible(panel As Panel, top As Int, left As Int, actividad As Activity) 'ignore
' panel.BringToFront
panel.Width=actividad.Width
panel.Height=actividad.Height '-(WobbleMenu1.GetHeight-20)
panel.Visible = True
panel.Top = top
panel.Left = left
End Sub
'Oculta el panel especificado y lo manda al fondo
Sub panelOculto(panel As Panel) 'ignore
panel.SendToBack
panel.Visible = False
End Sub
'Centra un boton horizontalmente en el panel superior
Sub centraBotonEnPanel(boton As Button, panel As Panel)
boton.left = (panel.Width/2)-(boton.Width/2)
End Sub
'Centra una etiqueta horizontalmente en el panel superior
Sub centraEtiquetaEnPanel(etiqueta As Label, panel As Panel)
etiqueta.left = (panel.Width/2)-(etiqueta.Width/2)
End Sub
'Centra un campo de texto horizontalmente en el panel superior
Sub centraETEnPanel(et As EditText, panel As Panel)
et.left = (panel.Width/2)-(et.Width/2)
End Sub
'Centra un panel horizontalmente en el panel superior
Sub centraPanelEnPanel(p1 As Panel, panel As Panel)
p1.left = (panel.Width/2)-(p1.Width/2)
End Sub
'Regresa una cita al azar, va borrando cada cita que regresa para que no se repitan, y cuando quedan pocas vuelve a llenar la lista.
Sub dameCita(citas As List) As String
If citas.Size < 2 Then
citas.Add("No les hagas a tus hijos la vida difícil, haciéndoles la vida fácil.")
citas.Add("Nunca subestimes el poder de la estupidez humana.")
citas.Add("Se vive y se aprende ... o no se vive mucho.")
citas.Add("La verdad de una afirmación no tiene nada que ver con su credibilidad ... y viceversa.")
citas.Add("Nunca apeles al ''buen corazón'' de un hombre, puede que no tenga, saldrás ganando si invocas su interés.")
citas.Add("La teología de uno es la carcajada de otro.")
citas.Add("¡Todo en exceso! Para saborear la vida hay que tomarla a grandes tragos, la moderación es para los monjes.")
citas.Add("La generación que ignora la historia no tiene pasado … ni futuro.")
citas.Add("Si no puede expresarse en cifras, no es ciencia, es opinión.")
citas.Add("Escucha siempre a los expertos, te dirán lo que no se puede hacer, y por qué ... entonces ve y hazlo!!")
citas.Add("El juego está arreglado, naturalmente, pero no te detengas por eso: si no apuestas, no puedes ganar.")
citas.Add("Conservarse joven exige el cultivar con tenacidad la capacidad de desaprender las viejas falsedades.")
citas.Add("El dinero es veraz, si un hombre habla de su honor, hazle pagar en efectivo.")
citas.Add("Cuando la tentación se cruce en tu camino, aprovéchala, puede que no vuelva a presentarse.")
citas.Add("La libertad empieza cuando uno manda a la gente a freír espárragos.")
citas.Add($"Cuando la tentación se cruce en tu camino, aprovéchala, puede que no vuelva a presentarse."$)
citas.Add($"Existen dos palabras que abren todas las puertas: “jale” y “empuje”."$)
citas.Add($"Donde sobra ... no falta."$)
citas.Add($"Algunos matrimonios acaban bien ... otros duran toda la vida."$)
citas.Add($"El dinero no te da la felicidad ... sobre todo si es poco."$)
citas.Add($"En política: el que sabe, sabe ... y el que no, pues es jefe."$)
citas.Add($"Estamos como estamos ... porque somos como somos."$)
citas.Add($"Lo que está bien ... no puede estar mal."$)
citas.Add($"Un hombre exitoso es aquel que gana más dinero del que su mujer gasta."$)
citas.Add($"Una cosa es una cosa ... y otra cosa es otra cosa."$)
citas.Add($"Trabajar nunca mató a nadie ... pero para que nos arriesgamos!"$)
citas.Add($"Hay que trabajar ocho horas y dormir ocho horas ... ¡pero que no sean las mismas!"$)
citas.Add($"El que nace pobre y feo tiene posibilidades de que -al crecer- desarrolle ambas condiciones."$)
citas.Add($"La confusión está clarísima."$)
citas.Add($"Cuando un médico se equivoca ... lo mejor es echarle tierra al asunto."$)
citas.Add($"Si el que muere pasa a mejor vida ... ¿Por qué nadie quiere morirse?"$)
citas.Add($"¡Cuando el gallo canta en la madrugada, puede que llueva mucho, puede que llueva poco o puede que no llueva nada!"$)
citas.Add($"El que anda de buenas, no puede andar de malas."$)
citas.Add($"Si no llegó ... es porque no vino."$)
citas.Add($"Cuando hay ... hay; cuando no hay ... pues no hay."$)
citas.Add($"Agua que no corre ... es charco."$)
citas.Add($"Donde comen dos comen tres, y hasta cuatro ¡pero no llenan!"$)
citas.Add($"Si las cosas no han cambiado, es porque siguen igual."$)
citas.Add($"Si no recibes este mensaje ... es porque no te llegó."$)
End If
Private citaNum As Int = Rnd(1, citas.Size)
' Log(citas.Size & "|" & (citaNum-1))
Private laCita As String = citas.Get(citaNum-1)
citas.RemoveAt(citaNum-1)
Return laCita
End Sub
'Compara dos versiones (string) con el formato "1.10.09", regresa 1 si la primera es mayor, 0 si es igual y -1 si es menor
Sub comparaVersiones(ver1 As String, ver2 As String) As Int
' Logcolor($"${ver1} - ${ver2}"$, Colors.Magenta)
Private m1(), m2() As String
Private pri1, pri2, sec1, sec2, ter1, ter2 As String
m1 = Regex.Split("\.", ver1)
m2 = Regex.Split("\.", ver2)
pri1 = m1(0)
pri2 = m2(0)
' Log(pri1 & "|" & pri2)
If pri1 > pri2 Then Return 1 'Si el primer numero es mayor, regresamos 1
If pri1 < pri2 Then Return -1 'Si el primer numero es menor, regresamos -1
'Si son iguales entones revisamos el segundo numero
If m1.Length > 1 And m2.Length > 1 Then
sec1 = "1." & m1(1)
sec2 = "1." & m2(1)
' Log(sec1 & "|" & sec2)
If sec1 > sec2 Then Return 1 'Si el segundo numero es mayor, regresamos 1
If sec1 < sec2 Then Return -1 'Si el segundo numero es menor, regresamos -1
End If
'Si son iguales entones revisamos el tercer numero
If m1.Length > 2 And m2.Length > 2 Then
ter1 = "1." & m1(2)
ter2 = "1." & m2(2)
' Log(ter1 & "|" & ter2)
If ter1 > ter2 Then Return 1 'Si el tercer numero es mayor, regresamos 1
If ter1 < ter2 Then Return -1 'Si el tercer numero es menor, regresamos -1
End If
Return 0 'Regersamos 0 porque son iguales
End Sub
'Lee un arhchivo de texto y lo convierte en un mapa.
Sub procesaConfiguracion
Private t As String
Private c As List = File.ReadList(Starter.ruta, "conf.ini")
For i = 0 To c.Size - 1
t = c.get(i)
Log(t.IndexOf("="))
If t.IndexOf("=") > -1 Then
Starter.confMap.Put(t.SubString2(0, t.IndexOf("=")), t.SubString(t.IndexOf("=")+1))
Log(Starter.confMap)
End If
Next
If Starter.confMap.ContainsKey("mayusculasDesbloqueo") Then Starter.mayusculasDesbloqueo = Starter.confMap.Get("mayusculasDesbloqueo")
End Sub
'Guarda la configuracion (mapa) en un archivo de texto.
Sub escribreConf
Private l As List
l.Initialize
For Each k As Object In Starter.confMap.Keys
l.Add($"${k}=${Starter.confMap.Get(k)}"$)
Next
Log(l)
File.WriteList(Starter.ruta, "conf.ini", l)
End Sub
'Centra horizontalmente una vista en otra vista.
Sub centraVistaEnVista(v As View, p As View) 'ignore
v.Left = (p.Width/2) - (v.Width/2)
End Sub
'Sets the elevation of a view
Sub SetElevation(v As View, e As Float)
Dim jo As JavaObject
Dim p As Phone
If p.SdkVersion >= 21 Then
jo = v
jo.RunMethod("setElevation", Array As Object(e))
End If
End Sub
'Regresa buenos dias, tardes o noches dependiendo de la hora.
Sub generaSaludo As String
Private saludo As String = ""
If DateTime.GetHour(DateTime.Now) > 4 And DateTime.GetHour(DateTime.Now) < 12 Then saludo = "Buenos dias, "
If DateTime.GetHour(DateTime.Now) >= 12 And DateTime.GetHour(DateTime.Now) < 19 Then saludo = "Buenas tardes, "
If DateTime.GetHour(DateTime.Now) >= 19 Or DateTime.GetHour(DateTime.Now) < 4 Then saludo = "Buenas noches, "
' Log(DateTime.GetHour(DateTime.Now)&"|"&saludo&"|")
Return saludo
End Sub
'Muestra en el Log los campos y valores que regresan en el JobDone.
Sub logJobDoneResultados(resultado As DBResult)
LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0))
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0))
Next
Next
End Sub