From 46a1c14c88e562d89634eec369915502a3262298 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Mon, 26 Feb 2024 12:41:29 -0600 Subject: [PATCH] =?UTF-8?q?-=20Se=20actualiz=C3=B3=20el=20codigo=20del=20C?= =?UTF-8?q?uestionario=20(Se=20agrego=20almacen=20y=20ruta=20a=20la=20tabl?= =?UTF-8?q?a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/C_Cliente.bas | 2 +- B4A/C_Cuestionario.bas | 31 +++++++++++++++++++++++++++---- B4A/Durakelo.b4a | 2 +- B4A/Durakelo.b4a.meta | 4 ++-- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 2355eea..53cfe20 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -1724,7 +1724,7 @@ Sub cuest_preguntaContestada(m As Map) DateTime.DateFormat = "dd/MM/yyyy" DateTime.TimeFormat = "HH:mm:ss" Starter.skmt.ExecNonQuery($"delete from CUESTIONARIO where Q_IDCLIENTE = '${Subs.traeCliente}' and Q_IDPREGUNTA = '${m.Get("idPregunta")}'"$) - Starter.skmt.ExecNonQuery($"insert into CUESTIONARIO (Q_IDCLIENTE, Q_IDPREGUNTA, Q_PREGUNTA, Q_IDRESPUESTA, Q_RESPUESTA, Q_FECHA) values ('${Subs.traeCliente}', '${m.Get("idPregunta")}', '${m.Get("pregunta")}', '${m.Get("idRespuesta")}', '${m.Get("respuesta")}', '${DateTime.Date(DateTime.now)} ${DateTime.time(DateTime.now)}')"$) + Starter.skmt.ExecNonQuery($"insert into CUESTIONARIO (Q_RUTA, Q_ALMACEN, Q_IDCLIENTE, Q_IDPREGUNTA, Q_PREGUNTA, Q_IDRESPUESTA, Q_RESPUESTA, Q_FECHA) values ('${Subs.traeRuta}', '${Subs.traeAlmacen}', '${Subs.traeCliente}', '${m.Get("idPregunta")}', '${m.Get("pregunta")}', '${m.Get("idRespuesta")}', '${m.Get("respuesta")}', '${DateTime.Date(DateTime.now)} ${DateTime.time(DateTime.now)}')"$) Select Case m.Get("idPregunta") Case "1" If m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then diff --git a/B4A/C_Cuestionario.bas b/B4A/C_Cuestionario.bas index 7015b09..5a89ae5 100644 --- a/B4A/C_Cuestionario.bas +++ b/B4A/C_Cuestionario.bas @@ -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,7 +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_IDCLIENTE TEXT, Q_IDPREGUNTA TEXT, Q_PREGUNTA TEXT, Q_IDRESPUESTA TEXT, Q_RESPUESTA TEXT, Q_FECHA TEXT)") + 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 @@ -62,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") @@ -126,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") @@ -152,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 \ No newline at end of file diff --git a/B4A/Durakelo.b4a b/B4A/Durakelo.b4a index 07474de..47072f0 100644 --- a/B4A/Durakelo.b4a +++ b/B4A/Durakelo.b4a @@ -1393,7 +1393,7 @@ Module9=C_NoVenta NumberOfFiles=667 NumberOfLibraries=31 NumberOfModules=24 -Version=12.5 +Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Durakelo diff --git a/B4A/Durakelo.b4a.meta b/B4A/Durakelo.b4a.meta index 4c44ddc..38ac0e8 100644 --- a/B4A/Durakelo.b4a.meta +++ b/B4A/Durakelo.b4a.meta @@ -69,10 +69,10 @@ ModuleClosedNodes24= ModuleClosedNodes3= ModuleClosedNodes4= ModuleClosedNodes5= -ModuleClosedNodes6=5 +ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Productos,b_rmi_mas_Click,1443,0,C_Principal,JobDone,1912,3,C_Principal,Class_Globals,0,0,C_Productos,B4XPage_Appear,154,0,C_Productos,B4XPage_CloseRequest,485,0,C_Productos,b_rmi_aceptar_Click,1419,0,C_Productos,clv_prods_ll_ItemLongClick,1091,0,C_Productos,p_rmi_Click,1418,0,Visual Designer,productos.bal,-100,2,C_Productos,l_prodX_LongClick,1167,6 +NavigationStack=C_Productos,clv_prods_ll_ItemLongClick,1091,0,C_Productos,p_rmi_Click,1418,0,C_Productos,l_prodX_LongClick,1167,6,Visual Designer,productos.bal,-100,3,C_Productos,b_terminar1_Click,872,0,C_Cuestionario,Initialize,19,0,C_Cuestionario,Class_Globals,0,0,C_Cliente,Class_Globals,0,0,C_Cliente,cuest_preguntaContestada,1721,0,C_Cuestionario,agregaColumna,171,0 SelectedBuild=0 VisibleModules=1,2,10,4,5,6,8,9,11,24