FoxPro/Visual FoxPro - Agregar a un cursoe datos de una tabla

 
Vista:

Agregar a un cursoe datos de una tabla

Publicado por gabriel (427 intervenciones) el 08/04/2014 15:48:28
Que tal amigos

Tengo dos tabla libres :

Cabecera y Detalle

Creo un cursor de un cursor tempotal y solo extraigo 2 campos de las tablas indicadas de la siguiente forma :

Select a, b from cur_temp group by a, b into cursor cur_temp

Tengo una 3era .tabla libre que tiene como 20 campos y ahi traslado los 2 campos del cursor creado

Pregunta :

Como hago para agregar al cursor CUR_TEMP los 18 campos restantes y luego en la edicion grabar todos
los campos a la tabla libre C

Agradezco sus comentarios y segerencias.

atte.,

Gabriel
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

Agregar a un cursoe datos de una tabla

Publicado por Saul (728 intervenciones) el 09/04/2014 06:03:02
Hola Gabriel:

A ver si te entiendo??

1.- Tienes tres tablas y haces un cursor de 2 unicamente
2.- Luego tienes una tercera Tabla
3.- Agregas en tu tabla temporal ?? cual tabla temporal la del cursor
4.- Barres toda la tabla 3 y quieres grabar en el cursor los datos de la tercera tabla ??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
*.- Haz un cursor con todos tus campos
** Este es un ejemplo e una tabla que tengo
  CREATE CURSOR Asiste_Libros(;
		Establecimiento N(3),;
		Compra_Venta 	C(1),;
		TipDoc			C(10),;
		Serie			C(15),;
		Documento		C(25),;
		Fecha			D(8),;
		NIT				C(15),;
		Nombre			C(100),;
		TipTransac		C(1),;
		ExportacionBS	C(10),;
		EstadoDocum		C(1),;
		OrdenCedula		C(4),;
		Ceduula_DPI		C(20),;
		Tipo			C(10),;
		Docu_Expo		C(50),;
		Bienes_Local	C(15),;
		Bienes_Ext		C(15),;
		Servi_Local 	C(15),;
		Servicios_Ext	C(15),;
		Exen_Bie_Loc	C(15),;
		Exen_Bie_Ext	C(15),;
		Exen_Ser_Loc	C(15),;
		Exen_Ser_Ext	C(15),;
		Tipo_Const		C(10),;
		NConst_Exencion	C(15),;
		VConst_Exencion	C(15),;
		Total_Bien_Loc	C(15),;
		Total_Servi_Loc	C(15),;
		Total_Bien_Ext	C(15),;
		Total_Servi_Ext	C(15))
 
**2.- Luego tienes que barrer tu tabla tercera con tus 2 campos
 
Select TuterceraTabla
GOTO TOP
DO WHILE !EOF()
      SCATTER MEMVAR
     SELECT Asiste_Libros
     APPEND BLANK
 
      REPLACE Establecimiento WITH m.tucampo1
      REPLACE ....
 
 
  Select TuterceraTabla
  SKIP
ENDDO

suerte..

Sha
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

Agregar a un cursoe datos de una tabla

Publicado por Gabriel (427 intervenciones) el 09/04/2014 16:06:44
Gracias Amigo SAULl por tu sugerencia en verdad lo hice asi utilizando el CREATE CURSOR osea estaba en lo correcto, pero para añadir los campos utilize una codificacion mas moderna y actual como se dice...

Aqui te muestro el codigo empleado :

Local mierror
TRY
BEGIN TRANSACTION
SELECT temp_prueba
INSERT INTO temp_prueba ( carpeta, num_bl ) SELECT iddoc, docu_num FROM cur_bl
END TRANSACTION
CATCH TO mierror
MESSAGEBOX("Se ha producido un error: "+ mierror.message,0+16,"Aviso del Sistema")
ROLLBACK
ENDTRY

Pero tengo el siguiente problema :

Como el grid usa un cursor temporal ( CREATE CURSOR) y lo cargo de datos mediante los TEXTBOX estos aparecen DESACTIVADOS, me dicen por ahi es porque la tabla esta vacia pero al comienzo esta en blanco la tabla...
Lo curioso que he podido activar algunos campos TEXTBOX con el clasico :

Thisform.text1.enabled = .t.

Pero no me permite en todos los campos restantes...

Y luego para grabar el CURSOR a la tabla DBF tendre que utilizar el APPRND FROM....es correcto!!!!

Alguna sugerencia como solucion...

Gracias por tu colaboracion.

attte.,

Gabriel
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

Agregar a un cursoe datos de una tabla

Publicado por Saul (728 intervenciones) el 09/04/2014 23:27:16
Hola Gabriel:

Si lo que pretenes es que los campos tengan sean los campos de tu cursor haz esto

Select TuCursorParaelGid
SCATTER MEMVAR

para cada texto

asigna esta propiedad Tucajadetexto1.ControlSource = m.miprimercampo

Tucajadetexto2.ControlSource = m.misegundocampo
Tucajadetexto3.ControlSource = m.mitercercampo

Cuando lo quieras agregar a tu table



Select TuCursorParaelGid
lo puedes hacer de tres formas

1.- APPEND BLANK
GATTHER MEMVAR &&voltea todas las variables m. (que son de memoria) a tu tabla

2.- APPEN BLANK
REPLACE tuPrimerCampo with m.tuPrimerCampo
...


3.-

TRY
BEGIN TRANSACTION
SELECT temp_prueba
APPEND BLANK
INSERT INTO tusCampos Value (m.campo1, m.campo2 Etc)

END TRANSACTION
CATCH TO mierror
MESSAGEBOX("Se ha producido un error: "+ mierror.message,0+16,"Aviso del Sistema")
ROLLBACK
ENDTRY

Suerte.


pdta
El

TRY
BEGIN TRANSACTION

Se utlizan cuando usas tablas relacionales si no practicamente no te hace nada en el RollBack


sha
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

Agregar a un cursoe datos de una tabla

Publicado por Gabriel (427 intervenciones) el 12/04/2014 18:43:09
Nuevamente Muchas gracias amigo SAUL...

En verdad me distes una idea para resolver mi problema...

Saludos,

Gabriel.
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