#include "protheus.ch" User Function TestSelec() Local _stru:={} Local aCpoBro := {} Local oDlgLocal aCores := {} Private lInverte := .F. Private cMark := GetMark() Private oMark //Cria um arquivo de Apoio AADD(_stru,{"OK" ,"C" ,2 ,0 }) AADD(_stru,{"COD" ,"C" ,6 ,0 }) AADD(_stru,{"NOME" ,"C" ,30 ,0 }) AADD(_stru,{"NOMERE" ,"C" ,30 ,0 }) cArq:=Criatrab(_stru,.T.) DBUSEAREA(.t.,,carq,"TTRB") //Alimenta o arquivo de apoio com os registros do cadastro de clientes (SA3) DbSelectArea("SA3") DbGotop() While SA3->(!Eof()) DbSelectArea("TTRB") RecLock("TTRB",.T.) TTRB->COD := SA3->A3_COD TTRB->NOME := SA3->A3_NOME TTRB->NOMERE := SA3->A3_NREDUZ MsunLock() SA3->(DbSkip()) Enddo //Define quais colunas (campos da TTRB) serao exibidas na MsSelect aCpoBro := {{ "OK" ,, "Mark" ,"@!"},; { "COD" ,, "Codigo" ,"@!"},; { "NOME" ,, "Nome" ,"@!"},; { "NOMERE" ,, "Nome Red" ,"@!"}} //Cria uma Dialog DEFINE MSDIALOG oDlgUm TITLE "MarkBrowse c/Refresh" From 9,0 To 315,800 PIXEL DbSelectArea("TTRB") DbGotop() //Cria a MsSelect oMark := MsSelect():New("TTRB","OK","",aCpoBro,@lInverte,@cMark,{17,1,150,400},,,,,) //oMark:bMark := {| | Disp()} //Exibe a Dialog ACTIVATE MSDIALOG oDlgUm CENTERED ON INIT EnchoiceBar(oDlgUm,{|| PerVend(oDlgUm)},{|| oDlgUm:End()}) //Fecha a Area e elimina os arquivos de apoio criados em disco. TTRB->(DbCloseArea()) Iif(File(cArq + GetDBExtension()),FErase(cArq + GetDBExtension()) ,Nil) Return Static Function PerVend(oDlgUm) Private cVend := "" DbSelectArea("TTRB") DbGotop() While TTRB->(!EOF()) If(!Empty(TTRB->OK)) cVend += ALLTRIM(TTRB->COD)+ ',' EndIf TTRB->(dbSkip()) EndDo cVend := substr(cVend,1, len(cVend) -1) Return cVend