HOWTO FLAGSHIP EM PORTUGUÊS
Revisão 1.7 - 17/06/1999

O objetivo deste "HOWTO" é  auxiliar os amigos que estão iniciando (como eu) a estudar/migrar programas Clipper(DOS) para FlagShip(LINUX / UNIX). Todos as dicas e exemplos deste documento estão sendo criados através do FlagShip Personal 4.48 (free) em um Conectiva Linux Guarani 3.0 .

Este documento pode ser copiado e distribuído livremente. Correções, adições e comentários podem ser enviados para o e-mail wunsch@hotmail.com.

José Maria Wunsch
Guarapuava PR


01) O QUE É O FLAGSHIP ?

É uma linguagem de programação 4GL com compilador/tradutor de código de linguagens xBase para linguagem C no ambiente UNIX ( roda em mais de 50 tipos de UNIX inclusive o LINUX) gerando executáveis nativos.

A linguagem FlagShip é baseada no padrão do Xbase com todo a extensões do CA-CLIPPER.   Todos os programas escritos em Clipper'87 ou 5.x  e outros dialetos do Xbase podem ser compilados pelo FlagShip com mínimas adaptações. Graças a compatibilidade com o CA-CLIPPER é a melhor ferramenta para transportar aplicações do DOS para UNIX   (e brevemente para 32Bit PC baseado em Windows.)

FlagShip é projetado principalmente por desenvolvedores de software profissionais. Mas por causa de sua interface simples, pode ser usado perfeitamente por semi-profissionais e usuários de computador avançados que necessitam criar aplicações de banco de dados com mínimo esforço de programação.

Está sendo desenvolvido (desde 1990) por uma empresa de Munique (Alemanha) chamada MULTISOFT. Mais de 2.000 cópias (1995) instaladas na Europa. Foi introduzido nos Estados Unidos em 1994 pela (WorkGroup) e no Brasil em 1999 pela Inso Informática.

Todas as vantagens de UNIX agora estão disponíveis para os desenvolvedores Clipper:   multiusuário / multitarefa, nenhumas limitações de RAM, acesso a rede, altos níveis de  segurança, e muito mais... As aplicações podem ser distribuídas e copiadas sem royalty ou taxas.

O FlagShip trás produtividade obtidas pelas linguagens Clipper/ xBase para o poderoso UNIX.


02) O QUE CONTÉM O FLAGSHIP ?

O FlagShip contém:


03) QUAIS AS VANTAGENS DO FLAGSHIP ?


04) QUAIS AS DESVANTAGENS DO FLAGSHIP ?


05) ALGUNS MOTIVOS PARA VOCÊ ADOTAR O FLAGSHIP


06) EM QUE SISTEMAS OPERACIONAIS O FLAGSHIP RODA ?

Todos os maiores UNIX, tais como : 
Linux, SCO, IBM, SUN, AT&T, HP, DEC, Sequent, Bull, Fujitsu, Data General, Motorola, Unisys, NCR, UnixWare, Silicon Graphics, Siemens e muitos outros (mais de 50 ao todo).


07) EM QUE SISTEMAS OPERACIONAIS O FLAGSHIP AINDA NÃO RODA ?

DOS/Windows 95/98/NT, NetBSD, FreeBSD, BSDI, QNX  e algumas variações destes. A versão Windows NT estará disponível em breve.


08) EM QUE  HARDWARE O FLAGSHIP RODA ?

Máquinas x86 (486,Pentium), Workstation, Mainframes e Superservers.


09) QUAL A VERSÃO ATUAL DO FLAGSHIP ?

A versão atual do FlagShip é a 4.4.


10) ALGUMAS CARACTERÍSTICAS DA LINGUAGENS (VERSÃO 4.4):


11) QUAIS AS NOVIDADES PARA O FUTURO ?


12) O FLAGSHIP É MAIS RÁPIDO QUE O CLIPPER ?

Uma aplicação em FlagShip é de 2 a 100 vezes mais rápido do que o Clipper. É importante ter um servidor bem configurado (memória, hd,etc.) para se ter um desempenho melhor.


13) QUAIS AS LICENÇAS DO FLAGSHIP ?


14) COMPATIBILIDADE DO KERNEL E COMPILADOR C PARA LINUX

Ao resolver instalar o FlagShip no Linux você precisa escolher uma versão compatível com o Kernel e ferramentas (compiladores,bibliotecas,utilitários). Atualmente existem 4 versão do FlagShip para Linux. Escolha corretamente, caso contrário o seu executável não compilará ou rodará corretamente, veja as opções disponíveis para o Linux :

Para verificar quais versões você possui use:
     ls -l  /lib/libc*
     cc  -v

Se estiver instalando através de uma distribuição não precisa se preocupar pois já colocaram a versão correta.


15) QUAL O ESPAÇO REQUERIDO PARA INSTALAR O FLAGSHIP ?

Aproximadamente 25 Mbytes de espaço em máquinas com pelo menos 8 Mbytes de RAM .


16) COMO CONSEGUIR O "SERIAL NUMBER / ACTIVATION KEY" PARA
      INSTALAR O FLAGSHIP PERSONAL (FREE) PARA LINUX

Para instalar a versão Personal Grátis (linux) você precisará do "Serial Number / Activation Key". Estes dados são enviados gratuitamente (via e-mail) após o preenchimento de um formulário na home page do FlagShip (Multisoft), o endereço é:

http://www.fship.com/free.html


17) COMO INSTALAR O FLAGSHIP PERSONAL (FREE) EM UM SERVIDOR
      COM O CONECTIVA LINUX GUARANI ?

Os arquivos do FlagShip são instalados em vários diretórios públicos  :

Executáveis e scripts............................:  /usr/bin/*
Bibliotecas...........................................:  /usr/lib/*
Arquivos header..................................:  /usr/include/*
Arquivos de fontes e documentos........:  /usr/FSsrc/*
Manual on-line.....................................:  /usr/FSsrc/manual/*
Parâmetros do compilador...................:  /etc/FSconfig


18) COMO COPIAR UM SISTEMA DO "DOS" (CLIPPER) PARA O
      LINUX (FLAGSHIP)?

Para copiar um sistema já existente em clipper no dos/windows para linux utilize um programa FTP, uma opção boa é o WS FTP (versão shareware), este FTP tem uma opção importante que permite copiar arquivos para o linux convertendo nomes dos arquivos para minúsculas. (importe para depois utilizar o 'fspreset.fh')

Copie todos os arquivos PRG no formato ASC e os demais (DBF,DBT,FRM) no formato BINÁRIO.

Existem também vários utilitários do próprio FlagShip para o tratamento de arquivos DOS / UNIX, tais como :


19) PASSOS PARA MIGRAR UM SISTEMA CLIPPER PARA LINUX/FLAGSHIP


20) FASES DA GERAÇÃO DE UM EXECUTÁVEL NO FLAGSHIP

1 - Precompila ( /usr/bin/FlagShip_p ).
2 - Converte os PRG para a linguagem C ( /usr/bin/FlagShip_c ).
3 - Compila usando um compilador UNIX ( /usr/bin/cc ).
4 - Linka usando um linker padrão UNIX ( /usr/bin/ld ).

Todas as fases são realizada automaticamente a se executar FlagShip <nome.do.progr.>. A configuração pode ser alterada no arquivo (/etc/FSconfig).


21) COMO COMPILAR NO FLAGSHIP

FlagShip   --- Executa o FlagShip
FlagShip [opções] <Arquivos>

Alguns exemplos:

Principais parâmetros de compilação:

-M<nome>  : Define o nome do programa principal (main)
-a                  : Executa somente a fase de preprocessador.
-m                 : Compilação modular
-nd               : Exclui informações para debugação
-o<nome>    : define o nome do executável
-q                  : Compila no modo "quiet", não apresenta os nr de linhas de compilação

Observação:


22) VELOCIDADADE DE COMPILAÇÃO

Os clippeiros poderão ficar um pouco decepcionados ao compilar seus primeiros programas em FlagShip, isto porque o compilador C 'cc/gcc' é um pouco lento, para tornar mais rápido basta utilizar o 'make' (semelhante ao RMAKE do clipper). Veja alguns exemplos:

     /usr/FSsrc/tools/321contact/source.d/Makefile
     /usr/FSsrc/tools/dbu/Makefile

Os arquivos .RMK não são compatíveis com os Makefile, você terá que adapta-los.


23) COMO EXECUTAR UM PROGRAMA FLAGSHIP ?

<nome_do_executável>  ----------------> executa o aplicativo
./<nome_do_executável> ---------------> executa o aplicativo que está no dir. corrente
newfscons <nome_do_executável> -----> se estiver no console
newfsterm <nome_do_executável> -----> se estiver em um terminal
newfswin <nome_do_executável> ------> se estiver em um x-windows

Por motivo de segurança o diretório corrente não faz parte do PATH. Portanto para executar um programa informe um "./" antes do nome. Ex.:
newfscons ./teste

Se você desejar colocar o diretório corrente no PATH adicione o seguinte comando no arquivo /etc/profile :
export $PATH:.
Agora você pode executar da seguinte forma:
newfscons teste


24) - UTILIZANDO O DBU DO FLAGSHIP

O script do DBU da versão personal executa um runFS que não é encontrado. Para rodar o DBU em qualquer parte do linux edite o arquivo /usr/bin/dbu substitua o 'runFS' por 'newfscons'.
Se as teclas de funções não estiverem funcionando quando estiver em um terminal, execute o seguinte comando no prompt:

export TERM=at386


25) FLAGSHIP COM SAMBA

O samba permite que outras máquinas Windows acessem os arquivos, diretórios e impressoras de um servidor linux. Assim é possível mapear um diretório do linux (ex. drive G:) em uma maquina Windows no ambiente de rede. Depois de mapeado pode-se acessar pelo DOS o drive G:

Você pode por exemplo:

Você precisa ter no mínimo 2 máquinas ligadas em rede (uma com o linux e a outra com Windows) para poder usar o Samba.


26) UTILIZAÇÃO DO FSPRESET.FH

Um dos principais problemas na migração de sistemas do Clipper para FlagShip é:

Para que você não tenha que fazer mudanças em todo o seu fonte basta incluir a seguinte linha no topo de seu programa principal (MAIN):
    #include "fspreset.fh"
Com isto todo o seu sistema será adaptado automaticamente para:
-   converter todo os nomes de arquivos dos comandos abaixo para minúsculas.
    USE <file>
    SET INDEX TO <file>
    INDEX ON .. TO <file>
    COPY TO <file>
    APPEND FROM <file>
    PRINT TO <file>
    FCREATE <file>
    FOPEN <file>
    DIR <file>
    ADIR <file>
    DIRECTORY <file>
-   converte path´s para formato UNIX Ex.:
    USE \SISTEMA\Arquivo.DBF ---> USE /sistema/arquivo.dbf
substitui NTX por IDX
    index on codigo to codigo.ntx ---> index on codigo to codigo.idx


27) CONSULTANDO O MANUAL ON-LINE DO FLAGSHIP

O manual on-line é a maior fonte de informações sobre o FlagShip, possui mais de 1500 páginas. Para executar digite :

fsman
ou
newfscons fsman

O executável do manual on-line é criado automaticamente (inclusive índices) durante a instalação do FlagShip. Para obter informações de como usar o "fsman" leia o arquivo :
( /usr/FSsrc/manual/fsman.dos ).


28) EDITOR DE PROGRAMAS PARA FLAGSHIP

Para quem não gosta do editar seus PRG´s no ´vi´, editem no ´joe´ . o ´joe´ é um editor de textos com comandos semelhantes aos editores do Clipper ou Borland. Outra opção é utilizar editores do DOS/WINDOWS através do SAMBA.


29) CRIANDO APLICATIVOS PARA WEB

Como o FlagShip e um pouco de conhecimento em HTML (especialmente formulários) você poderá criar aplicativos CGI facilmente. Veja alguns exemplos em:

    /usr/FSsrc/tools/fs4web
    /usr/FSsrc/tools/webkit


30) COMO IMPRIMIR ?

O Clipper imprime diretamente na porta de impressora. Em Unix, onde muitos usuários usam os recursos da máquina simultaneamente isto poderia causar problemas. A solução é imprimir através de SPOOL de impressão. O FlagShip permite você imprimir diretamente na porta de impressão (igual ao DOS) mas sugere o uso em SPOOL. O Unix possui vários comandos para administrar SPOOL de impressão.

Supondo que sua impressora esteja configurada para o  lp1.

no prompt do linux:
    cp teste.txt /dev/lp1           (copia diretamente para a porta de impressão lp1)
    cat teste.txt > /dev/lp1    
(copia diretamente para a porta de impressão lp1)
    lpr teste.txt                      
(imprime através de SPOOL )

1) Para imprimir diretamente na porta de impressão
    Inclua o comando seguinte para imprimir diretamente na porta lp1:
    SET PRINTER TO /dev/lp1

2) Para imprimir utilizando SPOOL.
    SET PRINTER TO rel.prn
    .... comandos...
    run lpr rel.prn

Todos os demais comandos de impressão podem continuar como no clipper, ex.:
    - report form teste to print
    - set device to print
    - set print on

O Linux pode  imprimir em impressoras:

Lembre-se:

Por default o FlagShip imprime sempre em um arquivo "spooler" no diretório corrente.
O nome é criado automaticamente da seguinte forma: <nome_do_programa_principal>.<process_id>

O nome do arquivo pode ser recuperado através do comando FS_SET("print"), exemplo:

report form teste to print noconsole      //  imprimi um relatório
print_file := FS_SET("print")                //   recupera o nome do arquivo SPOOLER
run lpr -dlaser -m -s <print_file>          //   imprime o arquivo em um SPOOL chamado laser
erase <print_file>                                //   exclui o arquivo SPOOLER

ou ainda

report form teste to print noconsole    
run ("lpr -dlaser -m -s " + FS_SET("print"))


31) POSSO USAR O FONTE C (QUE FOI TRADUZIDO) NO DOS?

Quando um fonte PRG é convertido para C, ele é feito especialmente para o UNIX (50 tipos de UNIX), portando você poderá ter problemas ao tentar rodar no DOS como administração de memória. Mais a Multisoft promete lançar novas versão em breve para Windows/ NT.


32) EU POSSO MANTER UM CÓDIGO FONTE COMUM PARA UNIX E DOS ?

Sim!. O FlagShip tem um número de recursos que tornam isto muito fácil. Compile uma versão de código com o Clipper para executar em DOS, ou com FlagShip ao executar e Unix..

Você poderá colocar alguns #ifdef para compatibilizar programas DOS/UNIX, exemplo:

#ifdef  FlagShip
    #include "fspreset.fh"
#endif


33) PORQUE A RESPOSTA DE VÍDEO É MAIS LENTA DO QUE NO DOS ?

Esta é uma pequena desvantagens do FlagShip em relação ao Clipper, isto corre porque o Clipper escreve diretamente na RAM de vídeo. O FlagShip não pode fazer isto devido a natureza do UNIX (multi-usuário) e o provável use em terminais remotos. Já no FlagShip tudo é feito no servidor, a resposta de vídeo precisa trafegar pela rede até o vídeo do terminal.


34) O RUNTIME DO FLAGSHIP NECESSITA DE LICENÇAS ?

Sistemas escritos em FlagShip podem ser copiados e distribuídos sem nenhum pagamento de royalty ou taxas de runtime (igual ao Clipper).


35) O TAMANHO DO EXECUTÁVEL DO FLAGSHIP É MAIOR
      QUE AO DO CLIPPER ?

Sim (2 a 3 vezes maior), isto por causa do código nativo comparado com ao P-código produzido pelo Clipper. Mas você pode criar executáveis até 2 Gigabytes e rodará perfeitamente.


36) ARQUIVOS DE ÍNDICES NTX DO CLIPPER NÃO PODEM SER
       USADOS NO FLAGSHIP ?

Na atual versão (4.4) não, mas a Multisoft promete para próximas. O arquivo de índice default para o FlagShip é o IDX.


37) ONDE EU CONFIGURA AS OPÇÕES DO COMPILADOR ´CC´

No arquivo /etc/FSconfig.


38) QUAIS AS EXTENSÕES DE ARQUIVOS UTILIZADAS PELO FLAGSHIP ?

A principais são:


39) QUAL É O COMPILADOR E LINKEDITOR DO FLAGSHIP ?

Um fonte em linguagem C (após a tradução de um .PRG) é compilado por "cc" ou "gcc" e linkado por "ld" mais isto depende da versão do UNIX.


40) COMO INTERROMPER UM PROGRAMA EM EXECUÇÃO ?

No Clipper se o comando SETCANCEL(.F.) basta teclar ALT C, o equivalente no FlagShip é o CONTROL K.


41) QUAL A TECLA QUE ATIVA O DEBUGADOR DO FLAGSHIP

Para chamar o debugador pressione CONTROL O.


42) POSSO COPIAR BIBLIOTECAS DO CLIPPER(.LIB) PARA O LINUX
      E USAR NO FLAGSHIP ?

Se você possuir os fontes poderá copiar para o Linux e compila-las novamente (FlagShip ou CC) gerando uma versão para o FlagShip. Se as bibliotecas forem de terceiros terá que entrar em contado com o representante/fornecedor e solicitar uma versão compatível com o FlagShip.


43) EU UTILIZO A BIBLIOTECA 'CA-TOOLS' DO CLIPPER, POSSO USAR
      NO FLAGSHIP ?

No FlagShip existe a biblioteca 'FS2 Toolbox' que é compatível com a CA-TOOLS do Clipper. Veja alguns exemplos no diretório ( /usr/FSsrc/tools/fs2tools ).


44) O QUE EU PRECISO ESTUDAR PARA APRENDER A LINGUAGEM FLAGSHIP ?

Se você já é um programador em Clipper poderá criar programas sem nenhum estudo adicional. Terá que apenas se adaptar ao UNIX o que é bastante simples para quem já trabalho com o DOS. Para usuários iniciantes o melhor e começar estudar nos vários livros existentes sobre CLIPPER e UNIX.


45) COMO RODAR PROGRAMAS DE UM SERVIDOR LINUX
     EM UMA MÁQUINA COM WINDOWS 95/98.

Través de emuladores de terminal, existem vários por ai inclusive shareware.


46) POSSO ACESSAR BANCO DE DADOS ORACLE, INFORMIX, SYBASE ?

Sim, através de código em C (FlagShip Open C API System). Mas a Multisoft promete lançar RDD para estes bancos de dados. A Inso Informática também deverá disponibilizar alguns RDD em breve (CA-INGRES II, ORACLE..)


47) POSSO FAZER UM SISTEMA EM FLAGSHIP PARA AMBIENTE
      GRÁFICO (GUI) ?

A Multisoft promete para breve o Visual FlagShip (VF) que poderá rodar em ambientes gráficos do UNIX e WINDOWS.


48) DIFERENÇAS ENTRE O CLIPPER / DOS E FLAGSHIP / UNIX


49) COMO CRIAR OU EDITAR ARQUIVOS DE RELATÓRIOS (.FRM) OU
      ETIQUETAS (.LBL) NO UNIX

Os arquivos de relatório ou etiquetas (FRM/LBL) podem ser criados no DOS e copiados para o UNIX. Ainda não encontrei uma forma de criar diretamente no UNIX.


50) COMO MELHORAR O DESEMPENHO DO FLAGSHIP ?

O desempenho de compilação/execução de programa FlagShip e ligado diretamente ao desempenho do servidor. Quanto mais usuários estiverem utilizando o servidor/programas (processos) ao mesmo tempo, pior será o desempenho.

Algumas dicas para melhorar o desempenho do servidor:


51) COMO VERIFICAR AS CONFIGURAÇÕES ATUAIS ?

As configurações como: teclado, terminais, telas, cores e teclas especiais podem ser verificadas através do programa /usr/FSsrc/fscheck.prg.

Para compilar use: FlagShip fscheck -ofscheck


52) QUE ARQUIVOS EU PRECISO INSTALAR EM MEU CLIENTE ?


53) POSSO CRIAR APLICAÇÕES COM ACESSO A PORTA SERIAL OU MODEM ?

É perfeitamente possível tratar portas seriais no FlagShip através das funções FOPEN(), FWRITE(), FCLOSE(). Também a biblioteca "FS2 Toolbox" possui várias funções para o controle de portas seriais.


54) FLAGSHIP E O BUG DO ANO 2000

O FlagShip armazena a data sempre com o século cheio, Por default as datas são apresentadas no formato "YY", para adaptar seu programa para o ano 2000 basta mudar a apresentação para "YYYY". Acrescente o comando seguinte no topo de seu programa principal :

SET CENTURY ON      // mostrará datas no formato longo

Mais informações veja em : http://www.fship.com/y2k.html


55) RODANDO O FLAGSHIP EM TERMINAIS

O Unix pode ser acessado por terminais via linhas seriais ou rede. O FlagShip suporta todas as principais marcas de terminais através do fornecimento de arquivos de descrições. Mas você pode fazer configurações específicas ou mudar as configurações atuais para funcionar teclas e cores. Quando for usar terminais "ansi" ou "vt100" utilize os correspondentes "fsansi" e "fsvt100" que foram adaptados para o FlagShip.


56) QUAIS BANCO DE DADOS SQL EU POSSO ACESSAR ATRAVÉS DO SQLKIT ?

Atualmente podem ser acessados o Just Logic/SQL,  PostGreSQL e o Solid Server, mais informações podem ser encontradas no diretório ( /usr/FSsrc/tools/sqlkit ).


57) COMO EXECUTAR UM PROGRAMA EM UM AMBIENTE XWINDOWS
      (WINDOWS MAKER, KDE, ETC.)

Dentre de um emulador xterm execute o comando :
newfswin <nome_do_programa>
Ou crie um ícone para o comando.


58) POSSO ACESSAR ARQUIVOS DO COBOL NO FLAGSHIP ?

Sim, arquivos do COBOL podem ser acessados no FlagShip através do RDD Cobol. Mais informações você poderá encontrar no diretório ( /usr/FSsrc/tools/rddcobol ).


59) COMO DESINSTALAR O FLAGSHIP

Para desinstalar o FlagShip basta executar o script ( FSuninstall ).


60)  ONDE ENCONTRAR INFORMAÇÕES SOBRE O FLAGSHIP ?

Internacionais:

Nacionais:


1