Sr. Antonio Linares

Sr. Antonio Linares

Postby Ruben » Sat Mar 08, 2008 3:39 pm

Buen dia, saludos

Tengo una duda referente a usar dos set relations

SET RELATION TO clientes->clave INTO clientes
SET RELATION TO conceptos->cve INTO conceptos

El detalle es cuando tengo uno solo si me trabaja bien pero cuando le incluyo el segundo si me ejecuta el sistema pero entro al modulo de captura de documentos y me saca del sistema sin generarme ningun error...
Que puedo hacer ante este problema??

envio parte de mi codigo donde llamo a mis funciones



ESTOS SON MIS GET´S

REDEFINE get aYDts[4] Var cve1 ID 104 OF oDlg1 PICTURE "99999" WHEN NwMod valid TRAE_CLIENTE(cve1) //4 CLAVE CLIENTE
REDEFINE SAY oGet PROMPT cVar id 105 OF oDlg1 //12 VERIFICAR SI ESTA CORRECTO NOMBRE DEL CLIENTE
REDEFINE get aYDts[8] Var nCve ID 106 OF oDlg1 PICTURE "999" //valid trae_concepto(nCve) //5 CONCEPTO
REDEFINE SAY oSCon PROMPT cVar2 ID 107 OF oDlg1

EN EL PRIMERO EL USUARIO TECLEA LA CLAVE DEL CLIENTE Y VALIDA EN LA TABLA DE CLIENTES SI EXISTE Y EN EL REDEFINE SAY LO TRAE AL EDITBOX

EN EL SEGUNDO ES LO MISMO PERO SE TECLEA LA CLAVE DEL CONCEPTO Y VA Y BUSCA SI ESTA EN LA TABLA

LOS NOMBRES DE LAS TABLAS SON CAT_CLI PARA CLIENTES Y CAT_CON PARA CONCEPTOS



ESTAS SON MIS FUNCIONES


FUNCTION Trae_Cliente(cve1)
IF Clientes->(dbseek(cve1))
cVar := clientes->NOMBRE
oGet:Refresh()
RETURN(.T.)
ELSE
MsgInfo("Cliente no registrado")
RETURN(.F.)

ENDIF

return .T.

//***********************************************************
function trae_concepto(nCve)

IF conceptos->(dbseek(str(nCve,3)))
cVar2 := conceptos->concepto
oSCon:Refresh()
RETURN(.T.)
ELSE
MsgInfo("Concepto no registrado")
RETURN(.F.)

ENDIF

return .T.



ESTA ES MI GENERACION DE INDICES

FIELD CLAVE
use cat_cli alias clientes shared new
IF !FILE("cat_cli.CDX")
index on clave tag cat_cli //cambiar a campo
set index to cat_cli
ELSE
set index to cat_cli
ENDIF

use cap_doc alias captura shared new
IF !FILE("cat_doc.CDX")
index on clave tag cve_catdoc
set index to cap_doc
ELSE
set index to cap_doc
ENDIF

field cve
use cat_con alias conceptos shared new
index on cve tag cve_con

NO SE SI TENGA QUE VER QUE EL CAMPO CVE DE CONCEPTOS ES NUMERICO, LES MENCIONO TAMBIEN QUE EN LA TABLA CAP_DOC EXISTEN EN COMUN LOS MISMOS CAMPOS CON LOS QUE GENERON INDICES, ES EL CAMPO CLAVE Y CVE QUE ESTAN CAP_DOC Y RESPECTIVAMENTE EN CLIENTES Y CONCEPTOS

SALUDOS Y ESPERO ME HAYA EXPLICADO BIEN
User avatar
Ruben
 
Posts: 40
Joined: Wed Feb 20, 2008 5:40 pm
Location: Tampico,Tamps. México

Postby Antonio Linares » Sun Mar 09, 2008 11:07 am

Ruben,

Las relaciones no se usan de esa manera.

En una relación hay una DBF "padre" y unas DBFs "hijas". La idea es que cuando se cambia de registro en el "padre", la relación hace una búsqueda automática en las "hijas", siempre y cuando exista un índice en la "hija" construido con la clave adecuada. Por ejemplo:

SET RELATION TO clientes->clave INTO facturas

Así cuando se cambie de un registro a otro en clientes, se hará una búsqueda automática (DbSeek(clientes->clave)) en facturas.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

OK MUCHAS GRACIAS

Postby Ruben » Sun Mar 09, 2008 5:54 pm

Ok Sr. Antonio muchas gracias

Aplicare lo que me ha dicho y seguire adelante con mi programa
muchas gracias por tan valioso apoyo para los que comenzamos en esta etapa de desarrollo

Saludos

Atte.

Ruben
User avatar
Ruben
 
Posts: 40
Joined: Wed Feb 20, 2008 5:40 pm
Location: Tampico,Tamps. México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 82 guests