Página 3 de 14

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 20:50
por Fernando queiroz
A tela Console é do antigo MIRO mas em janela WVT

Código: Selecionar todos

	implementaτπo da GT ( muda as caracteristicas da tela do programa )
	*/
	pNewGT := hb_gtCreate("WVT")
	pGT    := hb_gtSelect(pNewGT)
	HB_GTINFO( HB_GTI_SELECTCOPY, .F.)
	HB_GTINFO( HB_GTI_RESIZABLE, .F.)
	HB_GTINFO( HB_GTI_CODEPAGE, 255 )
	HB_GTINFO( HB_GTI_ALTENTER, .F.)
	HB_GTINFO( HB_GTI_WINTITLE, "SGC - SISTEMA DE GESTAO DE COMERCIO")
	HB_GTINFO( HB_GTI_FONTNAME, "LUCIDA CONSOLE")
*    HB_GTINFO( HB_GTI_ICONRES, "SGC.ICO" )
*    HB_GTINFO( HB_GTI_SELECTCOPY, .T. )
*    HB_GTINFO( HB_GTI_MOUSESTATUS, 1 )
*    HB_GTINFO( HB_GTI_CLIPBOARDDATA )
	HB_GTINFO( HB_GTI_CLOSABLE, .F.)
	HB_GTINFO( HB_GTI_ICONFILE, "SGC.ICO")
	HB_GTINFO( HB_GTI_MAXIMIZED, .T.)
	hb_gtInfo( HB_GTI_COMPATBUFFER, .f. )
	**HB_GtInfo( HB_GTI_ISFULLSCREEN, .T. ) // deixa a tela cheia - estilo DOS
	HB_GtInfo( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_FONT ) // aumenta o tamanho da letra proporcionalmente
	Set( _SET_EVENTMASK, INKEY_ALL + HB_INKEY_GTEVENT )
Depois eu chamo as rotinas em HWGUI
IMG_0057.JPG

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 20:51
por Fernando queiroz
tela HWGUI chamada de uma tela GTWVT
tela HWGUI chamada de uma tela GTWVT

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 21:01
por Fernando queiroz
Mas ja estou com o menu grafico tambem pronto
IMG_0060.JPG

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 21:08
por Fernando queiroz
rubens escreveu:Fernando...
Essa tela do clipper´s club andou longe heim ?!!!
Essa tela do contas a pagar, você faz ela a partir do menu principal aí? Pega todo o ambiente do da tela texto aí ou é um programa a parte?

Obg
Rubens
Consigo chamar tela console de dentro de um menu grafico ou de um menu console uma tela grafica , mas tem de estar em janela WVT
tudo dentro do mesmo programa mas com .prg diferentes

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 21:13
por Fernando queiroz
IMG_0061.JPG

Aos poucos migrando tela caracter para GUI

Enviado: 27 Fev 2018 21:14
por Fernando queiroz
IMG_0062.JPG

Aos poucos migrando tela caracter para GUI

Enviado: 28 Fev 2018 09:08
por rubens
Tem como postar um exemplo Fernando...
Só da chamada mesmo...

case opcao = 1
TelaGrafica()
...

Function TelaGrafica()
O que você coloca aqui ???
Return nil

Obrigado

Rubens

Aos poucos migrando tela caracter para GUI

Enviado: 28 Fev 2018 10:07
por Fernando queiroz
menu console chamando telas graficas em HWGUI

Código: Selecionar todos

IF MENU_P = 1
			  MENSAGEM( "Tecle <ESC> para sair" )
			  menu:ADD( "Produtos/Servicos", CADPRODUTOSBRW( .T. ) )
			  menu:ADD( "-" )
			  menu:ADD( "Clientes/Cartoes", CADCLIENTESBRW( .T. ) )
			  menu:ADD( "Fornecedores/Caixa ", CADFORNECEDORESBRW( .T. ) )
			  menu:ADD( "Vendedores ", CADVENDEDORESBRW( .T. ) )
			  menu:ADD( "-" )
			  menu:ADD( "Cfop ", CADCFOPBRW( .T. ) )
			  menu:ADD( "NCM ", CADNCMBRW( .T. ) )
			  menu:ADD( "Municipios ", CADMUNICIPIOSBRW( .T. ) )
			  menu:ADD( "-" )
			  menu:ADD( ">Relatorios", SGCREL_1() )
			  menu:RODA()
		   ELSEIF MENU_P = 2
			  IF M->FIMMES
				 MENSAGEM( "Tecle <ESC> para sair" )
				 menu:ADD( "Nota de Entrada", NOTADEENTRADA( ) ) 
				 menu:ADD( "Gerência Nota de Entrada", GERENCIANOTAENTRADA(  ) ) 
				 menu:ADD( "-" )
				 menu:ADD( "Pedido de Compra ", SGC2200() )
				 menu:ADD( "-" )
				 menu:ADD( "Validade de Produtos ", VALIDADEDEPRODUTOSBRW(.T.) )
				 menu:ADD( "-" )
				 menu:ADD( "Finaliza Mes ", SGC2400() )
				 menu:ADD( "-" )
				 menu:ADD( ">Relatorios", SGCREL_2() )
				 menu:RODA()
			  ELSE
				 MENSAGEM( "Tecle <ESC> para sair" )
				 menu:ADD( "Nota de Entrada", NOTADEENTRADA( ) ) 
				 menu:ADD( "Gerência Nota de Entrada", GERENCIANOTAENTRADA(  ) ) 
			     menu:ADD( "-" )
				 menu:ADD( "Pedido de Compra ", SGC2200() )
				 menu:ADD( "-" )
				 menu:ADD( "Validade de Produtos ", VALIDADEDEPRODUTOSBRW(.T.) )			 
				 menu:ADD( "-" )
				 menu:ADD( ">Relatorios", SGCREL_2() )
				 menu:RODA()
			  ENDIF
		   ELSEIF MENU_P = 3
			  MENSAGEM( "Tecle <ESC> para sair" )
			  menu:ADD( "Nota de Pedido", NOTADEPEDIDO( ) )
			  menu:ADD( "Gerência Nota de Pedido" ,GERENCIANOTADEPEDIDO(  ) )
			  menu:RODA()
		   ELSEIF MENU_P = 4
			  MENSAGEM( "Tecle <ESC> para sair" )
			  menu:ADD( "Posição do Caixa" , POSICAODOCAIXA(  ) )	  
			  menu:ADD( "-" )
			  menu:ADD( "Emitir NF-e DANFE",  GERANFE_DANFE())
			  menu:ADD( "Gerência NF-e DANFE",  GERENCIA_NFE())	
			  menu:ADD( "-" )				  
			  menu:ADD( "Emitir NFC-e CUPOM ",  GERANFCE_CUPOM(  ))
			  menu:ADD( "Gerência NFC-e CUPOM",  GERENCIA_NFCE())  
			  menu:RODA()
		   ELSEIF MENU_P = 5
			  MENSAGEM( "Tecle <ESC> para sair" )
			  menu:ADD( "Contas a Receber " , CONTASARECEBERBRW(  ) )
			  menu:ADD( "-" )
			  menu:ADD( "Contas a Pagar " , CONTASAPAGARBRW(  )  )
			  menu:RODA()
		   ELSEIF MENU_P = 6
			  MENSAGEM( "Tecle <ESC> para sair" )
			  menu:ADD( "Reorganizar", INDICES( .T. ) )
			  menu:ADD( "-" )
			  menu:ADD( ">Configuraçoes", CONFIG() )
			  menu:ADD( "-" )
			  menu:ADD( ">Papel de parede", FUNDO( 1 ) )
			  menu:ADD( ">Configuraçao de cores", CONFCOR() )
			  menu:ADD( "Configuraçao padrao", CONFPADRAO() )
			  *         menu:ADD( ">Configuraçao de Fontes", CONFFONTES() )
			  menu:ADD( "-" )
			  menu:ADD( ">Senhas", EDITA_SENHA() )
			  menu:ADD( "-" )
			  menu:ADD( "Log Geral" , RELATORIOLOGGERAL(  ) )
			  menu:ADD( "Lembretes ", CADLEMBRETESBRW(  ) )
			  menu:RODA()
		   ELSEIF MENU_P = 7
			  menu:ADD( "Encerrar" )
			  menu:ADD( "-" )
			  menu:ADD( "Info", INFO() )
			  menu:ADD( "-" )
			  menu:ADD( "News", NEWS() )
			  IF menu:RODA() = 1
                 BEEP();IF PERG( "Confirma o encerramento ?" ) = "S"
					VAR := ""
					FOR CONTAR = 1 TO 12
					   VAR += CONTECOR[ CONTAR ]
					NEXT
					VAR += STR( MOV_LINHA, 2 ) + STR( MOV_COLUNA, 2 )
					VAR += "FF  "
					VAR += STR( FUNDO, 2 )
					VAR += M->DRI_VE
					VAR += CONTECOR[ 13 ]
					VAR += PADR( CON_ARQ, 12 )

					MEMOWRIT( (CONF_EST), VAR )
					SETCOLOR( "W" )
					QUIT
				 ENDIF
			  ENDIF
		   ENDIF
MENU GRÁFICO chamando rotinas em modo console e em modo gráfico

Código: Selecionar todos

/*
TITULO     : SISTEMA DE GESTÃO DE COMERCIO
DATA       : 27/11/2017
PROGRAMA   : MENUGRAFICO.PRG
COMENTARIO : MENU PRINCIPAL
*/
#include "SGC.CH"
#include "hwgui.ch"
	
****************************************
FUNCTION MENU_GRAFICO
****************************************

    LOCAL oMENUPRINC,  lManutencao, oOwnerbutton1, oOwnerbutton2, oOwnerbutton3, oOwnerbutton4, oOwnerbutton5, oOwnerbutton6 ;
		, oOwnerbutton7, oOwnerbutton8, oOwnerbutton9, oOwnerbutton10, oOwnerbutton11, oOwnerbutton12, oOwnerbutton13, oOwnerbutton14;
		, oToolbutton1, oToolbutton2, oToolbutton3, oToolbutton4, oToolbutton5, oToolbutton6, oToolbutton7, oToolbutton8, oToolbutton9;
		, oToolbutton10, oToolbutton11, oToolbutton12, oToolbutton13, oToolbutton14, oToolbutton15, oToolbutton16, oToolbutton17, oToolbutton18


  INIT DIALOG oMENUPRINC TITLE "SGC - SISTEMA DE GESTÃO DE COMERCIO"    ;
		AT 0, 0 SIZE 1024,768 NOEXIT  ;
		STYLE WS_OVERLAPPEDWINDOW+DS_CENTER+DS_ABSALIGN
	 
    Thisform := oMENUPRINC

 MENU OF oMENUPRINC  
  MENU TITLE 'Cadastros' ID 32000 
		MENUITEM 'Produtos' ID 32009 ACTION {|| CADPRODUTOSBRW( .T. ), DBCLOSEAREA() }  // .T. ativa manutencao no cadastro .F. somente consulta
		 SEPARATOR 
		MENUITEM 'Clientes' ID 32010 ACTION {|| CADCLIENTESBRW( .T. ), DBCLOSEAREA() } 
		MENUITEM 'Fornecedores' ID 32011 ACTION {|| CADFORNECEDORESBRW( .T. ), DBCLOSEAREA() } 
		MENUITEM 'Vendedores' ID 32012 ACTION {|| CADVENDEDORESBRW( .T. ), DBCLOSEAREA() } 
		 SEPARATOR 
		MENUITEM 'CFOP' ID 32014 ACTION {|| CADCFOPBRW( .T. ), DBCLOSEAREA() } 
		MENUITEM 'NCM' ID 32015 ACTION {|| CADNCMBRW( .T. ), DBCLOSEAREA() }             
		MENUITEM 'Municípios' ID 32016 ACTION {|| CADMUNICIPIOSBRW( .T. ), DBCLOSEAREA() } 
//		 SEPARATOR 
//		MENU TITLE 'Relatórios' ID 32018 
//		  MENUITEM 'Produtos' ID 32020 ACTION {|| RELATORIO_PRODUTOS(  ) }
//		  MENUITEM 'Clientes' ID 32021 ACTION {|| RELATORIO_CLIENTES(  ),DBCLOSEALL() }
//		  MENUITEM 'Fornecedores' ID 32022 ACTION {|| RELATORIO_FORNECEDORES( ),DBCLOSEALL()  }
//		  MENUITEM 'Vendedores' ID 32023 ACTION {|| RELATORIO_VENDEDORES( ),DBCLOSEALL()  }
//		ENDMENU  
  ENDMENU  
  MENU TITLE 'Estoque' ID 33000 
    MENUITEM 'Nota de Entrada' ID 30001 ACTION "" 
     SEPARATOR 
    MENUITEM 'Pedido de Compra' ID 33003 ACTION "" 
    MENUITEM 'Validade de Produtos' ID 33004 ACTION "" 
     SEPARATOR 
    MENUITEM 'Correção de Estoque' ID 33006 ACTION "" 
	  MENUITEM 'Cadastro EAN' ID 33007 ACTION ""
     SEPARATOR 
    MENU TITLE 'Relatórios' ID 33009 
      MENUITEM 'Inventário Geral' ID 33010 ACTION "" 
      MENUITEM 'Produtos Zerados' ID 33011 ACTION "" 
      MENUITEM 'Produtos mais Vendidos' ID 33012 ACTION "" 
      MENUITEM 'Nota de Entrada' ID 33013 ACTION "" 
      MENUITEM 'Vencimento de Produtos' ID 33014 ACTION "" 
    ENDMENU  
  ENDMENU
  MENU TITLE 'Faturamento' ID 34000 
    MENUITEM 'Nota de Pedido' ID 34001 ACTION {|| NOTADEPEDIDO( ) }
    MENUITEM 'Gerênciar Nota de Pedido' ID 34002 ACTION {|| GERENCIANOTADEPEDIDO(  ) }
//    MENUITEM 'Reemissão Nota de Pedido' ID 34003 ACTION {|| SGC3300( ) }  
     SEPARATOR 
    MENUITEM 'Orçamento' ID 34005 ACTION "" 
  ENDMENU 
  MENU TITLE 'Serviços' ID 35000 
    MENUITEM 'Entrada do Serviço' ID 35001 ACTION "" 
    MENUITEM 'Recepção pelo Técnico' ID 35002 ACTION "" 
    MENUITEM 'Informações Tecnicas' ID 35003 ACTION "" 
    MENUITEM 'Finalizar/Entrega' ID 35004 ACTION "" 
     SEPARATOR 
    MENU TITLE 'Relatório de Serviços' ID 35006 
      MENUITEM 'Por Situação Serviço' ID 35007 ACTION "" 
      MENUITEM 'Por Período' ID 35008 ACTION "" 
      MENUITEM 'Montagens em aberto' ID 35009 ACTION "" 
      MENUITEM 'Montagens Aguardando Retirada' ID 35010 ACTION "" 
    ENDMENU  
  ENDMENU
  MENU TITLE 'Caixa' ID 36000 
//    MENUITEM 'Abertura do Caixa' ID 36001 ACTION {|| POSICAODOCAIXA(  ) } 
//    MENU TITLE 'Movimento do Caixa' ID 36002 
//      MENUITEM 'Receber de Clientes' ID 36003 ACTION "" 
//      MENUITEM 'Contas a Receber - Baixas' ID 36004 ACTION "" 
//      SEPARATOR 
//      MENUITEM 'Pagar Fornecedores' ID 36006 ACTION "" 
//      SEPARATOR 
//      MENUITEM 'Vale P/ Vendedores' ID 36008 ACTION "" 
//      SEPARATOR 
//      MENUITEM 'Consulta Movimento do Caixa' ID 36010 ACTION "" 
//    ENDMENU  
    MENUITEM 'Posição do Caixa/Abertura/Fechamento' ID 36012 ACTION {|| POSICAODOCAIXA(  )  }
//    MENUITEM 'Fechamento do Caixa' ID 36013 ACTION {|| SGC4400()  } 
//    MENUITEM 'Reabertura do Caixa' ID 36014 ACTION {|| SGC4500()  }
//     SEPARATOR 
//    MENUITEM 'Resumo do Caixa' ID 36016 ACTION {|| SGC4700()  }
//     SEPARATOR 
//    MENUITEM 'Emitir NF-e' ID 36018 ACTION {|| GERANFE_GRAFICO(  )  }
//    MENUITEM 'Emitir NFC-e CUPOM' ID 36019 ACTION {|| GERANFCE_GRAFICO(  )  }
//    MENUITEM 'Gerênciar NF-e/NFC-e' ID 36020 ACTION {|| GERENCIA_XML_GRAFICO(  )  }
  ENDMENU
  MENU TITLE 'Contas a Receber' ID 37001 
    MENUITEM 'Lançamentos/Baixa/Relatórios' ID 37002 ACTION {|| contasareceberBRW(  )  }
//     SEPARATOR 
//    MENU TITLE 'Relatórios' ID 37005 
//      MENUITEM 'Receitas em Aberto por Ciente' ID 37006 ACTION "" 
//      MENUITEM 'Receitas em Aberto por Vencimento' ID 37007 ACTION "" 
//      SEPARATOR 
//      MENUITEM 'Receitas Recebidas por Cliente' ID 37009 ACTION "" 
//      MENUITEM 'Receitas recebidas por Vencimento' ID 37010 ACTION "" 
//    ENDMENU  
  ENDMENU 
  MENU TITLE 'Contas a Pagar' ID 38001  
    MENUITEM 'Lançamentos/Baixa/Relatórios' ID 38002 ACTION {|| CONTASAPAGARBRW(  )  }
//     SEPARATOR 
//    MENU TITLE 'Relatórios' ID 38005 
//      MENUITEM 'Despesas em aberto por Fornecedor' ID 38006 ACTION {|| SGCR_305(  )  } 
//      MENUITEM 'Despesas em aberto por Vencimento' ID 38007 ACTION {|| SGCR_306(  )  } 
//      SEPARATOR 
//      MENUITEM 'Despesas pagas por Fornecedor' ID 38009 ACTION {|| SGCR_307(  )  } 
//      MENUITEM 'Despesas pagas por Vencimento' ID 38010 ACTION {|| SGCR_308(  )  } 
//    ENDMENU  
  ENDMENU 
  MENU TITLE 'Utilitários' ID 32008 
    MENU TITLE 'Configurações' ID      32036 
      MENUITEM 'Usuário' ID 32037 ACTION ""
      MENUITEM 'Configura Contas a Receber' ID 32038 ACTION {|| _contasreceber(  ) } 
      MENUITEM 'Ativa/Desativa Rotinas/Descontos/Turnos' ID 32039 ACTION {|| _ROTINAS() } 
      MENUITEM 'Configura NF-e/NFC-e' ID 32040 ACTION {|| CONFIGNFE() } 

    ENDMENU  
    MENUITEM 'Reorganizar Indices dos Arquivos' ID 32041 ACTION {|| abrearquivos(  ) }  
     SEPARATOR 
    MENUITEM 'Cadastro de Operadores' ID 32042 ACTION {|| _TELAMANUTENCAOSENHA(  ) } 
     SEPARATOR 
    MENUITEM 'Relatório do Log-Geral' ID 32043 ACTION {|| RELATORIOLOGGERAL(  ), DBCLOSEALL(  ) } 
     SEPARATOR 
    MENUITEM 'Atualizar tabela do IBPT (NCM)' ID 32044 ACTION {|| TABELAIBPT(  ),hwg_DeleteFile( "C:\BENE\DATABASE\NCM.001"  ) } 
	MENUITEM 'Atualizar Certificado Digital' ID 32045 ACTION {|| CERTIFICADODIGITAL() }  
    MENUITEM 'Lembretes' ID 32046 ACTION {|| CADLEMBRETESBRW(  ) } 
  ENDMENU  
  MENU TITLE 'Saida' ID 32007 
    MENUITEM 'Encerrar Sistema' ID 32025 ACTION {|| oMENUPRINC:Close() } 
     SEPARATOR 
    MENUITEM 'Trocar de Operador' ID 32026 ACTION "" 
     SEPARATOR 
    MENUITEM 'INFO' ID 32029 ACTION {|| INFO() } 
     SEPARATOR 
    MENUITEM 'News' ID 32031 ACTION {|| NEWS() } 
     SEPARATOR 
    MENUITEM 'Sobre' ID 32033 ACTION {|| ABOUT() } 
  ENDMENU 
 ENDMENU 

	@ 8,-1 TOOLBAR oToolbar1  SIZE 1600,40 ;
		STYLE BTNS_AUTOSIZE + TBSTYLE_TRANSPARENT  
		oToolbar1:AddButton("gift", , 4, 16, "Produtos" ,{|| cadprodutosbrw( .T. ) },'Cadastro de Produtos','', "oToolbutton1") 
		oToolbar1:AddButton("usergroup", , 4, 16, "Clientes"   ,{|| cadclientesbrw( .T. ) },'Cadastro de Clientes','', "oToolbutton2")
 		oToolbar1:AddButton("boss", , 4, 16, "Fornecedores" ,{|| CADFORNECEDORESBRW( .T. ) },'Cadastro de Fernecedores','', "oToolbutton3")
 		oToolbar1:AddButton("buy", , 4, 16, "Entrada" ,{|| NOTADEENTRADA( ) },'Nota de Entrada','', "oToolbutton4")
 		oToolbar1:AddButton("coins", , 4, 16, "Vendas" ,{|| NOTADEPEDIDO( ) },'Nota de Pedido','', "oToolbutton5")
		oToolbar1:AddButton("list", , 4, 16, "Orçamento" ,{|| SGC3400() },'Orçamento','', "oToolbutton6")
		oToolbar1:AddButton("Equipment", , 4, 16, "Serviços" ,{|| SGC3700() },'Rotinas de Serviços','', "oToolbutton7")
//		oToolbar1:AddButton("Equipment", , 4, 16, "Serv.Saida" ,{|| SGC3700() },'Finalizar/Entrega de Serviços','', "oToolbutton8")
		oToolbar1:AddButton("Cashregister", , 4, 16, "Caixa" ,{|| POSICAODOCAIXA(  ) },'Rotinas do Caixa','', "oToolbutton9")
		oToolbar1:AddButton("Import", , 4, 16, "DANFE" ,{|| GERANFE_DANFE(  ) },'Emite NF-e DANFE','', "oToolbutton12")
		oToolbar1:AddButton("Import", , 4, 16, "Ger.DANFE" ,{|| GERENCIA_NFE(  )  },'Gerencia NF-e DANFE','', "oToolbutton13")
		oToolbar1:AddButton("Import", , 4, 16, "CUPOM" ,{|| GERANFCE_CUPOM(  ) },'Emite NFC-e CUPOM','', "oToolbutton14")		
		oToolbar1:AddButton("Import", , 4, 16, "Ger.CUPOM" ,{|| GERENCIA_NFCE(  )  },'Gerencia NFC-e CUPOM','', "oToolbutton15")
		oToolbar1:AddButton("goodmark", , 4, 16, "Receber" ,{|| CONTASARECEBERBRW(  )  },'Contas a Receber','', "oToolbutton16")
		oToolbar1:AddButton("badmark", , 4, 16, "Pagar" ,{|| CONTASAPAGARBRW(  ) },'Contas a Pagar','', "oToolbutton17")
		oToolbar1:AddButton("EXIT16BMP", , 4, 16, "Sair" ,{|| oMENUPRINC:Close() },'Sair do Sistema e Voltar para Senha','', "oToolbutton18")
		oToolbar1:CreateTool() 


		
    ADD STATUS PANEL TO oMENUPRINC HEIGHT 30  PARTS 250,300,300              

    hwg_WriteStatus( oMENUPRINC,1,"Data Movimento: "+dtoc(M->DAT_HOJE))
    hwg_WriteStatus( oMENUPRINC,2,"Operador: "+RTRIM(M->OPERADOR)+" - Nivel: "+STRZERO(M->NIV_ACESSO,1,0) )

   ACTIVATE DIALOG oMenuPrinc  MAXIMIZED

RETURN NIL
*********************************
STATIC function SAIR( )
		IF hwg_MsgYesNo("DESEJA Encerrar, Tem certeza disso ?","Encerrar Sistema")
				ThisMenu:Close( )
				QUIT
		ENDIF
RETURN NIL
rotina gráfica de contas a pagar - só coloquei a rotina principal , dentro dela chamo outras rotinas

Código: Selecionar todos

/*
TITULO     : SISTEMA DE GEST¦O DE COMERCIO
DATA       : 04/01/2017
PROGRAMA   : CONTASAPAGAR.PRG
COMENTARIO : CONTAS A PAGAR
*/
#include "hwgui.ch"
******************************************
FUNCTION CONTASAPAGARBRW(  )
******************************************

	LOCAL oDlg,  oDatabase1, oSt1, oLabel1B, oOrdem, obusca, oBrowse1 ;
		,oLabelrod,  oToolbar1, oToolbutton1, oToolbutton2, oToolbutton3, oToolbutton4, oToolbutton5, oToolbutton6, oToolbutton7, oToolbutton8 ;
        ,oToolbutton9, oToolbutton10, oToolbutton11, oToolbutton12, oToolbutton13
	Local  nOrdem := 2 
	private cProgressKey:="" 
	private vBusca := "", cProgressKey:="", MSITUACAO:=""

	IF ! ABRE_FLAG()
	   DBCLOSEALL()
	   RETURN NIL
	END

	IF ! ABRE_FORNECEDOR()
	   DBCLOSEALL()
	   RETURN NIL
	END

	IF ! ABRE_PAGAR()
	   DBCLOSEALL()
	   RETURN NIL
	END
	Ordsetfocus(9)
	DBGOTOP()
  INIT DIALOG oDlg TITLE "Contas a Pagar"  ;
		ICON HIcon():AddFile('sgc.ico')  ;
		AT 0, 0 SIZE 1167,584 CLIPPER  NOEXIT  ;
		STYLE WS_OVERLAPPEDWINDOW+DS_CENTER+DS_ABSALIGN;
		ON INIT {|This| onDlgInit( This, oDlg ) }
    ThisBRW := oDlg

	@ 4,70 BROWSE oBrowse1 DATABASE OF oDlg SIZE 1160,482 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
			ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
			ON POSCHANGE {|| hwg_WriteStatus( oDlg,2,LTrim(Str( RecNo(),8))+ "/" +LTrim(Str( Lastrec(),8))), situacao(  ) } ;
			ON CLICK {|| oBrowse1_onClick(  ) } ;
			ON KEYDOWN {|oBrowse1,nKeyPress| oBrowse1_onKeyDown( oBrowse1,nKeyPress ) }

		oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
		oBrowse1:freeze := 1
		oBrowse1:nColumns := 12
		oBrowse1:alias := 'PAGAR'
		SELECT (oBrowse1:alias)  

		oBrowse1:AddColumn( HColumn():New('Codigo', FieldBlock( 'UFORNEC' ) ,'C',9, 0 ,.F.,1,2,,,,,,;
		                    {|| Ordsetfocus(4), Dbgotop(), obrowse1:Refresh(), vBusca:="" ,  ;
							hwg_WriteStatus( oDlg,3,"Ordem: Codigo/Data Baixa") } ,,,,))
							
		oBrowse1:AddColumn( HColumn():New('Nome Fornecedor', FieldBlock( 'NRAZ_SOC' ) ,'C',60, 0 ,.F.,1,,,,,,,;
                    		{|| Ordsetfocus(10), Dbgotop(), obrowse1:Refresh(), vBusca:="" , ;
							hwg_WriteStatus( oDlg,3,"Ordem: Nome Fornecedor/Vencimento") } ,,,,))

		oBrowse1:AddColumn( HColumn():New('Documento', FieldBlock( 'NUMDOC' ) ,'C',21, 0 ,.F.,1,2,,,,,,;
                    		{|| Ordsetfocus(1), Dbgotop(), obrowse1:Refresh(), vBusca:="" , ;
							hwg_WriteStatus( oDlg,3,"Ordem: Codigo/Documento") } ,,,,))		

		oBrowse1:AddColumn( HColumn():New('Status', {||SITUACAO(  ) } ,'U',10, 0 ,.F.,1,,,,,,,,,,,))								
							
		oBrowse1:AddColumn( HColumn():New('Vencimento', FieldBlock( 'DATVEN' ) ,'D',12, 0 ,.F.,1,2,,,,,,;
                    		{|| Ordsetfocus(2), Dbgotop(), obrowse1:Refresh(), vBusca:="" , ;
							hwg_WriteStatus( oDlg,3,"Ordem: Vencimento") } ,,,,))

		oBrowse1:AddColumn( HColumn():New('Valor Parcela', FieldBlock( 'VALOR' ) ,'N',14, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))
		
		oBrowse1:AddColumn( HColumn():New('Data Baixa', FieldBlock( 'DATPAG' ) ,'D',12, 0 ,.F.,1,2,,,,,,;
                    		{|| Ordsetfocus(9), Dbgotop(), obrowse1:Refresh(), vBusca:="" , ;
							hwg_WriteStatus( oDlg,3,"Ordem: Vencimento/Data Baixa") } ,,,,))

		
		oBrowse1:AddColumn( HColumn():New('Valor Pago', FieldBlock( 'VALBAI' ) ,'N',15, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('Multa', FieldBlock( 'MULTA' ) ,'N',14, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('Juros', FieldBlock( 'JUROS' ) ,'N',14, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('Total Pago', FieldBlock( 'TOTREC' ) ,'N',14, 2 ,.F.,1,2,'@E 99,999,999,999.99',,,,,,,,,))
		oBrowse1:AddColumn( HColumn():New('Historico', FieldBlock( 'DESHIS' ) ,'C',120, 0 ,.F.,1,,,,,,,,,,,))

	@ 8,-1 TOOLBAR oToolbar1  SIZE 1167,40 ;
		STYLE BTNS_AUTOSIZE + TBSTYLE_TRANSPARENT  
		oToolbar1:AddButton("CMDINSERT", , 0, 16, "Inclui" ,{||CONTASAPAGAR( 'INCLUIR' ),obrowse1:REFRESH(),DBUNLOCKALL(),hwg_WriteStatus( oDlg,3,"Ordem: Nome Fornecedor")},'Incluir nova conta a pagar','', "oToolbutton1") 
		oToolbar1:AddButton("CMDEDIT", , 0, 16, "Altera" ,{||CONTASAPAGAR( 'ALTERAR' ),obrowse1:REFRESH(),DBUNLOCKALL(),hwg_WriteStatus( oDlg,3,"Ordem: Nome Fornecedor")},'Altera conta a pagar','', "oToolbutton2")
 		oToolbar1:AddButton("CMDDELETE", , 0, 16, "Exclui" ,{|| F4_Exclui( ), obrowse1:REFRESH() },'Exclui conta a pagar','', "oToolbutton3")
		oToolbar1:AddButton("Store", , 4, 16, "Duplica" ,{||DUPLICACONTASAPAGAR( ) },'Gera Automaticamente varios lançamentos','', "oToolbutton4")
		oToolbar1:AddButton("Accounting16", , 4, 16, "Baixa" ,{|| contasapagarbaixa( ) },'Baixar conta a pagar','', "oToolbutton5")
		oToolbar1:AddButton("boss", , 4, 16, "Atualiza" ,{||ATUALIZADADOS(  )},'Atualiza Fornecedor do conta a pagar','', "oToolbutton6")
		oToolbar1:AddButton("CLFLBMP", , 4, 16, "Consulta" ,{||CONSULTACONTASAPAGAR( )},'Consulta dados Contas a Pagar','', "oToolbutton7")
		oToolbar1:AddButton("rel_print", , 4, 16, "Relatório 1" ,{||SGCR_305(  ),Ordsetfocus(9),DBGOTOP(),onDlgInit(  )},'Emite Relatório de Despesas em Aberto por Fornecedor','', "oToolbutton8")
		oToolbar1:AddButton("rel_print", , 4, 16, "Relatório 2" ,{||SGCR_306(  ),Ordsetfocus(9),DBGOTOP(),onDlgInit(  )},'Emite Relatório de Despesas em Aberto por Vencimento','', "oToolbutton9")
		oToolbar1:AddButton("rel_print", , 4, 16, "Relatório 3" ,{||SGCR_307(  ),Ordsetfocus(9),DBGOTOP(),onDlgInit(  )},'Emite Relatório de Despesas Pagas por Fornecedor','', "oToolbutton10")
		oToolbar1:AddButton("rel_print", , 4, 16, "Relatório 4" ,{||SGCR_308(  ),Ordsetfocus(9),DBGOTOP(),onDlgInit(  )},'Emite Relatório de Despesas Pagas por Vencimento','', "oToolbutton11")
		oToolbar1:AddButton("EXIT16BMP", , 4, 16, "Sair" ,{|| DBCLOSEALL(), oDlg:Close() },'Sair da rotina','', "oToolbutton12")
		oToolbar1:CreateTool()

	
    ADD STATUS PANEL TO oDlg HEIGHT 30  PARTS 200,120,300 
	@ 4,43 SAY oLabel1B CAPTION "Pesquisar"  SIZE 138,25 ;
		STYLE SS_CENTER +WS_DLGFRAME 	
	@ 150,43 SAY oLabel4 CAPTION "" SIZE 410,25 ;
        STYLE WS_BORDER;
        COLOR 16777215  BACKCOLOR 255 

	oBrowse1:aColumns[1]:oFont := HFont():Add( '',0,-15,700,,,)	
	oBrowse1:aColumns[4]:bColorBlock :={|| IIF(PAGAR->DATVEN < M->DAT_HOJE .AND. PAGAR->BAIXA = 0,{255, 16777215 ,16777215,255 },{0,16777215,, }) }		
		
	ACTIVATE DIALOG oDlg     
	DBCLOSEALL()
   
RETURN NIL

Aos poucos migrando tela caracter para GUI

Enviado: 09 Fev 2020 22:04
por cjp
Pessoal, estive estudando todo este tópico.
Pelo que vi, é possível fazer uma função em modo gráfico, partindo de uma função feita em modo console.
É exatamente isso que preciso fazer: um gráfico bem simples, chamado a partir de meu sistema, que está todo em modo console.
O problema é que não sei nada sobre modo gráfico, nada mesmo.
Preciso de uma ajuda bem básica: como começar? Do zero mesmo. Tem que instalar o que exatamente? Como compilar?
Alguém pode me ajudar?

Aos poucos migrando tela caracter para GUI

Enviado: 10 Fev 2020 13:32
por JoséQuintas
Tomara que quando eu for migrar, hwgui já esteja mais "multithread", sem isso de obrigar ordem nos forms.

Aos poucos migrando tela caracter para GUI

Enviado: 11 Fev 2020 13:30
por asimoes
Olá, preparei esse exemplo:
h-GUICONSOLE.zip
(1.48 MiB) Baixado 218 vezes
Tem o exemplo compilado DEMO.EXE, analisa os fontes pra entender como faz a chamada para CONSOLE, o GT é GTWVG, mas pode usar também GTWVT

Aos poucos migrando tela caracter para GUI

Enviado: 11 Fev 2020 13:40
por asimoes
Atenção, modificar o método do exemplo no fonte demo.prg, tem usar a função hwg_ExitProcess

Código: Selecionar todos

METHOD SaidaSistema()
LOCAL lSair := .F.
   
   hwg_ExitProcess()
    
RETURN lSair

Aos poucos migrando tela caracter para GUI

Enviado: 11 Fev 2020 14:54
por asimoes
2020-02-11 14_56_11-Window.png

Aos poucos migrando tela caracter para GUI

Enviado: 11 Fev 2020 15:10
por asimoes
Pode thread para executar uma janela

nThread := Hb_ThreadStart( Hb_BitOr( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), {|| &cRotina.} )

Código: Selecionar todos

METHOD ChamaRotina( cRotina, lGui ) 
THREAD STATIC lInicio := .F., lContinua := .T., oErro

   Hb_Default(@lGui, .F.)
   
         If ! lGui
            If ! lInicio
               lInicio := .T.
               nThread  :=  Hb_ThreadStart( Hb_BitOr( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), {|| &cRotina.} )
               If pWindowGTI != Nil
                  wapi_DestroyWindow( pWindowGTI ) 
               Endif
               lInicio := .F.
            Endif
         Endif
                               
RETURN Nil

Aos poucos migrando tela caracter para GUI

Enviado: 11 Fev 2020 15:12
por asimoes
Pode usar thread

Código: Selecionar todos

METHOD ChamaRotina( cRotina, lGui ) 
THREAD STATIC lInicio := .F., lContinua := .T., oErro

   Hb_Default(@lGui, .F.)
   
         If ! lGui
            If ! lInicio
               lInicio := .T.
               nThread  :=  Hb_ThreadStart( Hb_BitOr( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), {|| &cRotina.} )
               If pWindowGTI != Nil
                  wapi_DestroyWindow( pWindowGTI ) 
               Endif
               lInicio := .F.
            Endif
         Endif
                               
RETURN Nil