Trabajar con &Mes y Select &mes

30/04/2010 - 00:38 por Enrique | Informe spam
Hola Grupo:
Tengo un combo que tiene escrito los 12 mese de año, la
idea es que cuando se seleccione un mes se llene con el InteractiveChange los
textos del formulario.
El problema se complica por que cada mes es una tabla, pero
lo bueno que con los mismos campos. ¿Como puedo hacer para pasar a una
variable la tabla, si las tablas tienen distintos nombre(enero, febrero,
marzo, etc.).? la idea es que quede activa la tabla seleccionada en el combo
y despues pueda ser ocupada en otros formularios y grillas...Ej.

Combo= mMes

CLOSE tables
DO CASE
CASE THIS.LISTINDEX = 1
THISFORM.mMes.Value="Enero"
THISFORM.mMes1.Value="Enero"
STORE 'enero' TO tabla
tabla="tabla"+".dbf"
USE &tabla shared

CASE THIS.LISTINDEX = 2
THISFORM.mMes.Value="Febrero"
THISFORM.mMes1.Value="Febrero"
STORE 'febrero' TO tabla
USE &tabla shared

etc..
ENDCASE

En ese te mismo tema, tengo un botón comandos en el evento click que hace lo
siguiente. ¿El problema nuevamente lo tengo en la tabla (enero) a
seleccionar, tiene que ser la tabla seleccionada en el combo de la primera
pregunta?.

set century on
mMes=THISFORM.mMes.Value
mrut_inf=THISFORM.mrut_inf.Value

select enero.nombre_inf,Apaterno_i,Amaterno_i,mrut_inf from enero;
where rut_inf = mrut_inf ;
into cursor micursor
thisform.RemoveObject('grid1')
thisform.addObject('grid1','grid')
thisform.grid1.visible=.t.
thisform.grid1.top0
thisform.grid1.leftB0
thisform.grid1.Height9
thisform.grid1.width%2

if _tally>0
messagebox("Hay " + transform(_tally) + " Nombres Duplicados")
thisform.num.value=transform(_tally)
THISFORM.Refresh
ELSE
messagebox("No Tiene Duplicidad.." )
THISFORM.Refresh
endif
THISFORM.Refresh


Muchas Gracias
Santiago de Chile

Preguntas similare

Leer las respuestas

#1 Luis Maria Guayan
30/04/2010 - 01:31 | Informe spam
Según tu ejemplo:

CASE THIS.LISTINDEX = 1
THISFORM.mMes.Value="Enero"
THISFORM.mMes1.Value="Enero"
STORE 'enero' TO tabla
tabla = tabla + ".dbf"
USE (tabla) shared



Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


El 29/04/2010 19:38, Enrique escribió:
Hola Grupo:
Tengo un combo que tiene escrito los 12 mese de año, la
idea es que cuando se seleccione un mes se llene con el InteractiveChange los
textos del formulario.
El problema se complica por que cada mes es una tabla, pero
lo bueno que con los mismos campos. ¿Como puedo hacer para pasar a una
variable la tabla, si las tablas tienen distintos nombre(enero, febrero,
marzo, etc.).? la idea es que quede activa la tabla seleccionada en el combo
y despues pueda ser ocupada en otros formularios y grillas...Ej.

Combo= mMes

CLOSE tables
DO CASE
CASE THIS.LISTINDEX = 1
THISFORM.mMes.Value="Enero"
THISFORM.mMes1.Value="Enero"
STORE 'enero' TO tabla
tabla="tabla"+".dbf"
USE&tabla shared

CASE THIS.LISTINDEX = 2
THISFORM.mMes.Value="Febrero"
THISFORM.mMes1.Value="Febrero"
STORE 'febrero' TO tabla
USE&tabla shared

etc..
ENDCASE
Respuesta Responder a este mensaje
#2 Victor Espina
30/04/2010 - 01:54 | Informe spam
El toque final seria ponerle un alias para que luego puedas asociarla a
otros objetos, sin tener que cambiar la referencia luego:

USE (tabla) SHARED ALIAS datosMes

Una aclaracion:
Tanto USE &tabla como USE (tabla) son 100% validos; la diferencia es la
VELOCIDAD con que se ejecuta uno u otro. En general, (expr) es
BASTANTE mas rapido que &expr; el unico problema es que no en todas
partes se puede usar (expr).

Por ejemplo, si queremos referirnos indirectamente a un objeto, usando
una variable para almacenar su nombre, la unica forma de hacerlo es con
&expr

THISFORM.&objName..Metodo()

Sin embargo, en muchisimos comandos es posible usar (expr) para
sustituir un nombre por una expresion, como es el caso de USE. En estos
casos, el uso de (expr) otorga una ganancia significativa en tiempo de
ejecucion frente al mas conocido &expr.


Victor Espina


On 2010-04-29 19:01:07 -0430, Luis Maria Guayan
said:

Según tu ejemplo:

CASE THIS.LISTINDEX = 1
THISFORM.mMes.Value="Enero"
THISFORM.mMes1.Value="Enero"
STORE 'enero' TO tabla
tabla = tabla + ".dbf"
USE (tabla) shared



Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


El 29/04/2010 19:38, Enrique escribió:
Hola Grupo:
Tengo un combo que tiene escrito los 12 mese de año, la
idea es que cuando se seleccione un mes se llene con el InteractiveChange los
textos del formulario.
El problema se complica por que cada mes es una tabla, pero
lo bueno que con los mismos campos. ¿Como puedo hacer para pasar a una
variable la tabla, si las tablas tienen distintos nombre(enero, febrero,
marzo, etc.).? la idea es que quede activa la tabla seleccionada en el combo
y despues pueda ser ocupada en otros formularios y grillas...Ej.

Combo= mMes

CLOSE tables
DO CASE
CASE THIS.LISTINDEX = 1
THISFORM.mMes.Value="Enero"
THISFORM.mMes1.Value="Enero"
STORE 'enero' TO tabla
tabla="tabla"+".dbf"
USE&tabla shared

CASE THIS.LISTINDEX = 2
THISFORM.mMes.Value="Febrero"
THISFORM.mMes1.Value="Febrero"
STORE 'febrero' TO tabla
USE&tabla shared

etc..
ENDCASE
Respuesta Responder a este mensaje
#3 Roberto Pardo
30/04/2010 - 11:48 | Informe spam
"Victor Espina" escribió en el mensaje
news:
El toque final seria ponerle un alias para que luego puedas asociarla a
otros objetos, sin tener que cambiar la referencia luego:

USE (tabla) SHARED ALIAS datosMes

Una aclaracion:
Tanto USE &tabla como USE (tabla) son 100% validos; la diferencia es la
VELOCIDAD con que se ejecuta uno u otro. En general, (expr) es BASTANTE
mas rapido que &expr; el unico problema es que no en todas partes se puede
usar (expr).



Otra diferencia para mí más importante es que si la variable "tabla" es una
ruta completa incluyendo nombres de carpeta con espacios en blanco, USE
&tabla da error mientras que USE (tabla) funciona ok.
Respuesta Responder a este mensaje
#4 enrique
30/04/2010 - 19:50 | Informe spam
Hola Grupo:
Muchas gracias a todos por sus respuesta, estas me ayudaron
Bastante y funciona bien, Pero tengo un problema en los botones del
formulario de Primer registro, Siguiente, anterior, Ultimo. y el Botón de
Comandos Grabar, pienso que tiene que ver con el mismo problema, de que no se
ha seleccionado la tabla correspondiente.

El siguiente código de un Botón de Comandos "Primero" del
Formulario, siempre localizara el mes de enero y no el mes seleccionado en
combo. Si lo cambio el botón de comandos "Siguiente" por Select 1, manda un
mensaje de que no hay tabla seleccionada?.

#DEFINE C_pregunta_LOC "1° Registro"
THISFORM.mMes.Value="Enero"
STORE 'enero' TO tabla
tabla = tabla + ".dbf"
USE (tabla) SHARED ALIAS datosMes

GO top
THISFORM.mid_pista.Value=id_pista
etc..
thisform.Refresh
thisform.mid_pista.SetFocus

Nuevamente les doy las gracias por su valiosa y apreciable ayuda

Saludos.
Enrique.

Santiago de Chile
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida