FoxPro/Visual FoxPro - este codigo me da error...porque?...URGENTE!!!

   
Vista:

este codigo me da error...porque?...URGENTE!!!

Publicado por Marcelo (69 intervenciones) el 20/06/2012 00:01:53
Me dice que no se reconoce el verbo o comando...y no veo el error..me podrian ayudar...Gracias

SELECT a.tipo_opera, a.codigo_con, a.fecha, a.num_operac, a.secuencia FROM efe_tcancelacion12 as a ;
WHERE MONTH(a.fecha) = 4 .and. ;
a.tipo_opera = 1 .and. ;
a.codigo_con <> 641 .and. ;
a.n_serie_ca <> 1701 .and. ;
a.n_serie_ca <> 1801 .and. ;
NOT exists (select b.NUM_TAR from efe_ttprueba as b where b.NUM_TAR=a.NUM_TAR)
UNION ;
SELECT a.tipo_opera, a.codigo_con, a.fecha, a.num_operac, a.secuencia FROM efe_tcancelacion12 as a ;
WHERE MONTH(a.fecha) = 4 .and. ;
a.tipo_opera = 1 .and. ;
a.codigo_con = 641 .and. ;
a.n_serie_ca <> 1701 .and. ;
a.n_serie_ca <> 1801 .and. ;
NOT exists (select b.NUM_TAR from efe_ttprueba as b where b.NUM_TAR=a.NUM_TAR) .and. ;
exists (select.num_tar from efe_ttfunefe as c where c.num_tar = a.num_tar) INTO CURSOR seltcan2
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
Imágen de perfil de Mauricio

este codigo me da error...porque?...URGENTE!!!

Publicado por Mauricio (1368 intervenciones) el 20/06/2012 17:41:40
Chama o Marcelo......
tienes esto en php o algo por el estilo:
Select a.TIPO_OPERACION,a.CODIGO_CONTRATO,to_char(a.FECHA,'DD-MM-YYYY HH24:MI:SS'),a.NUM_OPERACION,a.SECUENCIA from tcancelacion a

where A.FECHA >= TO_DATE('$fecha_ini'||' 060000','DD/MM/RRRRHH24MISS')
AND A.FECHA <= TO_DATE('$fecha_ter'||' 230000','DD/MM/RRRRHH24MISS')
AND A.CODIGO_CONTRATO!='641'
and a.TIPO_OPERACION='1' and a.N_SERIE_CANCELADORA!='1701' and a.N_SERIE_CANCELADORA!='1801'
AND NOT EXISTS (select b.NUM_TAR from ttprueba b where b.NUM_TAR=a.NUM_TAR)

UNION

Select a.TIPO_OPERACION,a.CODIGO_CONTRATO,to_char(a.FECHA,'DD-MM-YYYY HH24:MI:SS'),a.NUM_OPERACION,a.SECUENCIA
from tcancelacion a
where A.FECHA >= TO_DATE('$fecha_ini'||' 060000','DD/MM/RRRRHH24MISS')
AND A.FECHA <= TO_DATE('$fecha_ter'||' 230000','DD/MM/RRRRHH24MISS')
AND A.CODIGO_CONTRATO='641'
and a.TIPO_OPERACION='1' and a.N_SERIE_CANCELADORA!='1701' and a.N_SERIE_CANCELADORA!='1801'
AND NOT EXISTS (select b.NUM_TAR from ttprueba b where b.NUM_TAR=a.NUM_TAR)
AND EXISTS (select c.NUM_TAR from ttfunefe c where c.NUM_TAR=a.NUM_TAR)
***************************************
ahora te da error esto, que es identico al anterior, aca ya no da error, pero no entiendo que es lo que quieres hacer......
SELECT a.tipo_opera, a.codigo_con, a.fecha, a.num_operac, a.secuencia ;
FROM efe_tcancelacion12 a WHERE MONTH(a.fecha) = 4 AND ;
a.tipo_opera = 1 AND a.codigo_con <> 641 AND ;
a.n_serie_ca <> 1701 AND a.n_serie_ca <> 1801 AND ;
NOT exists (SELEC b.NUM_TAR FROM efe_ttprueba b WHERE b.NUM_TAR=a.NUM_TAR) ;
UNION SELECT a.tipo_opera, a.codigo_con, a.fecha, a.num_operac, ;
a.secuencia FROM efe_tcancelacion12 a WHERE MONTH(a.fecha) = 4 AND ;
a.tipo_opera = 1 AND a.codigo_con = 641 AND ;
a.n_serie_ca <> 1701 AND a.n_serie_ca <> 1801 AND ;
NOT exists (SELEC b.NUM_TAR FROM efe_ttprueba b ;
WHERE b.NUM_TAR=a.NUM_TAR) AND exists (SELEC a.num_tar FROM efe_ttfunefe c ;
WHERE c.num_tar = a.num_tar) INTO CURSOR seltcan
Pero cada quien con su tema.......realmente no se que quieres hacer....???????Suerte
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

este codigo me da error...porque?...URGENTE!!!

Publicado por Chama (69 intervenciones) el 20/06/2012 17:51:13
Hola Mauricio...gracias por tu respuesta..ese codigo esta en PERL, necesito pasarlo a vfp...eso es lo primero y lo segundo es recorrer ese cursor por cada dia del mes...me imagino que en un ciclo FOR...
el campo fecha es Datetime y no se me ocurre como compararlo con la fecha normal (Date) y hacer el for por cada dia...
Ejemplo:...seleccionar la fecha abril 2012 y recorrer ese segmento de datos, resumiendo los movimientos por dia y por tipo de contrato (a.codigo_con)...

Ojala me puedas orientar...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
Imágen de perfil de Mauricio

este codigo me da error...porque?...URGENTE!!!

Publicado por Mauricio (1368 intervenciones) el 20/06/2012 21:16:36
* Supongo que aca ya esta posicionado el cursor en la tabla cursor.......
vfec = CTOD('20/06/2012') && fecha a buscar en cursor
SCAN
vfecha = TTOD(fechor) && Convierte DateTime a Date
IF vfecha = vfec && fecha igual
WAIT WIND 'ENCONTRO....' TIME 1
&& proceso a desarrollar
ELSE
WAIT WIND 'NO ENCONTRO....' TIME 1 && no encontro fecha
ENDIF
ENDSCAN
Suerte!!!!!!!
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

este codigo me da error...porque?...URGENTE!!!

Publicado por Chama (69 intervenciones) el 20/06/2012 21:38:12
Mauricio...gracias nuevamente..tengo lo mismo que me describes con la diferencia que yo lo hago con un DO WHILE...hasta aqui todo bien...mi problema es ahora grabar los datos de los movimientos para ese dia...me explico...osea..esto es lo que tengo...:

GO TOP IN seltcan3
DO WHILE !EOF('seltcan3')
FOR i = 1 TO 31
Stor Ctod(alltrim(str(i)) + '/' + STR(m_mesc04) + '/' + str(m_anoc04)) to WSfec
IF TTOD(seltcan3.fecha) = wsfec
m_efe = m_efe + 1
endif
next i
SKIP 1 IN seltcan3
enddo

lo hace bien...pero ¿como grabo los datos por dia..?..cuando en el cursor ya no queden registros para un mismo dia deberia grabar un registro en la tabla y asi por los 30 dias del mes...un registro por dia...gracias nuevamente..!!!
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
Imágen de perfil de Mauricio

este codigo me da error...porque?...URGENTE!!!

Publicado por Mauricio (1368 intervenciones) el 21/06/2012 16:12:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
*  la tabla diario, solo tiene 2 campos: fecha y contador, la tabla seltcan3 debe estar ordenada por - * fecha
*
m_mesc04 = 6
m_anoc04 = 2012
*
STOR 0 TO m_efe
FOR i = 1 TO 31
	STOR CTOD(ALLT(STR(i)) + '/' + ALLT(STR(m_mesc04)) + '/' + ALLT(STR(m_anoc04))) TO WSfec 
	IF TTOD(fechor) = wsfec
		SCAN WHILE TTOD(fechor) = wsfec
			m_efe = m_efe + 1
		ENDSCAN
		INSERT INTO diario (fecha, contador)	;
			VALUES(wsfec, m_efe)
		m_efe = 0
	ELSE
		INSERT INTO diario (fecha, contador)	;
			VALUES(wsfec, m_efe)
		m_efe = 0
	ENDIF
	LOOP
ENDFOR
SELE diario
DELE ALL FOR EMPTY(fecha)
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

este codigo me da error...porque?...URGENTE!!!

Publicado por Chama (69 intervenciones) el 21/06/2012 16:20:21
Gracias Mauricio por tu ayuda...voy a probar y te cuento..de nuevo 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

este codigo me da error...porque?...URGENTE!!!

Publicado por Chama (69 intervenciones) el 21/06/2012 21:54:45
Mauricio...excelente tu solucion...funciona bien el unico detalle es que llamo a un mes con 30 dias y solo me muestra 29 registros...no entiendo porque ya que el for llega a 31 y mi tabla tiene registros para el dia 30 y no los muestra...no entiendo?...gracias por tu ayuda.
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
Imágen de perfil de Mauricio

este codigo me da error...porque?...URGENTE!!!

Publicado por Mauricio (1368 intervenciones) el 21/06/2012 23:01:52
Marcelo, la solucion es sencilla, solo queria ver si te gusta investigar y no solo copiar, la solucion es agregar un INSERT INTO......... despues del ENDFOR, bueno, ya lo puedes copiar......
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

este codigo me da error...porque?...URGENTE!!!

Publicado por Chama (69 intervenciones) el 21/06/2012 23:23:43
Mauricio...gracias nuevamente...la verdad es que por el apuro solo copie el codigo y lo hice correr, pero para tu tranquilidad no es lo que generalmente hago, ahora debo adecuar tu codigo en mi programa y agregar todas las tarjetas y convenios entonces es ahi cuando tendre que hacer el seguimiento del codigo y ver que pasa y como se comporta...Otra vez muchas gracias y espero poder segui contando con tu ayuda en el futuro.
De echo ya tengo problemas nuevamente, pero agotare mis medios antes de recurrir a la web...

Un millon de 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