Lotus Approach - Scrip para Busqueda condicionada

   
Vista:

Scrip para Busqueda condicionada

Publicado por Luis (10 intervenciones) el 01/07/2008 00:47:44
Requiero ayuda de como hacer que la siguiente SCRIP no se ejecute si el campo usuario y codigo no corresponden al mismo usuario. Hasta ahora cuando introduzco un codigo o nombre que no correspomden al mismo usuario, el programa no rechaza los mismos. En su lugar realiza una busqueda y ejecuta el Mensaje siguiente: NO SE HA HALLADO NINGUN REGISTRO. DESEA BUSCAR OTRA VEZ. SI NO AYUDA .
Al oprimir SI o NO pasa a la siguiente rutina de la srcip, es decir continua ejecutandose, lo cual permite que un usuario no autorizado entre a la base de datos que tengo.
Si alguno puede ayudarme a como mejorar la misma se lo agradecere.

En conclusion lo que deseo es que la SCRIP no se ejecute si Falta uno de los dos datos o cuando no correspondan al mismo usauario.

Sub Click(Source As Button, X As Long, Y As Long, Flags As Long)
VU = CurrentView.Body.VAR_USUARIO.Text
VC = CurrentView.Body.VAR_CODIGO.Text

If VU = "" Or VC = "" Then
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA NOMBRE Y CODIGO " , boxType, "AVISO")
Exit Sub
End If

Dim fFind As New Find
fFind.And "DEPOSITO.USUARIO", "=" & VU
fFind.And "DEPOSITO.CODIGO", "=" & VC

CurrentWindow.FindSort fFind '---Ahora cada usuario sólo verá sus registros

NR = CurrentWindow.CountRecords(AprFoundRecords)

Set CurrentWindow.ActiveView = CurrentDocument.BUSCAR
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Lotus Approach
- Cursos de Lotus Approach
información
Cursos y Temas de Lotus Approach
- Manual de Lotus Approach

RE:Scrip para Busqueda condicionada

Publicado por Manolo (139 intervenciones) el 09/07/2008 09:43:48
Hola otra vez, Luis:
Estos dias estoy de vacaciones, lejos de casa. En cuanto regrese, te envío algunas ideas que te pueden servir. Ya me imaginaba que te ocurriría. Hay que hacer una búsqueda previa de los registros con SQL, por si no hay ninguno que cumpla las condiciones, y no te aparezca el recuadro. En cuanto llegue a a casa, te lo envío.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scrip para Busqueda condicionada

Publicado por Luis (10 intervenciones) el 09/07/2008 22:30:01
Manolo Gusto en saludarte:

Bueno te dire que resolvi el problema con una Macro, ya no pude convertir la misma en un srcipt, lo hice fue introduccir la macro EVALUADOR: RunApproachMacro("EVALUADOR") que ejecuta los siguientes comandos o rutina:
Comando Opciones
EjJECUTAR Si (IGUAL(Deposito.USUARIO, VAR_USER)) and (IGUAL(VAR_COD, Deposito.CODIGO))
-si esta condicion se cumple se continua con la macro y se ejecuta el comando Vista

VISTA Cambiar a: BUSCAR
-si la condición no se cumple entonces se ejecuta una segunda macro con un mensaje y que detiene la macro.

La macro no impide que se ejecute la rutina CurrentWindow.FindSort fFind, lo que hace es que no se cambie de ventana si no se cumple lo establecido en ella, es decir esto impide que el usuario vea la vista BUSCAR.

No se si es la mejor forma pero me ha funcionado, ya que elimine del srcipt la rutina Set CurrentWindow.ActiveView = CurrentDocument.BUSCAR que cambiaba automaticamente la vista.

Si tu con tu experiencia consideras que es mejor de otra forma te agradecere la ayuda, ya que trate de aplicar esto en otra srcipt con mmayor numero de variables de busqueda y no me funciona bien.

de Antemano,Gracias por tu Atención

Sub Click(Source As Button, X As Long, Y As Long, Flags As Long)
VU = CurrentView.Body.VAR_USER.Text
VC = CurrentView.Body.VAR_COD.Text

If VU = "" Or VC = "" Then
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA NOMBRE Y CODIGO " , boxType, "AVISO")
Exit Sub
End If

Dim fFind As New Find
fFind.And "DEPOSITO.USUARIO", "=" & VU
fFind.And "DEPOSITO.CODIGO", "=" & VC
RunApproachMacro("Evaluador")
CurrentWindow.FindSort fFind '---Ahora cada usuario sólo verá sus registros
NR = CurrentWindow.CountRecords(AprFoundRecords)

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scrip para Busqueda condicionada

Publicado por Manolo (139 intervenciones) el 11/07/2008 13:29:27
Hola Luis:
A ver si consigues hacer que te funcione ésto:

'----------------- Comentarios
'----------------- Defino estas variables como públicas en "Globals:Declarations"
'----------------- para no tener que hacerlo cada vez que las necesite
Public QRY As Query
Public RST As ResultSet
Public CON As Connection
Public File As String
Public CD As String

CD = Chr(34) '--------- Comillas dobles para formar sentencias SQL

Path = CurrentDocument.Path '------ Via al documento
File = "CLIENTES.DBF" '------ Nombre de archivo

'----------------------- Inicializar variables
Set CON = New Connection
Set QRY = New Query
Set RST = New ResultSet
CON.ConnectTo("dBASE IV")
Set QRY.Connection = CON
QRY.TableName = Path + File
Set RST.Query = QRY

'------------ Ahora formamos la sentencia SQL. Sólo funciona la sentencia SELECT
'------------ no pruebes con ninguna otra sentencia SQL, sólo va la SELECT.

QRY.SQL = "SELECT * FROM " & CD & Path & File & CD & _
" WHERE nombre_de_campo='" & variable & "'"

'------------ En la claúsula WHERE, es dónde irán las condiciones de búsqueda.
'------------ Los valores numéricos, pueden ir tal cual. Los alfanuméricos
'------------ alfabéticos
'------------ para que funcionen bien, tienen que ir encerrados entre comillas
'------------ simples.
'------------ Repásate el formato de la sentencia SELECT en cualquier manual de
'------------ SQL. Casi
'------------ todas las claúsulas funcionan aquí.
'------------ La sentencia tendría este formato

'---- SELECT * FROM "C:DATOSARCHIVO.DBF" WHERE USUARIO='FULANO' AND PASSWORD='XXXX'

Set RST.Query = QRY '---------- Ponemos el QUERY en el RESULTSET
RST.Execute '---------- Ejecutamos el QUERY
NumRecords = RST.NumRows '---------- Aquí nos devolverá el nº de registros
'---------- que cumplen las condiciones de la
'---------- SELECT

If NumRecords = 0 Then '---------- Si no hay ninguno, aquí tomarías las
Exit Function '---------- acciones oportunas
End If

'---------- Lo peor de ésto es que las SELECT que hagas, si no son
'---------- sintácticamente
'---------- correctas, da un error, pero no dice dónde ni porqué.
'---------- Por lo que a veces, una comilla o comillas, o la via al fichero, que te
'---------- sobre o falte una letra, puede volverte loco, porque no encuentres donde
'---------- está el fallo. Es cuestión de práctica, y una vez que te funcione uno,
'---------- en las siguientes veces que lo necesites, lo copias del que te funciona
'---------- y cambias sólo lo necesario.

Ya me contarás...

Un saludo

Manolo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scrip para Busqueda condicionada

Publicado por Luis (10 intervenciones) el 12/07/2008 16:26:14
Hola Manolo:

Espero que hayas disfrutado tus vacaciones, te agradezco tu ayuda.

Voy a revizar y tratar de aplicar lo que me recomiendas, espero me funcione. tan pronto tenga algun resultado te lo comunico.

Atentamente,

Luis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scrip para Busqueda condicionada

Publicado por tiaps tiaps1054@gmail.com (2 intervenciones) el 29/05/2011 21:29:07
hola Manolo.... bueno veo que usas approach, yo tambien y actualmente estoy con un inconveniente desde hace algunas horas, espero puedas darme una mano.
necesito buscar un registro x en una tabla y no encuentro la forma.
te comento....
tabla gcuotas
campos id_gcuotas, gcuotas_nrocuota, gcuotas_estado, gcuotas_saldo

guotas_nrocuota puede tener para un mismo id_gcuotas varios registros
ejemplo.
id_gcuotas gcuotas_nrocuota estado (SI = ultima cuota) gcuotas_saldo
120 1 NO $0
120 2 NO $20.50
120 3 NO $50
120 4 NO $60
120 5 SI $0
estoy parado en el ultimo registro 120, 5, SI y necesito volver al 120, 1, NO, para recorrerlo con un for y sumar los saldos.
NO encuentro la forma rapida de volver a la cuota 1 de el id 120.

Si me podes dar una mano desde ya muchas gracias.
tiaps1054@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scrip para Busqueda condicionada

Publicado por luis (1 intervención) el 01/10/2008 12:19:32
no se como entrar en mi pajina wed
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar