Introducción a Visual FOX Pro

Embed Size (px)

Citation preview

  • 5/26/2018 Introduccin a Visual FOX Pro

    1/61

    Introduccin a Visual Fox Pro

    Captulo 1. Funciones de Bsqueda y Remplazo.

    Consultas de Seleccin (SELECT)Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las basesde datos esta informacin es devuelta en forma de con!unto de re"istros que se pueden almacenar en unob!eto recordset. #ste con!unto de re"istros es modificable.

    Consultas Bsicas.

    La sinta$is b%sica de una consulta de seleccin es la si"uiente&

    SELECT CAMPOSFROM TABLA;

    #n donde campos es la lista de campos que se deseen recuperar y tabla es el ori"en de los mismos por

    e!emplo&

    SELECT NOMBRE, TELEFONOFROM CLIENTES;

    #sta consulta devuelve un recordset con el campo nombre y tel'fono de la tabla clientes.

    #n (ntroduciendo )*L en +ccess podemos observar cmo se introducen consultas directamente en unabase de datos de +ccess sin utilizar el +sistente.

    Ordenar los registros (ORDER BY)

    +dicionalmente se puede especificar el orden en que se desean recuperar los re"istros de las tablas

    mediante la clasula ,R-#R B Lista de Campos. #n donde Lista de campos representa los campos aordenar. #!emplo&

    SELECT CODIGOPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY NOMBRE;

    #sta consulta devuelve los campos Codi"o/ostal 0ombre elefono de la tabla Clientes ordenados por elcampo 0ombre.

    )e pueden ordenar los re"istros por mas de un campo como por e!emplo&

    SELECT CODIGOPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY CODIGOPOSTAL, NOMBRE;

    (ncluso se puede especificar el orden de los re"istros& ascendente mediante la clasula 2+)C 3se toma este

    valor por defecto4 descendente 2-#)C4

    SELECT CODIGOPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY CODIGOPOSTALDESC ,NOMBRE ASC;

    Consultas con Predicado (ALL TOP D!ST!"CT)

    #l predicado se incluye entre la cl%usula y el primer nombre del campo a recuperar los posibles predicadosson&

  • 5/26/2018 Introduccin a Visual FOX Pro

    2/61

    Co#ando Descri$cin

    +LL -evuelve todos los campos de la tabla

    ,/ -evuelve un determinado nmero de re"istros de la tabla

    -()(0C ,mite los re"istros cuyos campos seleccionados coincidan totalmente

    -()(0CR,5

    ,mite los re"istros duplicados bas%ndose en la totalidad del re"istro y no slo en los camposseleccionados.

    ALL

    )i no se incluye nin"uno de los predicados se asume +LL. #l 6otor de base de datos selecciona todos losre"istros que cumplen las condiciones de la instruccin. 0o se conveniente abusar de este predicado yaque obli"amos al motor de la base de datos a analizar la estructura de la tabla para averi"uar los camposque contiene es muc7o m%s r%pido indicar el listado de campos deseados.

    SELECT ALL FROM EMPLEADOS;SELECT * FROM EMPLEADOS;

    TOP

    -evuelve un cierto nmero de re"istros que entran entre al principio o al final de un ran"o especificado poruna cl%usula ,R-#R B. )upon"amos que queremos recuperar los nombres de los 89 primerosestudiantes del curso 1::;&

    SELECT TOP 25 NOMBRE, APELLIDOFROM ESTUDIANTESORDER BY NOTADESC;

    )i no se incluye la cl%usula ,R-#R B la consulta devolver% un con!unto arbitrario de 89 re"istros de latabla #studiantes .#l predicado ,/ no eli"e entre valores i"uales. #n el e!emplo anterior si la nota medianmero 89 y la 8< son i"uales la consulta devolver% 8< re"istros. )e puede utilizar la palabra reservada

    /#RC#0 para devolver un cierto porcenta!e de re"istros que caen al principio o al final de un ran"oespecificado por la cl%usula ,R-#R B. )upon"amos que en lu"ar de los 89 primeros estudiantesdeseamos el 1= por ciento del curso&

    SELECT TOP 10PERCENT NOMBRE, APELLIDOFROM ESTUDIANTESORDER BY NOTADESC;

    #l valor que va a continuacin de ,/ debe ser un (nte"er sin si"no.,/ no afecta a la posibleactualizacin de la consulta.

    DISTINCT

    ,mite los re"istros que contienen datos duplicados en los campos seleccionados. /ara que los valores decada campo listado en la instruccin )#L#C se incluyan en la consulta deben ser nicos.

    /or e!emplo varios empleados listados en la tabla #mpleados pueden tener el mismo apellido. )i dosre"istros contienen Lpez en el campo +pellido la si"uiente instruccin )*L devuelve un nico re"istro&

    SELECT DISTINCT APELLIDOFROM EMPLEADOS;

    Con otras palabras el predicado -()(0C devuelve aquellos re"istros cuyos campos indicados en lacl%usula )#L#C posean un contenido diferente. #l resultado de una consulta que utiliza -()(0C no esactualizable y no refle!a los cambios subsi"uientes realizados por otros usuarios.

  • 5/26/2018 Introduccin a Visual FOX Pro

    3/61

    DISTINCTROW

    -evuelve los re"istros diferentes de una tabla> a diferencia del predicado anterior que slo se fi!aba en elcontenido de los campos seleccionados 'ste lo 7ace en el contenido del re"istro completoindependientemente de los campo indicados en la cl%usula )#L#C.

    SELECT DISTINCTROW APELLIDOFROM EMPLEADOS;

    )i la tabla empleados contiene dos re"istros& +ntonio Lpez y 6arta Lpez el e!emplo del predicado-()(0C devuleve un nico re"istro con el valor Lpez en el campo +pellido ya que busca no duplicadosen dic7o campo. #ste ltimo e!emplo devuelve dos re"istros con el valor Lpez en el apellido ya que sebuscan no duplicados en el re"istro completo.

    Alias (AS)

    #n determinadas circunstancias es necesario asi"nar un nombre a al"una columna determinada de uncon!unto devuelto otras veces por simple capric7o o por otras circunstancias. /ara resolver todas ellas

    tenemos la palabra reservada +) que se encar"a de asi"nar el nombre que deseamos a la columnadeseada. omado como referencia el e!emplo anterior podemos 7acer que la columna devuelta por laconsulta en lu"ar de llamarse apellido 2i"ual que el campo devuelto4 se llame #mpleado. #n este casoprocederamos de la si"uiente forma&

    SELECT DISTINCTROW APELLIDOAS EMPLEADOFROM EMPLEADOS;

    /ara concluir este captulo se debe 7acer referencia a la recuperacin de re"istros de bases de datose$terna. #s ocasiones es necesario la recuperacin de informacin que se encuentra contenida en unatabla que no se encuentra en la base de datos que e!ecutar% la consulta o que en ese momento no seencuentra abierta esta situacin la podemos salvar con la palabra reservada (0 de la si"uiente forma&

    SELECT DISTINCTROW APELLIDOAS EMPLEADOFROM EMPLEADOSIN

    'C:\DATABASES\GESTION.MDB';

    #n donde c%&data'ases&gestion.#d'es la base de datos que contiene la tabla #mpleados.

    Captulo 8. ablas emporales y Cursores.

    ,tro tipo de tablas temporales son los cursores que tienen la misma utilidad que una tabla temporale$cepto que no se crean en disco solo en la memoria del ordenador.

    ELPROCESODECREAC!"ESEL!SO%

    CR#+# C?R),R@+BL# nombreAalias 2campo1 tipo1 2tamao1 decimales1D4 campo8 tipo8 2tamao8decimales8D4... 4

    -onde& *no#'re+alias*es el nombre del cursor o tabla a crear *ca#$o,n*es el nombre del campo *ti$o,nE es el tipo del campo se indica con una sola letra&

  • 5/26/2018 Introduccin a Visual FOX Pro

    4/61

    o C Caractero - Fec7ao -ateimeo 0 0um'ricoo F Flotanteo ( #nteroo B -obleo 6onedao L L"icoo 6 6emoo G Generalo / (ma"en

    *ta#a-o,n*es el tamao del campo *deci#ales,n*es el nmero de decimales a contener

    0ota& #stos ltimos dos datos son de acuerdo al tipo de dato se"n la si"uiente tabla&o C( n )Car%cter de anc7o n

    o "( n de )0um'rico de anc7o n con de decimaleso ( n de )Flotante de anc7o n con de decimales

    #l tamao del campo y el nmero de decimales se pasan por alto para los tipos -# L 6 G y /. )i nose incluye el nmero de decimales en los tipos 0 F o B de forma predeterminada ser% cero 2sin lu"aresdecimales4.

    Herificar este Codi"o)elect tabla1.nombre deudaAinideudaAfin from tabla1tabla8 I7ere tabla1.nombretabla8.nombre (0,C?R),R tablaJ.

    Captulo J. Consultas de )*L +plicadas a Hisual Fo$pro.INTRODUCCIN

    La documentacinacerca del uso de los comandos)*LenHisual Fo$ /roes limitada. omando esto comoreferencia 7e aqu un primer material detraba!oque espero sirva de inicio a los estudiantes y pro"ramadores quetraba!an con este mane!ador de bases de datos relacinales.

    )e 7a tomado como base biblio"r%fica la +yuda K6Ldel 6)-0 Library y se 7a enriquecido las e$plicacionescon "r%ficasde los resultados de las consultas que se e$ponen como e!emplos.

    #s importante destacar que traba!o presenta e!emplos del uso del comando )#L#C )*L en Hisual Fo$ /ro

  • 5/26/2018 Introduccin a Visual FOX Pro

    5/61

    ESTRUCTURADELASTABLASUSADASENLOSEJEMPLOS

    Select / S0L en 1isual O2 PRO3.4

    Hisual Fo$/roadmite comandos deLen"ua!ede consultas estructurado )*L. Los comandos )*L de Hisual

    Fo$/ro utilizan latecnolo"aRus7more para optimizar el rendimiento y puede util izarse un slo comando )*Lpara sustituir a varios comandos Hisual Fo$/ro.

    5!S6ALO2PROAD!TELOSS!76!E"TESCOA"DOSS0L%

    SELECT , S0L%#specifica los criterios en los que se basa una consulta y e!ecuta la consulta. Hisual Fo$/rointerpreta la consulta y recupera los datosespecificados de la tabla o tablas.

    #l comando )#L#C se construye dentro de Hisual Fo$/ro como cualquier otro comando de Hisual Fo$/ro.

    /uede crear una consulta con el comando )#L#C en la ventana Comandos.

    http://www.monografias.com/trabajos15/todorov/todorov.shtml#INTROhttp://www.monografias.com/trabajos15/todorov/todorov.shtml#INTROhttp://www.monografias.com/trabajos4/foxpro/foxpro.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/trabajos35/concepto-de-lenguaje/concepto-de-lenguaje.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos15/todorov/todorov.shtml#INTROhttp://www.monografias.com/trabajos4/foxpro/foxpro.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/trabajos35/concepto-de-lenguaje/concepto-de-lenguaje.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/trabajos10/vfp/vfp.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    6/61

    #n un pro"ramaHisual Fo$/ro 2como cualquier otro comando de Hisual Fo$/ro4.

    En el Dise-ador de consultas.

    ALTER TABLE / S0%6odifica una tabla e$istente. /uede modificar el nombre el tipo la precisin laescala la admisin de unvalor nulo y las re"las de inte"ridad referencial para cada campo de la tabla.

    CREATE C6RSOR / S0L%Crea una tabla temporal. Cada campo de la tabla temporal se define con unnombre tipo precisin escala soporte de valor nulo y re"las de inte"ridad referencial. Las definicionespueden obtenerse del propio comando o de unamatriz.

    CREATE TABLE / S0L%Crea una tabla. Cada campo de la tabla nueva se define con un nombre tipoprecisin escala aceptacin de valores nulos y re"las de inte"ridad referencial. #stas definicionespueden obtenerse del propio comando o de una matriz.

    DELETE / S0L%6arcapara su eliminacin los re"istrosde una tabla mediante la sinta$is de )*L.

    !"SERT / S0L%+ne$a un re"istro al final de una tabla e$istente. #l nuevo re"istro incluye los datos

    mostrados en el comando (0)#R o incluidos en la matriz especificada.

    6PDATE / S0L%+ctualiza los re"istros de una tabla. Los re"istros se pueden actualizar se"n losresultados de una instruccin )#L#C )*L

    #l propsito de este material es brindar al estudiante e!emplos que le permitan utilizar )#L#C )*L en eldiseo de consultas usando para ello una o m%s tablas diseadas en Hisual Fo$ /ro.

    Co#$onentes del S0L

    #l len"ua!e )*L est% compuesto por comandos cl%usulas operadores y funcionesde a"re"ado. #stoselementos se combinan en las instrucciones para crear actualizar y manipular las bases de datos.Comandos

    E2!STE"DOST!POSDECOA"DOSS0L%

    1. Los -LL que permiten crear y definir nuevas bases de datos campos e ndices.8. Los -6L que permiten "enerar consultas para ordenar filtrar y e$traer datos de la base de datos.

    Co#andos DLLCo#and

    oDescri$cin

    CREATE ?tilizado para crear nuevas tablas campos e ndicesDROP #mpleado para eliminar tablas e ndices

    ALTER?tilizado para modificar las tablas a"re"ando campos o cambiando la definicin de loscampos.

    Co#andos DLCo#and

    oDescri$cin

    SELECT?tilizado para consultar re"istros de la base de datos que satisfa"an un criteriodeterminado

    !"SERT ?tilizado para car"ar lotes de datos en la base de datos en una nica operacin.6PDATE ?tilizado para modificar los valores de los campos y re"istros especificadosDELETE ?tilizado para eliminar re"istros de una tabla de una base de datos

    Clusulas

    http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos6/dige/dige.shtml#evohttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos10/macroecon/macroecon.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos16/marca/marca.shtmlhttp://www.monografias.com/trabajos7/regi/regi.shtmlhttp://www.monografias.com/trabajos7/regi/regi.shtmlhttp://www.monografias.com/trabajos13/diseprod/diseprod.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos6/dige/dige.shtml#evohttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos10/macroecon/macroecon.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos16/marca/marca.shtmlhttp://www.monografias.com/trabajos7/regi/regi.shtmlhttp://www.monografias.com/trabajos7/regi/regi.shtmlhttp://www.monografias.com/trabajos13/diseprod/diseprod.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    7/61

    Co#ando Descri$cinRO ?tilizada para especificar la tabla de la cual se van a seleccionar los re"istros

    89ERE?tilizada para especificar las condiciones que deben reunir los re"istros que se van aseleccionar

    7RO6PBY

    ?tilizada para separar los re"istros seleccionados en "rupos especficos

    9A5!"7 ?tilizada para e$presar la condicin que debe satisfacer cada "rupo

    ORDERBY

    ?tilizada para ordenar los re"istros seleccionados de acuerdo con un orden especfico

    *Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o

    manipular.

    O$eradores LgicosCo#and

    oDescri$cin

    A"D#s el EyE l"ico. #vala dos condiciones y devuelve un valor de verdad slo si ambas sonciertas.

    OR#s el EoE l"ico. #vala dos condiciones y devuelve un valor de verdadero si al"una de las doses cierta.

    "OT 0e"acinl"ica. -evuelve el valor contrario de la e$presin.

    O$eradores de Co#$aracinCo#and

    oDescri$cin

    : 6enor que; 6ayor que

    :; -istinto de:< 6enor ("ual que;< 6ayor ("ual que< ("ual que

    BET8EE"

    ?tilizado para especificar un intervalo de valores.

    L!=E ?tilizado en la comparacin de un modelo

    !n?tilizado para especificar re"istros de una base de

    datos

    CO"S6LTAS B>S!CAS

    La sinta$is b%sica de una consulta de seleccines la si"uiente&

    SELECT CAMPOSFROM TABLA

    #n donde campos es la lista de campos que se deseen recuperar y tabla es el ori"en de los mismos pore!emplo&

    SELECT NOMBRE, TELEFONOFROM CLIENTES

    http://www.monografias.com/trabajos11/grupo/grupo.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos5/selpe/selpe.shtmlhttp://www.monografias.com/trabajos11/grupo/grupo.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos5/selpe/selpe.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    8/61

    #sta consulta devuelve una visualizacin de la tabla Clientescon el campo nombre y tel'fono. #sta visualizacinen HF/ es un broIse pero no es necesario a"re"ar esta orden )*L lo invoca autom%ticamente. Hea el orden delos campos en el broIse.

    ORDENARLOSREGISTROS

    +dicionalmente se puede especificar el orden en que se desean recuperar los re"istros de las tablas mediante lacl%usula ,R-#R B Lista de Campos. #n donde Lista de campos representa los campos a ordenar.

    Ejemplo:

    SELECT CODPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY NOMBRE

    #sta consulta devuelve los campos Codi"o/ostal 0ombre elefono de la tabla Clientes ordenados por el campo0ombre.

    http://www.monografias.com/trabajos11/sercli/sercli.shtmlhttp://www.monografias.com/trabajos/eltelefono/eltelefono.shtmlhttp://www.monografias.com/trabajos11/sercli/sercli.shtmlhttp://www.monografias.com/trabajos/eltelefono/eltelefono.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    9/61

    )e pueden ordenar los re"istros por m%s de un campo como por e!emplo&

    SELECT CODIGOPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY CODPOSTAL, NOMBRE

    (ncluso se puede especificar el orden de los re"istros& ascendente mediante la cl%usula 2+)C 3se toma este valorpor defecto4 descendente 2-#)C4

    SELECT CODIGOPOSTAL, NOMBRE, TELEFONOFROM CLIENTESORDER BY CODIGOPOSTAL, NOMBRE

    ASC

    CONSULTASCONPREDICADO

    #l predicado se incluye entre la cl%usula y el primer nombre del campo a recuperar los posibles predicados son&

    Predicado Descri$cin

    ? -evuelve todos los campos de la tabla

    TOP -evuelve un determinado nmero de re"istros de la tabla

    D!ST!"CT ,mite los re"istros cuyos campos seleccionados coincidan totalmente

    D!ST!"CTRO8,mite los re"istros duplicados bas%ndose en la totalidad del re"istro y no slo en los camposseleccionados.

    (ALL)

    )i no se incluye nin"uno de los predicados se asume +LL. #l 6otor de base de datos selecciona todos losre"istros que cumplen las condiciones de la instruccin )*L. 0o se conveniente abusar de este predicado yaque obli"amos al motor de la base de datos a analizar la estructura de la tabla para averi"uar los campos quecontiene es muc7o m%s r%pido indicar el listado de campos deseados.

    SELECT * FROM CLIENTESTOP

    http://www.monografias.com/trabajos10/motore/motore.shtmlhttp://www.monografias.com/trabajos10/motore/motore.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    10/61

    -evuelve un cierto nmero de re"istros que entran entre al principio o al final de un ran"o especificado por unacl%usula ,R-#R B. )upon"amos que queremos recuperar los nombres de los tres primeros clientes tomandocomo referencia un orden +)C para el campo cedula.

    SELECT TOP ! CEDULA, NOMBREFROM CLIENTESORDER BY CEDULA DESC

    #l resultado de la consulta mostrar% en pantalla los tres primeros re"istros que correspondan al orden. ,bserveen la fi"ura los nmeros de cedula.

    Como la sentencia ,R-#R B cedula -#)C indica que se deben ordenar en orden descendente los re"istrosse muestran los tres primeros contando del ltimo en adelante.

    ,bserve el cambio en el resultado de la consulta si ,R-#R B cedula +)C

    SELECT TOP ! CEDULA, NOMBREFROM CLIENTESORDER BY CEDULAASC

    #l orden establecido para el campo cedula es +)C por lo tanto toma los tres primeros re"istros en formaascendente.)i no se incluye la cl%usula ,R-#R B la consulta devolver% un con!unto arbitrario de Jre"istros de la tablaClientes .#l predicado ,/ no eli"e entre valores i"uales. )i se incluye la palabra clave /#RC#0 seredondear% al nmero entero m%s alto el nmero de columnas devuelto en el resultado. Los valores permitidospara nExprcuando se incluye la palabra clave /#RC#0 son =.=1 a ::.::.

    Ejemplo

    La tabla Clientes tiene un total de 1= re"istros si se quiere visualizar en pantalla un 8=N ordenado por cedula enorden ascendente la lnea de cdi"oser%&

    SELECT TOP 20 PERCENT CEDULA, NOMBREFROM CLIENTESORDER BY CEDULAASC

    http://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    11/61

    el resultado de la bsqueda como se puede apreciar son dos re"istros correspondientes al 8= N de 1= que 7ayen total

    #l valor que va a continuacin de ,/ debe ser un (nte"er sin si"no.

    D!ST!"CT

    ,mite los re"istros que contienen datos duplicados en los campos seleccionados. /ara que los valores de cadacampo listado en la instruccin )#L#C se incluyan en la consulta deben ser nicos.

    /or e!emplo supon"a que se desea saber los cdi"os de %rea de los nmeros de tel'fono de los clientesalmacenados en la tabla. #s de supones que con que aparezca una sola vez =8O; o =;1< es suficiente as

    e$istan otros clientes con el mismo cdi"o de %rea.

    SELECT DISTINCT SUBSTR"TELEFONO, 1, #$ FROM CLIENTES

    #n vista que el cdi"o de %rea y el nmero del tel'fono est%n inte"rados en un atributo atmico se debe e$traerel dato que se necesita para la consulta usando la Funcin)?B)R24 y as en la consulta se podr%n observarlos diferentes cdi"os de %rea que conforman los telefonos de los clientes.

    5!STADELACO"S6LTA6SA"DOD!ST!"CT

    Con otras palabras el predicado -()(0C devuelve aquellos re"istros cuyos campos indicados en la cl%usula)#L#C posean un contenido diferente. #l resultado de una consulta que utiliza -()(0C no es actualizable yno refle!a los cambios subsi"uientes realizados por otros usuarios.

    #n el e!emplo anterior tambi'n se puede apreciar como se mezcla de forma eficiente cdi"o de )*L con el deHF/ y se consi"uen me!ores resultados.

    CRITERIOSDESELECCIN

    )e vio la forma de recuperar los re"istros de las tablas las formas empleadas devolvan todos los re"istros de lamencionada tabla. + lo lar"o de este apartado se estudiar%n las posibilidades de filtrar los re"istros con el fin derecuperar solamente aquellos que cumplan una o unas condiciones preestablecidas

    89ERE

    (ndica a Hisual Fo$/ro que incluya nicamente ciertos re"istros en el resultado de la consulta. 5K#R# esnecesario para recuperar datos de varias tablas. /ara las condiciones de filtro se puede utilizar cualquiera de lossi"uientes operadores&

    http://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    12/61

    O$erador

    Co#$aracin

    < ("ual

  • 5/26/2018 Introduccin a Visual FOX Pro

    13/61

    -isear una consulta )*L de todos los clientes foraneos 2codi"opostal diferente de 91=14.

    /ara resolver este problema usaremos la cl%usula (0 la cual indica que el campo debe contener uno de losvalores antes de que el re"istro se incluya en los resultados de la consulta. /ero para este caso en particular lane"aremos con

    NOT SELECT NOMBREAS CLIENTESFORANEOS, TELEFONO, CODPOSTALFROM CLIENTES; W&ERE

    CODPOSTAL NOT IN "'5101'$

    ,bserve el resultado de la consulta est%n todos los clientes a e$cepcin de los que tienen como cdi"o postal91=1.

    INTERVALOSDEVALORESELOPERADORBET8EE"

    /ara indicar que deseamos recuperar los re"istros se"n el intervalo de valores de un campo emplearemos eloperador B#5##0 cuya sinta$is es&

    CAMPONOT+ BETWEEN %ALOR1AND %ALOR2*La condicin NOT es opcional.

    #n este caso la consulta devolvera los re"istros que conten"an en EcampoE un valor incluido en el intervalovalor1 valor8 2ambos inclusive4. )i anteponemos la condicin 0ot devolver% aquellos valores no incluidos en elintervalo.

    Ejemplo 1)e necesita conocer los datos de los clientes que tienen una carta de cr'dito entre dos y tres millones deBolvares.La lnea de cdi"o )*L ser%&

    SELECT NOMBREAS CREDITOENTRE200000Y!000000, TELEFONO, CODPOSTAL,;CREDITOFROM CLIENTESW&ERE CREDITOBETWEEN 2000000 AND !000000

    ELOPERADORLIE

    )e utiliza para comparar una e$presin de cadena con un modeloen una e$presin )*L. )u sinta$is es&

    E2PRES!"L!=E ODELO

    #n donde e$presin es una cadena modelo o campo contra el que se compara e$presin. )e puede utilizar el

    http://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/trabajos14/comer/comer.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/trabajos14/comer/comer.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    14/61

    operador L(P# para encontrar valores en los campos que coincidan con el modelo especificado. /or modelopuede especificar un valor completo 2+na 6ara4 o se pueden utilizar caracteres comodn para encontrar unran"o de valores 2L(P# T+nNU4.

    #l operador L(P# se puede utilizar en una e$presin para comparar un valor de un campo con una e$presin decadena. /or e!emplo si introduce L(P# TCNU en una consulta )*L la consulta devuelve todos los valores decampo que comiencen por la letra C. #n una consulta con par%metros puede 7acer que el usuario escriba el

    modelo que se va a utilizar.

    /uede utilizar el si"no de porcenta!e 2N4 y subrayado 2 A 4 como parte de la e$presin. #l si"no de porcenta!erepresenta a cualquier secuencia de caracteres desconocidos en la cadena. #l subrayado representa un solocar%cterdesconocido en la cadena.

    Ejemplo

    Listar por pantalla todos los clientes cuyos nombres comiencen con la letra T(U

    L! l"#e! S$L %e&':

    SELECT NOMBREAS CLIENTESCUYOSNOMBRESEMPIEANPORIFROM CLIENTES; W&EREUPPER"NOMBRE$ LI-E 'I'

    ,bserve el resultado de la consulta no importa que si"a a la letra T(U en el campo nombre )*L lo muestra enpantalla.

    AGRUPAMIENTODEREGISTROS

    GROUP BY COLUMNAGRUPO, COLUMNAGRUPO...++"rupa las filas de la consulta bas%ndose en los valores de una o m%s columnas. ColumnaGrupopuede ser elnombre de un campo normal de una tabla o un campo que incluya una funcin de campo )*L o una e$presinnum'rica indicando la posicin de la columna en la tabla resultado 2la columna m%s a la izquierda tiene elnmero 14.

    S( %)#*!+)% e%:

    SELECT CAMPOSFROM TABLAW&ERE CRITERIOGROUP BY CAMPOSDEL GR?/, &A%ING CONDICI/N

    Los valores 0ull en los campos GR,?/ B se a"rupan y no se omiten. 0o obstante los valores 0ull no seevalan en nin"una de las funciones )*L a"re"adas.

    )e utiliza la cl%usula 5K#R# para e$cluir aquellas filas que no desea a"rupar y la cl%usula K+H(0G para filtrarlos re"istros una vez a"rupados.

    + menos que conten"a un dato 6emo u ,b!eto ,L# un campo de la lista de campos GR,?/ B puedereferirse a cualquier campo de las tablas que aparecen en la cl%usula FR,6 incluso si el campo no esta incluidoen la instruccin )#L#C.

    odos los campos de la lista de campos de )#L#C deben o bien incluirse en la cl%usula GR,?/ B.

    K+H(0G es similar a 5K#R# determina qu' re"istros se seleccionan. ?na vez que los re"istros se 7ana"rupado utilizando GR,?/ B K+H(0G determina cuales de ellos se van a mostrar.

    http://www.monografias.com/trabajos34/el-caracter/el-caracter.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos14/dinamica-grupos/dinamica-grupos.shtmlhttp://www.monografias.com/trabajos34/el-caracter/el-caracter.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos14/dinamica-grupos/dinamica-grupos.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    15/61

    )i tenemos una tabla llamada clientes con los si"uientes re"istros&

    )e nos plantea la si"uiente interro"ante VCu%les re"istros cumplen con la condicin de poseer Cdi"o /ostal91=1 y adem%s son clientes 6ovilnetW

    +"rupamos los clientes con CodA/ostal 91=1 y lue"o con K+H(0G seleccionamos los clientes 6ovilnet 2=;1

  • 5/26/2018 Introduccin a Visual FOX Pro

    16/61

    Calcula el nmero de re"istros devueltos por una consulta. )u sinta$is es la si"uiente

    CO6"T (E2PR)

    #n donde e$pr contiene el nombre del campo que desea contar. Los operandos de e$pr pueden incluir el nombrede un campo de una tabla una constante o una funcin. +unque e$pr puede realizar un c%lculo sobre un campo

    C,?0 simplemente cuenta el nmero de re"istros sin tener en cuenta qu' valores se almacenan en losre"istros. La funcin C,?0 no cuenta los re"istros que tienen campos 0?LL.

    SELECT COUNT "CAMPO$ AS NOMBREMSCARA FROM TABLA

    Ejemplo

    )e desea determinar VCu%ntos Clientes tienen cr'dito entre Bs. 1==.===== y Bs. J==.=====W

    SELECT COUNT "CREDITO$ AS CLIENTESENTRE100000Y!00000FROM CLIENTES;W&ERE CREDITOBETWEEN 100000AND !00000

    Como puede observar )*L proporciona el nmero de clientes que cumplen con la condicin especificada en5K#R#.6a$ y 6in

    -evuelven el mnimo o el m%$imo de un con!unto de valores contenidos en un campo especifico una consulta. )usinta$is es&

    MIN "EPR$MA "EPR$

    #n donde expres el campo sobre el que se desea realizar el c%lculo. Exprpuede incluir el nombre de un campo

    de una tabla o una constante.Ejemplo

    )e desea conocer el monto en Bs. -e la mayor carta de cr'dito de un clientefor%neo cdi"o postal 91=8

    SELECT MA "CREDITO$ AS CLIENTECONMAYORCRDITO5102 FROM CLIENTES; W&ERECODPOSTALIN "'5102'$

    SELECT MIN "CREDITO$ AS CLIENTECONMENORCRDITO5102 FROM CLIENTES; W&ERECODPOSTAL IN "'5102'$

    http://www.monografias.com/trabajos11/sercli/sercli.shtmlhttp://www.monografias.com/trabajos11/sercli/sercli.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    17/61

    #l cdi"o )*L anterior muestra el uso de 6(0 para ubicar el monto de la menor carta de cr'dito de la zona 91=8.)?6

    -evuelve la suma del con!unto de valores contenido en un campo especfico de una consulta. )u sinta$is es&)?6 2e$pr4

    #n donde e$pr representa el nombre del campo que contiene los datos que desean sumarse o una e$presin

    que realiza un c%lculo utilizando los datos de dic7os campos. Los operandos de exprpueden incluir el nombre deun campo de una tabla o una constante.

    Ejemplo

    )e desea conocer el monto total de las carteras de cr'dito de los clientes cdi"o de %rea 91=8

    SELECT SUM "CREDITO$ AS TOTALCRDITO5102 FROM CLIENTESW&ERE CODPOSTAL IN"'5102'$

    #ste e!emplo suma los resultados de las consultas anteriores con 6+Q 6(0.

    SUBCONSULTAS

    ?na subconsulta es una instruccin )#L#C anidada dentro de una instruccin )#L#C )#L#C...(0,(0)#R...(0, -#L## o ?/-+# o dentro de otra subconsulta.

    P(e,e (*)l).!& *&e% /o&m!% ,e %)#*!+)% p!&! -&e!& (#! %(0-o#%(l*!:

    1. Comparacin +0 @ +LL @ ),6#D 2instruccin )*L48. #$presin 0,D (0 2instruccin )*L4J. 0,D #Q()) 2instruccin )*L4

    E# ,o#,e:

    Co#$aracin%#s una e$presin y un operador de comparacin que compara la e$presin con elresultado de la subconsulta.

    E@$resin%#s una e$presin por la que se busca el con!unto resultante de la subconsulta.

    !nstruccin S0L%#s una instruccin )#L#C que si"ue el mismo formato y re"las que cualquier otrainstruccin )#L#C. -ebe ir entre par'ntesis.

    )e puede utilizar una subconsulta en lu"ar de una e$presin en la lista de campos de una instruccin )#L#C oen una cl%usula 5K#R# o K+H(0G. #n una subconsulta se utiliza una instruccin )#L#C para proporcionar uncon!unto de uno o m%s valores especificados para evaluar en la e$presin de la cl%usula 5K#R# o K+H(0G.

    )e puede utilizar el predicado +0 +LL o ),6# los cuales son sinnimos para recuperar re"istros de la

    consulta principal que satisfa"an la comparacin con cualquier otro re"istro recuperado en la subconsulta.

    Cuando la condicin de filtro incluye +0 o ),6# el campo debe cumplir la condicin de comparacin en almenos uno de los valores "enerados por la subconsulta.

    Cuando la condicin de filtro incluye +LL el campo debe cumplir la condicin de comparacin para todos losvalores "enerados por la subconsulta antes de que se incluya el re"istro en el resultado de la consulta.

    Ejemplo

  • 5/26/2018 Introduccin a Visual FOX Pro

    18/61

    ?sando una subconsulta muestre una lista de clientes cuyo tel'fono sea 6ovilnet 2cdi"o de %rea =;1

  • 5/26/2018 Introduccin a Visual FOX Pro

    19/61

    )e puede ver claramente que el resultado de la consulta vara sustancialmente cuando se cambia el operador antes de +LL. +l utilizar S se muestran en la consulta todos aquellos re"istros que cumplen con la condicin decomenzar con una letra mayor a T6U. al utilizar X se a"re"an a la consulta slo aquellos cuya letra inicial en elcampo ciudad est% por deba!o de T6U.

    Ejemplo

    6ostrar en pantalla los clientes con cartas de cr'dito menores a Bs. 8==.=====

    SELECT NOMBRE, CREDITO, TELEFONOFROM CLIENTESW&ERE CREDITO) ALL;"SELECT CREDITOFROM CLIENTESW&ERE CREDITO 200000$

    Con la condicin del 5K#R# de la consulta principal se establece que se deben mostrar todos aquellos re"istrosmenores a la condicin establecida en la subconsulta 2credito 8=====4

    CONSULTASDEUNININTERNAS

    Las vinculaciones entre tablas se realizan mediante la cl%usula (00#R que combina re"istros de dos tablassiempre que 7aya concordancia de valores en un campo comn. )u sinta$is es&

    SELECT CAMPOSFROM TB1INNER 4OIN TB2ON TB1.CAMPO1 OPERADORTB2.CAMPO2

    E# ,o#,e:

    tb1 tb8& )on los nombres de las tablas desde las que se combinan los re"istros.

    campo1 campo8& )on los nombres de los campos que se combinan. )i no son num'ricos los campos deben ser

    del mismo tipo de datos y contener el mismo tipo de datos pero no tienen que tener el mismo nombre.

    OPERADOR%#s cualquier operador de comparacin relacional& X S X S o XS.

    )e puede utilizar una operacin (00#R Y,(0 en cualquier cl%usula FR,6. #sto crea una combinacin porequivalencia conocida tambi'n como unin interna. Las combinaciones de equivalencia son las m%s comunes>'stas combinan los re"istros de dos tablas siempre que 7aya concordancia de valores en un campo comn aambas tablas. )e puede utilizar (00#R Y,(0 con las tablas Clientes y /edidos 2ver ilustracin m%s aba!o4 paraseleccionar todos los pedidos de los clientes o los pedidos de un cliente en particular.

    6%s formalmente (00#R Y,(0 especfica que el resultado de la consulta conten"a slo filas para una tabla conla que coincidan una o varias filas en otra tabla.

    Ejemplo

    6ostrar una consulta para determinar la fec7a y el monto de los pedidos de un cliente Q identificado por sunmero de cedula.

    http://www.monografias.com/trabajos12/lailustr/lailustr.shtmlhttp://www.monografias.com/trabajos12/lailustr/lailustr.shtml
  • 5/26/2018 Introduccin a Visual FOX Pro

    20/61

    SELECT FEC&A, MONTOFROM PEDIDOSINNER 4OIN CLIENTES; ON CLIENTES.CEDULA 2ANDPEDIDOS.CEDULA 2

    )upon"a que complementamos esta consulta aadiendo los campos nombre y tel'fono de la tabla clientes elresultado por pantalla sera&

    L! l"#e! ,e -,)o S$L %e&':

    )#L#C clientes.nombre clientes.telefono fec7a monto FR,6 /#-(-,) (00#R Y,(0 clientes>,0 clientes.cedula 8 +0- pedidos.cedula 8

    ,bserve la sinta$is con que se escriben los campos de la tabla que no est% activa 2clientes4. )e antecede elnombre del campo con el identificador de la tabla y un punto.

    #$isten rdenes a"re"adas que cambiaran el resultado de la consulta dependiendo como las use. #stas son&

    L#F ,?#RD Y,(0& especifica que el resultado de la consulta conten"a todas las filas de la tabla a la izquierdade la palabra clave Y,(0 y slo las filas que concuerden procedentes de la tabla a la derec7a de la palabra claveY,(0. La palabra clave ,?#R es opcional> se puede incluir para resaltar que se 7a creado una combinacine$terna.

    R(GK ,?#RD Y,(0 especifica que el resultado de la consulta conten"a todas las filas desde la tabla 7asta laderec7a de la palabra clave Y,(0 y slo las filas que concuerden desde la tabla 7asta la izquierda de la palabraclave Y,(0. La palabra clave ,?#R es opcional> puede incluirse para resaltar la creacin de una combinacin

    e$terna.F?LL ,?#RD Y,(0& especifica que el resultado de la consulta conten"a todas las filas concuerden o no deambas tablas.

    La palabra clave ,?#R es opcional> se puede incluir para resaltar que se 7a creado una combinacin e$terna.

    Ejemplo:

    ,bserve como cambia el resultado de la consulta anterior a"re"ando las rdenes L#F R(GK F?LL.

  • 5/26/2018 Introduccin a Visual FOX Pro

    21/61

    LET

    )#L#C clientes.nombre clientes.telefono fec7a monto FR,6 /#-(-,) L#F Y,(0 clientes>,0 clientes.cedula 8 +0- pedidos.cedula 8

    #n este caso la condicin del ,0 es especfica el campo cedula en ambas tablas debe ser i"ual a 8> pero L#F

    indica a )*L que in"rese los campos a la izquierda de la palabra Y,(0 los cuales se muestran como .0?LL. envista que no cumplen con la condicin cedula 8.

    R!79T

    )#L#C clientes.nombre clientes.telefono fec7a monto FR,6 /#-(-,) R(GK Y,(0> clientes ,0clientes.cedula 8 +0- pedidos.cedula 8

    El &e%(l*!,o %e&'

    Los campos a la derec7a de Y,(0 se mostrar%n como .0?LL. en vista que no cumplen con la condicin cedula 8.F?LL

  • 5/26/2018 Introduccin a Visual FOX Pro

    22/61

    SELECT CLIENTES.NOMBRE, CLIENTES.TELEFONO, FEC&A, MONTOFROM PEDIDOSFULL 4OINCLIENTES; ON CLIENTES.CEDULA 2AND PEDIDOS.CEDULA 2

    #n este caso se muestran los campos de ambas tablas coincidan o no con la condicin establecida.

    Consultas De 6nin E@ternas

    )e utiliza la operacin ?0(,0 para crear una consulta de unin combinando los resultados de dos o m%sconsultas o tablas independientes. )u sinta$is es&

    )#L#C campos separados por comas FR,6 nombre tabla 5K#R# condicin ?0(,0> )#L#C camposseparados por comas FR,6 nombre tabla 5K#R# condicin

    Los campos de ambos )#L#C deben estar en i"ual nmero en ambas instrucciones y deben ser del mismotipo.

    EJEMPLO:

    )upon"a que tenemos una tabla H#0-#-,R#) !unto con la ya conocida tabla CL(#0#) con la que 7emostraba!ado anteriormente.

    )e le solicita que presente una vista por pantalla de todos los vendedores y clientes que se encuentran"eo"r%ficamente ubicados en la zona 91=1.

    L! l"#e! S$L %e&':

    SELECT CEDULA, NOMBRE, TELEFONOAS CLIENTESY%ENDEDORES FROM CLIENTESW&ERECODPOSTAL '5101'; UNION SELECT CEDULA, NOMBRE, TELEFONOFROM %ENDEDORESW&EREONA '5101'

  • 5/26/2018 Introduccin a Visual FOX Pro

    23/61

    ,bserve que el nico vendedor que cumple con la condicin aparece en la consulta en el ltimo lu"ar.

    Ejemplo

    )upon"a a7ora que desea ver a todos los vendedores y clientes en una sola vista la lnea de comando )*L ser%m%s sencilla como se puede apreciar&

    SELECT CEDULA, NOMBRE, TELEFONOAS CLIENTESY%ENDEDORES FROM CLIENTESUNION;SELECT CEDULA, NOMBRE, TELEFONOFROM %ENDEDORES

    Como podr% observar 2en la si"uiente p%"ina4 la vista de la consulta incluye a todos los re"istros de la tabla

    clientes y a los dos nicos vendedores re"istrados.

    Hista de la consulta de todos los clientes y vendedores usando ?0(,0.

    ?nir ablas con )*L

    E@$licacin 5isual de los S0L O!"

    )upon"amos que tenemos las dos si"uientes tablas. La tabla + est% a la izquierda y la tabla B est% a la derec7a.Las rellenaremos con cuatro re"istros cada una.

  • 5/26/2018 Introduccin a Visual FOX Pro

    24/61

    +7ora unamos estas dos tablas por el campo nombre de al"unas formas distintas y veamos si podemos obteneruna representaciones conceptuales con los in"eniosos dia"ramas de H#00.(00#R Y,(0 slo produce los re"istros que coinciden en las dos tablas + y B.

    1. SELECT * FROM TABLAA8. INNER 4OINTABLABJ. ON TABLAA.NOMBRE TABLAB.NOMBRE

    F?LL ,?#R Y,(0 produce el con!unto de todos los re"istros en las tablas + y B con re"istros coincidentes enambos lados cuando sea posible. )i no 7ay coincidencia el lado que falta contendr% 0?LL.

    1. SELECT * FROM TABLAA8. FULL OUTER 4OIN TABLABJ. ON TABLAA.NOMBRE TABLAB.NOMBRE

    L#F ,?#R Y,(0 produce el con!unto completo de re"istros de la tabla + con los re"istros coincidentes 2siest%n disponibles4 en la tabla B. )i no 7ay coincidencia el lado derec7o contendr% 0?LL.

    1. SELECT * FROM TABLAA8. L#F ,?#R 4OIN TABLABJ. ON TABLAA.NOMBRE TABLAB.NOMBRE

    /ara producir el con!unto de re"istros en la tabla + pero no en la tabla B usamos el mismo L#F ,?#R Y,(0y lue"o e$cluimos los re"istros que no queremos del lado derec7o mediante una cl%usula 5K#R#.

    1. SELECT * FROM TABLAA8. LEFT OUTER 4OIN TABLABJ. ON TABLAA.NOMBRE TABLAB.NOMBRE

  • 5/26/2018 Introduccin a Visual FOX Pro

    25/61

    ;. W&ERE TABLAB.ID IS NULL9.

    /ara producir el con!unto de re"istros nicos de la tabla + y la tabla B usamos el mismo F?LL ,?#R Y,(0 ylue"o e$cluimos los re"istros que no queremos de los dos lados mediante una cl%usula 5K#R#.

    1. SELECT * FROM TABLAA8. FULL OUTER 4OIN TABLABJ. ON TABLAA.NOMBRE TABLAB.NOMBRE;. W&ERE TABLAA.ID IS NULL9. OR TABLAB.ID IS NULL

    ambi'n 7ay un CR,)) Y,(0 el cu%l no puede ser e$presado con un dia"rama de H#00&

    1. )#L#C Z FR,6 +BL++8. CR,)) Y,(0 +BL+B

    #sto une [todo con todo\ dando como resultado ; $ ; 1< filas muc7as m%s de las que tenamos en loscon!untos ori"inales. )i 7aces unos simples c%lculos puedes ver por qu' es un Y,(0 muy peli"roso de e!ecutaren tablas "randes.

    EJEMPLODESENTENCIAAPLICADAABASESDEDATOSDEADMINPA$

    REPLACECOLUMNAB WIT&COLUMNAA Remplaza el dato seleccionado de Columen la ColumnaB

    REPLACECOLUMNAB WIT&COLUMNAA FORRECNO"$31 Remplaza todos los datos de la Columcon los de la ColumnaB en la misma tab

  • 5/26/2018 Introduccin a Visual FOX Pro

    26/61

    REPLACECRFC WIT&A0101010006 FORRECNO"$31 Remplaza toda la columna Crfc con el XAXX010101000

    REPLACECRAONSO01 WIT&STRTRAN"CRAONSO01, 787, 797$ FORRECNO"$31 Busca en todas las cadenas de la coluCrazonso01 el carcter y lo remplaza p

    SELECT * FROM MGW10005.DBF W&EREMGW10005.CCODIGOP01 ; IN"TA00!6$ Busca !A00" en la columna ccodi#op01 tabla m#$1000%

    UPDATEMGW1000 SETCFEC&AE01 "SELECTCFEC&A FROMMGW1000 W&ERECIDDOCUM01 5$

    Copia en toda la columna C&ec'a(x0

    )alor *ue se encuentra en la columna Cen el ren#l+n *ue corresponde a Ciddocui#ual a %.

    REPLACECTETOE02 WIT&ALLTRIM"CTETOE02$ FORRECNO"$31uita los espacios en blanco del principfin de los datos en toda la coluCtextoex0-

    REPLACECIMPORTE0# WIT&%AL"CTETOE0!$FORRECNO"$31Copia lo *ue existe en la columna Ctextoen la columna Cimporte0 con)ierto el en n/mero.

    SELECT * FROM MGW1000.DBF W&ERECIDDOCUM01!#(#(Busca en la !abla 210003 los re#i*ue ten#an en el campo Ciddocum01 el 1-40

    LOCATE NET 1FOR MGW1000.CIDDOCUM0110 Busca el si#uiente re#istro en dCiddocum01 es i#ual a 1-40

    SELECT CIDDOCUM01, RECNO"$ AS REGISTRO FROM MGW1000.DBF W&ERE

    CIDDOCUM01120

    5e)uel)e el n/mero de re#istro *ue tiene

    campos con Ciddocum01 i#ual a 1-40SELECT * FROM W&ERE CIDDOCUM01 NOT IN "SELECT CIDDOCUM01 FROMERR.DBF$

    Compara la tabla abierta Bien.dbf con la existente en el mismo directorio (rr.dde)uel)o los re#istros contenidos en Bie*ue no estn presentes en (rror.dbf

    SELECT * FROM MGW1000.DBF W&ERECIDCONCE01 !0!0Realiza un filtro en la tabla m#$100desplie#a los re#istros *ue ten#an ecampo cidconce01 el )alor "0"0

    SELECT * FROM MGW10010.DBF W&ERECTETOE0! 6MATRI6

    COPY TO 7C:\USERS\4ORGE\DES-TOP\DOCUMENTOS DE COLONIAL.LS7 TYPEL5

    (xporta a un arc'i)o en (xcel la !abla

    GO10!( 6a al re#istro 10"7

    REINDE Re indexa la tabla

    SELECT * FROM MGW1000.DBF W&ERECIDDOCUM02 # ORCIDDOCUM02 5UPDATEMGW10005 SETCFECCOSE1 "SELECT CFECCOSE1 FROM MGW10005W&ERECIDPRODU01 0$

    REPLACECIDUNI%EN WIT&2 FORRECNO"$32

    Copia en toda la columna C&ec'a(x0)alor *ue se encuentra en la columna Cen el ren#l+n *ue corresponde a Ciddocui#ual a %.

    SELECT MGW1000 SET ORDER TO CFOLIOASCENDING

    UPDATEMGW10002 SET CFEC&AALTA "SELECT CFEC&AALTA FROM MGW10002W&ERECIDCLIEN01

  • 5/26/2018 Introduccin a Visual FOX Pro

    27/61

    REPLACE ALL CIDUNIDA01 WIT&5FORCIDDOCUM02#one un % en el campo C;RC(!07todos los re#istros *ue donde el cC>5;C0 sea i#ual a

    REPLACE ALL CINTERES01 WIT&5FORCTIPOCLI011

    SELECT * FROM MGW100#5 W&ERE NOT EMPTY"CUUID$8elecciona en la tabla 2100%re#istros en donde el )alor de la coluC>5 no est )acDo.

    REPLACE MGW1000.CFEC&AWIT& DATE"1,12,!0$ Cambia el Campo &ec'a del 5ocumenAdminA por el 5efault E1-F"0F1344G

    SELECT CIDDOCUM01 FROM MGW1000.DBF GROUP BY CIDDOCUM01 &A%INGCOUNT"CIDDOCUM01$3 1

    Busca en toda la tabla 21000.5Bexisten )alores duplicados en C>55;C

    SELECT * FROM MGW1000.DBF W&ERECSERIEDO016MABF6 ANDCFOLIO2(# -%-7-

    REPLACE CCANCELADO WIT&1 FORCIDDOCUM01 !2!(

    REPLACE CMETODOPAG,CNUMCTAPAG WIT&NO IDENTIFICADO6FORRECNO"$31

    UPDATE MGW10002 SETCEMAIL2 "SELECTCEMAIL2 FROMMGW10002 W&ERECIDCLIEN01 20$

    SELECT TOP25 NOMBRE, APELLIDO FROMESTUDIANTESORDER BYNOTA DESC;

    SELECT CODIGO,%ALORFROM %ENTASORDER BY %ALORDESC

    GO BOTT

    BROWSE

    CALC MA"CFEC&A$ TO M%ALORFOR CONDICIONESACUMPLIR

    *

    E4EMPLO

    CALC MA"FEC&A$ TO MFEC&AFOR =ACTUALIAAND MONT&"FEC&A$ GMES

    SELECT TOP 1 * FROM MGW1000.DBF W&ERE C>?@?>01 0001 "SELECTC@>01FROM 1000.@H$ AND C@@?>J01 3 0

    SELECT * FROM mgw10010.WHERE Ciddocum01 NOT (SELECT Ciddocum01 Fmgw10008.dbf) N! Ciddocum0

    0

    SELECT * FROM 10002.@H WKC@@?>J01FROM 1000.@HSELECT * FROMMGW10008.DBFWH

    MGW10002.Ccodigoc01

    SELECT MA"CFEC&A$, CTOTAL , FROMMGW1000.DBF W&ERECIDCLIEN01 2 ANDCIDDOCUM02 !5

    SELECT TOP 1 CIDDOCUM01 FROM MGW1000.DBF W&ERE CIDCLIEN01 2 AND CIDDOCUM02 !5 ORDER BY CFEC&A DES

    SELECT M#W10008.CI!CLIEN01$ M#W10008.CFECH$ CI!%RO!&01$ M#W10010.CTOTL$M#W10010.CIM%ORTE0'$ M#W10010.CTETOE01 FROM M#W10010 INNER OIN M#W10008 ON

    M#W10010.CI!!OC&M01 M#W10008.CI!!OC&M01 WHERE M#W10010.CTETOE01 +CTI,O+ OR!ERM#W10008.CI!CLIEN01 !ESC INTO C&RSOR !TOS

    SELECT H1.*,H2.*,H!.* , ;FROM H1,H2,H! ;W&ERE H1.>?@? H2.>?@? ;AND H1.>?@? H!.>?@? ;AND H2.>?@? H!.>?@?

    SELECT * FROM T-L WHERE RECNO()1 INTO C&RSOR CC&RSOR1RE!WRITE // %RIMER RE#ISTRO

    SELECT * FROM T-L WHERE RECNO()RECCO&NT() INTO C&RSOR

  • 5/26/2018 Introduccin a Visual FOX Pro

    28/61

    CC&RSOR // &LTIMO RE#ISTRO

    SELECT CC&RSOR1

    %%EN! FROM !-F(+CC&RSOR+)

    SELECT RECNO(1) S INICIO$ CO&NT(1) S FINL FROMM&NICI%IOS INTO C&RSOR SH

    SELECT TO% 1 I! FROM T-L OR!ER - I!!ESC

    EJEMPLO1 4 PROGRAMA

    CLOSE TABLES ALLSET EXCLUSIVE OFFHIDE WINDOWS SCREEN && Para ocultar las vetaas !ue "eera las cosultas#SCREEN$W%o'State ( ) && Para ocultar las vetaas !ue "eera las cosultas#SCREEN$VISIBLE ( $F$ && Para ocultar las vetaas !ue "eera las cosultasLOCALVDIAS*ES+ VDIASANO+ VANOAS INTE,ER

    VDIAS*ES ( DA-.,O*ONTH.DATE./0DA-.DATE.//+)// 1 ) && Calcula D2as el *esVANO ( .-EAR.DATE.///

    IF *OD.VANO+3/(4 AND .*OD.VANO+)44/54 OR *OD.VANO+344/(4/ && Calcula s% el a6o es 7%s%estoVDIASANO ( 899

    ELSEVDIASANO ( 89:

    ENDIF

    USE *,W)44)4$DBF SHARED IN 4SCAN

    REPLACE *,W)44)4$CI*PORTE43 WITH 4 && Re%%c%a el ca;

  • 5/26/2018 Introduccin a Visual FOX Pro

    29/61

    REPLACE CFECHAEX4) WITH .DATE.-EAR.CFECHA/+ *ONTH.CFECHA/+ DA-.CFECHA// 1CI*PORTE43/ FOR BETWEEN .CIDPRODU4)+83+8/ && Re;

  • 5/26/2018 Introduccin a Visual FOX Pro

    30/61

    ELSE,!ISNO 567

    EN!IF

    &SE M#W10010.!-F SHRE! IN 0SCN

    RE%LCE CIM%ORTE0' WITH 1 FOR CI!%RO!&01 5'RE%LCE CIM%ORTE0' WITH FOR CI!%RO!&01 57RE%LCE CIM%ORTE0' WITH 17 FOR CI!%RO!&01 56RE%LCE CIM%ORTE0' WITH ,!ISMES FOR CI!%RO!&01 5RE%LCE CIM%ORTE0' WITH 185 FOR CI!%RO!&01 58RE%LCE CIM%ORTE0' WITH ,!ISNO FOR CI!%RO!&01 59RE%LCE CFECHE01 WITH (!TE(ER(CFECH)$

    MONTH(CFECH)$ !(CFECH)) 3 CIM%ORTE0') FOR -ETWEEN

    (CI!%RO!&01$5'$5)RE%LCE CTETOE01 WITH +,ENCI!O+ FOR CFECHE01 :!TE()

    RE%LCE CTETOE01 WITH +CTI,O+ FOR CFECHE01 "!TE()EN!SCNCLOSE T-LES LL&SE M#W10010.!-F SHRE! IN 0&SE M#W1000.!-F SHRE! IN 0&SE M#W10008.!-F SHRE! IN 0

    LOCL ,TECTOE01 S STRIN#LOCL ,CLIENTE S INTE#ERSELECT M#W10008.CI!CLIEN01$ M#W10010.CTETOE01 FROMM#W10010 INNER OIN M#W10008 ON M#W10010.CI!!OC&M01 M#W10008.CI!!OC&M01 WHERE M#W10010.CTETOE01 +CTI,O+OR!ER - M#W10008.CI!CLIEN01 !ESC INTO C&RSOR !TOSRE!WRITESELECT CO&NT(CI!CLIEN01) S FINL FROM !TOS INTO C&RSOR%OSICION

    %OSICION.FINLI 1FOR I 1 TO

    SELECT !TOS#O ISELECT CTETOE01 FROM !TOS,TETOE01 CTETOE01

  • 5/26/2018 Introduccin a Visual FOX Pro

    31/61

    SELECT CI!CLIEN01 FROM !TOS,CLIENTE CI!CLIEN01RE%LCE M#W1000.CTETOE01 WITH ,TETOE01 FOR

    CI!CLIEN01 ,CLIENTEEN!FORCLOSE T-LES LL&SE M#W1000.!-F SHRE! IN 0&SE M#W10008.!-F SHRE! IN 0&SE M#W10010.!-F SHRE! IN 0

    SELECT M#W10008.CI!CLIEN01$ M#W10008.CFECH$ CI!%RO!&01$M#W10010.CTOTL$ M#W10010.CIM%ORTE0' FROM M#W10010 INNEROIN M#W10008 ON M#W10010.CI!!OC&M01 M#W10008.CI!!OC&M01WHERE M#W10010.CTETOE01 +CTI,O+ OR!ER -

    M#W10008.CI!CLIEN01 !ESC INTO C&RSOR !TOS

    SELECT * FROM M#W10010.!-F WHERE CTETOE01 +CTI,O+OR!ER - CI!!OC&M01 SC INTO C&RSOR CTI,OS

    !O WHILE ;EOF(CTI,OS) // - ?oo@ IF EOF( ) EIT EN!IF ,!OC&MENTO CTI,OS.CI!!OC&M01

    ,TETOE01 CTI,OS.CTETOE01 SELECT CI!CLIENT01 FROM M#W1000.!-F WHERE CI!!OC&M01 ,!OC&MENTO ,CLIENTE CI!CLIENT01 RE%LCE M#W1000.CTETOE01 WITH ,TETOE01 FORCI!CLIEN01 ,CLIENTE SAI% LOO%EN!!O // E=d> ?oo@

    CLOSE T-LES LL

  • 5/26/2018 Introduccin a Visual FOX Pro

    32/61

    CLOSE TABLES ALLSET ECLUSI%E OFFLOCAL %DIASMES, %DIASANO, %ANO AS INTEGER

    %DIASMES DAY"GOMONT&"DATE"$DAY"DATE"$$,1$$

    %ANO "YEAR"DATE"$$$IF MOD"%ANO,#$0 AND "MOD"%ANO,100$0 OR MOD"%ANO,#00$0$

    %DIASANO !((ELSE

    %DIASANO !(5ENDIF

    USE MGW10010.DBF S&ARED IN 0SCAN

    REPLACE CIMPORTE0# WIT& 1 FOR CIDPRODU01 !#REPLACE CIMPORTE0# WIT& < FOR CIDPRODU01 !5REPLACE CIMPORTE0# WIT& 1# FOR CIDPRODU01 !(

    REPLACE CIMPORTE0# WIT& %DIASMES FOR CIDPRODU01 !

  • 5/26/2018 Introduccin a Visual FOX Pro

    33/61

    SELECT CIMPORTE0# FROM MGW10010.DBF W&ERE CIDDOCUM01 NDOC1NDIAS1 CIMPORTE0#

    LDFECFINAL DATE"LDANNO, LDMES, LDDIA$ Q NDIAS1LDANNOFINAL YEAR"LDFECFINAL$LDMESFINAL MONT&"LDFECFINAL$

    LDDIAFINAL DAY"LDFECFINAL$CLOSE TABLES ALLUSE MGW10002.DBF S&ARED IN 0SCAN

    REPLACE CFEC&AE01 WIT& DATE"LDANNOFINAL, LDMESFINAL, LDDIAFINAL$ FORCIDCLIEN01 2ENDSCANCLOSE ALL

    SELECT CIDDOCUM01, CIDPRODU01, CTOTAL, CIMPORTE0# FROM MGW10010 W&ERE CIDPRODU01BETWEEN !# AND ! '1000.>F>KJ01'GO TOPSTORE %AL"T&ISFORM.@F??.%J$ TO F??LOCATE FOR MGW1000.>?? F?? AND TRIM"UPPER"MGW1000.>@?01$$ TRIM"UPPER"T&IS.P.@S.%J$$IF FOUND"$ .F. MESSAGEBO"'N? E>?@?'$

    ELSE T&ISFORM.@@?>J01.C??S?J> '1000.>@@?>J01' T&ISFORM.@>01.C??S?J> '1000.>@>01' T&ISFORM.F>K.C??S?J> '1000.>F>K' T&ISFORM.S@?01.C??S?J> '1000.>S@?01' T&ISFORM.F??.C??S?J> '1000.>F??' T&ISFORM.R??01.C??S?J> '1000.>R??01' T&ISFORM.T?.C??S?J> '1000.>T?' T&ISFORM.F>K01.C??S?J> '1000.>F>K01' T&ISFORM.@F>KI.C??S?J> '1000.>F>KJ01' T&ISFORM.TV?V0!.C??S?J> '1000.>TV?V0!' T&ISFORM.I?0!.C??S?J> '1000.>I?0!'

    T&ISFORM.I?0#.C??S?J> '1000.>I?0#'ENDIFUSE MGW10002.DBF S&ARED IN 1LOCATE FOR MGW10002.>@>01 T&ISFORM.@>01.%JT&ISFORM.>?@?>01.C??S?J> '10002.>>?@?>01'

  • 5/26/2018 Introduccin a Visual FOX Pro

    35/61

    &SE :FoB%oDdi

  • 5/26/2018 Introduccin a Visual FOX Pro

    36/61

    &%!TE M#W10007 SET CFECCOSE1 (SELECT CFECCOSE1 FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CFECCOSE (SELECT CFECCOSE FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CFECCOSE5 (SELECT CFECCOSE5 FROM M#W10007 WHERE

    CI!%RO!&01 17)

    &%!TE M#W10007 SET CFECCOSE' (SELECT CFECCOSE' FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CFECCOSE7 (SELECT CFECCOSE7 FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET C-NCOSE (SELECT C-NCOSE FROM M#W10007 WHERECI!%RO!&01 1)

    &%!TE M#W10007 SET CESC&OTI (SELECT CESC&OTI FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CESC&OTI5 (SELECT CESC&OTI5 FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET C!ES#LOSI (SELECT C!ES#LOSI FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CI!&NICOM (SELECT CI!&NICOM FROM M#W10007 WHERECI!%RO!&01 1)

    &%!TE M#W10007 SET CI!&NI,EN (SELECT CI!&NI,EN FROM M#W10007 WHERECI!%RO!&01 1)

    &%!TE M#W10007 SET CI!&NI,EN (SELECT CI!&NI,EN FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CI!&NI,EN (SELECT CI!&NI,EN FROM M#W10007 WHERE

    CI!%RO!&01 17)&%!TE M#W10007 SET CI!&NI,EN (SELECT CI!&NI,EN FROM M#W10007 WHERECI!%RO!&01 17)

    &%!TE M#W10007 SET CI!&NICOM (SELECT CI!&NICOM FROM M#W10007 WHERECI!%RO!&01 17)

  • 5/26/2018 Introduccin a Visual FOX Pro

    37/61

    &%!TE M#W10007 SET CI!&NI,EN (SELECT CI!&NI,EN FROM M#W10007 WHERECI!%RO!&01 17)

    CLOSE TABLES ALL

    6SE *"OBRE+DE+TABLA* E2CL6S!5E

    OR A

  • 5/26/2018 Introduccin a Visual FOX Pro

    38/61

    3 #n la tabla 6G51==].-BF que es la de documentos filtramos el (- del documento con la si"uiente instruccinM

    SELECT * FROM mgw10008.dbfWHERE cIddocum01 78

    )i lo encontr podemos ver el folio del documento para ir a +dmin/+* y analizarlo pero si no es porque se borr eldocumento manualmente y no los movimientos con esta instruccin los ubicamosM

    SELECT * FROM mgw10010.dbf WHERE Ciddocum01 NOT IN (SELECT Ciddocum01 FROMmgw10008.dbf) N! Ciddocum01 " 0

    #sto desple"ar% los movimientos que no tienen documento para marcarlos para eliminacin lo 7acemos con la si"uienteinstruccin

    !ELETE FROM mgw10010.dbf WHERE Ciddocum01 NOT IN (SELECT Ciddocum01 FROMmgw10008.dbf) N! Ciddocum01 " 0

    /ara buscar los re"istros marcados para eliminacin en una tabla utilizamosM

    SELECT * FROM mgw10010.dbf WHERE-#L##-24

    en la abla sin filtros activados ponemos esta para borrarlos fsicamenteM

    %CA

    CASO PRACTICO 3.

    Reinicio de Campos Adicionales de Datos capturados por el usuario

    &%!TE M#W10008.!-FSET CTETOE01 (SELECT CTETOE01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CTETOE0 (SELECT CTETOE0FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CTETOE05 (SELECT CTETOE05FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CFECHE01 (SELECT CFECHE01FROM M#W10008.!-F WHERECI!!OC&M01 5'89)

    &%!TE M#W10008.!-F SET CIM%ORTE01 (SELECT CIM%ORTE01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CIM%ORTE0 (SELECT CIM%ORTE0FROM M#W10008.!-F WHERECI!!OC&M01 1)

  • 5/26/2018 Introduccin a Visual FOX Pro

    39/61

    &%!TE M#W10008.!-F SET CN&MERO#01 (SELECT CN&MERO#01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CMENSE01 (SELECT CMENSE01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CC&ENTM01 (SELECT CC&ENTM01FROM M#W10008.!-F WHERE

    CI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CN&MEROC01 (SELECT CN&MEROC01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET C%ESO (SELECT C%ESOFROM M#W10008.!-F WHERE CI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CREFEREN01 (SELECT CREFEREN01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET CO-SER,01 (SELECT CO-SER,01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    &%!TE M#W10008.!-F SET C!ESTIN01 (SELECT CO-SER,01FROM M#W10008.!-F WHERECI!!OC&M01 1)

    ., unciones de EGe#$lo

    cc@i=g i=g$i$1))$67$ 90) =d ;bc(>ub>(?>i=g$i$1))$9$1) =d ;bc(>ub>(?>i=g$i$1))$'8$ 7) =d >c(>ub>(?>i=g$i$1)):"5?>i=g >uff(?>i=g$(>ub>(?>i=g$i$1)$?>i=g)$1$KK)

  • 5/26/2018 Introduccin a Visual FOX Pro

    40/61

    Do Case

    Case $ = 1

    (ACCION1)

    Case $ = 2

    (ACCION2)

    Ot!er%ise

    (O&'A ACCION)

    EndCase

    SE"TE"C!ACASE

    !O CSE CSE ?EB@>io=1

    Comm=d> CSE ?EB@>io=

    Comm=d> ... CSE ?EB@>io=N

    Comm=d> OTHERWISE

    Comm=d>

    EN!CSE

    %RO#RM 1. E>< cmbi ?> do> d< C%ESO C

  • 5/26/2018 Introduccin a Visual FOX Pro

    41/61

    %RO#RM . E>< @ogm ?im@i ?o> bo=o> c?cu?do> @o

  • 5/26/2018 Introduccin a Visual FOX Pro

    42/61

    RE%LCE CTETOE05 WITH Co=>o01EN!IFIF Cidc?io01

    EN!IFIF Cidc?i

  • 5/26/2018 Introduccin a Visual FOX Pro

    43/61

    IF Cidco=c

  • 5/26/2018 Introduccin a Visual FOX Pro

    44/61

    Resumen+plicar buenas normas de codificacin es importante para el desarrollo de cualquier proyecto> pero esparticularmente importante cuando muc7os desarrolladores est%n traba!ando en el mismo proyecto. enerestablecido pautas de codificacin contribuye a "arantizar que el cdi"o es de alta calidad con pocoserrores y de f%cil mantenimiento.

    #stas normas o pautas se basan en aos de desarrollo de aplicaciones con Hisual Fo$/ro y de aprendiza!ede cu%les t'cnicas de codificacin traba!an me!or. +dem%s muc7os conceptos 7an sido adaptados a partirde Code Complete 26icrosoft /ress ()B0 1399

  • 5/26/2018 Introduccin a Visual FOX Pro

    45/61

    el cdi"o. -eclare todas las variables al inicio de la rutina en lu"ar de entremezclarlas por todo el cdi"o yasi"ne su valor predeterminado.

    Forma incorrecta:

    LOCAL lnMyNum

    lnMyNum = !

    LOCAL lcMy"tring

    lcMy"tring = #ABCD#

    LOCAL lnCounter

    lnCounter = $

    Forma correcta&

    LOCAL lnMyNum% lcMy"tring% lnCounter

    lnMyNum = !

    lcMy"tring = #ABCD#

    lnCounter = $

    Convenciones para nombrar ob!etos.

    Las primeras tres letras del nombre de un ob!eto deben ser utilizadas para indicar el tipo del ob!eto.

    c7^ 3 C7ec^ bo$

    cbo 3 Combo bo$

    cmd 3 Command button

    cm" 3 Command Group

    cnt 3 Container

    ctl 3 Control cus 3 Custom

    edt 3 #dit bo$

    frm 3 Form

    frs 3 Form set

    "rd 3 Grid

    "rc 3 Grid Column

    "r7 3 Grid Column Keader

  • 5/26/2018 Introduccin a Visual FOX Pro

    46/61

    im" 3 (ma"e

    lbl 3 Label

    lin 3 Line

    lst 3 List bo$

    olb 3 ,L# Bound Control

    ole 3 ,L# ,b!ect como un +ctiveQ Control op" 3 ,ption Group

    pa" 3 /a"e

    p"f 3 /a"eframe

    sep 3 )eparator

    s7p 3 )7ape

    spn 3 )pinner

    t$t 3 e$t bo$

    tmr 3 imer

    tbr 3 oolbar

    0ormas para el cdi"o fuente&1. ?tilice abundantes espacios en blanco. Kar% m%s le"ible su cdi"o.8. ?tilice tabuladores en lu"ar de espacios para indentar.J. Los comandos y funciones de Hisual Fo$/ro deben escribirse en maysculas y con la totalidad desus letras el resto del cdi"o debe estar escrito con combinacin de maysculas y minsculas. 6anten"alneas cortas tanto como sea posible para evitar desorden 2line Irap4 durante la impresin. )i una lnea decdi"o ocupa fsicamente m%s de una lnea utilice las e$presiones de unin como primer car%cter de lalnea si"uiente. Las e$presiones de unin son del tipo _ +0- ,R 0, etc. Recuerde adem%s que lalnea debe ser tan v%lida como si fuera una sola lnea. Coloque un espacio antes del punto y coma.#!emplos de malas separaciones de lneas&

    lcCommand = #&oy es Mi'rcoles% ( de Octu)re de !$$*# + ,

    #"on las !-$$ M#

    /F ldBeginDate 0= DA1E23 O4 ,

    ldEndDate 0= DA1E23

    #!emplos de buenas separaciones de lneas&

    lcCommand = # &oy es Mi'rcoles% ( de Octu)re de !$$*# ,

    + #"on las !-$$ M#

  • 5/26/2018 Introduccin a Visual FOX Pro

    47/61

    /F ldBeginDate 0= DA1E23 ,

    O4 ldEndDate 0= DA1E23

    5li 6alue=#7#0/or lo visto cada uno combina las maysculas y minsculas de forma diferente. +unque noe$iste va correcta o incorrecta en este aspecto si 7ay al"unas normas que ayudan a la le"ibilidad.+dem%s utilice e$presiones C+)# en lu"ar de (F cuando parezca que se pueden a"re"ar posteriormentem%s opciones incluso si e$isten slo dos opciones en el momento en que es escrito el cdi"o o paraliberarse de las instrucciones (F #L)# (F. )epare cada C+)# por una lnea en blanco. #l comentario parael C+)# debe ir por deba!o del mismo.

    Forma incorrecta&

    DO CA"E

    8 Este es el comentario para el caso

    CA"E lnCount =

    lc4et9al = #:no#

    8 Este es el comentario para el caso !

    CA"E lnCount = !

    lc4et9al = #Dos#

    8 Este es el comentario para ot;er

  • 5/26/2018 Introduccin a Visual FOX Pro

    48/61

    CA"E lnCount = !

    8 Este es el comentario para el caso !

    lc4et9al = #Dos#

    O1&E4/"E

    8 Este es el comentario para ot;er

  • 5/26/2018 Introduccin a Visual FOX Pro

    49/61

    8 Descripcin...- Displays t;e next item in t;e selected ueue

    8 Fec;a.........- $Oct!$$

    8 Autor.... ....- Fred Flintstone

    888888888888888888888888888888888888888888888888888888888

    8 Modi>ication "ummary

    8

    888888888888888888888888888888888888888888888888888888888

    #!emplo 8&

    888888888888888888888888888888888888888888888888888888888

    8 Funcin......- Calc/ntrest

    8 Descripcin...- Calculate t;e interest in dollars on t;e loan

    8 armetros....- tnBalance- 4euired- 1;e )alance amount

    8 - tn4ate- 4euired- 1;e interest rate to apply

    8 De6uel6e......- Numeric- 1;e dollar amount o> t;e interest

    8 Fec;a.........- $Oct!$$

    8 Autor.........- Bullication "ummary 24esumen de modi>icaciones3

    8

    888888888888888888888888888888888888888888888888888888888

    Comentar modificaciones

    #s importante poner comentarios al 7acer modificaciones para saber cu%les fueron las modificacionesrealizadas y por qu' las realiz. La seccin 6odification )ummary 2Resumen de modificaciones4 en elencabezado e$plicar% por qu' cu%ndo y por qui'n fueron realizadas las modificaciones. #n cada lu"ar delcdi"o donde fue realizada una modificacin debe comentar el cdi"o vie!o e indicar cu%l es el cdi"onuevo que fue aadido. Cada modificacin debe ser numerada. Los cambios pueden ser borrados despu'sde un ao> pero el Resumen de modificaciones debe permanecer.

  • 5/26/2018 Introduccin a Visual FOX Pro

    50/61

    #!emplo&

    888888888888888888888888888888888888888888888888888888888

    8 Modi>ication "ummary

    8

    8 $ $Oct!$$ George etson

    8 C;anged interest calculation to include a date range >actor.

    8 $! $Oct!$$ 1ennessee 1uxedo

    8 . Added code to ;andle interest on >erent.

    8 !. C;anged t;e return 6alue >rom numeric to c;aracter.

    888888888888888888888888888888888888888888888888888888888

    8$ lcNote = #1;is is t;e old line commented out #

    8$

    lcNote = #1;is is t;e ne< line o> code. #

    8$! ln/nterest = a 8 )

    8$! ln/nterest = ln/nterest 7*

    8$! Begin Multiple lines are )eing added% so indicate t;ey start ;ere

    /F :E42tc/nt1ype3 = #/DGE1" #

    ln/nterest = a 8 c

    EL"E

    ln/nterest = a 8 )

    ln/nterest = ln/nterest 7*

    END/F

    8$! H End

    Las lneas de comentario deben indentarse al mismo nivel del cdi"o.

    #ste e!emplo es incorrecto&

  • 5/26/2018 Introduccin a Visual FOX Pro

    51/61

    /F ln1otal/nterest = $

    8$ H Begin

    FO4 lnCount = 1O ln1otal

    ln1otal/nterest = ln1otal/nterest + laLoansIlnCount% !J

    ENDFO4

    8$! H End

    END/F

    #ste e!emplo es correcto&

    /F ln1otal/nterest = $

    8$ H Begin

    FO4 lnCount = 1O ln1otal

    ln1otal/nterest = ln1otal/nterest + laLoansIlnCount% !J

    ENDFO4

    8$! H End

    END/F

    +l comentar lneas que continan 7ay que comentar cada lnea fsica.

    (ncorrecto&

    8$ lc"tring = #Esta cadena contiene muc;o texto porue es un # ,

    + #eKemplo de una lnea 6erdaderamente larga #

    Correcto&

    8$ lc"tring = #Esta cadena contiene muc;o texto porue es un # ,

  • 5/26/2018 Introduccin a Visual FOX Pro

    52/61

    8$ + #eKemplo de una lnea 6erdaderamente larga #

    0ormas para interfaz de usuario0ormas "enerales para interfaz de usuario 2?(4

    Cuando sea posible la interfaz de usuario debe cumplir con las directivas de 5indoIs )tandards descritasen el libro E6icrosoft 5indoIs ?ser #$perience E 6icrosoft /ress ()B0 =3OJ9

  • 5/26/2018 Introduccin a Visual FOX Pro

    53/61

    ;. Option )utton. 2Botn de opcin4 #n ocasiones se les llama radio button. )e utiliza para indicar queel usuario puede seleccionar una opcin de un "rupo de opciones. Los botones de opciones sonfrecuentemente a"rupados en ,ption "roup 2"rupo de opciones4. #sto simplifica el cdi"o para el procesode seleccin. )e recomienda que los "rupos de opciones se utilicen en lu"ar de los botones de opciones.Los "rupos de opciones deben ser preferiblemente ordenados verticalmente antes que 7orizontalmente.

    9. Dropdo

  • 5/26/2018 Introduccin a Visual FOX Pro

    54/61

    variable del tipo Hariant 'staasume el tipo de los datosque contiene.

    Las variables tipo Hariant sedesi"nan con el prefi!o e enla sinta$is del len"ua!e.

    +dem%s Hisual Fo$/ro proporciona tipos de datos que se aplican nicamente a campos de tablas.

    (/,)-#C+6/,)-#H()?+LF,Q/R,

    Ti$o de ca#$o Descri$cin En Ad#inPA0 !nter1alo-ouble 0mero de si"no

    flotante de precisindoble

    -oble _3;:;=

  • 5/26/2018 Introduccin a Visual FOX Pro

    55/61

    +cta como un macrosustitutor remplaza la variable por lo contenido en ella que puede ser otra variableun campo y de esa forma mostrara el valor de la otra variable o campo. ambi'n puede usarse parae!ecutar comandos de vfp armados como una cadena.

    Funciones de Fec7a

    C!OW()-evuelve el da de la semana.

    CTO!()

    Convierte fec7a escrita en caracteres a tipo de dato fec7a.

    !TE()

    -evuelve la fec7a actual del sistema.

    !()

    -evuelve el da del mes de una determinada fec7a.

    !OW()

    -evuelve el nmero de da en la semana 21 a O4.

    !TOS()

    Convierte un tipo de dato fec7a en una cadena de te$to.

    FTIME()

    -evuelve la 7ora de la ltima modificacin de un arc7ivo.

    HO&R()

    -evuelve la 7ora de una cadena datetime.

    MIN&TE()

    -evuelve los minutos de una cadena datetime.

    SEC()

    -evuelve los se"undos de una cadena datetime.

    SET HO&RS :Com=do"

    -efine como se utiliza la 7ora en 18 o 8;.

    SET SECON!S :Com=do"

    -efine si aparecen en la cadena datetime el componente se"undos.

    SS()

    -evuelve los se"undos que pasaron desde la medianoc7e.

    SS(11)

    Convierte el valor fec7a en un nmero !uliano.

    TTOC()

    Convierte la cadena datetime en un formato strin" determinado.

  • 5/26/2018 Introduccin a Visual FOX Pro

    56/61

    WEEA()

    -evuelve la semana del ao en la que se encuentra una determinada fec7a.

    CMO&NTH()

    -evuelve el nombre del mes.

    CTOT()

    #s la inversa de la funcin ,C.

    !TETIME()

    -evuelve la fec7a y 7ora en formato datetime.

    !M()

    -evuelve la cadena da _ nombre mes _ del _ ao a partir de un date o datetime.

    !TOC()

    -evuelve la fec7a en formato car%cter.

    !TOT()

    -evuelve un formato datetime a partir de una date.

    F!TE()

    -evuelve la ultima modificacin de un arc7ivo en date o datetime.

    #OMONTH()

    -evuelve la fec7a a partir de un date e indic%ndole cuantos mesas mas o menos.

    M!()

    -evuelve lo mismo que -6 pero comienza con el mes.

    MONTH()

    -evuelve el nmero del mes.

    SECON!S()

    (d'ntico que ))284 pero esta funcin devuelve formato num'rico.

    SET MRA TO :Com=do"

    -etermina el separador para mostrar la fec7a.

    SS(1)

    -evuelve la fec7a actual en formato !uliano.

    SS(10)

    (nversa a la funciones ))214 y ))2114.

    TIME()

    -evuelve la 7ora del sistema.

    TTO!()

  • 5/26/2018 Introduccin a Visual FOX Pro

    57/61

    Convierte de datetime a date.

    ER()

    -evuelve el ao a partir de una fec7a. Funciones 0um'ricas

    V :O@

  • 5/26/2018 Introduccin a Visual FOX Pro

    58/61

    -evuelve la raz cuadrada de un nmero.

    ,L()

    Convierte una cadena a nmero.

    -S()

    -evuelve el valor absoluto.

    -ITN!()

    -evuelve la e$presin de un and a nivel de bit de m%s de un nmero.

    -ITOR()

    -evuelve la e$presin de un or a nivel de bit de m%s de un nmero.

    -ITSET()

    Lo contrario a B(CL#+R lo reemplaza por 1.

    -ITOR()

    -evuelve la e$presin de un $or a nivel de bit de m%s de un nmero.

    CEILIN#()

    -evuelve el entero m%s pr$imo mayor a un nmero in"resado.

    INT()

    -evuelve la parte entera de un nmero.

    LO#10()

    -evuelve el lo"aritmo en base 1=.

    MIN()

    -evuelve el nmero menor de un con!unto de valores.

    RO&N!()

    Redondea un nmero en la cantidad de decimales indicados.

    SET !ECIMLS :COMN!O"

    -efine la cantidad de decimales que se van a visualizar.

    F?0C(,0#)LG(C+)

    X :O@

  • 5/26/2018 Introduccin a Visual FOX Pro

    59/61

    -etermina si el primer car%cter de la izquierda es alfab'tico.

    IS&%%ER()

    -etermina si el primer car%cter de la izquierda es alfab'tico y maysculo.

    LIAEC()

    -etermina si una e$presin de caracteres es i"ual a otra.

    -ETWEEN()

    -etermina si un valor se encuentra dentro de un ran"o.

    !ELETE!()

    -etermina si el re"istro actual esta marcado l"icamente como eliminado.

    FO&N!()

    -evuelve verdadero si L,C+# o )##P tienen '$ito.

    INLIST()

    -evuelve verdadero si una e$presin esta incluida en un con!unto.

    IS!I#IT()

    -etermina si el primer car%cter de la izquierda es num'rico.

    ISLOWER()

    -etermina si el primer car%cter de la izquierda es alfab'tico y minsculo.

    LIAE()

    -etermina si una e$presin de caracteres concuerda con otra.

    F?0C(,0#)-#C+-#0+

    LLTRIM()

    Borra los espacios iniciales y finales de una cadena.E4EMPLO RE%LCE C

  • 5/26/2018 Introduccin a Visual FOX Pro

    60/61

    LEFT()

    -evuelve una cantidad de caracteres de una cadena de caracteres comenzando por izquierda como puntoinicial. E4EMPLOLEFT(PcdQ$ 5) DE%UEL%ECAD6LEN()

    -evuelve el lar"o de una cadena.

    SC()

    (nversa a la funcin CKR.

    CHRTRN()

    Los caracteres de una cadena que coinciden con una se"unda cadena son remplazados por una terceracadena.E4EMPLOCHRTRNC(PcdQ$ PdQ$ Po?Q) CAMBIAELTE1TOCADA6 PORCOLA6C%CON,ERT()

    Convierte una cadena de caracteres a otra p%"ina de cdi"os.

    E,L&TE()

    )e utiliza parecido al sustituto de macro `.E4EMPLOCad int21=.==84 #H+L?+# 2Cad4 1=.LOWER()

    -evuelve las minsculas de una e$presin de caracteres.

    %!C()

    Rellena una e$presin de caracteres por ambos lados con un car%cter dado.

    %!R()Rellena una e$presin de caracteres por derec7a con un car%cter dado.

    %!L()

    Rellena una e$presin de caracteres por izquierda con un car%cter dado.

    RT()

    -evuelve la ltima posicin donde se encuentra un determinado valor.E4EMPLORT(PQ$ PcdQ) DE%UEL%E# YAXUELAULTIMALETRAA6 ENELTE1TOCADA6E TAENLAPO ICI/N#RI#HT()

    -evuelve una cantidad de caracteres de una cadena de caracteres comenzando por derec7a como puntoinicial. E4EMPLO RI#HT(PcdQ$ 5) DE%UEL%EADA6RTRIM()

    )aca los espacios de la derec7a.

    LTRIM()

    )aca los espacios de la izquierda.

  • 5/26/2018 Introduccin a Visual FOX Pro

    61/61

    OCC&RS()

    -evuelve la cantidad de apariciones de un determinado car%cter.

    RE%LICTE()

    Repite una cantidad de veces una determinada cadena.

    S%CE()

    -evuelve una cadena de caracteres con una cantidad de espacios determinados.

    STR()

    -evuelve una e$presin num'rica en te$to pudiendo definir los espacios para los enteros y decimales.

    STRCON,()

    Convierte una cadena de caracteres a otro formato por e!emplo ?nicode base