#xtranslate cabEntry CREATE BROWSE ; // Variável que conterá o objeto [AT ,, ,] ; // Screen Coord. [DATASOURCE ] ; // Fonte de dados [DESCRIPTION ] ; // Array contendo a descrição. Vide: ;// cabEntry CREATE DESCRIPTION ;// cabEntry ADD COLUMN [BOX ] ; // Tipo do Box [BROWCOLOR ] ;// Cor do Browse [FORMDESCRIPT ] ; // Vide CREATE FORMDESC [HASHBARR ] ; // Exibir barra de rolagem horizontal? [HASVBARR ] ; // Exibir barra de rolagem vertical? [SHOWHEADER ] ;// Exibir o cabeçalho? [HEADERSEP ] ; // Separador do cabeçalho e colunas [COLSEP ] ; // Separador geral das colunas [FOOTSEP ] ; // Separador geral dos rodapés [FREEZE ] ; // Quantidade de colunas a congelar [ROWIDENT ] ; // Bloco de identificar a linha [ROWBYROW ] ; // Movimentar linha a linha? [ATSETFOCUS ] ; // Bloco para executar quando ;// a linha recebe o foco [ATKILLFOCUS ] ; // Bloco para executar quando a ;// linha perde o foco [ATCLOSE ] ; // Bloco para se executar quando se ;// vai encerrar a edição [EXITTOP ] ; // Retornar ao programa em :hitTop? [EXITBOTTOM ] ; // Pode-se sair ;// em :hitBottom? [EXITFORMBOTTOM ] ; // Pode-se sair ;// em :hitBottom? [FILTER ] ; // Filtro para a Fonte de Dados [SPECIALPROC ] ; // Procedimentos especiais quando se ; // vai iniciar e encerrar o ; // Event loop [DELETESPEC ] ; // Descrição dos procedimentos para ; // deleção de linhas [CANAPPEND ] ;// Pode-se acrescentar novas linhas? [CANEDIT ] ; // Browse pode ser editado? => := EditBrow_(,,; ,,; ,; ,; ,; ,; , , ,; ,; , , ,; <{bIdent}>, ,; , ,; <{bFilter}>,; <{bAtSetFocus}>, <{bAtKillFocus}>,; <{bClose}>,; <{bSpecProc}>,; ,; ,; <"cExitBottom">,; <"cExitFormBottom">,; ) #xtranslate cabEntry CREATE FORM ; // Variável que conterá o objeto [DATASOURCE ] ; // Fonte de dados [DESCRIPTION ] ; // Array contendo a descrição. Vide: ;// cabEntry CREATE DESCRIPTION ;// cabEntry ADD COLUMN [AT ,, ,] ; // Screen Coord. [BOX ] ; // Tipo do Box [FORMDESCRIPT ] ; // Array contendo a descrição para o ;// Editor tipo "formulário". [HASVBARR ] ; // Exibir barra de rolagem vertical? [FORMIDENT ] ; // Bloco de identificar o "formulário" [EXITTOP ] ; // Retornar ao programa em :hitTop? [ATCLOSE ] ; // Bloco para se executar quando se ;// vai encerrar a edição [SPECIALPROC ] ; // Procedimentos especiais quando se ; // vai iniciar e encerrar o ; // Event loop [DELETESPEC ] ; // Descrição dos procedimentos para ; // deleção de linhas [CANEDIT ] ; // Browse pode ser editado? [EXITFORMBOTTOM ] ; // Pode-se sair ;// em :hitBottom? [SAMEDESCRIPT ] ; // Vetor será compartilhado com ;// "browse pai"? => := EditForm_(,,; ,,; ,; ,; ,; ,; <{bIdent}>,; ,; <{bClose}>,; <{bSpecProc}>,; ,; ,; ,; <"cExitFormBottom">,; ) PROCEDURE Main(xParam) cabEntry CREATE BROWSE oGetArray; AT 12,11, 19,66; DATASOURCE aMacete; DESCRIPTION aDesc; BROWCOLOR cnorm_; FORMDESCRIPT aForm; ATSETFOCUS {|nInd| e_dizqual(nInd, m_qtpla)}; FREEZE 1; SHOWHEADER .t.; HASVBARR .t.; HASHBARR .f.; ROWBYROW .t.; EXITTOP .t.; EXITFORMBOTTOM YES; CANAPPEND .f. cabEntry CREATE BROWSE oGetArray; AT 12,11, 19,66; DATASOURCE aMacete; DESCRIPTION aDesc; BROWCOLOR cnorm_; FORMDESCRIPT aForm; ATSETFOCUS {|nInd| e_dizqual(nInd, m_qtpla)}; FREEZE 1; SHOWHEADER .t.; HASVBARR .t.; HASHBARR .f.; ROWBYROW .t.; EXITTOP .t.; EXITFORMBOTTOM YES; CANAPPEND .f. if oBrow:Cargo[L_CANEDIT] cabEntry CREATE FORM oBrow:Cargo[O_FORM]; AT aCoord[01],aCoord[02], aCoord[03],aCoord[04]; DATASOURCE oBrow:cargo[X_SOURCE]; DESCRIPTION oBrow:Cargo[A_DESCCOLS]; FORMDESCRIPT aFormDesc; HASVBARR lVBarr; EXITTOP .f.; CANEDIT oBrow:Cargo[L_CANEDIT]; EXITFORMBOTTOM ALERT; SAMEDESCRIPT .t. else cabEntry CREATE FORM oBrow:Cargo[O_FORM]; AT aCoord[01],aCoord[02], aCoord[03],aCoord[04]; DATASOURCE oBrow:cargo[X_SOURCE]; DESCRIPTION oBrow:Cargo[A_DESCCOLS]; FORMDESCRIPT aFormDesc; HASVBARR lVBarr; EXITTOP .f.; CANEDIT oBrow:Cargo[L_CANEDIT]; EXITFORMBOTTOM NO; SAMEDESCRIPT .t. endif RETURN