typedef struct {
      int   reservado           (GERAL);
      int   pagina              (GERAL);
      int   contador            (GERAL);
      int   dia                 (GERAL);
      int   mes                 (GERAL);
      int   ano                 (GERAL);
      char  mes_extenso         (GERAL)[20];
      data  d1                  (GERAL);
      data  d2                  (GERAL);
      tipo_horas  h1            (GERAL);
      tipo_horas  h2            (GERAL);
      char  aux1                (GERAL)[80];
      char  aux2                (GERAL)[80];
      char  original            (GERAL)[80];
      int   num_via             (GERAL);
      int   linha               (GERAL);
      double euro               (GERAL);
     } tipo_geral;
typedef struct {                // 1
        int   existe            (EMPRESA);
        int   numero            (EMPRESA);
        char  nome              (EMPRESA)[72];
        char  directoria        (EMPRESA)[20];
        char  password          (EMPRESA)[20];
        char  contribuinte      (EMPRESA)[15];
        char  dados 0           (EMPRESA)[72];
        char  dados 1           (EMPRESA)[72];
        char  dados 2           (EMPRESA)[72];
        char  dados 3           (EMPRESA)[72];
        char  dados 4           (EMPRESA)[72];
        char  dados 5           (EMPRESA)[72];
        char  dados 6           (EMPRESA)[72];
        char  dados 7           (EMPRESA)[72];
        char  MensAnual         (EMPRESA)[2];
        char  MensTrim          (EMPRESA)[2];
        char  Regime            (EMPRESA)[2];
        char  flg_s             (EMPRESA)[2];
        char  drive             (EMPRESA)[6];
        int   ano               (EMPRESA);
        char  flg_r             (EMPRESA)[2];
        char  flg_grl           (EMPRESA)[2];
        char  rsv               (EMPRESA)[297];
        int   existe            (OPERADORES);
        int   numero            (OPERADORES);
        char  nome              (OPERADORES)[41];
        char  password          (OPERADORES)[20];
        char  flg_pswd          (OPERADORES)[2];
        int   nivel             (OPERADORES);
        char  rsv               (OPERADORES)[187];
        char nome               (PROGRAMA)[15];
        char versao             (PROGRAMA)[10];
        int  demo               (PROGRAMA);
        char fic                (PROGRAMA)[9];
        char path               (PROGRAMA)[40];
        char driver             (PORTA)[15];
        char form_pagina        (PORTA)[2];
        char cpi_15             (PORTA)[2];
        char select             (PORTA)[2];
        char rsv                (PORTA)[29];
        data  d1                (AMBIENTE);
        data  d2                (AMBIENTE);
        data  d3                (AMBIENTE);
        data  d4                (AMBIENTE);
        data  d5                (AMBIENTE);
        data  dc                (AMBIENTE);
        char  st1               (AMBIENTE)[80];
        char  st2               (AMBIENTE)[80];
        char  st3               (AMBIENTE)[80];
        char  st4               (AMBIENTE)[80];
        int   flc               (AMBIENTE);
        int   oldc              (AMBIENTE);
        int   ins_mode          (AMBIENTE);
        int   pede_empresa      (AMBIENTE);
        int   pede_operador     (AMBIENTE);
        int   beep_activo       (AMBIENTE);
        char  edita_temp        (AMBIENTE)[2];
        int   p_via             (AMBIENTE);
        int   n_via             (AMBIENTE);
        double tela             (AMBIENTE);
        int   lpt               (AMBIENTE);
        char  KeySound          (AMBIENTE);
        char  rsv               (AMBIENTE)[269];
    } tipo_ambiente;             // 1

typedef struct {               // 2
  int    reservado             (CLI-FORN);
  int    linhas_cco            (CLI-FORN);
  int    linhas_cnt            (CLI-FORN);
  int    linhas_art            (CLI-FORN);
  int    linhas_cmp            (CLI-FORN);
  long   numero                (CLI-FORN);
  char   nome  1               (CLI-FORN)[41];
  char   nome  2               (CLI-FORN)[41];
  char   morada                (CLI-FORN)[51];
  char   localidade            (CLI-FORN)[31];
  char   codigo postal         (CLI-FORN)[11];
  char   concelho              (CLI-FORN)[31];
  char   distrito              (CLI-FORN)[31];
  char   zona                  (CLI-FORN)[21];
  int    num_pais              (CLI-FORN);
  char   pais                  (CLI-FORN)[21];
  char   contribuinte          (CLI-FORN)[16];
  char   telefone              (CLI-FORN)[31];
  char   fax                   (CLI-FORN)[31];
  int    num_cond_pag          (CLI-FORN);
  char   cond_pagamento        (CLI-FORN)[21];
  int    prazo                 (CLI-FORN);
  double desconto global       (CLI-FORN);
  int    linha_precos          (CLI-FORN);
  long   num_banco             (CLI-FORN);
  char   banco                 (CLI-FORN)[41];
  char   conta                 (CLI-FORN)[21];
  int    num_vendedor          (CLI-FORN);
  char   vendedor              (CLI-FORN)[41];
  double comissao              (CLI-FORN);
  char   dff                   (CLI-FORN)[2];
  double saldo                 (CLI-FORN)[2];
  char   obs                   (CLI-FORN)[41];
  double desconto_linha        (CLI-FORN);
  double plafont               (CLI-FORN);
  int    num_classe            (CLI-FORN);
  char   des_classe            (CLI-FORN)[21];
  char   limite_credito        (CLI-FORN)[2];
  data   d_admissao            (CLI-FORN);
  char   rsv                   (CLI-FORN)[11];
 } clientes;                   // 2

typedef struct {       //3
      int      existe          (ORCAMENTO);
      int      linhas          (ORCAMENTO);
      long     numero          (ORCAMENTO);
      int      emitido         (ORCAMENTO);
      char     anulado         (ORCAMENTO)[2];
      int      num_moeda       (ORCAMENTO);
      long     convertido      (ORCAMENTO);
      char     referencia      (ORCAMENTO)[21];
      data     d_doc           (ORCAMENTO);
      data     d_venc          (ORCAMENTO);
      tipo_horas h_doc         (ORCAMENTO);
      long     num_cf          (ORCAMENTO);
      char     nome_cf         (ORCAMENTO)[41];
      char     obs             (ORCAMENTO)[41];
      int      num_operador    (ORCAMENTO);
      int      prazo           (ORCAMENTO);
      double   tot_material    (ORCAMENTO);
      double   tot_iva         (ORCAMENTO);
      double   tot_valor       (ORCAMENTO);
      int      tipo_doc_conv   (ORCAMENTO);
      char     doc_mov_conv    (ORCAMENTO)[2];
      char     nome_empreitada (ORCAMENTO)[80];
      int      linhas_orc      (ORCAMENTO);
      int      linhas_pag      (ORCAMENTO);
      int      linhas_meios    (ORCAMENTO);
      int      linhas_planos   (ORCAMENTO);
      char     rsv             (ORCAMENTO)[128];
  }tipo_obras;


typedef struct {       //4
      int     existe         (LINHAS ORCAMENTO);
      int     linha_f        (LINHAS ORCAMENTO);
      int     cor            (LINHAS ORCAMENTO);
      long    numero         (LINHAS ORCAMENTO);
      char    capitulo       (LINHAS ORCAMENTO)[10];
      char    designacao     (LINHAS ORCAMENTO)[120];
      char    unidade        (LINHAS ORCAMENTO)[10];
      double  qtd            (LINHAS ORCAMENTO);
      double  preco          (LINHAS ORCAMENTO);
      double  valor          (LINHAS ORCAMENTO);
      double  transporte     (LINHAS ORCAMENTO);
      char    rsv            (LINHAS ORCAMENTO)[60];
     } tipo_obras_orc;

typedef struct {         //5
      int     existe     (PAGAMENTO ORCAMENTO);
      int     linha_f    (PAGAMENTO ORCAMENTO);
      int     cor        (PAGAMENTO ORCAMENTO);
      long    numero     (PAGAMENTO ORCAMENTO);
      char    mes        (PAGAMENTO ORCAMENTO)[20];
      double  valor      (PAGAMENTO ORCAMENTO);
      double  acumulado  (PAGAMENTO ORCAMENTO);
      char    rsv        (PAGAMENTO ORCAMENTO)[60];
     } tipo_obras_pag;


typedef struct {         //6
      int     existe     (MEIOS HUMANOS);
      int     linha_f    (MEIOS HUMANOS);
      int     cor        (MEIOS HUMANOS);
      long    numero     (MEIOS HUMANOS);
      int     trimestre  (MEIOS HUMANOS);
      double  v_trab_tri (MEIOS HUMANOS);
      int     mes        (MEIOS HUMANOS);
      double  v_trab_dias(MEIOS HUMANOS);
      double  qtd        (MEIOS HUMANOS)[10];
      char    rsv        (MEIOS HUMANOS)[60];
     } tipo_obras_meios; //meios humanos

typedef struct {       //7
      int     existe     (PLANO);
      int     linha_f    (PLANO);
      int     cor        (PLANO);
      long    numero     (PLANO);
      char    nome       (PLANO)[40];
      char    meses      (PLANO)[40];
      char    rsv        (PLANO)[60];
     } tipo_obras_plano; //meios humanos


