!!!! Como crear indices ¡¡¡¡

Post Reply
prm_pedro
Posts: 46
Joined: Tue Oct 10, 2006 6:16 pm

!!!! Como crear indices ¡¡¡¡

Post by prm_pedro »

BUENAS A TODOS....


DE NUEVO MOLESTANDO Y A SU VES SOLICITANDO SU AYUDA...


ALGUIEN ME PODRIA AYUDAR PARA PODER CREAR INDICES EN LA POCKET... LOQ UE PASA QUE QUIERO CREAR INDICES CDX Y NO FUNCIONA COMO EN FIVEWIN NORMAL....

COMO HE CREADO INDICES ES DE ESTA FORMA...


#include "FiveWin.ch"
#define TAB Chr(9)

STATIC BASES
STATIC CONF
STATIC nIndices:=1,nTot:=0,nTreg:=0
STATIC oSay,oSay1
STATIC nArch:=0
//----------------------------------------------------------------------------//
function MAIN()
SET _3DLOOK ON
CLOSE ALL
indexa()
return nil
//---------------------------------------------------------------------------//
STATIC fUNCTION pide_acceso()
local caac := "caacay"
local oEntrada,oCve
local cClave
local paso:=.f., okacerto:=.f.
return .T.
//---------------------------------------------------------------------------//
static function indexa()
local oAvance,oMeter,oMeter1,oBtnok
local nPos,nActual
local lEnd:=.f.
DEFINE DIALOG oAvance RESOURCE "indices"
REDEFINE SAY oSay ID 132 OF oAvance UPDATE
REDEFINE SAY oSay1 ID 133 OF oAvance UPDATE
REDEFINE METER oMeter VAR nactual ID 130 OF oAvance ;
PROMPT " " ;
COLORS CLR_HGRAY, CLR_YELLOW ;
BARCOLOR CLR_HBLUE, CLR_YELLOW UPDATE
REDEFINE METER oMeter1 VAR nPos ID 131 OF oAvance ;
PROMPT " " ;
COLORS CLR_HGRAY, CLR_YELLOW ;
BARCOLOR CLR_HBLUE, CLR_YELLOW UPDATE
REDEFINE BUTTON oBtnok ID 113 OF oAvance UPDATE
oAvance:Bstart:= {||INdices(oMeter,oMeter1),oAvance:end()}
ACTIVATE DIALOG oAvance CENTERED
oAvance:end()
return nil
//----------------------------------------------------------------------------------//
static Function Indices(oMeter,oMeter1)
nIndices=7
ferase(bases+'\'+'*.cdx') //borra todos los cdx

genera_index(oMeter,oMeter1,"BASE0001","->ART" ,"bask1001")
genera_index(oMeter,oMeter1,"BASE0001","->NOMAR" ,"bask1002")
genera_index(oMeter,oMeter1,"BASE0001","->PROV" ,"bask5001")

genera_index(oMeter,oMeter1,"clientes","->clave" ,"kcliente")
genera_index(oMeter,oMeter1,"clientes","->nombre" ,"kclient1")
genera_index(oMeter,oMeter1,"clientes","->rfc" ,"kclient2")
genera_index(oMeter,oMeter1,"clientes","->no_cli" ,"kclient3")

/*Genera_index(oMeter,oMeter1,"caja02","->(alltrim(num_cajero))","ind_caja1")
Genera_index(oMeter,oMeter1,"clientes","->(alltrim(Clave))" ,"ind_clien1")
Genera_index(oMeter,oMeter1,"clientes","->Nombre","ind_clien2")
Genera_index(oMeter,oMeter1,"detaptos","->(alltrim(Cvecliente))","ind_deta1")
Genera_index(oMeter,oMeter1,"detaptos","->(alltrim(proveedor))" ,"ind_deta2")
Genera_index(oMeter,oMeter1,"detaptos","->(alltrim(cvecliente)+alltrim(proveedor))" ,"ind_deta3")*/

// Genera_index(oMeter,oMeter1,"TEMPORAL","->(alltrim(proveedor))" ,"ind_TEM01")
//Genera_index(oMeter,oMeter1,"provpar","->(alltrim(prov))" ,"ind_prov1")

Alert('Generaci¢n de indices Exitosa')
return nil
//----------------------------------------------------------------------------------//
static function Genera_index(oMeter, oMeter1,base,campo,indice)
local cExpr
local sw:=.t.
nAvance:=0
nArch++
do while sw
use &base
IF NETERR()
MSGBEEP();MSGBEEP();MSGBEEP()
ALERT('!CUIDADO! Algun Usuario esta ocupando el archivo '+base)
sw:=.t.
else
sw:=.f.
endif
enddo
cExpr := base+campo
oSay :SetText("Archivo: "+BASE+' /'+indice+'.cdx'+' Reg: '+alltrim(str(lastrec())))
oSay1:Settext(alltrim(str(nArch))+'/ '+alltrim(str(nIndices)))
oMeter :nTotal:= LASTREC()
oMeter1:nTotal:= LASTREC()*nIndices
index on &cexpr TAG &indice TO &BASE;
EVAL (oMeter:SET(nAvance+RECNO()),oMeter1:SET(++nTreg),SYSREFRESH(),.T.)
CLOSE &BASE
return nil
//----------------------------------------------------------------------------//
INIT PROCEDURE Primero
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
RETURN
//----------------------------------------------------------------------------//


PERO YA EN LA POCKET NO FUNCIONA...BUENO CON ALGUNA MODIFICACIONES CLARO...



ESPERO Y ME PUEDAN AYUDAR...........
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

REQUEST DBFCDX

...

USE ( CurDir() + "\Customer" ) VIA "DBFCDX"
INDEX ON Customer->Last TO ( CurDir() + "\LAST" )
Customer->( OrdSetFocus( "LAST" ) )
Customer->( DbGoTop() )
regards, saludos

Antonio Linares
www.fivetechsoft.com
prm_pedro
Posts: 46
Joined: Tue Oct 10, 2006 6:16 pm

error

Post by prm_pedro »

8) OYE ANTONIO ME MARCA UN ERROR .....
Y NO PUEDO HACER UNA FUNCION UNICAMENTE PARA INDEXAR..

EL ERROR ES EL SIGUIENTE...


EN LA BARRA DE TIDULO DICE..
:oops: NOT IMPLEMENTED YET

EN EL ERRO..
:oops: GetNUmbetOfConsoleInputEvents( )


oye no puedo meter varios indices en el mismo archivo....
es decir

index on base0001->art TO (CurDir() +"\bases\base0001")
index on base0001->nomar TO (CurDir() +"\bases\base0001")
index on base0001->fecha TO (CurDir() +"\bases\base0001")


o como hago este procedimiento
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Estás usando Inkey() en alguna parte ?

Recuerda que en FWPPC los Meter no están implementados. Tienes que usar los PROGRESS bar. Revisa samples\TestProg.prg

Para indexar por _, usa TAGs:

index on base0001->art TAG "art" TO (CurDir() +"\bases\base0001")
index on base0001->nomar TAG "nomar" TO (CurDir() +"\bases\base0001")
index on base0001->fecha TAG "fecha" TO (CurDir() +"\bases\base0001")
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply