Por favor que alguien me ayude
base de datos filtrada : pag
base de datos destino : pagtem
En clipper despues de haber filtrado una base de datos a traves de una macro, al agregar registros de esta base de datos a otra lo hacia simplemente cono sigue
select pagtem
append from pag for &Condi
reproduzco aqui mi código ya que tomé la alternativa de usar un rutina extra para solucionar esto, pero supongo que debe de haber una forma de hacerlo con el append from
De antemano muchas gracias
Mexico
STATIC FUNCTION filtro()
MEMVAR Condi, PrimFecha, UltFecha, SoloCob, cFiltro, gFiltro
PUBLIc Condi, PrimFecha, UltFecha, SoloCob, cFiltro, gFiltro
Condi := ""
PrimFecha := dFechaIni
UltFecha := dFechaFin
SoloCob := lSoloCob
IF DTOC(PrimFecha) != " "
Condi := Condi + "pag->fechapag >= PrimFecha .AND. "
ENDIF
IF DTOC(UltFecha) != " "
Condi := Condi + "pag->fechapag <= UltFecha .AND. "
ENDIF
IF SoloCob
Condi := Condi + "pag->tipo = 'CB' .AND. "
ENDIF
Condi := SUBSTR(Condi,1,LEN(Condi)-6)
cFiltro := "{||"+Condi+"}"
gFiltro := '"'+Condi+'"'
SELECT pag
SET ORDER TO
DbSetFilter(&cFiltro,gFiltro)
pag->(DBGOTOP())
SELECT pagtem
ZAP
IF FILE("PAGTEM.NTX")
DELETE FILE PAGTEM.NTX
ENDIF
Procesa()
// APPEND FROM pag FOR &Condi
SET RELATION TO pagtem->facnum INTO cfac
REPLACE ALL clinum WITH cfac->clinum, agente WITH cfac->agente
IF LEFT(cSel,1) == "R"
IF SoloCob
INDEX ON pagtem->refer + pagtem->tipo TO pagtem ;
FOR pagtem->tipo = "CB"
ELSE
INDEX ON pagtem->refer + pagtem->tipo TO pagtem
ENDIF
ELSEIF LEFT(cSel,1) == "C"
IF SoloCob
INDEX ON pagtem->clinum + pagtem->facnum TO pagtem ;
FOR pagtem->tipo = "CB"
ELSE
INDEX ON pagtem->clinum + pagtem->facnum TO pagtem
ENDIF
ELSEIF LEFT(cSel,1) == "V"
IF SoloCob
INDEX ON pagtem->agente + pagtem->facnum TO pagtem FOR ;
pagtem->tipo = "CB"
ELSE
INDEX ON pagtem->agente + pagtem->facnum TO pagtem
ENDIF
ENDIF
RETURN NIL
//---------------------------------------------------------//
STATIC FUNCTION Procesa()
LOCAL cFacNum, cRefer, cTipo, nCantPag, dFechaPag, cObserv, cAgente
SELECT pag
DO WHILE pag->(!EOF())
cFacNum := pag->facnum
cRefer := pag->refer
cTipo := pag->tipo
nCantPag := pag->cantpag
dFechaPag := pag->fechapag
cObserv := pag->observ
cAgente := pag->agente
SELECT pagtem
pagtem->(DBAPPEND())
REPLACE pagtem->facnum WITH cFacNum
REPLACE pagtem->refer WITH cRefer
REPLACE pagtem->tipo WITH cTipo
REPLACE pagtem->cantpag WITH nCantPag
REPLACE pagtem->fechapag WITH dFechapag
REPLACE pagtem->observ WITH cObserv
REPLACE pagtem->agente WITH cAgente
SELECT pag
pag->(DBSKIP())
ENDDO
SELECT pagtem
RETURN NIL