- Se corrigio el codigo de la encuesta para que guarde almacen y ruta en la base de datos.

- Se puso una validacion al salir de cliente, para que si hay campos modificados y no se han guardado, mande un aviso.
This commit is contained in:
2024-02-26 15:32:40 -06:00
parent c600d9e044
commit 20fee54acb
9 changed files with 69 additions and 23 deletions

View File

@@ -14,7 +14,7 @@ Sub Class_Globals
Private CallBack As Object 'ignore
Private vPreguntaActual As String
Private db As SQL
Private clienteAnt As String = ""
' Private clienteAnt As String = ""
Dim panelSombra As Panel 'Panel de sombra.
End Sub
@@ -25,6 +25,9 @@ Public Sub Initialize (vCallback As Object, vEventName As String, vRoot As B4XVi
CallBack = vCallback
db = skmt
vPreguntaActual = 0
db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CUESTIONARIO (Q_RUTA TEXT, Q_ALMACEN TEXT, Q_IDCLIENTE TEXT, Q_IDPREGUNTA TEXT, Q_PREGUNTA TEXT, Q_IDRESPUESTA TEXT, Q_RESPUESTA TEXT, Q_FECHA TEXT, Q_ENVIO_OK INTEGER DEFAULT 0)")
agregaColumna("CUESTIONARIO", "Q_RUTA", "TEXT")
agregaColumna("CUESTIONARIO", "Q_ALMACEN", "TEXT")
Return Me
End Sub
@@ -61,7 +64,7 @@ End Sub
' End Sub
'###########################################
Sub agregaPregunta(id As String, pregunta As String, respuestas As List)
encuestaIniciada = True
encuestaIniciada = True
vPreguntaActual = id
bAceptarPregunta.Initialize("bAceptarPregunta")
@@ -103,8 +106,9 @@ Sub agregaPregunta(id As String, pregunta As String, respuestas As List)
panelX.top = (Root2.Height / 3) - (panelX.Height / 2)
panelSombra.Width = Root2.Width
panelSombra.Height = Root2.Height
panelSombra.BringToFront
panelSombra.Elevation = 100
panelSombra.BringToFront
' panelSombra.Elevation = 0
End Sub
private Sub preguntaContestada(Success As Map) 'ignore
@@ -124,7 +128,7 @@ Private Sub bAceptarPregunta_Click
encuestaIniciada = True
Private m As Map = Sender.As(Button).tag.As(Map) 'Recibimos el id de la pregunta, el id de la respuesta, el texto de la respuesta y el objeto del panelSombra para poder ocultarlo.
preguntaContestada(m)
'' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta.
'' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta.
' m.Get("panel").As(Panel).RemoveView
' If m.Get("idPregunta") = "1" And m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then
' Log("Tiendajon / Ventana / Kiosko")
@@ -150,4 +154,25 @@ End Sub
'Oculta el anel de la pregunta.
Sub ocultPanelPregunta
If panelSombra.IsInitialized Then panelSombra.RemoveView
End Sub
'Agrega una columna a la tabla especificada.
'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC)
'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
End Try
End Sub