|
Página 1 de 1
|
Problemas Con El ValueBox
Autor |
Mensaje |
Henrry
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 57
|
Problemas Con El ValueBox
Saludos.
Tengo la siguiente duda: Al usar el control ValueBox puedo escribir, guardar, modificar e incluso eliminar la información almacenada en el mismo. El problema se presenta cuando tecleo algo en ese control y abandono inmediatamente el formulario sin realizar ninguna otra función ya sea incluir en alguna base de datos, cancelar x operacion, eliminar datos de la base de datos, entre muchas otras cosas. Aparece el Error Invalid Object y se aborta el programa.
De antemano agradecere toda información al respecto que permita solucionar este problema que se me presenta y no tener que reprogramar todos estos controles con el control TextBox (con el control TextBox este problema no se presenta) porque sera necesario hacer muchas validaciones para los datos númericos
|
#1 Miercoles, 27 Octobre 2010, 19:37 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemas Con El ValueBox
Puedes poner parte de tu código, y en que linea te da el error...
Saludos
|
#2 Miercoles, 27 Octobre 2010, 20:57 |
|
|
Henrry
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 57
|
Re: Problemas Con El ValueBox
Saludos
Creo necesario complementar la pregunta que realice con ciertos tips que note ayer cuando trataba de resolver lo del ValueBox. Al incluir un nuevo formulario en el programa que desarrollo para ir cuadrando todos los campos que necesito. El múltiples compilaciones que hacia decidí probar escribir un número en un valuebox e inmediatamente trataba de salir del formulario, aquí se presentaba la ventana del error “INVALID OBJECT” y abortaba el programa. En el caso de que escribiera algún valor en el valuebox y después colocara algún dato ya sea en un TextBox y abandonaba el formulario, aquí no se presentaba el error. Tengo que hacer la acotación de que en este formulario no hay ninguna linea de código (el formulario.class esta vacío). Ahora la confusión que tengo es mucho mas grande porque el programa que desarrollo es para muchos usuarios y esta validación todavía no consigo como corregirla.
De antemano gracias por la ayuda al respecto
|
#3 Viernes, 29 Octobre 2010, 17:32 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemas Con El ValueBox
O pones alguna captura de pantalla, o mejor video, porque sino no te puedo ayudar.
Saludos
(Tambien puedes enviar el formulario en concreto que te da el problema)
|
#4 Viernes, 29 Octobre 2010, 23:55 |
|
|
Henrry
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 57
|
Re: Problemas Con El ValueBox
Saludos.
Este es uno de los tantos formularios que presentan el problema del ValueBox. Puedes notar en la imagen anexa que los campos de las coordenadas GPS son del control antes señalado. El sistema que desarollo es un paquete o prototipo para el área de salud de mas de 150 modulos, que estoy por presentar a las autoridades de salud de mi pais. Por ahora llevo unos 70 modulos. Tengo no mas de 5 meses desarrollando en gambas por su parecido a Visual y lo he podido manejar poco a poco. Utilizo programación sencilla y eso me permite pasearme de un lenguaje a otro con muy pocos inconvenientes.
Como te dije anteriormente, este formulario no tenia ningun codigo e igual aparece el error. De antemano gracias por cualquier sugerencia que me des.
|
#5 Sabado, 30 Octobre 2010, 01:48 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemas Con El ValueBox
He intentado reproducir tu formulario, y no me da ningun error....
Te pregunto:
¿como llamas al formulario ( form1.show) ?
Para impedir que salga "abruptamente" el programa prueba la orden "TRY form1.show", por ejemplo:
TRY Form1.show
IF ERROR THEN Message.Info("se ha producido un error al intentar mostar el formulario Form1")
asi por lo menos no saldas del programa de manera brusca y mostrara un mensaje de error.
¿como sales del formulario? con un boton donde ponga me.close supongo....
Osea
Para impedir que salga "abruptamente" el programa prueba la orden "TRY me.close", por ejemplo:
asi por lo menos no saldas del programa de manera brusca y mostrara un mensaje de error.
Sino me mandas mas datos, esto es en lo que te puedo ayudar.
|
#6 Sabado, 30 Octobre 2010, 09:12 |
|
|
Henrry
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 57
|
Re: Problemas Con El ValueBox
Saludos.
Este es el codigo del formulario. Pero como dije antes, sin el codigo tambien aparece el error.
PRIVATE consulta AS String
PRIVATE categoria1 AS String
PRIVATE tipoempresa1 AS String
PRIVATE Sector1 AS String
PRIVATE rs AS Result
PRIVATE rs1 AS Result
PRIVATE rs4 AS Result
PRIVATE cambio AS Boolean
PRIVATE i AS Integer
PRIVATE grado1 AS Float
PRIVATE minuto1 AS Float
PRIVATE segundo1 AS Float
PRIVATE decimali1 AS Float
PRIVATE decimall1 AS Float
PRIVATE gradoi1 AS Float
PRIVATE gradol1 AS Float
PRIVATE minutoi1 AS Float
PRIVATE minutol1 AS Float
PRIVATE segundoi1 AS Float
PRIVATE segundol1 AS Float
PUBLIC SUB Cerrar_Click()
TRY ME.Close
END SUB
PUBLIC SUB LimpiarGradoI()
GradoI.Value = 0
MinutoI.Value = 0
SegundoI.Value = 0
END SUB
PUBLIC SUB LimpiarGradoL()
GradoL.Value = 0
MinutoL.Value = 0
SegundoL.Value = 0
END SUB
PUBLIC SUB DecimalI_KeyRelease()
IF NOT (DecimalI.value = NULL) THEN
Principal.DecimalAGrados(DecimalI.Value, GradoI, MinutoI, SegundoI)
ELSE
LimpiarGradoI
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB DecimalL_KeyRelease()
IF NOT (DecimalL.value = NULL) THEN
Principal.DecimalAGrados(DecimalL.Value, GradoL, MinutoL, SegundoL)
ELSE
LimpiarGradoL
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB GradoI_KeyRelease()
MinutoI.Value = 0
SegundoI.Value = 0
grado1 = GradoI.Value
minuto1 = MinutoI.Value
segundo1 = SegundoI.Value
IF NOT (GradoI.value = NULL) THEN
IF (GradoI.Value >= -180) AND (GradoI.Value <= 180) THEN
DecimalI.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB GradoL_KeyRelease()
MinutoL.Value = 0
SegundoL.Value = 0
grado1 = GradoL.Value
minuto1 = MinutoL.Value
segundo1 = SegundoL.Value
IF NOT (GradoL.value = NULL) THEN
IF (Gradol.Value >= -180) AND (Gradol.Value <= 180) THEN
DecimalL.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB MinutoI_KeyRelease()
SegundoI.Value = 0
grado1 = GradoI.Value
minuto1 = MinutoI.Value
segundo1 = SegundoI.Value
IF NOT (MinutoI.value = NULL) THEN
IF (MinutoI.Value >= 0) AND (MinutoI.Value <= 59) THEN
DecimalI.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB MinutoL_KeyRelease()
SegundoL.Value = 0
grado1 = GradoL.Value
minuto1 = MinutoL.Value
segundo1 = SegundoL.Value
IF NOT (MinutoL.value = NULL) THEN
IF (MinutoL.Value >= 0) AND (MinutoL.Value <= 59) THEN
DecimalL.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB SegundoI_KeyRelease()
grado1 = GradoI.Value
minuto1 = MinutoI.Value
segundo1 = SegundoI.Value
IF NOT (SegundoI.value = NULL) THEN
IF (SegundoI.Value >= 0) AND (SegundoI.Value <= 99.99999) THEN
DecimalI.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB SegundoL_KeyRelease()
grado1 = GradoL.Value
minuto1 = MinutoL.Value
segundo1 = SegundoL.Value
IF NOT (SegundoL.value = NULL) THEN
IF (SegundoL.Value >= 0) AND (SegundoL.Value <= 99.99999) THEN
DecimalL.Value = Principal.DecimalGps(Grado1, Minuto1, Segundo1)
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB ActivarGuardar()
Modificar.Visible = FALSE
Eliminar.Visible = FALSE
Guardar.Visible = TRUE
Cancelar.Visible = TRUE
Eliminar.Enabled = FALSE
Modificar.Enabled = FALSE
Guardar.Enabled = TRUE
Cancelar.Enabled = TRUE
END SUB
PUBLIC SUB Limpiar()
CodigoEmp.Text = ""
ir.Enabled = FALSE
NombreEmp.Text = ""
CodigoIvss.Text = ""
CodigoInpsasel.Text = ""
NombreInpsasel.Text = ""
Rif.Text = ""
Nit.Text = ""
Option21.Value = TRUE
Option22.Value = TRUE
Option23.Value = TRUE
END SUB
PUBLIC SUB LimpiarAbajo()
NombreEmp.Text = ""
ir.Enabled = FALSE
CodigoIvss.Text = ""
CodigoInpsasel.Text = ""
NombreInpsasel.Text = ""
Rif.Text = ""
Nit.Text = ""
Option21.Value = TRUE
Option22.Value = TRUE
Option23.Value = TRUE
END SUB
PUBLIC SUB ActivarModificar()
Eliminar.Visible = TRUE
Modificar.Visible = TRUE
Guardar.Visible = FALSE
Cancelar.Visible = FALSE
Eliminar.Enabled = TRUE
Modificar.Enabled = TRUE
Guardar.Enabled = FALSE
Cancelar.Enabled = FALSE
END SUB
PUBLIC SUB Bloquear()
Guardar.Enabled = FALSE
Cancelar.Enabled = FALSE
Modificar.Enabled = FALSE
Eliminar.Enabled = FALSE
END SUB
PUBLIC SUB BloquearAbajo()
CodigoIvss.Enabled = FALSE
CodigoInpsasel.Enabled = FALSE
NombreInpsasel.Enabled = FALSE
Nit.Enabled = FALSE
Rif.Enabled = FALSE
Option1.Enabled = FALSE
Option2.Enabled = FALSE
Option3.Enabled = FALSE
Option4.Enabled = FALSE
Option5.Enabled = FALSE
Option6.Enabled = FALSE
Option7.Enabled = FALSE
Option8.Enabled = FALSE
Option9.Enabled = FALSE
Option10.Enabled = FALSE
DecimalI.Enabled = FALSE
DecimalL.Enabled = FALSE
GradoI.Enabled = FALSE
GradoL.Enabled = FALSE
MinutoI.Enabled = FALSE
MinutoL.Enabled = FALSE
SegundoI.Enabled = FALSE
SegundoL.Enabled = FALSE
END SUB
PUBLIC SUB DesbloquearAbajo()
CodigoIvss.Enabled = TRUE
CodigoInpsasel.Enabled = TRUE
NombreInpsasel.Enabled = TRUE
Rif.Enabled = TRUE
Nit.Enabled = TRUE
Option1.Enabled = TRUE
Option2.Enabled = TRUE
Option3.Enabled = TRUE
Option4.Enabled = TRUE
Option5.Enabled = TRUE
Option6.Enabled = TRUE
Option7.Enabled = TRUE
Option8.Enabled = TRUE
Option9.Enabled = TRUE
Option10.Enabled = TRUE
DecimalI.Enabled = TRUE
DecimalL.Enabled = TRUE
GradoI.Enabled = TRUE
GradoL.Enabled = TRUE
MinutoI.Enabled = TRUE
MinutoL.Enabled = TRUE
SegundoI.Enabled = TRUE
SegundoL.Enabled = TRUE
END SUB
PUBLIC SUB LimpiarDatosGps()
DecimalI.Value = 0
DecimalL.Value = 0
GradoI.Value = 0
GradoL.Value = 0
MinutoI.Value = 0
MinutoL.Value = 0
SegundoI.Value = 0
SegundoL.Value = 0
END SUB
PUBLIC SUB LimpiarDatosGps1()
decimali1 = 0
decimall1 = 0
gradoi1 = 0
gradol1 = 0
minutoi1 = 0
minutol1 = 0
segundoi1 = 0
SegundoL1 = 0
END SUB
PUBLIC SUB Form_Open()
DIM i AS Integer
ME.Title = "Control de Empresas en General"
Principal.PictureCombos(modificar, eliminar, Guardar, cancelar)
Principal.PictureSalir(Cerrar)
BloquearAbajo
ir.Enabled = FALSE
cambio = FALSE
Bloquear
consulta = "Select * from Inpsasel where (Inpsasel.status='1') order by (Inpsasel.NombreInpsasel) asc"
Principal.LlenarCombos(CodigoInpsasel, NombreInpsasel, Consulta, "CodigoInpsasel", "NombreInpsasel")
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB CargarDatos()
DIM Variante AS Variant
DIM largo AS Integer
consulta = "Select * from GeneralEmpresas where ((GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "') and (GeneralEmpresas.status='1'))"
rs1 = db.Exec(consulta)
IF (rs1.Count <> 0) THEN
IF IsNull(rs1!DecimalI) OR IsNull(rs1!DecimalL) THEN
LimpiarDatosGps
ELSE
IF NOT (rs1!DecimalI = 0) AND NOT (rs1!DecimalL = 0) THEN
IF (rs1!DecimalI >= -180.9999999) AND (rs1!DecimalI <= 180.9999999) THEN
DecimalI.Value = rs1!DecimalI
IF (rs1!GradoI >= -180) AND (rs1!GradoI <= 180) THEN
GradoI.Value = rs1!GradoI
IF (rs1!MinutoI >= 0) AND (rs1!MinutoI <= 59) THEN
MinutoI.Value = rs1!MinutoI
IF (rs1!SegundoI >= 0) AND (rs1!SegundoI <= 99.999999) THEN
SegundoI.Value = rs1!SegundoI
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
ELSE
DecimalI.Value = 0
LimpiarGradoI
ENDIF
IF rs1!DecimalL >= -180.9999999 AND rs1!DecimalL <= 180.9999999 THEN
DecimalL.Value = rs1!DecimalL
IF rs1!GradoL >= -180 AND rs1!GradoL <= 180 THEN
GradoL.Value = rs1!GradoL
IF rs1!MinutoL >= 0 AND rs1!MinutoL <= 59 THEN
MinutoL.Value = rs1!MinutoL
IF rs1!SegundoL >= 0 AND rs1!SegundoL <= 99.999999 THEN
SegundoL.Value = rs1!SegundoL
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
ELSE
DecimalL.Value = 0
LimpiarGradoL
ENDIF
IF rs1!DecimalI = 0 AND rs1!DecimalL = 0 AND rs1!GradoI = 0 AND rs1!GradoL = 0 AND rs1!MinutoI = 0 AND rs1!MinutoL = 0 AND rs1!SegundoI = 0 AND rs1!SegundoL = 0 THEN
LimpiarDatosGps
ENDIF
ELSE
LimpiarDatosGps
ENDIF
ENDIF
IF NOT IsNull(rs1!NombreEmp) THEN
NombreEmp.Text = rs1!NombreEmp
ELSE
NombreEmp.Text = ""
ENDIF
IF NOT IsNull(rs1!CodigoIvss) THEN
CodigoIvss.Text = rs1!CodigoIvss
ELSE
CodigoIvss.Text = ""
ENDIF
IF NOT IsNull(rs1!CodigoInpsasel) THEN
consulta = "Select * from Inpsasel where ((Inpsasel.CodigoInpsasel='" & rs1!CodigoInpsasel & "') and (Inpsasel.status='1'))"
rs4 = db.Exec(consulta)
IF (rs4.Count <> 0) THEN
CodigoInpsasel.Text = rs4!CodigoInpsasel
IF NOT IsNull(rs4!NombreInpsasel) THEN
NombreInpsasel.Text = rs4!NombreInpsasel
ELSE
NombreInpsasel.Text = ""
ENDIF
ENDIF
ELSE
CodigoInpsasel.Text = ""
NombreInpsasel.Text = ""
ENDIF
IF NOT IsNull(rs1!Rif) THEN
Rif.Text = rs1!Rif
ELSE
Rif.Text = ""
ENDIF
IF NOT IsNull(rs1!Nit) THEN
Nit.Text = rs1!Nit
ELSE
Nit.Text = ""
ENDIF
IF rs1!TipoEmpresa = "1" THEN
Option1.Value = TRUE
ELSE
IF rs1!TipoEmpresa = "2" THEN
Option2.Value = TRUE
ELSE
IF rs1!TipoEmpresa = "3" THEN
Option3.Value = TRUE
ELSE
IF rs1!TipoEmpresa = "4" THEN
Option4.Value = TRUE
ELSE
IF rs1!TipoEmpresa = "5" THEN
Option5.Value = TRUE
ELSE
IF rs1!TipoEmpresa = "6" THEN
Option10.Value = TRUE
ELSE
Option21.Value = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF rs1!Categoria = "1" THEN
Option6.Value = TRUE
ELSE
IF rs1!Categoria = "2" THEN
Option7.Value = TRUE
ELSE
Option23.Value = TRUE
ENDIF
ENDIF
IF rs1!Sector = "1" THEN
Option8.Value = TRUE
ELSE
IF rs1!Sector = "2" THEN
Option9.Value = TRUE
ELSE
Option22.Value = TRUE
ENDIF
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB ir_Click()
IF NOT (CodigoEmp.Text = "") THEN
consulta = "Select * from GeneralEmpresas where (GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "')"
rs = db.Exec(consulta)
IF (rs.Count <> 0) THEN
CargarDatos
ActivarModificar
BloquearAbajo
ELSE
DesbloquearAbajo
NombreEmp.Text = ""
LimpiarAbajo
ActivarGuardar
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB CodigoEmp_KeyRelease()
LimpiarAbajo
Bloquear
BloquearAbajo
IF NOT (CodigoEmp.Text = "") THEN
ir.Enabled = TRUE
ELSE
ir.Enabled = FALSE
ENDIF
END
PUBLIC SUB modificar_click()
cambio = TRUE
ActivarGuardar
DesbloquearAbajo
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB cancelar_click()
Limpiar
ir.Enabled = FALSE
Bloquear
BloquearAbajo
cambio = FALSE
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB Guardar_click()
DIM LargoNombre AS Integer
DIM LargoCodigo AS Integer
LargoNombre = Len(NombreEmp.Text)
LargoCodigo = Len(CodigoEmp.Text)
IF LargoNombre > 150 OR LargoCodigo > 15 THEN
IF LargoNombre > 150 AND NOT (LargoCodigo > 15) THEN
Message.Info("Tamaño del Nombre de la Empresa Sobrepasa los 150 Caracteres")
ELSE
IF NOT (LargoNombre > 150) AND LargoCodigo > 15 THEN
Message.Info("Tamaño del Código de la Empresa Sobrepasa los 15 Caracteres")
ELSE
Message.Info("Tamaño de los Campos Sobrepasa lo Indicado (Código:15, Nombre Empresa:150)")
ENDIF
ENDIF
ELSE
IF NombreEmp.Text = "" OR CodigoEmp.Text = "" OR CodigoInpsasel.Text = "" OR (Option1.Value = FALSE AND Option2.Value = FALSE AND Option3.Value = FALSE AND Option4.Value = FALSE AND Option5.Value = FALSE AND Option10.Value = FALSE) THEN
IF NombreEmp.Text = "" AND NOT (CodigoEmp.Text = "") THEN
Message.Info("Nombre en Blanco")
ELSE
IF NOT (NombreEmp.Text = "") AND CodigoEmp.Text = "" THEN
Message.Info("Codigo en Blanco")
ELSE
Message.Info("Datos en Blanco")
ENDIF
ENDIF
ActivarGuardar
ELSE
IF (cambio = FALSE) THEN
consulta = "Select * from GeneralEmpresas where ((GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "'))"
rs = db.Exec(consulta)
IF (rs.Count = 0) THEN
IF Message.Question("¿Incluye Nueva Empresa?", "Si", "No") = 1 THEN
ChequeoDatos
consulta = "INSERT INTO GeneralEmpresas (codigoemp,status,Codigousuario,fechaproceso, Nombreemp,CodigoIvss,Rif,Nit,CodigoInpsasel,tipoempresa,categoria,sector) VALUES ('" & CodigoEmp.Text & "','1','" & frmAcceso.CedulaUsuario1 & "','" & Principal.LeerFecha(Date) & "', '" & NombreEmp.Text & "','" & CodigoIvss.Text & "','" & Rif.Text & "','" & Nit.Text & "','" & CodigoInpsasel.Text & "','" & tipoempresa1 & "','" & categoria1 & "','" & Sector1 & "')"
db.Exec(consulta)
PedazoGuardar
consulta = "UPDATE GeneralEmpresas SET decimali=" & decimali1 & ",decimall=" & decimall1 & ",gradoi=" & gradoi1 & ",gradol=" & gradol1 & ",minutoi=" & minutoi1 & ",minutol=" & minutol1 & ",segundoi=" & segundoi1 & ",segundol=" & segundol1 & " where ((GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "') and (GeneralEmpresas.status='1'))"
db.Exec(consulta)
Limpiar
Bloquear
BloquearAbajo
ir.Enabled = FALSE
ELSE
ActivarGuardar
ENDIF
ELSE
Message.Info("Codigo de Empresa en Archivo (Borrado Logicamente)")
Limpiar
Bloquear
BloquearAbajo
ir.Enabled = FALSE
ENDIF
ELSE
IF Message.Question("¿Actualiza Datos de la Empresa?", "Si", "No") = 1 THEN
ChequeoDatos
consulta = "UPDATE GeneralEmpresas SET Codigomodificacion='" & frmAcceso.CedulaUsuario1 & "',fechamodificacion='" & Principal.LeerFecha(Date) & "', Nombreemp='" & NombreEmp.Text & "',CodigoIvss='" & CodigoIvss.Text & "',Rif='" & Rif.Text & "',Nit='" & Nit.Text & "',CodigoInpsasel='" & CodigoInpsasel.Text & "',tipoempresa='" & tipoempresa1 & "',categoria='" & categoria1 & "',sector='" & Sector1 & "' where ((GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "') and (GeneralEmpresas.status='1'))"
db.Exec(consulta)
PedazoGuardar
consulta = "UPDATE GeneralEmpresas SET decimali=" & decimali1 & ",decimall=" & decimall1 & ",gradoi=" & gradoi1 & ",gradol=" & gradol1 & ",minutoi=" & minutoi1 & ",minutol=" & minutol1 & ",segundoi=" & segundoi1 & ",segundol=" & segundol1 & " where ((GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "') and (GeneralEmpresas.status='1'))"
db.Exec(consulta)
Limpiar
Bloquear
BloquearAbajo
ir.Enabled = FALSE
ELSE
ActivarModificar
BloquearAbajo
ENDIF
ENDIF
cambio = FALSE
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB ChequeoDatos()
IF Option1.Value = TRUE THEN
tipoempresa1 = "1"
ELSE
IF Option2.Value = TRUE THEN
tipoempresa1 = "2"
ELSE
IF Option3.Value = TRUE THEN
tipoempresa1 = "3"
ELSE
IF Option4.Value = TRUE THEN
tipoempresa1 = "4"
ELSE
IF Option5.Value = TRUE THEN
tipoempresa1 = "5"
ELSE
IF Option10.Value = TRUE THEN
tipoempresa1 = "6"
ELSE
tipoempresa1 = NULL
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF Option6.Value = TRUE THEN
categoria1 = "1"
ELSE
IF Option7.Value = TRUE THEN
categoria1 = "2"
ELSE
categoria1 = NULL
ENDIF
ENDIF
IF Option8.Value = TRUE THEN
Sector1 = "1"
ELSE
IF Option9.Value = TRUE THEN
Sector1 = "2"
ELSE
Sector1 = NULL
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB PedazoGuardar()
IF DecimalI.Value = 0 OR DecimalL.Value = 0 THEN
LimpiarDatosGps1
ELSE
IF NOT (DecimalI.Value = 0) AND NOT (DecimalL.Value = 0) THEN
IF (DecimalI.Value >= -180.9999999) AND (DecimalI.Value <= 180.9999999) THEN
decimali1 = DecimalI.Value
IF (GradoI.Value >= -180) AND (GradoI.Value <= 180) THEN
gradoi1 = GradoI.Value
IF (MinutoI.Value >= 0) AND (MinutoI.Value <= 59) THEN
minutoi1 = MinutoI.Value
IF (SegundoI.Value >= 0) AND (SegundoI.Value <= 99.999999) THEN
segundoi1 = SegundoI.Value
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
IF (DecimalL.Value >= -180.9999999) AND (DecimalL.Value <= 180.9999999) THEN
decimall1 = DecimalL.Value
IF (GradoL.Value >= -180) AND (GradoL.Value <= 180) THEN
gradol1 = GradoL.Value
IF (MinutoL.Value >= 0) AND (MinutoL.Value <= 59) THEN
minutol1 = MinutoL.Value
IF (SegundoL.Value >= 0) AND (SegundoL.Value <= 99.999999) THEN
segundol1 = SegundoL.Value
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ELSE
LimpiarDatosGps1
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB Eliminar_Click()
IF Message.delete("¿Desea eliminar el registro de la Empresa?", "Si", "No") = 1 THEN
consulta = "UPDATE GeneralEmpresas SET status = '2' where (GeneralEmpresas.CodigoEmp='" & CodigoEmp.Text & "')"
db.Exec(consulta)
Limpiar
Bloquear
BloquearAbajo
ELSE
ActivarModificar
BloquearAbajo
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
PUBLIC SUB NombreInpsasel_Click()
IF NOT (NombreInpsasel.Text = "") AND NOT (NombreInpsasel.Text = "Escoja") THEN
CodigoInpsasel.Index = NombreInpsasel.Index
consulta = "Select * from Inpsasel where ((Inpsasel.CodigoInpsasel='" & CodigoInpsasel.Text & "') and (Inpsasel.status='1'))"
rs = db.Exec(consulta)
IF (rs.Count <> 0) THEN
IF NOT IsNull(rs!CodigoInpsasel) THEN
CodigoInpsasel.Text = rs!CodigoInpsasel
ELSE
CodigoInpsasel.Text = ""
ENDIF
ELSE
CodigoInpsasel.Text = ""
ENDIF
ENDIF
CATCH
Message.Error(Error.Text & "\n" & Error.Where)
END SUB
|
#7 Sabado, 30 Octobre 2010, 19:36 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Problemas Con El ValueBox
Henrry, estás haciendo que sea difícil ayudarte. Por favor lee el encabezado titulado "Importante: Lee antes de postear" en la parte superior de la página que muestra esta conversación.
El mensaje de error "Invalid Object" indica que (probablemente) intentas usar un objeto que depende otro objeto que fue destruido. Por ejemplo, tal vez estés referenciando una variable, un control o llamando una función de un formulario, luego cerrarlo.
Deberías decirnos cómo se llaman: el formulario que contiene el código que muestras, el control ValueBox que mencionas y el formulario que llama a éste. También deberías mostrar el código del formulario que abre éste.
Debido a lo que mencionas respecto de que el error se produce aún sin el código que muestras y al significado del error, probablemente el problema esté en el código que se ejecuta después de cerrar el formulario.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#8 Domingo, 31 Octobre 2010, 02:29 |
|
|
Henrry
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 57
|
Re: Problemas Con El ValueBox
Saludos.
Antes de abrir el formulario que envie (se llama frmGeneralEmpresas) el sistema recorre 2 formulario.
El primero es un formulario de acceso que tiene el siguiente codigo (frmAcceso):
PUBLIC var AS Integer
PUBLIC NumeroTabla AS Integer
PUBLIC consulta AS String
PRIVATE Contador AS Integer
PRIVATE rs AS Result
PUBLIC FUNCTION ConectarBase() AS Boolean
db.Type = "postgresql"
db.Host = "localhost"
db.Login = "postgres"
db.Password = "1234"
db.Name = "postgres"
TRY db.Open()
IF ERROR THEN
db = NULL
Message.Error("Error al conectar con la Base de Datos")
RETURN TRUE
ENDIF
RETURN FALSE
END
PUBLIC SUB CerrarConexion()
IF db = NULL THEN RETURN
db.Close
db = NULL
END
PUBLIC SUB Form_Open()
IF ConectarBase() THEN RETURN
ME.Center()
login.Text = "gittens"
clave.Password = TRUE
Contador = 0
Label1.Visible = TRUE
Cancelar.Picture = Picture["Fondos/1Cancelar.bmp"]
Cancelar.Refresh
Cancelar.Enabled = TRUE
login.Visible = TRUE
clave.visible = FALSE
Label4.Text = "Usuario:"
login.SetFocus
END
PUBLIC SUB Cancelar_Click()
CerrarConexion()
ME.Close()
END
PUBLIC SUB Login_Activate()
IF (login.Text = "") THEN
Message.Info("Debe Introducir Nombre de Usuario")
clave.Text = ""
clave.Visible = FALSE
Label1.Visible = TRUE
Label4.Text = "Usuario:"
ELSE
Label1.Visible = FALSE
login.Visible = FALSE
clave.Text = "7"
clave.Visible = TRUE
clave.SetFocus
Label4.Text = "Contraseña:"
ENDIF
END
PUBLIC SUB clave_Activate()
IF clave.Text = "" THEN
Message.Info("Debe Introducir Contraseña")
ELSE
consulta = "Select * from Usuario where ((Usuario.password1='" & clave.Text & "') and (Usuario.login1='" & login.Text & "'))"
rs = db.Exec(consulta)
IF rs.Count > 0 THEN
IF NOT IsNull(rs!codigonivelacceso) THEN
var = rs!codigonivelacceso
CedulaUsuario1 = rs!CodigoCedula
NumeroTabla = rs!Numero
Contador = 0
IF var = 1 THEN
frmMenuPrincipal.ShowModal()
ELSE
IF var = 2 THEN
Message.Info("No tendrá acceso a los formularios: Parametros, Mantenimientos")
frmMenuPrincipal.ShowModal()
ELSE
Message.Info("No tendra acceso a los formularios: Parametros, Mantenimiento ni Consultas")
frmMenuPrincipal.ShowModal()
ENDIF
ENDIF
ELSE
Contador = Contador + 1
Message.Error("Nivel de Acceso Nulo")
clave.Text = ""
login.Text = ""
login.Visible = TRUE
clave.visible = FALSE
Label4.Text = "Usuario:"
login.SetFocus
Label1.Visible = TRUE
IF Contador > 3 THEN
Message.Info("Finalizaron sus Opciones")
ME.Close()
ENDIF
ENDIF
ELSE
Contador = Contador + 1
Message.Error("Contraseña Incorrecta")
clave.Text = ""
login.Text = ""
login.Visible = TRUE
clave.visible = FALSE
Label4.Text = "Usuario:"
login.SetFocus
Label1.Visible = TRUE
IF (Contador >= 3) THEN
Message.Info("Finalizaron sus Opciones")
ME.Close()
ENDIF
ENDIF
ENDIF
END
Una vez que confirmas que puedes entrar al sistema, aparece el otro formulario que es el menu del sistema (frmMenuPrincipal), cuyo codigo es el siguiente:
PUBLIC FechaCalendario AS String
PUBLIC VaHacia AS String
PUBLIC ControlRedes AS String
PUBLIC ControlRedes1 AS String
PUBLIC ControlFrm AS String
PUBLIC Nivel AS String
PUBLIC Nivel0 AS String
PUBLIC ServicioEquipo AS String
PUBLIC SUB ControlIndicadores_Click()
' frmControlIndicadores.ShowModal()
END
PUBLIC SUB CamasHospitalizacion_Click()
VaHacia = "1"
' frmInventarioDeCamas.ShowModal()
END
PUBLIC SUB CierreMes_Click()
' frmCierreMes.ShowModal()
END
PUBLIC SUB ControlVivienda_Click()
frmControlViviendaAdjudicatario.ShowModal()
END
PUBLIC SUB EmisionCartas_Click()
' frmCartas.ShowModal()
END
PUBLIC SUB EmpresaTrabajo_Click()
' frmEmpresasTrabajador.ShowModal()
END
PUBLIC SUB EquiposPorServicios_Click()
frmEquiposPorServicios.ShowModal()
END
PUBLIC SUB Estados_Click()
frmEstados.ShowModal()
END
PUBLIC SUB Ficha_Click()
frmFichaUnica.ShowModal()
END
PUBLIC SUB FormularioTerapeutico_Click()
' frmMedicamentosEsenciales.ShowModal()
END
PUBLIC SUB Formulas_Click()
' frmGenerarFormula.ShowModal()
END
PUBLIC SUB GradosPasos_Click()
' frmGradosxPasos.ShowModal()
END
PUBLIC SUB IndicadoresMedicos_Click()
frmIndicadores.ShowModal()
END
PUBLIC SUB Informeentrefechas_Click()
' frmInformeEntreFechas.ShowModal()
END
PUBLIC SUB InventarioEquipos_Click()
VaHacia = "1"
' frmInventarioDeEquipos.ShowModal()
END
PUBLIC SUB MegaCompras_Click()
' frmMegaCompra.ShowModal()
END
PUBLIC SUB NuevoInteres_Click()
' frmCambioDeInteres.ShowModal()
END
PUBLIC SUB Patologias_Click()
frmPatologiasDeSalud.ShowModal()
END
PUBLIC SUB busqueda_Click()
' frmBusquedaEstablecimiento.ShowModal()
END
PUBLIC SUB PLanOperativo_Click()
frmPlanOperativo.ShowModal()
END
PUBLIC SUB Precios_Click()
' frmPreciosRequisicion.ShowModal()
END
PUBLIC SUB PreciosPromedios_Click()
' frmPreciosPorEmpresas.ShowModal()
END
PUBLIC SUB Quirofanos_Click()
VaHacia = "1"
' frmInventarioDeQuirofanos.ShowModal()
END
PUBLIC SUB RedesHorizontales_Click()
'Aqui van los 2 VaHacia = "2" y VaHacia = "1"
ControlRedes = ""
ControlRedes1 = ""
ControlFrm = ""
ServicioEquipo = "3"
frmContinuoVertical.ShowModal()
END
PUBLIC SUB RedesIgualServicio_Click()
'Aqui van los 2 VaHacia = "2" y VaHacia = "1"
ControlRedes = ""
ControlRedes1 = ""
ControlFrm = ""
ServicioEquipo = "2"
frmContinuoVertical.ShowModal()
END
PUBLIC SUB RedesVerticalesServicios_Click()
'Aqui van los 2 VaHacia = "2" y VaHacia = "1"
ControlRedes = ""
ControlRedes1 = ""
ControlFrm = ""
ServicioEquipo = "1"
frmContinuoVertical.ShowModal()
END
PUBLIC SUB SeleccionarPrecios_Click()
' frmSeleccionarPrecios.ShowModal()
END
PUBLIC SUB SeleccionAutomatica_Click()
' frmSeleccionarPreciosAutomaticos.Show 1
END
PUBLIC SUB ServiciosDeApoyo_Click()
VaHacia = "1"
frmServiciosDeApoyo.ShowModal()
END
PUBLIC SUB ServiciosHospitalarios_Click()
VaHacia = "1"
' frmServiciosHospitalarios.ShowModal()
END
PUBLIC SUB OtrosServicios_Click()
VaHacia = "1"
' frmServiciosAyuda.ShowModal()
END
PUBLIC SUB Funciones_Click()
frmFunciones.ShowModal()
END
PUBLIC SUB Sector_Click()
' frmSector.ShowModal()
END
PUBLIC SUB tablaamortizacion_Click()
' frmTablaAmortizacion.ShowModal()
END
PUBLIC SUB TipoEstablecimiento_Click()
' frmTiposEstablecimientos.ShowModal()
END
PUBLIC SUB Acopios_Click()
' frmCentrosDeAcopios.ShowModal()
END
PUBLIC SUB Comites_Click()
' frmComites.ShowModal()
END
PUBLIC SUB EnteEjecutor_Click()
' frmEnteEjecutor.ShowModal()
END
PUBLIC SUB Servicios_Click()
frmServiciosDeSalud.ShowModal()
END
PUBLIC SUB Clinicas_Click()
VaHacia = "1"
' frmClinica.ShowModal()
END
PUBLIC SUB ConsumoPromedio_Click()
VaHacia = "1"
' frmConsumoPromedio.ShowModal()
END
PUBLIC SUB IVA_Click()
' frmIVA.ShowModal()
END
PUBLIC SUB Bancos_Click()
frmBancos.ShowModal()
END
PUBLIC SUB MegaCompra_Click()
' frmMegaCompra.ShowModal()
END
PUBLIC SUB Salir_Click()
ME.Close()
QUIT
END
PUBLIC SUB Form_Open()
'Image1.Picture = LoadPicture("C:\Henrry\Fondos\globe.wmf")
'Image1.Stretch = True
IF frmAcceso.var = 1 THEN
Archivos.Enabled = TRUE
ModuloControl.Enabled = TRUE
' DatosGenerales.Enabled = True
' ControlInventario.Enabled = True
' ProcesoRequisicion.Enabled = True
' Reportes.Enabled = True
Accesos.Enabled = TRUE
AcercaAutoria.Enabled = TRUE
ELSE
IF frmAcceso.var = 2 THEN
Archivos.Enabled = TRUE
ModuloControl.Enabled = TRUE
' DatosGenerales.Enabled = True
' ControlInventario.Enabled = True
' ProcesoRequisicion.Enabled = True
' Reportes.Enabled = True
Accesos.Enabled = FALSE
AcercaAutoria.Enabled = TRUE
ELSE
Archivos.Enabled = FALSE
ModuloControl.Enabled = TRUE
' DatosGenerales.Enabled = True
' ControlInventario.Enabled = True
' ProcesoRequisicion.Enabled = False
' Reportes.Enabled = True
Accesos.Enabled = FALSE
AcercaAutoria.Enabled = TRUE
ENDIF
ENDIF
END
PUBLIC SUB Entregaproveedor_Click()
' frmEntregaProveedor.ShowModal()
END
PUBLIC SUB InventarioInicial_Click()
VaHacia = "1"
' frmInventarioInicial.ShowModal()
END
PUBLIC SUB Partidas_Click()
' frmPartidas.ShowModal()
END
PUBLIC SUB Empresas_Click()
' frmEmpresas.ShowModal()
END
PUBLIC SUB Renglones_Click()
' frmRenglones.ShowModal()
END
PUBLIC SUB PreciosPorEmpresas_Click()
' frmPreciosPorEmpresas.ShowModal()
END
PUBLIC SUB SeleccionarRenglonesDesiertos_Click()
' frmSeleccionarPreciosDesiertos.ShowModal()
END
PUBLIC SUB CartasCompromisos_Click()
' frmGenerarCartaCompromiso.ShowModal()
END
PUBLIC SUB SeleccionarOfertante_Click()
' frmSeleccionarPrecios.ShowModal()
END
PUBLIC SUB CargarPrecios_Click()
' frmPreciosRequisicion.ShowModal()
END
PUBLIC SUB DatosSistema_Click()
' frmDatosSistema.ShowModal()
END
PUBLIC SUB TotalEmpresas_Click()
frmGeneralEmpresas.ShowModal()
END
PUBLIC SUB Requisiciones_Click()
' frmRequisiciones.ShowModal()
END
PUBLIC SUB SubRequisiciones_Click()
' frmCargarPreciosDesiertos1.ShowModal()
END
PUBLIC SUB PagosDeFacturas_Click()
' frmCancelacionFacturas.ShowModal()
END
PUBLIC SUB Accesos_Click()
' frmUsuarios.ShowModal()
END
PUBLIC SUB archivos_Click()
IF frmAcceso.var = 1 THEN
Partidas.Enabled = TRUE
Bancos.Enabled = TRUE
DatosSistema.Enabled = TRUE
IVA.Enabled = TRUE
Renglones.Enabled = TRUE
Empresas.Enabled = TRUE
ELSE
IF frmAcceso.var = 2 THEN
Partidas.Enabled = TRUE
Bancos.Enabled = TRUE
DatosSistema.Enabled = TRUE
IVA.Enabled = TRUE
Renglones.Enabled = TRUE
Empresas.Enabled = TRUE
ELSE
Partidas.Enabled = FALSE
Bancos.Enabled = FALSE
DatosSistema.Enabled = FALSE
IVA.Enabled = FALSE
Renglones.Enabled = FALSE
Empresas.Enabled = FALSE
ENDIF
ENDIF
END
PUBLIC SUB Form_Close()
QUIT
END
PUBLIC SUB ValoresLaboratorio_Click()
' frmIndicadoresLaboratorio.ShowModal()
END
PUBLIC SUB Propietario_Click()
frmAcercaDe.showModal()
END
PUBLIC SUB Viviendas_Click()
frmVivienda.ShowModal()
END
Y aqui escojes la opción con la que deseas trabajar.
Nota: Utilizo las herramienta gb.qt, gb.db, gb.form entre otras, gambas2, sistema operativo Debian y el manejador de base de datos es PostgreSql 8.3.
El sistema hasta los momentos funciona muy bien a exepción del error que les pregunto. Me faltan todavia aquellos formularios que utilizaran grid pero eso lo aprendere luego, por ahora desarrollo todos los que no utilizan esa herramienta.
Me despido, y como siempre digo: gracias de antemano
|
#9 Domingo, 31 Octobre 2010, 18:43 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Problemas Con El ValueBox
Tal como lo pones quizá nadie te conteste. Tienes que preocuparte de dejar clara tu pregunta porque todo eso echa para atrás ¿a que viene incluir funciones que no tienen que ver con el caso? Todo ese tocho para poner un código que probablemente no debe llevar mas de cinco líneas.
Algo de un formulario que recorre dos formularios y luego se cierra y tal para que al final te de un error en alguna parte. Tu pón únicamente la rutina que te da el error y si falta algo pues ya veremos ¿si tenes cincuenta formularios nos pones los cincuenta? ¿a qué viene poner el código de formularios que no tienen que ver pero pasan por allí?
De hecho de todos esos formularios no se cual es el que te da el error ni se donde y tampoco se que valuebox es el que da el error ni cuando. Por lo visto cuando se cierra pero ¿cuando se cierra cual?
Así no se pregunta. Los demás no conocemos tu aplicación.
|
#10 Domingo, 31 Octobre 2010, 21:36 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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 Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|