FoxPro/Visual FoxPro - crear cursor con criterio

 
Vista:

crear cursor con criterio

Publicado por Ramon (81 intervenciones) el 28/09/2010 19:38:53
Hola buenas tardes... quisiera me ayudaran en algo...
tengo una tabla a la que se conectan diferentes unidades... pero quiero que muestre a cada Unidad Responsable sus datos...

Por ejemplo yo soy la unidad 13901... y quiero mostrar en un combo solo los datos agregados por esta UR.. Esta variable ya fue definida y adquirio su valor al iniciar el sistema... y es base para extraer solo lo de dicha UR..

lVehic="Select * from vehiculos where UR=?VarUr"
**** EL FILTRO DE ARRIBA SERA EFECTIVO PARA QUE SOLO SAQUE LOS DE ESTA UR
TRY
SQLEXEC(Con,lVehic,"vTmp")
CATCH
MESSAGEBOX("No se pudo Conectar")
QUIT
ENDTRY

with thisform
.Combo1.DisplayValue='Seleccione el Vehiculo'
.Combo1.RowSource="vTmp"
.Combo1.RowSourceType=6
EndWith

1000 TANKS
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
sin imagen de perfil

RE:crear cursor con criterio

Publicado por Jose Maria Merchan (10 intervenciones) el 29/09/2010 01:43:06
Hola Ramon,
no veo claro las necesidades que tienes, ¿podiras explicar qué es lo que necesitas?. El código que has puesto podria funcionar bien, por eso te pido que expliques tus necesidades. Un saludo

Jose Maria
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:crear cursor con criterio

Publicado por Ramon (81 intervenciones) el 29/09/2010 20:54:34
son 4 Unidades Responsables... (Sucursales)

13900 Matriz Servidor en Ciduad 1
13901 en Ciudad 2
13902 en Ciudad 3
13903 en Ciudad 4

Conexion IP FIJA

APLICACION CLIENTE
en el form de acceso al sistema, al escribir el usuer y password los busca en la tabla de usuarios de ahi toma el nombre de usuario y su UR.. lo almacena en una variable publica llamada mVarUr y lo va traer en todo el sistema...

el primer campo de todas las tablas que estan en la base de datos de MySQL, inician por UR Chr(5) al hacer un: mira="Select * from xTabla where

SqlExec(Con,mira, "xTablaTemporal")

solamente va a poder ver los datos de su UR... al capturar datos se de vehiculos... se van a guardar con su UR.. y son los que va a poder mover... y son a los que va a tener acceso o sea su parque vehicular..

APLICACION SERVIDOR
en el servidor no se hace mencion del servidor... y asi podemos juntar lo de la matriz y las 4 UR.

A Por cierto no puedo grabar los datos los vehiculos en la Tabla para que me ayuden con el siguiente codigo... a ver en que estoy mal...

lGraba="INSERT INTO vehiculos(UR, RFA, NCONSECUTIVO, PLACAS, MARCA, TIPO, MODELO, COLOR, RFA, NECONOMICO, CILINDROS, NUMSERIE, NUMMOTOR, NINVENTARIO,"+;
"VREGIMEN, SITACTUAL, ACCIDENTES,FECHAACCID,RFC,RESPONSABLE, PUESTO, ADSCRIPCION, NUMLICENCIA, VENCELIC, NUMRESGUARDO, FACTURA,TARJETON,"+;
"TCIRCULACION, POLIZA, ACCESORIOS, DICTAMEN, FECHADICTAM, CARROCERIA,MOTOR, TAPIZ, LLANTAS,SISELECTRICO,SUSPENSION, DIFERENCIAL, AIREAC,"+;
"EDOGENERAL, FECHAREVIS, OBSERVACION) values (?varur, ?mrfa, ?mcons,?mplacas, ?mmarca, ?mtipo, ?mmodelo, ?mColor, ?mRfa, ?mnecono, ?mcilin,"+;
"?mserie, ?mmotor, ?minventa, ?mregimen, ?mSitActual, ?mtpAccid, ?mfechaacci, ?mrfc, ?mresguarda, ?mpuesto, ?madscrip, ?mlicencia,"+;
"?mvigencia, ?mnresguardo, ?mfactura,?mtarjeton, ?mtcirculac, ?mpoliza, ?maccesorios, ?mdictamen, ?dfechad, ?mCarro, ?mmotor, ?mtapis,"+;
"?mllanta, ?mSisElec, ?mSusp, ?mDifer, ?aireacond, ?medogral, ?mfrevis, ?cobserva2)"
TRY
SQLEXEC(Con,lGraba)
CATCH
MESSAGEBOX('No es posible grabar los datos...')
RETURN 0
ENDTRY

Saludos
Gracias
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
sin imagen de perfil

RE:crear cursor con criterio

Publicado por victor perez (278 intervenciones) el 04/10/2010 06:42:01
Te voy a dar un consejo solamente en el hecho de captar y grabar.

Usas un codigo demasiado largo y confuso, enrredado para leerlo con esas ;+ .

Te aconsejo esto:

C1=THISFORM.NOMBRE_DELA_VARIABLE.VALUE

TEXT TO XSQL TEXTMERGE NOSHOW
INSERT INTO TABLA_NAME(CAMPO1,CAMPO2,ETC)
VALUES (?C1,?C2 ,ETC)
ENDTEXT

SQLEXEC(LNHANDLE,XSQL)

Esto hace que todo se lea mejor.

Creo que al captar la informacion por usuario, debes añadir un campo usuario en la base de datos y cuando el usuario graba un registro , se graba este codigo de usuario que lo hiciste publico y para todo el sistema desde que entras con el nombre, password.

Asi, cuando el usuario quiere buscar algo, si no tiene el nivel de acceso correcto solo puede ver lo suyo, no lo de otros.

El Gerente general, por ejemplo, o el administrador, puede tener acceso a todo.

Eso es lo que Yo hago en la clinica. Mi usuario me permite ver todo...e inclusive en la SALA DE ESPERA de pacientes que manejo, yo puedo ver todos los pacientes pendientes de atencion pero cada medico solo puede ver los que son asignados a ellos.

Es interesante lo del nivel de acceso, eso te evita problemas y no tienes que estar añadiendo iniciales a los registros para saber de que usuario se trata.

No se si fui claro y si logre entender tu duda.

Victor,
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
sin imagen de perfil

RE:crear cursor con criterio

Publicado por victor perez (278 intervenciones) el 04/10/2010 06:53:38
Creo haber entendido tu problema.

Mira, cuando es de sucursal, se ejecute el codigo
Supon que el usuario Matriz tenga como username "MATRIZ" y nivel de acceso "5"

Cuando el usuario entre al sistema con su username y passwor, su WNivel es "5" y es una variable publica y valida para todo el sistema.

If Wnivel ="5"
Select * from TABLA_NAME //** sin ninguna condicion WHERE
Else
Select * from Table_name where UR_CAMPO=?wUsername
EndIF

Si no tienes niveles de acceso, sino codigo de usuario, entonces...

IF Wusername="MATRIZ"
Select * from tabla_name
Esle
Select * from tabla_name where UR_Campo=?wUsername
EndiF

Esto tendrias que hacerlo para cada formulario...

Creo que si lo pensamos mejor podrias hacer un solo criterio que funciones independientemente de que formulario se abra..

Saludos,
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