Página 1 de 1

Preciso de agilidade no TBROWSE

Enviado: 12 Mar 2008 08:48
por helio
Pessoal quando eu usava o DBF esta consulta era muito rapida mais quando passei para FIREBIRD com SQLRDD ficou lenta se alguem poder me ajudar fico muito grato pois ja fiz tudo o que eu podia melhorou mais continua lento nos terminais. Vou postar a baixo para voce analisar quem puder.

Valeu pela forca Pessoal.

Helio Beltrao Jr.
helio@hrbinfo.com.br


********************************
* FUNCAO P/CONSULTAR MERCADORIAS
********************************
#include "inkey.ch" // constantes de codigos das teclas

FUNCTION f4_merc(cons,mfab,mvar_atac,mpercentual)
*****************

LOCAL f4tela,f4tela1,f4lci,f4cci,f4lba,f4cba,f4msele,f4morde,f4men,PULA,y,mcod,;
oconsprod,ocolprod[9],i,nkey,mteste,f4,lin_br,mopcao:=' ',mprec:=0,mcodmerc,mreg,;
local4,mtela_help,mtela_lin,mcor_ant,mvlr_dolar:=1
local nErr, nPos,;
vEmp := {},;
nCnn,oSql,;
cComm, apCode,owindows

MEMVAR mdata_sis,nivel_acess,mcod_merc,mcod_bc

Local4:= Space(0)
f4 := '*'
f4lci := f4cci := 1
f4lba := 22
f4cba := 100 //79
f4msele := SELE()
f4morde := INDEXORD()
mcor_ant := SETCOLOR()
pula := '*'
mvlr_dolar := IF(ver_dolar(mdata_sis)=0,1,ver_dolar(mdata_sis))
IF ! AbriArq('sacsetup','set');RETURN NIL;ENDIF
IF ! AbriArq('sacmerc','merc');RETURN NIL;ENDIF
//merc->(DBCLOSEAREA())
//dbUseArea( .F.,"SQLRDD","select * from sacmerc WHERE sacmerc.disp = 'S' order by merc","merc")

//*************
SELE('merc');ORDSETFOCUS(3)
//SELE('merc')
mreg := RECNO()
*************
mcodmerc:=merc->cod_merc
*************
IF mfab <> NIL
*************
ORDSETFOCUS(4)
*************
ENDIF
IF mpercentual = NIL
mvar_atac := '1'
mpercentual:=0
ENDIF
//DEVPOS(0,0);DEVOUT(CONS)

//IF cons = NIL
// SR_SetFilter("sacmerc.disp <> 'N'")
//ELSEIF cons = '*'
// SR_SetFilter("sacmerc.cod_merc <> ' '")
//ENDIF

setcor(1)
exibi_prg('F4_MERC')
//op_tela(00,00,30,80,memp_resa+SPACE(40)+' PRODUTOS '+IF(mvar_atac='2','Venda ATACADO','Venda VAREJO')+' - Ult.Cod.:'+mcodmerc+' - Quantd.Reg.: '+TRANSFORM(LASTREC(),'999,999') )
op_tela(00,00,33,100,memp_resa+SPACE(40)+' PRODUTOS '+IF(mvar_atac='2','Venda ATACADO','Venda VAREJO')+' - Quantd.Reg.: '+TRANSFORM(LASTREC(),'999,999') )

mensagem('<Alt+P>Cod. <ALT+E>Especie <ALT+A>vancada <Alt+I>nclusao <Alt+H>Ajuda')
setcor(3)
//oWindow := WvW_TWindow():New(f4lci,f4cci,f4lba-1,f4cba)
oconsprod := TBROWSEDB(f4lci,f4cci,f4lba-1,f4cba,'merc')
//oconsprod := TBROWSEDB(owindows,'merc')
ocolprod[1] := TBCOLUMNNEW('Mercadoria',{||IF(EMPTY(merc->cod_merc) .OR. merc->disp = 'N','** NAO DISPONIVEL **'+LEFT(merc->merc,20),merc->merc)})
ocolprod[2] := TBCOLUMNNEW('Codigo',{||merc->cod_merc})
ocolprod[3] := TBCOLUMNNEW(' Saldo',{||TRANSFORM(merc->saldo_mer,'9,999,999.999')})

ocolprod[4] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac = '1',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[5] := TBCOLUMNNEW('UN',{||merc->unidade})
ocolprod[6] := TBCOLUMNNEW('Referencia',{||merc->ref})

ocolprod[7] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac='2',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[8] := TBCOLUMNNEW('Estoque',{||TRANSFORM(merc->saldo_est,'999999.999')})
ocolprod[9] := TBCOLUMNNEW('Estoque1',{||TRANSFORM(merc->saldo_fis,'999999.999')})
//ocolprod[10] := TBCOLUMNNEW('Tipo Produto',{||IF(merc->tipo_merc = '1','MERCADORIA','MATERIA PRIMA')})

i:=0
FOR i=1 TO LEN(ocolprod)
oconsprod:ADDCOLUMN(ocolprod)
NEXT


oconsprod:HEADSEP := CHR(196)
oconsprod:COLSEP := CHR(179)
oconsprod:CARGO := '*****'
oconsprod:FORCESTABLE()


setcor(4)
//mtela_lin := SAVESCREEN(f4lba+9,f4cci+56,f4lba+8,f4cci+66)
//limpa(f4lba,f4cci+09,f4lba,f4cci+LEN(merc->merc)+9)
//WVW_DrawBoxGet(,f4lba+1,f4cci+9,40)

WHILE .T.
mensagem('Pesquisa: <Alt+P>Codigo - <ALT+E>Especie - <ALT+A>Avancada - <Alt+I>Inclusao - <Alt+H>Ajuda')
nkey := 0
WHILE nkey == 0 //.AND. ! oconsprod:STABLE
oconsprod:FORCESTABLE()

setcor(3)
DEVPOS(f4lba,f4cci+1);DEVOUT('Pesquisa: ')
setcor(1)
WVW_DrawBoxGet(,f4lba,f4cci+12,38)
botao(f4lba+1,f4cci,f4lba+11,f4cba-1) //8

//setcor(3)
DEVPOS(f4lba+1,f4cci+1);DEVOUT(IF(m_cfg[27]='B','Codigo......','Codigo Barra')+':')
DEVPOS(f4lba+1,f4cci+32);DEVOUT('Un:')
DEVPOS(f4lba+1,f4cci+45);DEVOUT('Fab.:')
DEVPOS(f4lba+2,f4cci+1);DEVOUT('Prc1: ')
DEVPOS(f4lba+2,f4cci+20);DEVOUT('Prc2: ')
DEVPOS(f4lba+2,f4cci+39);DEVOUT('Prc3: ')
DEVPOS(f4lba+2,f4cci+58);DEVOUT('Prc4: ')
DEVPOS(f4lba+4,f4cci+1);DEVOUT('Aplicacao:')
setcor(3)
//WVW_DrawBoxGet(,f4lba+1,f4cci+16,14)
//WVW_DrawBoxGet(,f4lba+1,f4cci+36,3)
//WVW_DrawBoxGet(,f4lba+1,f4cci+50,LEN(merc->cod_fab+'-'+LEFT(merc->fabrica,23)))
DEVPOS(f4lba+1,f4cci+16);DEVOUT(IF(m_cfg[82]='B',merc->cod_merc,merc->cod_barr))
DEVPOS(f4lba+1,f4cci+36);DEVOUT(merc->unidade)
DEVPOS(f4lba+1,f4cci+50);DEVOUT(merc->cod_fab+'-'+LEFT(merc->fabrica,23))
IF merc->dolar = 'S'
mprec := ROUND(IF(mvar_atac='1',merc->pr_venda,merc->pr_venda1)*ver_dolar(mdata_sis),set->aredonda)
ELSE
mprec := IF(mvar_atac='1',merc->pr_venda,merc->pr_venda1)
ENDIF
IF ! EMPTY(set->pz_perc1)
DEVPOS(f4lba+2,f4cci+7);DEVOUT(TRANSFORM(ROUND(mprec*((set->pz_perc1/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))
ENDIF
IF ! EMPTY(set->pz_perc2)
DEVPOS(f4lba+2,f4cci+26);DEVOUT(TRANSFORM(ROUND(mprec*((set->pz_perc2/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))
ENDIF
IF ! EMPTY(set->pz_perc3)
DEVPOS(f4lba+2,f4cci+45);DEVOUT(TRANSFORM(ROUND(mprec*((set->pz_perc3/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))
ENDIF
IF ! EMPTY(set->pz_perc4)
DEVPOS(f4lba+2,f4cci+64);DEVOUT(TRANSFORM(ROUND(mprec*((set->pz_perc4/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))
ENDIF
IF nivel_acess = '1'
setcor(1)
DEVPOS(f4lba+3,f4cci+1);DEVOUT('V.M.: ')
DEVPOS(f4lba+3,f4cci+25);DEVOUT('C.M.: ')
DEVPOS(f4lba+3,f4cci+50);DEVOUT('C.R.: ')
setcor(3)
DEVPOS(f4lba+3,f4cci+07);DEVOUT(TRANSFORM(merc->vlr_merc,ALLTRIM(set->masc_numt)))
DEVPOS(f4lba+3,f4cci+31);DEVOUT(TRANSFORM(merc->pr_medio,ALLTRIM(set->masc_numt)))
DEVPOS(f4lba+3,f4cci+56);DEVOUT(TRANSFORM(merc->cust_real,ALLTRIM(set->masc_numt)))
ENDIF
DEVPOS(f4lba+4,f4cci+11);DEVOUT(merc->aplic0)
DEVPOS(f4lba+5,f4cci+11);DEVOUT(merc->aplic1)
DEVPOS(f4lba+6,f4cci+11);DEVOUT(merc->aplic2)
DEVPOS(f4lba+7,f4cci+11);DEVOUT(merc->aplic3)
/*
IF ! EMPTY(merc->ref)
setcor(1)
DEVPOS(f4lba+8,f4cci+1);DEVOUT('Referencia Auxiliar: ')
DEVPOS(f4lba+8,f4cci+36);DEVOUT('Loc.: ')
setcor(2)
DEVPOS(f4lba+8,f4cci+22);DEVOUT(merc->ref)
DEVPOS(f4lba+8,f4cci+42);DEVOUT(merc->local)
ENDIF
*/
setcor(1)
IF ! EMPTY(merc->promocao)
setcor(6)
DEVPOS(f4lba+8,f4cci+56);DEVOUT(' Promocao ')
setcor(1)
ELSE
RESTSCREEN(f4lba+8,f4cci+56,f4lba+8,f4cci+66,mtela_lin)
ENDIF
botao(24,82,32,98)
//IF FILE(ALLTRIM(m_cfg[5])+'P'+merc->cod_merc+'.jpg')
WVW_DrawImage( ,24,82,32,98,ALLTRIM(m_cfg[5])+'P'+merc->cod_merc+'.jpg',.T.,.F.)
//ENDIF

nkey := INKEY(0)
END
IF nkey == K_ESC
EXIT
ELSEIF nkey == K_ENTER
mcod_merc := VAL(merc->cod_merc)
mcod_bc := merc->cod_merc
IF EMPTY(mcod_merc)
LOOP
ENDIF
IF cons <> NIL
mopcao := mensagem1('Tecle [A] p/ Alteracao [E] p/ Exclusao:','A','A,E')
IF LASTKEY() = 27
LOOP
ENDIF
IF mopcao = 'A'
sac111()
ELSEIF mopcao = 'E'
sac112()
ENDIF
*************
SELE('merc');ORDSETFOCUS(3)
*************
oconsprod := TBROWSEDB(f4lci,f4cci,f4lba-1,f4cba,'merc')
ocolprod[1] := TBCOLUMNNEW('Mercadoria',{||IF(EMPTY(merc->cod_merc) .OR. merc->disp = 'N',LEFT(merc->merc,20)+'** NAO DISPONIVEL **',merc->merc)})
ocolprod[2] := TBCOLUMNNEW(IF(m_cfg[27]='B','Codigo Barra','Codigo'),{||IF(m_cfg[27]='B',merc->cod_barr,merc->cod_merc)})
ocolprod[3] := TBCOLUMNNEW(' Saldo',{||TRANSFORM(merc->saldo_mer,'9,999,999.999')})
ocolprod[4] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac = '1',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[5] := TBCOLUMNNEW('UN',{||merc->unidade})
ocolprod[6] := TBCOLUMNNEW('Referencia',{||merc->ref})

ocolprod[7] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac='2',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[8] := TBCOLUMNNEW('Estoque',{||TRANSFORM(merc->saldo_est,'999999.999')})
ocolprod[9] := TBCOLUMNNEW('Estoque1',{||TRANSFORM(merc->saldo_fis,'999999.999')})
//ocolprod[10] := TBCOLUMNNEW('Tipo Produto',{||IF(merc->tipo_merc = '1','MERCADORIA','MATERIA PRIMA')})
i:=0
FOR i=1 TO LEN(ocolprod)
oconsprod:ADDCOLUMN(ocolprod)
NEXT
oconsprod:HEADSEP := CHR(196)
oconsprod:COLSEP := CHR(179)
oconsprod:FORCESTABLE()
ELSE
EXIT
ENDIF
ELSEIF nkey = 279
ORDSETFOCUS(1)
sac110()
oconsprod := TBROWSEDB(f4lci,f4cci,f4lba-1,f4cba,'merc')
ocolprod[1] := TBCOLUMNNEW('Mercadoria',{||IF(EMPTY(merc->cod_merc) .OR. merc->disp = 'N',LEFT(merc->merc,20)+'** NAO DISPONIVEL **',merc->merc)})
ocolprod[2] := TBCOLUMNNEW(IF(m_cfg[27]='B','Codigo Barra','Codigo'),{||IF(m_cfg[27]='B',merc->cod_barr,merc->cod_merc)})
ocolprod[3] := TBCOLUMNNEW(' Saldo',{||TRANSFORM(merc->saldo_mer,'9,999,999.999')})
ocolprod[4] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac = '1',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[5] := TBCOLUMNNEW('UN',{||merc->unidade})
ocolprod[6] := TBCOLUMNNEW('Referencia',{||merc->ref})

ocolprod[7] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac='2',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[8] := TBCOLUMNNEW('Estoque',{||TRANSFORM(merc->saldo_est,'999999.999')})
ocolprod[9] := TBCOLUMNNEW('Estoque1',{||TRANSFORM(merc->saldo_fis,'999999.999')})
//ocolprod[10] := TBCOLUMNNEW('Tipo Produto',{||IF(merc->tipo_merc = '1','MERCADORIA','MATERIA PRIMA')})
i:=0
FOR i=1 TO LEN(ocolprod)
oconsprod:ADDCOLUMN(ocolprod)
NEXT
oconsprod:HEADSEP := CHR(196)
oconsprod:COLSEP := CHR(179)
oconsprod:FORCESTABLE()
ELSEIF nkey == -41
calcu()
ELSEIF nkey == 291
mtela_help := SAVESCREEN(00,00,24,79)
botao(10,30,17,75,,' Menu de Ajuda ')
DEVPOS(11,31);DEVOUT('<Alt+B> = Pesquisa AVANCADA CODIGO BARRA ')
DEVPOS(12,31);DEVOUT('<Alt+R> = Pesquisa p/REFERENCIA AUXILIAR ')
DEVPOS(13,31);DEVOUT('<Alt+P> = Pesquisa p/CODIGO e CODIGO BARRA ')
DEVPOS(14,31);DEVOUT('<Alt+E> = Pesquisa p/ESPECIE DO PRODUTO ')
DEVPOS(15,31);DEVOUT('<Alt+A> = Pesquisa AVANCADA (Varias Formas) ')
DEVPOS(16,31);DEVOUT('<CTRL+P> = Pesquisa PRODUTOS em PROMOCAO ')
INKEY(0)
RESTSCREEN(00,00,24,79,mtela_help)
ELSEIF nkey == 275
mcod := cons_ref(merc->ref)
IF ! EMPTY(mcod)
GO mcod
mcod_merc := VAL(merc->cod_merc)
mcod_bc := merc->cod_merc
IF EMPTY(merc->cod_merc)
LOOP
ENDIF
oconsprod := TBROWSEDB(f4lci,f4cci,f4lba-1,f4cba,'merc')
ocolprod[1] := TBCOLUMNNEW('Mercadoria',{||IF(EMPTY(merc->cod_merc) .OR. merc->disp = 'N',LEFT(merc->merc,20)+'** NAO DISPONIVEL **',merc->merc)})
ocolprod[2] := TBCOLUMNNEW(IF(m_cfg[27]='B','Codigo Barra','Codigo'),{||IF(m_cfg[27]='B',merc->cod_barr,merc->cod_merc)})
ocolprod[2] := TBCOLUMNNEW(IF(m_cfg[82]='B','Codigo Barra','Codigo'),{||IF(m_cfg[82]='B',merc->cod_barr,merc->cod_merc)})
ocolprod[3] := TBCOLUMNNEW(' Saldo',{||TRANSFORM(merc->saldo_mer,'9,999,999.999')})
ocolprod[4] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac = '1',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[5] := TBCOLUMNNEW('UN',{||merc->unidade})
ocolprod[6] := TBCOLUMNNEW('Referencia',{||merc->ref})

ocolprod[7] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac='2',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[8] := TBCOLUMNNEW('Estoque',{||TRANSFORM(merc->saldo_est,'999999.999')})
ocolprod[9] := TBCOLUMNNEW('Estoque1',{||TRANSFORM(merc->saldo_fis,'999999.999')})
//ocolprod[10] := TBCOLUMNNEW('Tipo Produto',{||IF(merc->tipo_merc = '1','MERCADORIA','MATERIA PRIMA')})
i:=0
FOR i=1 TO LEN(ocolprod)
oconsprod:ADDCOLUMN(ocolprod)
NEXT
oconsprod:HEADSEP := CHR(196)
oconsprod:COLSEP := CHR(179)
oconsprod:FORCESTABLE()
ENDIF
ELSEIF nkey >= 32 .AND. nkey <= 255
Local4:= Upper(Local4 + Chr(nkey))
IF (Len(Local4) > Len(merc->merc))
Local4:= Upper(right(Local4, Len(Local4) - 1))
ENDIF
SETCOLOR(2)
@ f4lba, f4cci + (f4cba - f4cci) / 2 - Len(merc->merc) / 2 - 17;
SAY Local4 //color SubStr('g/w,gr+/g', rat(",", 'g/w,gr+/g') + 1)
aret:={}
cComm := "select sr_recno from sacmerc where sacmerc.merc like ? ORDER BY sacmerc.merc"
apCode := SR_SQLParse( cComm, @nErr, @nPos )
cComm := SR_SQLCodeGen( apCode,{local4+'%'})
sr_getconnection():exec( cComm,,.t.,@aret)
setcor(1)
*************
//IF ! AbriArq('sacmerc','merc');RETURN NIL;ENDIF
SELE('merc');ORDSETFOCUS(3)
IF LEN(aret) > 0
GO ARET[1,1]
ELSE
DBGOTOP()
ENDIF
oconsprod:refreshall()
ELSEIF nkey == 8
Local4:= Upper(Left(Local4, Len(Local4) - 1))
SETCOLOR(2)
@ f4lba, f4cci + (f4cba - f4cci) / 2 - Len(merc->merc) / 2 - 17;
SAY Local4 + " "
aret:={}
cComm := "select sr_recno from sacmerc where sacmerc.merc like ? ORDER BY sacmerc.merc"
apCode := SR_SQLParse( cComm, @nErr, @nPos )
cComm := SR_SQLCodeGen( apCode,{local4+'%'})
sr_getconnection():exec( cComm,,.t.,@aret)
*************
//IF ! AbriArq('sacmerc','merc');RETURN NIL;ENDIF
SELE('merc');ORDSETFOCUS(3)
IF LEN(aret) > 0
GO ARET[1,1]
ELSE
DBGOTOP()
ENDIF
oconsprod:refreshall()
ELSE
IF genkey(oconsprod,nkey,'merc')
oconsprod := TBROWSEDB(f4lci,f4cci,f4lba-1,f4cba,'merc')
ocolprod[1] := TBCOLUMNNEW('Mercadoria',{||IF(EMPTY(merc->cod_merc) .OR. merc->disp = 'N','** NAO DISPONIVEL **'+LEFT(merc->merc,20),merc->merc)})
ocolprod[2] := TBCOLUMNNEW(IF(m_cfg[27]='B','Codigo Barra','Codigo'),{||IF(m_cfg[27]='B',merc->cod_barr,merc->cod_merc)})
ocolprod[3] := TBCOLUMNNEW(' Saldo',{||TRANSFORM(merc->saldo_mer,'9,999,999.999')})
ocolprod[4] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac = '1',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[5] := TBCOLUMNNEW('UN',{||merc->unidade})
ocolprod[6] := TBCOLUMNNEW('Referencia',{||merc->ref})

ocolprod[7] := TBCOLUMNNEW(' Preco R$',{||IF(mvar_atac='2',TRANSFORM(ROUND((merc->pr_venda*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)),;
TRANSFORM(ROUND((merc->pr_venda1*IF(merc->dolar = 'S',ver_dolar(mdata_sis),1))*((mpercentual/100)+1),set->aredonda),ALLTRIM(set->masc_numt)))})
ocolprod[8] := TBCOLUMNNEW('Estoque',{||TRANSFORM(merc->saldo_est,'999999.999')})
ocolprod[9] := TBCOLUMNNEW('Estoque1',{||TRANSFORM(merc->saldo_fis,'999999.999')})
//ocolprod[10] := TBCOLUMNNEW('Tipo Produto',{||IF(merc->tipo_merc = '1','MERCADORIA','MATERIA PRIMA')})
i:=0
FOR i=1 TO LEN(ocolprod)
oconsprod:ADDCOLUMN(ocolprod)
NEXT
oconsprod:HEADSEP := CHR(196)
oconsprod:COLSEP := CHR(179)
oconsprod:CARGO := '*****'
oconsprod:FORCESTABLE()
ENDIF
ENDIF
END
SETCOLOR(mcor_ant)
SELE(f4msele);IF(f4morde>0,ORDSETFOCUS(f4morde),)
RELEASE f4tela,f4tela1,f4lci,f4cci,f4lba,f4cba,f4msele,f4morde,f4men,mcod,;
oconsprod,ocolprod[8],i,nkey,mteste
wvw_lclosewindow()
RETURN .F.

Enviado: 29 Mar 2008 17:44
por sygecom
Olá Helio,
Testou a performace com outros SGBD, como Mysql e Postgresql ...

Enviado: 02 Abr 2008 02:00
por vagucs
Verifique a versão do seu xHarbour, parece que havia um bug que fora resolvido na versão 1.0 e >.;

Enviado: 13 Abr 2008 20:47
por helio
Onde posso encontrar o Xharbour 1.0 ou se tem alguem que possa me enviar o xharbour 1.0 fico grato pela forca.

Desde ja agradeco, Valeu.

Helio Beltrao Jr.
helio@hrbinfo.com.br

Enviado: 13 Abr 2008 23:54
por Luciano Bonfim
vc encontra o xharbour estável mais recente em: www.xharbour.org

Enviado: 14 Abr 2008 09:35
por dopi
Ative os filtros da SQLRDD usando OrdScope... fica uma bala...