mirror of
https://github.com/KeymonSoft/SoporteKeymonsoft.git
synced 2026-04-17 12:46:08 +00:00
- 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.
194 lines
8.4 KiB
QBasic
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 |