RE:XAILER con super descuento
Gabriel tu ya estas utilizando XALIER crees que es mejor que Fw? o vas a dejar o ya dejaste FW ? tus comentarios me son importantes porque veo el dominio que tienes de Fw y dicho por el Master Rene Flores el cual en algun apoyo que solicite tu me dices de su parte que porque no lo he consultado directamente.
Aprovechando. Como puede agilizar una consulta a una tabla DBF con mas de 300,000 registros desde varias computadoras y que no se alente tanto la busqueda atraves del LIstBox que es el que estoy utilizando: algo asi:
Redefine ListBox oBrw FIELDS (cAliasX)->RFC,Left((cAliasX)->NOMBRE,30),;
dtoc((cAliasX)->fecalta),;
Transform((cAliasX)->LIQUIDO,"999,999.99"),;
trim((cAliasX)->puesto+'-'+(cAliasX)->tiponom),;
(cAliasX)->dependen;
ID 101 OF oDlg Alias cAliasX;
HEADER "Id Emp."," Nombre ","F.Alta","Liquido","Puesto-T.Nomina","Dependencia";
ON CHANGE (; // Inicio
cBusca:=BuscaChar(,,.t.),oBusca:Refresh(),;
(CAliasU)->(OrdScope(0,(cAliasX)->rfc)),; // CONTRATO
(CAliasU)->(OrdScope(1,(cAliasX)->rfc)),;
(CAliasU)->(DBGOTOP()),;
(CAliasAbod)->(OrdScope(0,(cAliasX)->rfc)),; // APLICA
(CAliasAbod)->(OrdScope(1,(cAliasX)->rfc)),;
(CAliasAbod)->(DBGOTOP()),;
oBrw3:Refresh(),oBrw3:GOTOP(),;
(CAliasDE)->(OrdScope(0,(cAliasX)->RFC)),; // CONTDET
(cAliasDE)->(OrdScope(1,(cAliasX)->RFC)),;
(cAliasDE)->(DBGOTOP()),;
oBrw4:Refresh(),oBrw4:GOTOP(),;
(CAliasVA)->(OrdScope(0,(cAliasX)->RFC)),; // VALICLI
(cAliasVA)->(OrdScope(1,(cAliasX)->RFC)),;
(cAliasVA)->(DBGOTOP()),;
oBrw5:Refresh(),oBrw5:GOTOP(),;
nSuma5 := 0,; // Por Concepto+Rfc Aplica
(cAliasAbod)->(DBEVAL({|| nSuma5 += val((cAliasAbod)->Abono)},,,,,) ),;
(cAliasAbod)->(DBGOTOP()),;
nSuma6 := 0,; // Por Rfc en Contrato.dbf
(cAliasU)->(DBEVAL( {|| nSuma6 += (cAliasU)->contratado},,,,,) ),;
nSuma2 := 0 ,;
(cAliasU)->(DBEVAL( {|| nSuma2+=(cAliasU)->Abono},;
{||(cAliasU)->Status$[AM]},,,,) ),;
(cAliasU)->(DBGOTOP()),;
oDlg:update() ) ; // Fin
ON DBLCLICK ( if(zTip=1,(Venta(cAliasX,cCuenta,(cAliasX)->RFC,(cAliasX)->NOMBRE,(cAliasX)->CPTO,IIF(nSuma2>0,'3','1'),nSuma6-nSuma5,zTip),oBrw:Refresh(),oDlg:Refresh() ),oBrw:Refresh() ) )
*- Otras Tablas Twbrowse
Redefine Listbox oBrw3 FIELDS STRZERO((cAliasU)->control,6),;
dtoc((cAliasU)->Fechven),;
(cAliasU)->vendedor,;
LEFT(Transform((cAliasU)->CONTRATADO,"999,999.99"),11),;
LEFT(Transform((cAliasU)->ABONO ,"99,999.99"),8),;
(cAliasU)->status,(cAliasU)->Qini+"-"+(cAliasU)->qfin,;
(cAliasU)->concepto;
ID 102 of oDlg Alias cAliasU HEADERS "Control","Fec.Vta.","Ven.","Contrado"," Abono ","St"," Periodo ","Cpto."
*- Propiedades oBrw4 // Condet
Redefine Listbox oBrw4 FIELDS STRZERO((cAliasDE)->control,6),;
str((cAliasDE)->prod,4),;
left((cAliasAR)->descrip,20),;
left((cAliasDE)->serie,20),;
Transform((cAliasDe)->precio ,"99,999"),(cAliasDe)->status;
ID 106 of oDlg Alias cAliasDE HEADERS "Folio ","Prod.","Descripcion"," Numero de Serie ","Precio","St"
*- Propiedades oBrw5 // Valida los Clientes
Redefine Listbox oBrw5 FIELDS LEFT((cAliasVA)->ID_EMPL,6),;
(cAliasVA)->VENDEDOR,;
DTOC((cAliasVA)->FECHA),;
(cAliasVA)->hora;
ID 108 of oDlg Alias cAliasVA HEADERS "Id. Empl.","Ven","Fecha"," Hora "
*- Propiedades del TwBrowse
oBrw:nLineStyle:=0 && Para quitar las lineas en el Obrw usando
oBrw:nClrPane:={||if(OrdKeyNo()%2=0,RGB(193,221,255),;
RGB(221,245,255))}
oBrw:aActions:={{||DbSetOrder(1),cBusca:=BuscaChar(,,.t.),;
oBusca:Refresh(),oBrw:Refresh(),oBrw:Gotop()},; && Ordenar por columnas
{||DbSetOrder(2),cBusca:=BuscaChar(,,.t.),;
oBusca:Refresh(),oBrw:Refresh(),oBrw:Gotop()},;
{||NIL},;
{||NIL}}
oBrw:bKeyChar:={|nKey,nFlag|cBusca:=BuscaChar(nKey,cAliasX,.f.),;
oBusca:Refresh(),oBrw:Refresh()}
O debe de tener una configuracion windows xp servi pack 2 para que la computadora este mas rapida.
Que me recomiendas.
Un saludo
Castor.