Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Gambas WebForm Tutoriales
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Gambas WebForm Tutoriales 
 
Hola amigos, aquí les presento una serie de viedeoturoriales
tratando de resumir algunos puntos presentados en mi libro.

Presentacion GB WebForm

Diseño de formularios

Primera aplicación

Solucionar Vulnerabilidades

Variables

Mensaje de Confirmación

Hojas de estilo CSS

Seguridad y Cookies

Mysql. Insert, Update, Delete, Select

Espero les sea útil.

Saludos, y que dios nos ayude a conservar la buena saludo, y que sane los que la han perdido.
 



 
alessandri - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Gracias Alessandri.

A ver si puedo contrastarla un poco con Java para ver diferencias en ciertos temas.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Java no tiene nada que ver con la programación web, en principio. No confundir con Javascript y resto de frameworks basados en éste.

Los pilares de la programación web son HTML, CSS y Javascript del lado del cliente. En el servidor, cualquier lenguaje CGI es válido para comunicarse con el programa cliente y poder realizar operaciones de todo tipo, consultas a BD, cálculos, etc.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Jesús:

Citar:

Java no tiene nada que ver con la programación web, en principio. No confundir con Javascript y resto de frameworks basados en éste.


Java no es Javascript y viceversa.

En cuestión del CGI. Lo primero que leí, es que el servlet Java es más rápido.

"..Los Servlets Java presentan una serie de ventajas sobre los CGI, el método tradicional de desarrollo de aplicaciones web. Éstos son más portables, más potentes, mucho más eficientes, más fáciles de usar, más escalables, etc. "

 

Una referencia:

http://profesores.elo.utfsm.cl/~agv...la/pagina1.html

Pero claro estábamos hablando del año 2004 si vas a la página principal.

La idea de "contrastar" con Java es encontrar métodos comunes que se usa en gambas ( seguro que de una forma más fácil ).
Al igual que podemos decir la palabra "constructor" en poo y como se hace en distintos lenguajes.  

Mi intención es comparar métodos que son iguales en distintos lenguajes.

¿ Entonces no viste nada del Java EE ?..Mmmm..ok, voy a crear un post y allí subo un vídeo.
En cambio el vídeo que voy a mostraros es del 2017

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Hola Alessandri.
Antes de nada, gracias por compartir estos videos.
Los he visto todos y he descargado el ejemplo que dejaste, el cual estoy estudiando.
En mi opinión, y siempre desde el punto de vista de WebForms, solo son interesantes los siguientes:
Presentacion GB WebForm
Diseño de formularios
Primera aplicación
Solucionar Vulnerabilidades
Variables
Mensaje de Confirmación
Hojas de estilo CSS
Seguridad y Cookies
Mysql. Insert, Update, Delete, Select
El resto podrían aplicarse al aprendizaje de gambas en general, seguramente para los que son noveles en este "mundo" de programar.
Bien, dicho esto ahora algunas preguntas.
¿Como se hace para "abrir" un webform desde un módulo de inicio?
En el ejemplo que subiste la tabla no es un control WebTable sino un WebHtml ¿A que se debe?
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Saludos.

Por ahora me parece que es verdaderamente rápido crear aplicaciones web con esta herramienta.
Estoy practicando en gambas 3.14 con: webform, webtable y mariadb.

Por lo que he leído, las webtables solo son para mostrar datos, se recomienda crear una tabla temporal en el servidor de base de datos para mantener los datos que se muestran en la webtable.

Basado en lo anterior, tengo una variable publica en un modulo:



Ademas de su respectiva Function con los atributos de conexión.

Public Function Conectar() As Boolean ….


En un webform por medio de un  webbutton llamo a la función que carga la webtable y funciona perfecto, luego en el evento  _Select() de la webtable llamo a una consulta según el numero de registro, pero resulta que la variable conn ahora esta en Null, sospecho que todo los eventos reinician las variables locales y globales.

Como ya saben las en la base de datos las tablas temporales se borran al finalizar la session que la ha creado, entonces la pregunta es:

¿Existe alguna forma de mantener la conexión activa la base de datos, para que no se me borre la tabla temporal?

Esto es para evitar tener que cargar tablas en cada evento, en cada pantalla y en cada proceso…

Gracias por la ayuda que puedan brindarme.


objeto-conn-queda-en-null
 



 
omoreno - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
No tengo ninguna experiencia sobre estos tipos de código pero estoy al 90% de seguridad de que es imposible, estamos hablando de un hilo web y te aseguro que no es posible, en todo caso podrías crear cookies y guardar lo necesario para cuando accede un usuario, recuerde lo necesario para entrar con mas velocidad.

Como no se de este tipo de código no se si te ha servido de algo, pero bueno, te lo he dicho con la mejor intensión si no te sirvió o crees que no sirve para nada pues coméntame.

Saludos.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Hola y bienvenido, omoreno

Tiene pinta de que la tabla temporal que creas en mariadb desaparece quizá porque la sesión caduca. Sólo por curiosidad, ¿has tratado de hacer el mismo ejemplo pero usando una tabla permanente? Si con tablas permanentes funciona siempre, eso corroboraría mi apreciación. Debe haber algún parámetro en la configuración de sesiones o tablas temporales que limita su tiempo de actividad.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
Gracias gambafeliz y jguardon por sus respuestas.

gambafeliz:
Probé el uso de sessiones, ciertamente me funciono tomar la columna de PK cedula y la converti en session["TCli-N"] y luego  en el evento _Select() de la WebTable utilice el indice que me da la propiedad WebTable_Clientes.Current concatenado a "TCli-" y asi forme la key para obtener el valor de la variable de session y realizar procesos con el objeto WebTextBox.Text:

WebTxt_Cedula.Text =  session["TCli-0"] ...
WebTxt_Cedula.Text =  session["TCli-1"] ...
WebTxt_Cedula.Text =  session["TCli-2"] ...

Pero el problema que tuve es que cuando deseaba eliminar todas esas variables de session, nunca me funcionaron ninguno de estos códigos:

    Session.Modified = True
    Session.Keys.Clear()
    Session.Keys.Delete(0)
    Session.Keys.Extract(1)

Me preocupa llenar el servidor con N cantidad de variables de session en cada uso de webtables y cada pantalla que la utilice    

Bueno deje ese modelo para verificarlo después.

jguardon:

Con las tablas temporales es exactamente como comentas las mismas son eliminadas por que la conexión se cierra una vez que finaliza el proceso que invoca a la función Conectar().
Con las tablas permanentes, pues he tenido que realizar el llamado a la función Conectar() cada vez que requiera los datos, ya que cada vez que termina la Sub o Function, la variable de conexión queda en NULL.

Me mantuve con el 10% de esperanza que me había dejado gambafeliz referente a que si se pueda crear una variable de conexión activa, o con el comentario de jguardon de que algo este mal configurado y provoca que el tiempo de actividad este limitado, lo que  tal vez hace que la variable de conexión se muera (NULL)....

No se si deba continuar en este mismo hilo de comentario, pero por el momento deje pendiente el uso de tablas temporales y el uso de sessiones para obtener los datos del webtable.

Me decidí a utilizar la función EXEC que puede ejecutar JavaScript, con la cual si puede obtener los datos de la WebTable, pero también tengo un consulta:

En un archivo de modulo llamado Mod_Webtable, codifique esta subrutina:

'Para extraer el valor de una celda de un WebTable y cargalo a un WebTextBox
Public Sub CellValueToTextBox(WebFormX As WebForm, WebTableX As WebTable, ColSel As Integer, WebControlX As WebTextBox)
  '
  Dim IdWebTableX As String = WebTableX.Name
  Dim IdWebControlX As String = WebControlX.Name
  '
  Dim RowSel As Integer = WebTableX.Current
  Dim TotCol As Integer
  '
  If WebTableX.ShowCheck Then
    TotCol = 1 + WebTableX.Columns.Count 'Columna con el radiobox + total de columnas con data
  Else
    TotCol = WebTableX.Columns.Count     'Total de columnas con data
  Endif
  
  Dim PosCell As Integer = ColSel + RowSel * TotCol 'Posicion de la celda a seleccionar.
  '
  Dim Xjavascript As String
  Xjavascript = "var idWebTableX = '" & IdWebTableX & "';" &
                "var poscell = " & PosCell & ";" &
                "var idWebControlX = '" & IdWebControlX & "'; " &
                "var table = document.getElementById(idWebTableX), cells = table.getElementsByTagName('td');" &
                "var dato = cells[poscell].innerHTML;" &
                "document.getElementById(idWebControlX + ':entry').value = dato;" &
                "gw.update(idWebControlX,'text', dato);"
  
  WebFormX.Exec(Xjavascript)
  '
End


Luego en el evento Select() del Webtable, codifique estas lineas:

Public Sub WebTable_Clientes_Select()
  '
  If WebTable_Clientes.Current = -1 Then
    WebTxt_Cedula.Text = ""
    Return
  Endif
  '
   Mod_WebTable.CellValueToTextBox(Me, WebTable_Clientes, 1, WebTxt_Cedula)
   Mod_WebTable.CellValueToTextBox(Me, WebTable_Clientes, 2, WebTxt_Nombre)
   Mod_WebTable.CellValueToTextBox(Me, WebTable_Clientes, 3, WebTxt_Dir)
   Mod_WebTable.CellValueToTextBox(Me, WebTable_Clientes, 4, WebTxt_Tel)
  '
  Catch
    Message.Error(Error.Code & "<br>" & Error.Text, "OK")
  '
End


Con esto se puede trabajar bien, pero por curiosidad cambie el código del evento _Select() para que solo asignara el dato de la columnas cédula y el resto los buscara en la base de datos (tabla clientes) y mi sorpresa fue que el WebTextBox recibe el datos con el javascript en el navegador, pero en el servidor la propiedad WebTextBox.Text esta vacía….

Public Sub WebTable_Clientes_Select()
  '
  If WebTable_Clientes.Current = -1 Then
    WebTxt_Cedula.Text = ""
    Return
  Endif
  '
  '
   Mod_WebTable.CellValueToTextBox(Me, WebTable_Clientes, 1, WebTxt_Cedula)
  '
  '
   If Mod_Conn.Conectar() Then
    Dim XRes As Result
    XRes = Mod_Conn.conn.Find("clientes", "WHERE cedula_cli = &1", WebTxt_Cedula.Text) '<--- sale vacío
    If XRes.Available Then
      '
      XRes.MoveFirst
      WebTxt_Nombre.Text = XRes["nombre_cli"]
      WebTxt_Dir.Text = XRes["direccion_cli"]
      WebTxt_Tel.Text = XRes["telefono_cli"]
      WebCmb_Sexo.Index = XRes["sexo_cli"]
      '
      Activa_Editar()
      Activa_Campos(True)
      WebTxt_Nombre.SetFocus()
      '
    Else
      '
      Activa_Campos(False)
      Message.Info("La cedula:<h2><pre>" & WebTxt_Cedula.Text & "</pre></h2>No existe ", "OK")
      '
    Endif
   Endif
  '
  Catch
    Message.Error(Error.Code & "<br>" & Error.Text, "OK")
  '
End


¿Por que la función gw.update(id, propiedad, valor ) ; no actualiza el objeto en el servidor o me falta algo?
Que le falta a esto:
gw.update(idWebControlX,'text', dato);

Gracias por la ayuda que puedan brindarme.

web-text-box-tiene-el-dato-en-el-bavegador-pero-no-en-el-servidor
 



 
omoreno - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas WebForm Tutoriales 
 
omoreno escribió:  
Gracias gambafeliz y jguardon por sus respuestas.

gambafeliz:
Probé el uso de sessiones, ciertamente me funciono tomar la columna de PK cedula y la converti en session["TCli-N"] y luego  en el evento _Select() de la WebTable utilice el indice que me da la propiedad WebTable_Clientes.Current concatenado a "TCli-" y asi forme la key para obtener el valor de la variable de session y realizar procesos con el objeto WebTextBox.Text:

WebTxt_Cedula.Text =  session["TCli-0"] ...
WebTxt_Cedula.Text =  session["TCli-1"] ...
WebTxt_Cedula.Text =  session["TCli-2"] ...

Pero el problema que tuve es que cuando deseaba eliminar todas esas variables de session, nunca me funcionaron ninguno de estos códigos:

    Session.Modified = True
    Session.Keys.Clear()
    Session.Keys.Delete(0)
    Session.Keys.Extract(1)

Me preocupa llenar el servidor con N cantidad de variables de session en cada uso de webtables y cada pantalla que la utilice    



Hooola omoreno, mira yo voy a mi bola y no te he hecho mucho caso, no te rias, es que me abstraigo y suelo ir a mi bola, otros dirian que estoy medio chiflao.

Yo he probado las sesiones y si, si funcionan e incluso bien. ¿Sabias que en un campo de una sesión puedes guardar información en JSON?

Esto te da ilimitadas posibilidades como guardar bases de datos, actualizaciones, Grabaciones, objetos e incluso código muy complejo.

Ya te lo he contado ahora aplica con máxima imaginación por tu parte.

Saludos, joven.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Vídeo Tutoriales De Gambas Shell General 3 Miercoles, 30 Enero 2013, 12:04 Ver último mensaje
metalgearxd
No hay nuevos mensajes Tutoriales De Programación Shell General 0 Martes, 20 Septiembre 2016, 14:17 Ver último mensaje
Shell
No hay nuevos mensajes Libro Gambas WebForm alessandri General 23 Sabado, 04 Abril 2020, 19:36 Ver último mensaje
alessandri
No hay nuevos mensajes Reportes Gambas WebForm alessandri Aplicaciones/Fragmentos de Código 1 Domingo, 26 Abril 2020, 11:08 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario