Página 1 de 1

como congelar coluna na twbrowse ???

Enviado: 14 Ago 2020 21:32
por carlos moc
Boa noite a todos !!!

Peguei alguns exemplos mas não funcionaram, penso que tenho que usar uma lib de terceiro mas não queria isso

oLbxm:= TWBrowse():ReDefine( 801,bCampos,oDlgm,aCab,aColunas,,,,{|| Atualrec( ciapnovo->registro, ciapnovo->codigo, aoGetsa, @aDadosa, nPosCod, nPosnome, lDesc,cTabela ) },,,oFnt,,,,, .F.,,,,, )
oLbxm:nFreeze := 2 //não da erro mas também não funciona. !!

agradeço a atenção de todos

como congelar coluna na twbrowse ???

Enviado: 14 Ago 2020 23:29
por Vander
Olá Carlos;
Não se se existe, mas eu criei um "tipo de congelamento "com 2 Lisbox relacionadas.
Veja o link abaixo, se servir eu posto o código na próxima semana. "Estarei fora de casa até terça (18/08).

https://youtu.be/mf49t0AwKpY

como congelar coluna na twbrowse ???

Enviado: 15 Ago 2020 08:27
por carlos moc
Exatamente isso que preciso. !!! me adicione ai também se puder, te aguardo anciosamente .rsrsr

como congelar coluna na twbrowse ???

Enviado: 15 Ago 2020 13:13
por Vander
Olá;
Acessei meu servidor pelo remoto e consegui pegar o código.
Como programo mais por hobby, o código não é muito elaborado mas funciona e acho que é de fácil compreensão.
Se alguém puder melhora-lo, favor postar.

Código: Selecionar todos

/*
Sistema.................: SISCON - Sistema de Consórcios
Módulo..................: Consulta detalhada de consorciados
Data Última alteração...: 19/02/2019
Ultima alteração........: Imcluir busca por nome
*/
#INCLUDE "FiveWin.ch"
#Include "VOGET.ch"
#Define CLR_LGREEN    nRGB( 190, 215, 190 )
#Define CLR_LGRAY     nRGB( 230, 230, 230 )
#Define CLR_VERMELHO  nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra
#Define CLR_AMARELO   nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo
//--------------------------------------- LISTAGEM DETALHADA DE CONSORCIADOS
FUNCTION CODETALH()
//--------------------------------------- FECHAR DBF ABERTOS NA ESTAÇÃO E REABRI-LOS
   CLOSE DATABASE
   ABRIR()
//--------------------------------------- VERIFICA SE TEM BLOQUEIO
   SELECT NIVEL              //
   BLOCQ := NI20             //   Este bloco é
   IF BLOCQ = "S"            //   para a função
      USARI  := ""           //   que verifica se
      PASOUU := "N"          //   o módulo está com
      PEDESENHA()            //   acesso restrito e
      IF PASOUU = "N"        //   solicitar usuário
         RETURN NIL          //   e senha e validar usuário
      ENDIF
   ENDIF
//---------------------------------------
   xNOMEC := SPACE(50)
   SELECT Consor
   ORDSETFOCUS("Consor2")
   GO TOP
   DEFINE FONT oFontL12 NAME "LUCIDA CONSOLE" SIZE 0,-(12*1.33)
   DEFINE DIALOG TELDTA RESOURCE "CLDETALHA"  TITLE "...:: LISTAGEM DETALHADA DE CONSORCIADOS ::..."       COLOR RGB (000,000,000),RGB (136,211,227)
   REDEFINE SAY oSAYDET1 PROMPT "Buscar Nome :"                                                    ID 1    COLOR RGB (000,000,000),RGB (136,211,227)
   REDEFINE GET oNOME_Busca VAR xNOMEC  ID 104  OF TELDTA ON CHANGE(CONTEUDODT(oNOME_Busca,nKey,TELDTA,oLbxs2,xNOMEC,oLbxs1)) FONT oFontL12
//--------------------------------------- LISTA DIREITA
   REDEFINE LISTBOX oLbxs2 FIELDS Consor->POSICAO          ,;    // C 80 - PARCELAS
                                  Consor->CONTEMP          ,;    // C 02 - CONTEMPLADO
                                  Consor->NUM_NF           ,;    // C 06 - NOTA FISCAL
                                  Consor->(DTOC(DTASSEM))  ,;    // D 10 - ENTREGA
                                  Consor->RAZAO            ,;    // C 40 - NOME
                                  Consor->ASSEMB           ,;    // C 02 - PARCELA
                                  Consor->(DTOC(DT_ASSEMB)) ;    // D 10 - SORTEIO
                        HEADERS "123456789#123456789#123456789#123456789#123456789#123456789#123456789#123456789#",;
                                 "CO","N FISC","ENTREGA","CONSORCIADO","PC","SORTEIO"  ID 102 FONT oFontL12
   oLbxs2:bChange := {|| ATUALIST1()}
   oLbxs2:nClrBackHead  := CLR_LGREEN  // Cor do Fundo do Cabe‡alho
   oLbxs2:nClrBackFocus := CLR_HRED    // Cor do Cursor Em Cima do Ötem
   oLbxs2:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
   oLbxs2:nClrForeHead  := CLR_HRED    // Cor nos Headers - Cabe‡alhos
   oLbxs2:nClrPane      := { || IIF(Consor->(OrdKeyNo()) % 2 == 0, CLR_LGREEN, CLR_LGRAY ) }  // cor do fundo
   oLbxs2:nLineStyle    := 3
   oLbxs2:lCellStyle    := .F.         // .T. So Pinta a celula que o cursor esta
   oLbxs2:lMChange      := .F.         // Desabilita Mousemove
   oLbxs2:SetFocus()                   // Refocus on The Browse
   oLbxs2:Refresh()                    // Estabiliza o Browse/Listbox
//--------------------------------------- LISTA ESQUEDA
   REDEFINE LISTBOX oLbxs1 FIELDS Consor->GRUPO    ,;  // C 005 - GRUPO
                                  Consor->COTA     ,;  // C 003 - COTA
                                  Consor->CONTRATO  ;  // C 006 - CONTRATO
                          HEADERS "GRUPO","COTA","CONTRATO"  ID 101 FONT oFontL12  WHEN .F.
   oLbxs1:nClrBackHead  := CLR_LGREEN  // Cor do Fundo do Cabe‡alho
   oLbxs1:nClrBackFocus := CLR_HRED    // Cor do Cursor Em Cima do Ötem
   oLbxs1:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa
   oLbxs1:nClrForeHead  := CLR_HRED    // Cor nos Headers - Cabe‡alhos
   oLbxs1:nClrPane      := { || IIF(Consor->(OrdKeyNo()) % 2 == 0, CLR_LGREEN, CLR_LGRAY ) }  // cor do fundo
   oLbxs1:nLineStyle    := 3
   oLbxs1:lCellStyle    := .F.         // .T. So Pinta a celula que o cursor esta
   oLbxs1:lMChange      := .F.         // Desabilita Mousemove
   oLbxs1:SetFocus()                   // Refocus on The Browse
   oLbxs1:Refresh()                    // Estabiliza o Browse/Listbo
//---------------------------------------
   REDEFINE BUTTON ID 103 CANCEL ACTION TELDTA:END()
   ACTIVATE DIALOG TELDTA CENTERED ON INIT xFocus(oLbxs2)
   CLOSE DATABASE
   oFontL12:END()
RETURN .T.
//---------------------------------------
FUNCTION ATUALIST1()
   ll := oLbxs2:nRowPos()
   oLbxs1:nRowPos(ll)
   oLbxs1:SetFocus()
   oLbxs1:Refresh()
   oLbxs2:SetFocus()
Return .T.
//--------------------------------------- BUSCAR CONTEUDO CONTRATO
STATIC FUNCTION CONTEUDODT( oGetBusca, cKey, TELAINC, oLbxINC, XNOMEC,oLbxINC1)
LOCAL RetornaBusca := ""
MEMVAR oNome_Busca
   SELECT Consor
   GO TOP
   ORDSETFOCUS("Consor3")
   MontaChaveBuscaArquivo( oGetBusca, cKey, TELAINC, @RetornaBusca, oLbxINC )
  Consor->(DBSEEK( ALLTRIM( RetornaBusca ) ) )
   IF EOF()
      DBGOTOP()
   ENDIF
   ORDSETFOCUS("Consor2")
   oLbxINC1:Refresh()
   oLbxINC:Refresh()
RETURN .T.
////////////////////////////////////////////////////////////////////////////////
///////// Este bloco de código fica em outro módulo com funções de uso geral
//--------------------------------------- MONTA CHAVE DE BUSCA
FUNCTION MontaChaveBuscaArquivo( oGetBusca, cKey, TELAINC, RetornaBusca )
Local cChaveBusca := ( oGetBusca:oGet:Buffer ), nPosAnt := Recno()
   IF ( cKey != 7 .And. cKey != 8 )
       cChaveBusca := Stuff( cChaveBusca, oGetBusca:nPos,   ;
       If( Set(_SET_INSERT), 0, 1 ), Chr( cKey ) )
   ENDIF
   RetornaBusca :=  Upper ( cChaveBusca)  // cChaveBusca
RETURN( RetornaBusca )
////////////////////////////////////////////////////////////////////////////////
/////////  Na indexação
   USE  DBCONS\Consor
   If Neterr()
     ELSE
      IF lPack = .T.
         PACK
      ENDIF
      INDEX ON GRUPO                                         TAG GRUPOCO  TO DBCONS\INDICE\BASE4CDX
      INDEX ON COTA                                          TAG COTACON  TO DBCONS\INDICE\BASE4CDX
      INDEX ON CONTRATO                                      TAG CONTRCO  TO DBCONS\INDICE\BASE4CDX    // ERA - Consor5
      INDEX ON DTOC(DT_INICIO)                               TAG DTAINCO  TO DBCONS\INDICE\BASE4CDX
      INDEX ON Grupo+Cota+Contrato                           TAG Consor2  TO DBCONS\INDICE\BASE4CDX
      INDEX ON Razao                                         TAG Consor3  TO DBCONS\INDICE\BASE4CDX
      INDEX ON Grupo+Contrato                                TAG Consor4  TO DBCONS\INDICE\BASE4CDX
      INDEX ON Grupo+Cota                                    TAG Consor5  TO DBCONS\INDICE\BASE4CDX
      INDEX ON Cidader                                       TAG Consor6  TO DBCONS\INDICE\BASE4CDX    // ERA - Consor4
      INDEX ON DTVECON                                       TAG Consor7  TO DBCONS\INDICE\BASE4CDX    // DATA DA VENDA
      INDEX ON CODVEND                                       TAG Consor8  TO DBCONS\INDICE\BASE4CDX    // VENDEDOR
   ENDIF
////////////////////////////////////////////////////////////////////////////////
//--------------------------------------- RC
CLDETALHA DIALOG 6, 15, 764, 386
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "DIALOG_5"
FONT 8, "MS Sans Serif"
{
 LTEXT "", -1, 5, 5, 754, 350, WS_BORDER | WS_GROUP
 LISTBOX IDC_LISTBOX21, 10, 10, 120, 350, LBS_STANDARD
 LISTBOX IDC_LISTBOX22, 119, 10, 632, 350, LBS_STANDARD
 PUSHBUTTON "Fechar Janela", IDC_PUSHBUTTON139, 684, 360, 70, 18
 RTEXT "Buscar Nome :", 1, 124, 365, 55, 8
 CONTROL "104", IDC_EDIT214, "EDIT", ES_UPPERCASE | WS_BORDER | WS_TABSTOP, 181, 363, 350, 12
}

As linhas de 18 a 28 é para validação se o módulo é protegido e se o usuário tem permissão para acessa-lo pode desconsiderar.
Quanto a inscrição no canal, só posto algum vídeo quando tenho de mostra algo a alguém e deixo como conteúdo privado.

como congelar coluna na twbrowse ???

Enviado: 15 Ago 2020 19:31
por JoséQuintas
Não entendi nada deste post.

O assunto é tbrowse, o fonte usa twbrowse, a a ajuda ao que tudo indica é fivewin.

como congelar coluna na twbrowse ???

Enviado: 15 Ago 2020 20:15
por Vander
É apenas um exemplo de como eu fiz para congelar as colunas, podendo dentro do possível adaptar, já adaptei vários exemplos que peguei aqui para minha realidade e como disse não sou programador, programo um pouco só por hobby.