cjp escreveu:Pessoal, ainda estou engatinhando nesse browse com ado.
Fui tentar fazer uma restrição de campos para exibir, mas não funcionou.
Acresci esta parte:
oTBrowse := { ;
{ "DATA", { || Pad( oRS:Fields( "DATA" ):Value, 10 ) } }, ;
{ "PRIORIDADE", { || Pad( oRS:Fields( "PRIORIDADE" ):Value, 1 ) } }, ;
{ "NRTAREFA", { || Pad( oRS:Fields( "NRTAREFA" ):Value, 5 ) } }, ;
{ "TAREFA", { || Pad( oRS:Fields( "TAREFA" ):Value, 35 ) } }, ;
}
Pensei que assim restringiria a exibição a estes campos, mas não funcionou.
Segue o código:
function consado(sql)
#include "tbrowse.ch"
local cSair :="N"
LOCAL oTBrowse, nKey, oRs, oColumn, I, nLen
local vez :=0
LOCAL oConexao := conectado(nProvTar)
keysec(27,1000,-1,.t.)
oConexao:Open()
do while .t.
oRS := oConexao:Execute( sql )
if oRS:Eof()
@ 22,25 say "Não há nenhum item "
inkey(11)
return .f.
endif
oTBrowse := { ;
{ "DATA", { || Pad( oRS:Fields( "DATA" ):Value, 10 ) } }, ;
{ "PRIORIDADE", { || Pad( oRS:Fields( "PRIORIDADE" ):Value, 1 ) } }, ;
{ "NRTAREFA", { || Pad( oRS:Fields( "NRTAREFA" ):Value, 5 ) } }, ;
{ "TAREFA", { || Pad( oRS:Fields( "TAREFA" ):Value, 35 ) } }, ;
}
cls
oTBrowse := TBrowseDB():new( 05, 3, MaxRow() - 7, MaxCol() - 2 )
oTBrowse:goTopBlock := { || oRs:moveFirst() }
oTBrowse:goBottomBlock := { || oRs:moveLast() }
oTBrowse:skipBlock := { | n | ADORecordSetSkipper( oRs, n ) }
oTBrowse:HeadSep := Chr(196)
oTBrowse:ColSep := Chr(179)
oTBrowse:FootSep := ""
nLen := oRs:fields():count() - 1
FOR i := 0 TO nLen
oColumn := TBColumnNew( oRs:fields(i):name(), ADORecordSetFieldBlock( oRs, i ) )
IF ValType( oRs:Fields(i):Value ) == "D"
nFieldLen := Len( Dtoc( Date() ) )
ELSE
nFieldLen := Min( oRs:Fields(I):DefinedSize, 50 )
ENDIF
oColumn:Width := Max( nFieldLen, Len( oRs:fields(i):name ) )
oTBrowse:addColumn( oColumn )
NEXT
if procname(1)="CONSATIVSQL"
@ 0,1 say "Arquivo em edição: "+alias()
@ maxrow()-2,1 say "Tempo trabalhado: "+alltrim(str(tpt))+"; tempo computado: "+alltrim(str(tpc))+"; tecle Enter sobre nrtarefa para abrir a tarefa"
@ maxrow(),1 say "Alt-P-procura/filtra; Alt-M-mostra estrutura; F2-acresce registros; Alt-C-conta registros"
endif
@ 5,5 say "Abrindo consulta..."
DO WHILE .T.
oTBrowse:forceStable()
oTBrowse:refreshCurrent()
nKey := Inkey(0)
if nkey == 13 //K_ENTER
arq=oRs:Fields("nrtarefa"):Value
chmfunc("entersql",,"S")
if procname(1)="CONSEXPR" .or. procname(2)="CONSEXPR"
cSair="S"
endif
exit
elseif nkey == 27
cSair="S"
exit
endif
IF oTBrowse:applyKey( nKey ) == TBR_EXIT
cSair="S"
EXIT
ENDIF
ENDDO
if cSair="S"
exit
endif
enddo
oRs:Close()
oConexao:Close()
if cSair="S" .or. procname(1)="CONSEXPR" .or. procname(2)="CONSEXPR"
return .f.
endif
return .t.
Alguém pode me ajudar?
cQuery := "SELECT CLIENTES_UCLIENTE, ";
+ "CLIENTES_NRAZ_SOC, ";
+ "CLIENTES_CPFCGC, ";
+ "CLIENTES_FONE, ";
+ "CLIENTES_EMAIL, ";
+ "CLIENTES_INSEST, ";
+ "CLIENTES_ISENTO, ";
+ "CLIENTES_ENDER, ";
+ "CLIENTES_NUMERO, ";
+ "CLIENTES_COMPLEM, ";
+ "CLIENTES_BAIR, ";
+ "CLIENTES_CEP, ";
+ "CLIENTES_CODPAIS, ";
+ "CLIENTES_PAIS, ";
+ "CLIENTES_UF, ";
+ "CLIENTES_CODMUN, ";
+ "CLIENTES_CIDADE, ";
+ "CLIENTES_CONTATO, ";
+ "CLIENTES_QUEM_BLOQ, ";
+ "CLIENTES_ID ";
+ "from CLIENTES ";
+ cAlvo_Consulta
oQuery := oServer:Execute(cQuery)
DO WHILE ! oQuery:Eof()
aAdd( aResult, {oQuery:Fields( "CLIENTES_UCLIENTE" ):Value,;
oQuery:Fields( "CLIENTES_NRAZ_SOC" ):Value,;
oQuery:Fields( "CLIENTES_CPFCGC" ):Value,;
oQuery:Fields( "CLIENTES_FONE" ):Value,;
oQuery:Fields( "CLIENTES_EMAIL" ):Value,;
oQuery:Fields( "CLIENTES_INSEST" ):Value,;
oQuery:Fields( "CLIENTES_ISENTO" ):Value,;
oQuery:Fields( "CLIENTES_ENDER" ):Value,;
oQuery:Fields( "CLIENTES_NUMERO" ):Value,;
oQuery:Fields( "CLIENTES_COMPLEM" ):Value,;
oQuery:Fields( "CLIENTES_BAIR" ):Value,;
oQuery:Fields( "CLIENTES_CEP" ):Value,;
oQuery:Fields( "CLIENTES_CODPAIS" ):Value,;
oQuery:Fields( "CLIENTES_PAIS" ):Value,;
oQuery:Fields( "CLIENTES_UF" ):Value,;
oQuery:Fields( "CLIENTES_CODMUN" ):Value,;
oQuery:Fields( "CLIENTES_CIDADE" ):Value,;
oQuery:Fields( "CLIENTES_CONTATO" ):Value,;
oQuery:Fields( "CLIENTES_QUEM_BLOQ" ):Value,;
oQuery:Fields( "CLIENTES_ID" ):Value} )
oQuery:MoveNext()
ENDDO
oQuery:Close()
Voce tem de carregar um ARRAY com os dados retornados do RECORDSET , e pelo que vi nesta parte voce so carregou 1 LINHA
oTBrowse := { ;
{ "DATA", { || Pad( oRS:Fields( "DATA" ):Value, 10 ) } }, ;
{ "PRIORIDADE", { || Pad( oRS:Fields( "PRIORIDADE" ):Value, 1 ) } }, ;
{ "NRTAREFA", { || Pad( oRS:Fields( "NRTAREFA" ):Value, 5 ) } }, ;
{ "TAREFA", { || Pad( oRS:Fields( "TAREFA" ):Value, 35 ) } }, ;
}
E no BROWSE fazer assim
@ 4,70 BROWSE oBrowse1 ARRAY OF oDlg SIZE 1000,497 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON CLICK {|| oBrowse1_onClick( oDlg, oServer ) } ;
ON KEYDOWN {|oBrowse1,nKeyPress| oBrowse1_onKeyDown( oBrowse1,nKeyPress, oDlg, oServer ) }
oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:freeze := 2
oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_NRAZ_SOC LIMIT 500" )
oBrowse1:AddColumn( HColumn():New( "CODIGO",hwg_ColumnArBlock(),"C",09,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_UCLIENTE" ), MEMVAR->cAlvo_Consulta:="CLIENTES_UCLIENTE",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CODIGO") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "NOME CLIENTE",hwg_ColumnArBlock(),"C",65,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_NRAZ_SOC" ), MEMVAR->cAlvo_Consulta:="CLIENTES_NRAZ_SOC", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: NOME CLIENTE") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "CPF/CNPJ",hwg_ColumnArBlock(),"C",18,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_CPFCGC"), MEMVAR->cAlvo_Consulta:="CLIENTES_CPFCGC", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CPF/CNPJ") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "FONE", hwg_ColumnArBlock(),"C",18,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_FONE"), MEMVAR->cAlvo_Consulta:="CLIENTES_FONE", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: FONE") } ,,,,))
oBrowse1:AddColumn( HColumn():New('E-Mail', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,))
oBrowse1:AddColumn( HColumn():New( "Insc.Estadual",hwg_ColumnArBlock(),"C",18,0,.F.,,, ) )
oBrowse1:AddColumn( HColumn():New( "TC",hwg_ColumnArBlock(),"C",4,0,.F., ) )
oBrowse1:AddColumn( HColumn():New( "Logradouro",hwg_ColumnArBlock(),"C",60,0,.F., ) )
oBrowse1:AddColumn( HColumn():New( "Numero", hwg_ColumnArBlock(),'N',9,0,.F.,1,2, ) )
oBrowse1:AddColumn( HColumn():New( "Complemento",hwg_ColumnArBlock(),"C",60,0,.F., ) )
oBrowse1:AddColumn( HColumn():New('Bairro', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('CEP', hwg_ColumnArBlock() ,'C',12, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Cod.Pais', hwg_ColumnArBlock() ,'C',7, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Pais', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('UF', hwg_ColumnArBlock() ,'C',4, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Cod.Mun.', hwg_ColumnArBlock() ,'C',7, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Municipio', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Contato', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Operador/Computador DATA/HORA', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('CLIENTES ID', hwg_ColumnArBlock() ,'N',14, 0 ,.F.,1,2,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_ID"), MEMVAR->cAlvo_Consulta:="CLIENTES_ID", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CHAVE ID") } ,,,,))