typedef struct {
      int   reservado           (GERAL 0);
      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);
     } tipo_geral;


typedef struct {                // 1
        int   existe            (EMPRESA 1);
        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    existe            (ARTIGOS 2);
      int    linhas_des        (ARTIGOS);
      int    linhas_arm        (ARTIGOS);
      int    linhas_cmp        (ARTIGOS);
      int    linhas_equ        (ARTIGOS);
      char   codigo            (ARTIGOS)[15];
      char   codigo2           (ARTIGOS)[15];
      char   designacao        (ARTIGOS)[41];
      char   designacao2       (ARTIGOS)[41];
      char   abreviatura       (ARTIGOS)[15];
      int    num_unidades      (ARTIGOS);
      char   unidades          (ARTIGOS)[7];
      char   armazem           (ARTIGOS)[15];
      char   familia           (ARTIGOS)[15];
      double ultimo_custo      (ARTIGOS);
      double custo_medio       (ARTIGOS);
      double valor_medio       (ARTIGOS);
      int    n_iva             (ARTIGOS);
      double iva               (ARTIGOS);
      double margem            (ARTIGOS)[2];
      double preco_s_iva       (ARTIGOS)[2];
      double preco_c_iva       (ARTIGOS)[2];
      double stock_minimo      (ARTIGOS);
      double stock             (ARTIGOS);
      double stock_maximo      (ARTIGOS);
      long   num_fornecedor    (ARTIGOS);
      data   d_entrada         (ARTIGOS);
      data   d_saida           (ARTIGOS);
      char   baixa_stock       (ARTIGOS)[2];
      int    linhas_obs        (ARTIGOS);
      double stock2            (ARTIGOS);
      char   rsv               (ARTIGOS)[14];
   } tipo_artigos;             // 2


typedef struct{
  int    existe      (ANALISE_1 3);
  long   numero      (ANALISE_1 3);
  char   nome        (ANALISE_1 3)[41];
  double ano_ant     (ANALISE_1 3);
  double val_mes     (ANALISE_1 3)[13];
  double ano         (ANALISE_1 3);
  double val_mes_iva (ANALISE_1 3)[13];
  double val_mes_ant (ANALISE_1 3)[13];
  double media       (ANALISE_1 3);
  double ano_iva     (ANALISE_1 3);
  char   codigo      (ANALISE_1 3)[20];
  char   nome_p      (ANALISE_1 3)[41];
  data   rec         (ANALISE_1 3);
  data   pag         (ANALISE_1 3);
  char   tipo_cfo    (ANALISE_1 3)[2];
  data   data_mes    (ANALISE_1 3)[13];
  int    form_pag    (ANALISE_1 3);
  char   Des.For.Pag.(ANALISE_1 3)[40];
 }tipo_mapa_analise_1;

typedef struct {               //4
      int    existe            (MAP-ART 4);
      char   dcm               (MAP-ART)[5];
      long   numero            (MAP-ART);
      data   d                 (MAP-ART);
      long   numero_cf         (MAP-ART);
      char   nome_cf           (MAP-ART)[41];
      char   codigo            (MAP-ART)[15];
      char   designacao        (MAP-ART)[41];
      char   unidades          (MAP-ART)[7];
      char   familia           (MAP-ART)[15];
      double quantidade        (MAP-ART);
      double preco_uni         (MAP-ART);
      double valor_iliquido    (MAP-ART);
      double valor_desconto    (MAP-ART);
      double valor_sujeito     (MAP-ART);
      double iva               (MAP-ART);
      double valor_iva         (MAP-ART);
      double valor_total       (MAP-ART);
      double ultimo_custo      (MAP-ART);
      double margem1           (MAP-ART);
      double lucro_u1          (MAP-ART);
      double lucro1            (MAP-ART);
      double custo_medio       (MAP-ART);
      double margem2           (MAP-ART);
      double lucro_u2          (MAP-ART);
      double lucro2            (MAP-ART);
      int    num_vendedor      (MAP-ART);
      char   nome_vendedor     (MAP-ART)[41];
      double comissao          (MAP-ART);
      double val_com           (MAP-ART);
     } tipo_wra;               //4


typedef struct {               //5
    data  pd                   (INTERVALOS 5);
    data  ud                   (INTERVALOS);
tipo_horas ph                   (INTERVALOS);
tipo_horas uh                   (INTERVALOS);
    long  pg                   (INTERVALOS);
    long  ug                   (INTERVALOS);
    int   pv                   (INTERVALOS);
    int   uv                   (INTERVALOS);
    char  pa                   (INTERVALOS)[15];
    char  ua                   (INTERVALOS)[15];
    char  ps                   (INTERVALOS)[15];
    char  us                   (INTERVALOS)[15];
    char  resumo               (INTERVALOS);
    char  map                  (INTERVALOS);
   } tipo_mps;                 //5


typedef struct{
  short  existe                (PESAGEM);
  long   numero                (PESAGEM);
  data   d                     (PESAGEM);
  char   nome                  (PESAGEM)[41];
  char   codigo   1            (PESAGEM)[20];
  char   codigo   2            (PESAGEM)[20];
  char   codigo   3            (PESAGEM)[20];
  char   codigo   4            (PESAGEM)[20];
  char   codigo   5            (PESAGEM)[20];
  char   codigo   6            (PESAGEM)[20];
  char   codigo   7            (PESAGEM)[20];
  char   codigo   8            (PESAGEM)[20];
  char   codigo   9            (PESAGEM)[20];
  char   codigo  10            (PESAGEM)[20];
  char   codigo  11            (PESAGEM)[20];
  char   codigo  12            (PESAGEM)[20];
  char   codigo  13            (PESAGEM)[20];
  char   codigo  14            (PESAGEM)[20];
  char   codigo  15            (PESAGEM)[20];
  char   codigo  16            (PESAGEM)[20];
  char   codigo  17            (PESAGEM)[20];
  char   codigo  18            (PESAGEM)[20];
  char   codigo  19            (PESAGEM)[20];
  char   codigo  20            (PESAGEM)[20];
  char   nome_art  1           (PESAGEM)[41];
  char   nome_art  2           (PESAGEM)[41];
  char   nome_art  3           (PESAGEM)[41];
  char   nome_art  4           (PESAGEM)[41];
  char   nome_art  5           (PESAGEM)[41];
  char   nome_art  6           (PESAGEM)[41];
  char   nome_art  7           (PESAGEM)[41];
  char   nome_art  8           (PESAGEM)[41];
  char   nome_art  9           (PESAGEM)[41];
  char   nome_art 10           (PESAGEM)[41];
  char   nome_art 11           (PESAGEM)[41];
  char   nome_art 12           (PESAGEM)[41];
  char   nome_art 13           (PESAGEM)[41];
  char   nome_art 14           (PESAGEM)[41];
  char   nome_art 15           (PESAGEM)[41];
  char   nome_art 16           (PESAGEM)[41];
  char   nome_art 17           (PESAGEM)[41];
  char   nome_art 18           (PESAGEM)[41];
  char   nome_art 19           (PESAGEM)[41];
  char   nome_art 20           (PESAGEM)[41];
  double valor  1              (PESAGEM);
  double valor  2              (PESAGEM);
  double valor  3              (PESAGEM);
  double valor  4              (PESAGEM);
  double valor  5              (PESAGEM);
  double valor  6              (PESAGEM);
  double valor  7              (PESAGEM);
  double valor  8              (PESAGEM);
  double valor  9              (PESAGEM);
  double valor 10              (PESAGEM);
  double valor 11              (PESAGEM);
  double valor 12              (PESAGEM);
  double valor 13              (PESAGEM);
  double valor 14              (PESAGEM);
  double valor 15              (PESAGEM);
  double valor 16              (PESAGEM);
  double valor 17              (PESAGEM);
  double valor 18              (PESAGEM);
  double valor 19              (PESAGEM);
  double valor 20              (PESAGEM);
 }tipo_mapa_analise_1;

typedef struct{
  short  existe;
  int    arm;
  long   numero;
  data   d;
  char   codigo  [20];
  char   nome_art[41];
  double qtd;
  double pu;
  double valor;
  double total;
  int    tipo_doc;
  char   nome_doc[30];
 }tipo_mapa_obra;

