Olá, Toledo!
Obrigado por responder!
Este projeto já está em operação a muito tempo compilado com versões anteriores e funciona perfeitamente nos Clientes.
É um módulo do Financeiro: Contas á Pagar.
Estou testando ele na hmg 3.3.0 por considerar um módulo pequeno. Porém, é um módulo com vários programas e funções.
Este é o trecho inicial do programa principal: ADMPAG.PRG
****************************************************************************
* ADMPAG - MODULO DE ADMINISTRACAO DO CONTAS A PAGAR. *
****************************************************************************
* Modulo : MENU PRINCIPAL *
* Programa : ADMPAG.PRG - Programa Main do Modulo de Contas Pagar. *
* Descricao : Menu Principal do modulo de C.PAGAR. *
* Codificado em : 19.11.1997 Por: Jair rangel. *
* Alterado em : 12.07.2014 Por: Jair Rangel. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
#include "minigui.ch"
Function Main()
//-------------------------------------------------------------------------
REQUEST DBFCDX // RDD DBFCDX.
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
Set(_SET_DBFLOCKSCHEME,2)
HMG_GETLANGUAGE('PT') // Seta Idioma do HB.
set scoreboard off
set wrap on
set message to 24
SET DELETED ON
SET BELL OFF
SET SAFETY OFF
SET EXACT OFF
SET EXCLUSIVE OFF
Set escape on
set date brit
SET CENTURY ON
SET EPOCH TO 2000
SET MULTIPLE OFF WARNING // Evita Executar Mais de Uma Vez.
//SET INTERACTIVECLOSE OFF
Este é o programa onde abre a tabela de Títulos via Browse() pela IDE Ansi:
Note que eu testei a propriedade DynamicBackColor no Browse(), mas não funcionou.
Quando fiz o mesmo teste no GRID, no programa de Baixa de Títulos: Funcionou OK, no entanto, muito lento.
****************************************************************************
* ADMEVV - SISTEMA DE CONTROLE DE ESTOQUE/VENDAS NO VAREJO. *
* *
* Modulo : CONTAS A PAGAR *
* Programa : PPAG100.PRG - Manutencao do CADASTRO DE TÍTULOS. *
* Codificado em: 07.04.1998 Por: jfr. *
* Modificado em: 11.11.2013 Por: jfr. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
#include "minigui.ch"
#define WM_USER 0x400 // Definicoes Para Quebar as Linhas do TOOLTIP.
#define TTM_SETMAXTIPWIDTH (WM_USER + 24)
// =============================================================================
Function PPAG100()
// =============================================================================
If (Substr(Se->PAGCon_seg,1,1)<>'S')
MsgExclamation('Acesso NEGADO! ')
Return Nil
EndIf
Sele LX // Parametro UTILIZAR LANÇAMENTO PARA O PLANO DE CONTAS INTEGRADO.
dbSetOrder(1)
dbGoTop()
dbSeek('PLACONINT')
pPLACONINT:=If( Found(), ALLTRIM(lx->x_texto),space(1) )
Sele LX // Parametro CONTA DE LANÇAMENTO AUTOMÁTICO NO PLANO DE CONTAS: DESCONTOS OBTIDOS.
dbSetOrder(1)
dbGoTop()
dbSeek('CONDESOBT')
pCONDESOBT:=If( Found(), SUBS(lx->x_texto,1,14),space(1) )
Sele LX // Parametro CONTA DE LANÇAMENTO AUTOMÁTICO NO PLANO DE CONTAS: PAGAM.JUROS E MORA.
dbSetOrder(1)
dbGoTop()
dbSeek('CONJURMOR')
pCONJURMOR:=If( Found(), SUBS(lx->x_texto,1,14),space(1) )
aNATUREZA:={} // Filtra NATUREZA DO TITULO na Tabela P/Montar Itens no ComboBox.
Sele f02
dbSetFilter({|| f02->TipTab_f02='05'})
dbGoTop()
While ! Eof()
AADD(aNATUREZA,{f02->CODTAB_F02,f02->DesTab_f02})
dbSkip()
EndDo
Set Filter TO
aNomFor:={} // Filtra Nome Fornecedor P/Montar Itens no ComboBox.
Sele f05
dbSetOrder(2)
dbGoTop()
While ! Eof()
AADD( aNomFor,f05->NomFor_f05 )
dbSkip()
EndDo
Sele 0 // PLANO DE CONTAS.
ARQ:=cDirTrab+'PC'+STRZERO(YEAR(ArqData),4,0)
ARQ1:=cDirTrab+'PC'+STRZERO(YEAR(ArqData),4,0)+'.CDX'
ARQALIAS:='f64'
ARQNIND:=1
RDUSE()
IF ARQLOCOK = 'F' ; dbCloseAll() ; RETURN ; ENDIF
Sele 0 // LANÇAMENTOS ANALÍTICO DE CUSTOS/DESPESAS NO PLANO DE CONTAS.
ARQ:=cDirTrab+'Evvf37'
ARQ1:=cDirTrab+'Evvf37.CDX'
ARQALIAS:='f37'
ARQNIND:=1
RDUSE()
IF ARQLOCOK = 'F' ; dbCloseAll() ; RETURN ; ENDIF
Private bColor := { || if ( This.CellRowIndex/2 == int(This.CellRowIndex/2) , { 221,238,255 } , { 255,255,255 } ) }
Declare Vetor1[40] // Propriedade FIELDS na MiniGUI. Browse da MiniGUI.
vetor1[01]:='F21->IDEHTC_F21' // Identifica se Existe Historico no Título.
vetor1[02]:='F21->NumTit_F21'
vetor1[03]:='F21->CodFor_F21'
vetor1[04]:='F21->ParTit_F21'
vetor1[05]:='F21->DatEmi_F21'
vetor1[06]:='F21->TipTit_F21'
vetor1[07]:='F21->NomFor_F21'
vetor1[08]:='F21->DatVen_F21'
vetor1[09]:='F21->DatPar_F21'
vetor1[10]:='F21->DatBai_F21'
vetor1[11]:='F21->VlrPri_F21'
vetor1[12]:='F21->VlrDes_F21'
vetor1[13]:='F21->VlrJur_F21'
vetor1[14]:='F21->VlrTot_F21'
vetor1[15]:='F21->VlrRec_F21'
vetor1[16]:='F21->SalTit_F21'
vetor1[17]:='F21->CodBan_f21'
vetor1[18]:='F21->ConCor_f21'
vetor1[19]:='F21->NumChe_f21'
vetor1[20]:='F21->DatChe_f21'
vetor1[21]:='F21->CodNat_f21'
vetor1[22]:='F21->HouEst_f21'
vetor1[23]:='F21->DatEst_f21'
vetor1[24]:='F21->NomDes_f21'
vetor1[25]:='F21->CodDes_f21'
vetor1[26]:='F21->CodCon_f21' // Código da Conta no Plano de Contas.
vetor1[27]:='F21->DesObt_f21' // Conta de Descontos Obtidos no Plano de Contas.
vetor1[28]:='F21->JurMor_f21' // Conta de Juros e Mora no Plano de Contas.
vetor1[29]:='F21->SCHDIA_F21' // Total Pagamento CHEQUE DIA.
vetor1[30]:='F21->SCHPRE_F21' // Total Pagamento CHEQUE PRE.
vetor1[31]:='F21->TOTDIN_F21' // Total Pagamento DINHEIRO.
vetor1[32]:='F21->TOTTCK_F21' // Total Pagamento TICKT.
vetor1[33]:='F21->TOTVTR_F21' // Total Pagamento VALE TRANSP.
vetor1[34]:='F21->TOTCRT_F21' // Total Pagamento CARTÃO.
vetor1[35]:='F21->TOTMBA_F21' // Total Pagamento MOVIM.BANCÁRIA (Depósito/Transf./DOC).
vetor1[36]:='F21->TOTDEB_F21' // Total Pagamento DÉBITO AUTOMÁTICO.
vetor1[37]:='F21->TOTENC_F21' // Total Pagamento ENCONTRO DE CONTAS.
vetor1[38]:='F21->TOTONL_F21' // Total Pagamento ON-LINE.
vetor1[39]:='F21->TOTCTE_F21' // Total Pagamento CHEQUE TERCEIROS.
vetor1[40]:='F21->NUMMAL_F21' // Número Malote.
Declare Vetor3[40] // Propriedade HEADERS na MiniGUI.
vetor3[01]:=''
vetor3[02]:='TÍTULO'
vetor3[03]:='FORNECEDOR'
vetor3[04]:='PC'
vetor3[05]:='EMISSÃO'
vetor3[06]:='TIPO'
vetor3[07]:='NOME FORNECEDOR'
vetor3[08]:='VENCIMENTO'
vetor3[09]:='PARCIAL'
vetor3[10]:='BAIXADO'
vetor3[11]:='PRINCIPAL'
vetor3[12]:='DESCONTO'
vetor3[13]:='JUROS'
vetor3[14]:='TOTAL'
vetor3[15]:='CRÉDITO'
vetor3[16]:='DÉBITO'
vetor3[17]:='BANCO DE PAGAMENTO'
vetor3[18]:='C.CORRENTE DE PAGAMENTO'
vetor3[19]:='CHEQUE/DOCUMENTO'
vetor3[20]:='DATA CHEQUE/DOCUMENTO'
vetor3[21]:='NATUREZA DO TÍTULO'
vetor3[22]:='ESTORNO'
vetor3[23]:='DATA ESTORNO'
vetor3[24]:='EMPRESA/FILIAL COMPRADORA'
vetor3[25]:='CÓDIGO EMPRESA/FILIAL COMPRADORA'
vetor3[26]:='CONTA DE DESPESAS'
vetor3[27]:='CONTA DE DESCONTOS OBTIDOS'
vetor3[28]:='CONTA DE JUROS/MORA'
vetor3[29]:='CHEQUE-DIA'
vetor3[30]:='CHEQUE-PRE'
vetor3[31]:='DINHEIRO'
vetor3[32]:='TICKT'
vetor3[33]:='VALE TRANSPORTE'
vetor3[34]:='CARTÃO'
vetor3[35]:='MOVIM.BANCÁRIA'
vetor3[36]:='DÉBITO AUTOMÁTICO'
vetor3[37]:='ENCONTRO DE CONTAS'
vetor3[38]:='ON-LINE'
vetor3[39]:='CHEQUE TERCEIROS'
vetor3[40]:='MALOTE'
Declare Vetor2[40] // Propriedade JUSTIFY na MiniGUI.
vetor2[01]:=BROWSE_JTFY_LEFT
vetor2[02]:=BROWSE_JTFY_LEFT
vetor2[03]:=BROWSE_JTFY_LEFT
vetor2[04]:=BROWSE_JTFY_LEFT
vetor2[05]:=BROWSE_JTFY_LEFT
vetor2[06]:=BROWSE_JTFY_LEFT
vetor2[07]:=BROWSE_JTFY_LEFT
vetor2[08]:=BROWSE_JTFY_LEFT
vetor2[09]:=BROWSE_JTFY_LEFT
vetor2[10]:=BROWSE_JTFY_LEFT
vetor2[11]:=BROWSE_JTFY_RIGHT
vetor2[12]:=BROWSE_JTFY_RIGHT
vetor2[13]:=BROWSE_JTFY_RIGHT
vetor2[14]:=BROWSE_JTFY_RIGHT
vetor2[15]:=BROWSE_JTFY_RIGHT
vetor2[16]:=BROWSE_JTFY_RIGHT
vetor2[17]:=BROWSE_JTFY_LEFT
vetor2[18]:=BROWSE_JTFY_LEFT
vetor2[19]:=BROWSE_JTFY_LEFT
vetor2[20]:=BROWSE_JTFY_LEFT
vetor2[21]:=BROWSE_JTFY_LEFT
vetor2[22]:=BROWSE_JTFY_LEFT
vetor2[23]:=BROWSE_JTFY_LEFT
vetor2[24]:=BROWSE_JTFY_LEFT
vetor2[25]:=BROWSE_JTFY_LEFT
vetor2[26]:=BROWSE_JTFY_LEFT
vetor2[27]:=BROWSE_JTFY_LEFT
vetor2[28]:=BROWSE_JTFY_LEFT
vetor2[29]:=BROWSE_JTFY_RIGHT
vetor2[30]:=BROWSE_JTFY_RIGHT
vetor2[31]:=BROWSE_JTFY_RIGHT
vetor2[32]:=BROWSE_JTFY_RIGHT
vetor2[33]:=BROWSE_JTFY_RIGHT
vetor2[34]:=BROWSE_JTFY_RIGHT
vetor2[35]:=BROWSE_JTFY_RIGHT
vetor2[36]:=BROWSE_JTFY_RIGHT
vetor2[37]:=BROWSE_JTFY_RIGHT
vetor2[38]:=BROWSE_JTFY_RIGHT
vetor2[39]:=BROWSE_JTFY_RIGHT
vetor2[40]:=BROWSE_JTFY_LEFT
Declare Vetor4[40] // Propriedade WIDTHS na MiniGUI.
vetor4[01]:=30
vetor4[02]:=70
vetor4[03]:=70
vetor4[04]:=40
vetor4[05]:=80
vetor4[06]:=50
vetor4[07]:=250
vetor4[08]:=80
vetor4[09]:=80
vetor4[10]:=80
vetor4[11]:=100
vetor4[12]:=100
vetor4[13]:=100
vetor4[14]:=100
vetor4[15]:=100
vetor4[16]:=100
vetor4[17]:=100
vetor4[18]:=100
vetor4[19]:=100
vetor4[20]:=100
vetor4[21]:=100
vetor4[22]:=100
vetor4[23]:=100
vetor4[24]:=250
vetor4[25]:=100
vetor4[26]:=100
vetor4[27]:=100
vetor4[28]:=100
vetor4[29]:=100
vetor4[30]:=100
vetor4[31]:=100
vetor4[32]:=100
vetor4[33]:=100
vetor4[34]:=100
vetor4[35]:=100
vetor4[36]:=100
vetor4[37]:=100
vetor4[38]:=100
vetor4[39]:=100
vetor4[40]:=100
Declare Vetor5[2] // Propriedade IMAGE na MiniGUI.
vetor5[01]:='SEMHISTORICO16' // Definir Imagem de Apresentação.
vetor5[02]:='HISTORICO16'
Declare Vetor6[40] // Propriedade DYNAMICBACKCOLOR na MiniGUI.
For i:=1 to 40
Vetor6
:=bColor
Next
// PROPRIEDADES do Componente GRID_2. Este Se Encontra no FormCadaTitulo.
Declare VetGRIDCada3[4] // Propriedade HEADERS na MiniGUI.
vetGRIDCada3[01]:='CONTA'
vetGRIDCada3[02]:='DESCRIÇÃO'
vetGRIDCada3[03]:='% RATEIO'
vetGRIDCada3[04]:='VALOR'
Declare VetGRIDCada2[4] // Propriedade JUSTIFY na MiniGUI.
vetGRIDCada2[01]:=BROWSE_JTFY_LEFT
vetGRIDCada2[02]:=BROWSE_JTFY_LEFT
vetGRIDCada2[03]:=BROWSE_JTFY_RIGHT
vetGRIDCada2[04]:=BROWSE_JTFY_RIGHT
Declare VetGRIDCada4[4] // Propriedade WIDTHS na MiniGUI.
vetGRIDCada4[01]:=100
vetGRIDCada4[02]:=280
vetGRIDCada4[03]:=70
vetGRIDCada4[04]:=90
Sele F21
dbSetOrder(1)
dbGoTop()
Load Window FormTitulos
FormTitulos.Browse_1.Value:=F21->(RecNo())
SendMessage( GetFormToolTipHandle ("FormTitulos"), TTM_SETMAXTIPWIDTH, 0, 250)
FormTitulos.Row:=0
FormTitulos.Col:=0
FormTitulos.HEIGHT:=(GetDeskTopHeight()-45) // Redefine Altura.
FormTitulos.WIDTH:=GetDeskTopWidth() // Redefine Largura.
FormTitulos.Browse_1.HEIGHT:=(FormTitulos.HEIGHT-200)
FormTitulos.Browse_1.WIDTH:= (FormTitulos.WIDTH-30)
FormTitulos.Combo_1.Value:=1 // Seta Pesquisa Por No.Título.
FormTitulos.Text_1.Value:='000001'
FormTitulos.Text_1.SetFocus
FormTitulos.Activate
Sele f64 ; dbCloseArea() ; Sele f37 ; dbCloseArea()
Return Nil
Um forte abraço,
JAIR RANGEL
legnarinfo@hotmail.com