Jump to content
Fivewin Brasil

Search the Community

Showing results for tags 'fivewin'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

There are no results to display.

Forums

  • FiveWin
    • WorkShop
    • Advantage Server
    • FiveScript
    • FiveWin Avaliação
    • TopConnect
    • Classes
    • Programação
    • FiveWin - Conversão de 16 bits para 32 bits
    • Seminário
    • Artigos / Tutoriais
    • Off - Topic
  • Suporte Estendido
    • Duvidas Gerais

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 11 results

  1. http://forums.fivetechsupport.com/viewtopic.php?f=16&t=37265&start=0 - nova versão! ORM Lançado a 1ª versão do ORM, em desenvolvimento. Suporta dbase, foxpro, msaccess, mssql, mysql, oracle com o ADO e mysql com o ADO, Dolphin and FWMariaLib. - Classe ORM_Connection Sintaxe: - oConnection: = ORM_Connection (): Novo (rdbms, servidor, banco de dados, usuário, senha) onde rdbms podem ser mysql, mssql, oracle, etc para ADO ou dolphin / fwmariadb para mysql com essas bibliotecas // OR // - oConnection: = ORM_Connection (): Novo (oAdoConn (ou) oDolphinServ (ou) oFwCon) Métodos: Novo() Tabelas () // lista de tabelas HasTable (cTable) -> lExists Tabela (cTable) -> Objeto ORM_Table Perto() - Classe ORM_Table () O objeto Table pode ser instanciado por chamada oTable: = oConnection: Table (cTableName) ou oTable: = ORM_Table (): Novo (oConnection, cTableName) Métodos: Navegação: Primeiro (), Último (), Próximo (), Anterior (), Mover (n), Mover para (n) Outras: Selecione (aFields) Onde (campo, [coperador], valor) OrderBy (campo) Get ([campo]) XBrowse ([fieldlist]) Editar() Soma (campo), Max (campo), Min (campo), Avg (campo) GroupBy (campos) Find (primarykeyval) ou Find (campo, valor) http://wiki.fivetechsoft.com/doku.php?id=fivewin_class_tdockpnel
  2. Boa tarde. Precisei criar uma lib esses dias, e fui fazendo um apanhado de informações para aprender como fazer. Então venho postar aqui o script final que fiz, apenas a título de informação para alguém que venha a buscar pelo google essa informação, rs. fivewin 8.01 xharbour 1.10 bcc 5.5.1 set var_file_lib=\users\eco\minhalib.lib DEL %var_file_lib% set var_harbour=\xharbour-1.10.00\bin\harbour.exe set var_bcc32=\BCC55\Bin\bcc32.exe set var_tlib=\BCC55\Bin\tlib.exe set var_include=C:\BCC55\include;C:\FWH\include;C:\xharbour-1.10.00\include set var_dir_lib=\BCC55\Lib;\xharbour-1.10.00\lib set var_FON=\USERS\PASTA_DE_PROGRAMAS set var_OBJ=\USERS\PASTA_DE_PROGRAMAS\PRJ\OBJ set var_programa=meuprograma SET var_ext=PRG @%var_harbour% %var_FON%\%var_programa%.%var_ext% /N /M /I%var_include% /O%var_OBJ%\ SET var_ext=C @%var_bcc32% -W -DHB_STATISTICS_OFF -DHB_OS_WIN_32 -O2 -OS -d -L%eco_dir_lib% -c -I%var_include% -n%var_OBJ% %var_OBJ%\%var_programa%.%var_ext% SET var_ext=OBJ @%var_tlib% "%var_file_lib%" /0 /P32768 +"%var_OBJ%\%var_programa%.%var_ext%"
  3. E ai galera, como vai vocês, atualmente não trabalho com Fivewin mais gosto muito da linguagem, me lembro dos encontros que eu participei e assim conheci grande parte da familia, em caso de novo encontro pode contar com a minha presença. Um grande abraço a todos Eu sou o Leandroptu de Paracatu/MG.
  4. Saudações nobres colegas. Vasculhando os tópicos pelo fórum, notei que muitos optaram por usar soluções terceirizadas para implementar o uso e gerenciamento de notas fiscais eletrônicas. Estou a utilizar o AcbrMonitor Plus mas gostaria que meus clientes pudessem manter a rotina habitual de impressão do meu sistema. Para tanto, gostaria de imprimir o DANFE com a classe TPrinter do Fivewin, gerando assim o preview costumeiro. Alguém poderia disponibilizar os códigos para impressão de um DANFE com coordenadas específicas para TPrinter? Todos os códigos de impressão os quais tive acesso são exclusivamente para gerar PDF. Sei que a solução do PDF é funcional mas prefiro manter o uso do WMF. Agradeço antecipadamente.
  5. Estou com um problema no módulo de pedidos do meu sistema. O cliente grava um pedido em uma máquina, mas as vezes na outra máquina não aparece esse pedido no XBROWSE. ( Quando isso acontece, o cliente chega até a fechar o sistema na máquina que não aparece o pedido e abrir novamente para aparecer) Pelo que percebi, isso acontece mais no final do dia, porque no período da manhã o sistema funciona normalmente Estou usando fivewin e gravando em banco de dados mysql Alguém já passou por isso antes?
  6. Boa tarde, pessoal. Trabalho com sistema desenvolvido em FiveWin/Clipper ( com xHarbour ) e base de dados em MySql. O sistema é desktop e o banco de dados está Local. Estou precisando hospedar o BD na Nuvem e fazer meu sistema comunicar com essa base. Alguém sabe me dizer se existe a possibilidade de um sistema desktop desenvolvido em FiveWin/Clipper ( com xHarbour ) acessar informações (CRUD) de uma base de dados em Mysql que está na nuvem? Desde já obrigado.
  7. Demo: https://www.dropbox.com/s/7lgvuu5lkqkv76q/ribbon.rar?dl=0 Compativel com qualquer versao do fivewin.
  8. Boa tarde, Estou em busca de trabalhos freelancer, se alguém precisa de algum tipo de rotina, ou qualquer trabalho voltado a programação web/desktop estou a disposição. E-mail/Skype: suporte@lailton.com.br Obrigado.
  9. Pessoal, boa tarde. Estou tentando atualizar os itens de um ComboBox de acordo com um valor previamente informado. Por exemplo: No cadastro do cliente, ao marcar o Sexo como 'Masculino', o comboBox referente a faixa etária deverá ser preenchido com os seguintes valores: { '10-15','16-20' }. Porém, se no cadastro for marcado o Sexo como 'Feminino', o comboBox deverá ser preenchido com os valores: {'12-16'. '17-20'} Já tentei procedimentos como: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Local opcao := '', opcoes := {} REDEFINE COMBOBOX comboOpcoes VAR opcao ITEMS opcoes ID 4018 OF oFol:aDialogs[6] UPDATE ... // Chamo essa função no momento em que é marcado o Sexo do cliente em questão Function atualizaCombo(sexo,comboOpcoes,opcoes) DO CASE CASE sexo == "M" Asize(opcoes,0) AADD(opcoes,"10-15") AADD(opcoes,"16-20") CASE sexo == "F" Asize(opcoes,0) AADD(opcoes,"12-16") AADD(opcoes,"17-20") OTHERWISE Asize(opcoes,0) ENDCASE comboOpcoes:Refresh() Return .T. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Não estou conseguindo deixar esse combo dinâmico da forma como citei acima. Alguém poderia me ajudar? Desde já obrigado!
  10. Amiguinhos, Aquele velho sonho de conseguir executar código xBase contido em uma .DLL compilada com Harbour se concretizou para mim. Noites sem dormir e muita pesquisa, testes, compilações, chingamentos e sem sapeca-iá-iá, mas consegui. Meus primeiros testes foram com exemplos existentes em todo lugar, Harbour, xHarbour, Fivewin, etc. Busquei informações de como o RunDLL32 do Windows trabalhava e fiz minhas tentativas. Num primeiro momento consegui fazer um EXE executar uma função em uma DLL mas só executava a primeira função que encontrava. Bom já era um começo, mas ao retornar ao EXE paulava. Tentei com RunDLL32 chamado do EXE e não enfrentava mais este problema, mas tinha uma demora de uns segundos e não era o que eu queria. Fiz meu próprio RunDLL32 mas ainda tinha de executá-lo indiretamente. Bom enfim, cheguei onde queria e o primeiro passo para isto foi compilando o código de minha DLL: rochadll.prg /* * Jose Carlos da Rocha * Trabalho com DLL de codigo xBase para uso com Harbour * Sao Paulo - 09/09/2014 * Baseados nos exemplos BabuDLL e outros */ #include "fivewin.ch" #pragma BEGINDUMP #include <windows.h> #include <hbvm.h> #include <hbapiitm.h> BOOL WINAPI DllEntryPoint( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { HB_SYMBOL_UNUSED( hinstDLL ); HB_SYMBOL_UNUSED( fdwReason ); HB_SYMBOL_UNUSED( lpvReserved ); switch( fdwReason ) { case DLL_PROCESS_ATTACH: hb_vmInit( FALSE ); break; case DLL_PROCESS_DETACH: hb_vmQuit(); break; } return TRUE; } void pascal __export HBDLLENTRY( char * cProcName ) { hb_itemDoC( cProcName, 0, 0 ); return 0; } void pascal __export CusTstBrw() { hb_itemDoC( "CusTstBrw", 0 ); } void pascal __export HBDLLENTRY2( char * cProcName, PHB_ITEM pParam1, PHB_ITEM pParam2 ) { hb_itemDoC( cProcName, 2, pParam1, pParam2 ); } #pragma ENDDUMP /* * MENUITEM "&Clientes..." ACTION HbDllEntry( "Customer" ) MESSAGE "Manutencao de Clientes" * Esta funcao foi chamada atraves de parametro da funcao exportavel hbDLLEntry() * Chamada indireta, pois a funcao abaixo passa por outra funcao para agir * Aqui o exemplo CUSTOMER foi imputado na DLL para demonstrar que trechos grandes de codigo * podem residir dentro de uma DLL e serem chamados a partir de um EXE externo. */ #include "Customer.ch" function Customer() local oWnd, oBar local oClients, oClient //local oName, cName SET _3DLOOK ON USE Customer SHARED NEW ALIAS Clients USE Sales SHARED NEW SELECT Clients DEFINE WINDOW oWnd TITLE "Reporting tools" MDI ; MENU BuildMenu(oClients) COLOR "N/W" DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 60 2007 DEFINE BUTTON OF oBar ACTION MsgInfo( "Click" ) ; FILENAME "..\bitmaps\attach.bmp" PROMPT "Attach" DEFINE BUTTON OF oBar ACTION MsgInfo( "Click" ) ; FILENAME "..\bitmaps\calendar.bmp" PROMPT "Calendar" DEFINE BUTTON OF oBar ACTION MsgInfo( "Click" ) ; FILENAME "..\bitmaps\people2.bmp" PROMPT "Clients" DEFINE BUTTON OF oBar ACTION MsgInfo( "Click" ) SET MESSAGE OF oWnd TO "Testing the FiveWin Report Class" CENTERED ACTIVATE WINDOW oWnd CLOSE DATABASES return nil function BuildMenu(oClients) local oMenu MENU oMenu MENUITEM "&DataBases" MENU MENUITEM "&Clients..." ACTION BrwClients(oClients) ; MESSAGE "Clients management" MENUITEM "&Report..." ACTION GenReport() SEPARATOR MENUITEM "&End" ACTION oWnd:End() ; MESSAGE "End this test" ENDMENU oMenu:AddMdi() // Add standard MDI menu options ENDMENU return oMenu function BrwClients(oClients) local oBrw, oIco, oBarBrw if oClients != nil return nil endif DEFINE ICON oIco FILENAME "..\icons\customer.ico" DEFINE WINDOW oClients TITLE "Clients management" ; MDICHILD ICON oIco DEFINE BUTTONBAR oBarBrw OF oClients DEFINE BUTTON OF oBarBrw ACTION ShowClient(oClients) @ 2, 0 LISTBOX oBrw FIELDS OF oClients ; SIZE 500, 500 // ON CHANGE ChangeClient(oClients) oClients:SetControl( oBrw ) ACTIVATE WINDOW oClients ; VALID( oClients := nil, .t. ) // We destroy the object return nil function GenReport() local oWnd, oIco DEFINE ICON oIco FILENAME "..\icons\print.ico" DEFINE WINDOW oWnd MDICHILD TITLE "Clients report" ; VSCROLL HSCROLL ICON oIco ACTIVATE WINDOW oWnd return nil function ShowClient(oClients) local oIco, oClient local oName, cName if oClient != nil return nil endif DEFINE ICON oIco FILENAME "..\icons\Person.ico" DEFINE DIALOG oClient RESOURCE "Client" ; ICON oIco TITLE "Detalhes" REDEFINE SAY ID 3 OF oClient // To get the proper color REDEFINE SAY ID 4 OF oClient REDEFINE SAY ID 5 OF oClient REDEFINE GET oName VAR cName ID ID_NAME OF oClient REDEFINE BUTTON ID ID_NEXT OF oClient ACTION GoNext(oClients,oName) SELECT Sales // We select Sales to properly initialize the Browse REDEFINE LISTBOX FIELDS ID ID_SALES OF oClient ACTIVATE DIALOG oClient CENTERED NOWAIT ; VALID ( oClient := nil, .t. ) // Destroy the object SELECT Clients return nil function ChangeClient(oClients,oName) if oClients != nil cName = AllTrim( Clients->Last ) + ", " + Clients->First oName:Refresh() endif return nil function GoNext(oClients,oName) if oClients != nil oClients:oControl:GoDown() else SKIP if EoF() GO BOTTOM endif endif ChangeClient(oClients,oName) return nil /* * MENUITEM "&Browse..." ACTION HbDllEntry( "CusTeste" ) MESSAGE "Browse de Clientes" * Esta funcao foi chamada atraves de parametro da funcao exportavel hbDLLEntry() * Chamada indireta, pois a funcao abaixo passa por outra funcao para agir */ function CusTeste() USE Customer SHARED NEW ALIAS Clients Browse() CLOSE DATABASES return .t. /* * MENUITEM "&Customer..." ACTION CusTstBrw() MESSAGE "Browse de Clientes" * Esta funcao foi chamada dentro da DLL usando o proprio nome ao inves de * usar hbDLLEntry(), desta forma ficou mais legal */ function CusTstBrw() USE Sales SHARED NEW Browse() CLOSE DATABASES return .t. Dentro do código da DLL existem aplicativos que serão chamados pela aplicação principal, Customer(), CusTeste() e CusTstBrw(). Atentem para o seguinte trecho: #pragma BEGINDUMP ... void pascal __export HBDLLENTRY( char * cProcName ) ... void pascal __export CusTstBrw() ... #pragma ENDDUMP Vejam que HBDLLENTRY e CusTstBrw são exportadas, ou seja, são visíveis as chamadas à DLL. Então como compilar este .PRG e transformá-lo em uma .DLL? Eu usei o bom-e-velho BUILDH.BAT com algumas alterações, vejam os trechos que foram modificados: %hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w0 /p %3 /d__HARBOUR__ > comp.log IF ERRORLEVEL 1 GOTO COMPILEERRORS @type comp.log echo -O2 -e%1.exe -I%hdir%\include;%bcdir%\include %1.c > b32.bc %bcdir%\bin\bcc32 -M -c @b32.bc copy %bcdir%\lib\uuid.lib :ENDCOMPILE IF EXIST %1.rc %bcdir%\bin\brc32 -r -I%bcdir%\include %1 rem IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1 echo %bcdir%\lib\c0d32.obj + > b32.bc Quem usa este .BAT dirá, mas não tem nada de diferente neste trecho, mas tem sim e está na última linha, onde se vê echo %bcdir%\lib\c0d32.obj + > b32.bc Quando compilamos nossos programas para gerar executáveis o arquivo c0w32.obj é o usado, mas neste caso usaremos o c0d32.obj. Outra linha alterada no nosso BUILDH.BAT é a linha de chamada do iLink32.exe if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -s -Tpd @b32.bc No lugar de -Gn -aa -s -Tpe eu alterei para -Gn -aa -s -Tpd, onde e é para EXE e d é para DLL. Bom, depois de gerada a DLL é possivel testá-la sem precisar do uso do aplicativo principal, bastando usar para isto o RunDLL32.exe do Windows, executando um comando simples: %windir%\System32\RunDLL32 rochadll.dll,CusTstBrw Leve em consideração que os testes foram feitos dentro da pasta SAMPLES do Fivewin, portanto as tabelas CUSTOMER.DBF e SALES.DBF serao usadas. Se a DLL foi bem gerada um browse aparecerá mostrando os registros da tabela. Agora vamos a parte do aplicativo principal. Este poderá ser compilado normalmente usando o BUILDH.BAT: rocha.prg /* * Jose Carlos da Rocha * Trabalho com DLL de codigo xBase para uso com Harbour * Sao Paulo - 09/09/2014 * Baseados nos exemplos BabuDLL e outros */ #include "FiveWin.ch" FUNCTION Main() local oWndMain, oBarMain DEFINE WINDOW oWndMain TITLE "Janela dentro do EXE" MDI MENU BuildMenuMain() COLOR "N/W" DEFINE BUTTONBAR oBarMain OF oWndMain SIZE 60, 60 2007 DEFINE BUTTON OF oBarMain ACTION WinExec( "RunDLL32.exe rochadll.dll,CusTstBrw" ) DEFINE BUTTON OF oBarMain ACTION UseDLL( "CusTstBrw", "rochadll.dll" ) SET MESSAGE OF oWndMain TO "Testing the FiveWin DLLs" CENTERED ACTIVATE WINDOW oWndMain MAXIMIZED VALID MsgYesNo( "Quer sair?" ) RETURN nil FUNCTION BuildMenuMain() local oMenu MENU oMenu MENUITEM "Administracao" MENU MENUITEM "&Clientes..." ACTION HbDllEntry( "Customer" ) MESSAGE "Manutencao de Clientes" MENUITEM "&Browse..." ACTION HbDllEntry( "CusTeste" ) MESSAGE "Browse de Clientes" MENUITEM "&Customer..." ACTION CusTstBrw() MESSAGE "Browse de Clientes" SEPARATOR MENUITEM "&Sair" ACTION oWnd:End() ; MESSAGE "Sair do sistema" ENDMENU oMenu:AddMdi() // Add standard MDI menu options ENDMENU return oMenu FUNCTION UseDLL( cFuncName, cDllName ) local hDLL, cFarProc hDLL = LoadLibrary( cDllName ) if hDll > 32 cFarProc := GetProcAddress( hDLL, "DLLSYMINIT", .T., _INT ) CallDLL( cFarProc ) Eval( &( "{||" + cFuncName + "() }" ) ) endif return nil //-------------------------------------------------------------------------// #include "dll.ch" DLL32 FUNCTION CusTstBrw() AS LONG PASCAL LIB "rochadll.dll" DLL32 FUNCTION HBDLLENTRY( cProc AS LPSTR ) AS LONG PASCAL LIB "rochadll.dll" DLL32 FUNCTION HBDLLENTRY2( cProc AS LPSTR, pItem1 AS LONG, pItem2 AS LONG ) AS LONG PASCAL LIB "rochadll.dll" DLL32 FUNCTION HBDLLENTRY3( cProc AS LPSTR, pItem1 AS _INT, pItem2 AS _INT ) AS _INT PASCAL LIB "rochadll.dll" Vejamos agora algumas caracteristicas: ... DEFINE BUTTON OF oBarMain ACTION WinExec( "RunDLL32.exe rochadll.dll,CusTstBrw" ) ... No trecho acima faço execução de uma função dentro da .DLL usando execução de aplicativo externo. ... DEFINE BUTTON OF oBarMain ACTION UseDLL( "CusTstBrw", "rochadll.dll" ) ... Neste trecho, usando funções do Harbour exemplifico como chamar uma função existente na .DLL. Esta função deve ser EXPORTável e para tal foi necessária a definição de chamada desta função: ... DLL32 FUNCTION CusTstBrw() AS LONG PASCAL LIB "rochadll.dll" ... Abaixo vemos as formas de chamar nossas funções usando HbDllEntry, mas particularmente acho feio assim: ... MENUITEM "&Clientes..." ACTION HbDllEntry( "Customer" ) MESSAGE "Manutencao de Clientes" MENUITEM "&Browse..." ACTION HbDllEntry( "CusTeste" ) MESSAGE "Browse de Clientes" ... A função HbDllEntry() enxerga as funções que não são EXPORTáveis. Vale lembrar que as .DLL não ficaram pequenas, mas o fator levado em consideração é que para a manutenção fica mais produtivo ter várias .DLLs no sistema e ao modificar uma ou outra, podemos atualizar somente elas sem prejuízo ao EXE principal. Outra coisa importante: As telas usadas no aplicativo, não importando qual .DLL poderá usá-la, deverão ser compiladas com o .EXE principal. O Harbour usado foi a versão 3.2-17626. O download deste trabalho encontra-se no 4shared.com. Tenho grande certeza, que seria possivel chamar código xBase contido nas .DLLs através de outras linguagens como Delphi ou Visual Basic. Vale a pena testar e retornar.
  11. Estou precisando redimencionar o tamanho de imagens (BMP,JPG), bem parecido com o redimencionar do PAINT. Alguma ideia. Tem que ser via sistema. "Me interessa o futuro porque é o lugar onde vou passar o resto da minha vida."
×
×
  • Create New...