Académique Documents
Professionnel Documents
Culture Documents
Crditos
Prefcio:
Esta a quinta verso do GAS para Windows.
Projetistas e programadores
Evandro Rodrigo da Silva
Heber Jorge da Silva
Danilo de Oliveira Pimentel
Pablo Hadler Gomez
Silvano Guimares da Matta
Almeida dos Santos Neto
Documentao
GAS Tecnologia Ltda
Reviso
Maurcio da Costa Jatob
Teresa Cristina de Deus Oliveira
Paulo Henrique P. Cortez
Editorao eletrnica
Paulo Henrique P. Cortez
Edson dos Santos
Agradecimentos especiais
Arnaldo Rocha Netto
Blay Vives Gil
Concrdio P. Souza Filho
Hilton Silva Jnior
Leonardo Soares da Silva
Contents
ndice
0
I Captulo 1- Introduo
26
1 O que o...................................................................................................................................
GAS 2007
26
Aspectos da Interface
.......................................................................................................................................................... 27
Modelagem da rvore
.......................................................................................................................................................... 28
Definio da Soluo\Projeto
.......................................................................................................................................................... 29
Solues multi-projetos
......................................................................................................................................................... 30
Definio de Banco..........................................................................................................................................................
de Dados
30
Banco de Campos .......................................................................................................................................................... 32
Editor Interno
.......................................................................................................................................................... 32
Definio do Aspecto
..........................................................................................................................................................
da Aplicao
33
Marca d'gua ......................................................................................................................................................... 35
Definio da Janela..........................................................................................................................................................
de Dados
36
Definio de uma tabela
..........................................................................................................................................................
em grid
41
Formatao da Janela
..........................................................................................................................................................
de Dados
42
Processos Pr-definidos
.......................................................................................................................................................... 45
Definio de Relatrios
..........................................................................................................................................................
e Etiquetas
46
Definio de Consultas
.......................................................................................................................................................... 51
Tela de Variveis Complementares
.......................................................................................................................................................... 51
Cupom Fiscal - ECF/TEF
.......................................................................................................................................................... 52
Programas Executveis
.......................................................................................................................................................... 52
Rotinas avulsas
.......................................................................................................................................................... 52
Formulrios existentes
.......................................................................................................................................................... 52
Formulrios avulsos.......................................................................................................................................................... 52
Gabaritos ou templates
.......................................................................................................................................................... 52
Dirio de bordo
.......................................................................................................................................................... 53
Arquivos resource .......................................................................................................................................................... 53
Segurana de acesso
..........................................................................................................................................................
aplicao
54
Programas fontes .......................................................................................................................................................... 54
Compilao de programas
.......................................................................................................................................................... 55
Adaptador de arquivos
.......................................................................................................................................................... 56
Documentao da aplicao
..........................................................................................................................................................
gerada
56
Equipamento mnimo
..........................................................................................................................................................
necessrio
56
2 Caractersticas
...................................................................................................................................
das aplicaes geradas pelo GAS
57
3 O que h...................................................................................................................................
de novo no GAS 2007
62
Solues multi-projetos
.......................................................................................................................................................... 62
Executveis independentes
.......................................................................................................................................................... 63
Sistemas multi-empresa
.......................................................................................................................................................... 63
Gerenciamento de projetos
.......................................................................................................................................................... 64
Controle de plano de
..........................................................................................................................................................
senha pela soluo
64
Acesso nativo a outros
..........................................................................................................................................................
bancos de dados
65
Access
SQL Server
Oracle
......................................................................................................................................................... 66
......................................................................................................................................................... 66
......................................................................................................................................................... 66
Firebird
......................................................................................................................................................... 66
My Sql
......................................................................................................................................................... 67
Escolha do banco de
..........................................................................................................................................................
dados pelo usurio final
67
99
1 Instalao
...................................................................................................................................
do GAS no equipamento
99
2 Procedimentos
...................................................................................................................................
de instalao
99
3 Habilitao
...................................................................................................................................
e registro da cpia
99
4 Habilitar ...................................................................................................................................
a execuo
99
5 Requisitos
...................................................................................................................................
para instalao e execuo
100
102
1 Consideraes
................................................................................................................................... 102
2 Componentes
...................................................................................................................................
de um projeto GAS
102
2007 GAS Tecnologia
Contents
Modelador do projeto
.......................................................................................................................................................... 102
Mltiplos projetos
......................................................................................................................................................... 103
Mdulos que podem
..........................................................................................................................................................
ser inseridos em cada projeto
104
Menu
......................................................................................................................................................... 104
Janela de dados
......................................................................................................................................................... 104
Tabela em grid......................................................................................................................................................... 105
Rotina avulsa ......................................................................................................................................................... 105
Consulta pr-definida
......................................................................................................................................................... 105
Relatrio
......................................................................................................................................................... 105
Etiqueta
......................................................................................................................................................... 105
Processos pr-definidos
......................................................................................................................................................... 106
Programa executvel
......................................................................................................................................................... 106
Formulrio avulso
......................................................................................................................................................... 106
Formulrio existente
......................................................................................................................................................... 106
Linha separadora
......................................................................................................................................................... 106
Apoio impresso
.........................................................................................................................................................
fiscal
106
Opes que podem
..........................................................................................................................................................
ser inseridas na rvore
106
Arquivo
Editar
Exibir
......................................................................................................................................................... 107
......................................................................................................................................................... 107
......................................................................................................................................................... 107
Janela
Ajuda
......................................................................................................................................................... 107
......................................................................................................................................................... 107
3 Como so
...................................................................................................................................
organizadas as informaes
107
109
1 Via expressa
................................................................................................................................... 109
Abrir um novo projeto
.......................................................................................................................................................... 109
Configurar a rvore
..........................................................................................................................................................
Default
110
Definir o projeto .......................................................................................................................................................... 110
Inserir as janelas de
..........................................................................................................................................................
dados
111
Definir as janelas de
..........................................................................................................................................................
dados inseridas
112
Geral
......................................................................................................................................................... 112
Tabelas auxiliares
......................................................................................................................................................... 112
Lanamentos ......................................................................................................................................................... 112
Processos ......................................................................................................................................................... 112
Inserir outros mdulos,
..........................................................................................................................................................
se necessrio
112
Verificar rvore do..........................................................................................................................................................
projeto
112
Acionar a gerao..........................................................................................................................................................
de programas fontes e executvel
113
115
1 Abertura
...................................................................................................................................
ou criao de um projeto
115
2 A barra...................................................................................................................................
de ferramentas do GAS
115
Botes de controle..........................................................................................................................................................
do editor de programas
117
3 A barra...................................................................................................................................
de status do GAS
118
4 As opes
...................................................................................................................................
de menu do GAS
118
O menu arquivo .......................................................................................................................................................... 119
Novo projeto ......................................................................................................................................................... 119
Abrir projeto existente
......................................................................................................................................................... 119
Abrir gabarito ......................................................................................................................................................... 119
Salvar como gabarito
......................................................................................................................................................... 119
2007 GAS Tecnologia
.......................................................................................................................................................... 121
......................................................................................................................................................... 122
......................................................................................................................................................... 122
Copiar
Colar
Apagar
......................................................................................................................................................... 122
......................................................................................................................................................... 122
......................................................................................................................................................... 123
Procura
Substitui
Sincroniza
......................................................................................................................................................... 123
......................................................................................................................................................... 123
......................................................................................................................................................... 123
Desfaz
Refaz
Endenta
......................................................................................................................................................... 123
......................................................................................................................................................... 123
......................................................................................................................................................... 123
5 Opes...................................................................................................................................
para personalizar as operaes do GAS
125
Opes do menu Exibir
.......................................................................................................................................................... 125
Barra de ferramentas
......................................................................................................................................................... 125
Banco de campos
......................................................................................................................................................... 125
Ferramentas da
.........................................................................................................................................................
tela
125
Dirio em zoom
......................................................................................................................................................... 126
Texto exemplo.........................................................................................................................................................
na tela
126
Opes do menu Opes
.......................................................................................................................................................... 126
Opes da tela.........................................................................................................................................................
padro
127
Tratamento de.........................................................................................................................................................
nomes
127
Capitalizar
Maisculas
Minsculas
......................................................................................................................................... 127
......................................................................................................................................... 127
......................................................................................................................................... 127
Nenhum
......................................................................................................................................... 127
Configuraes......................................................................................................................................................... 127
Modelador
......................................................................................................................................... 128
Fontes do modelador
................................................................................................................................... 128
Cores do mdulo ................................................................................................................................... 128
Telas e relatrios ......................................................................................................................................... 129
Tamanho da grade ................................................................................................................................... 129
Texto exemplo
................................................................................................................................... 129
2007 GAS Tecnologia
Contents
......................................................................................................................................... 130
6 Reparao
...................................................................................................................................
do projeto
132
7 rvore ...................................................................................................................................
ou modelador de projetos
133
Menu pop-up da rvore
.......................................................................................................................................................... 134
Inserindo um mdulo
..........................................................................................................................................................
na rvore do projeto
134
Mundando posies
..........................................................................................................................................................
de mdulos na rvore do projeto
135
Copiando definies
.......................................................................................................................................................... 136
Apagando um mdulo
..........................................................................................................................................................
na rvore
136
Definio da soluo
.......................................................................................................................................................... 137
Aba estrutura da
.........................................................................................................................................................
soluo
137
Definio do banco .........................................................................................................................................
de dados
138
Definio das tabelas
......................................................................................................................................... 142
Definio dos campos
......................................................................................................................................... 143
Definio dos ndices
......................................................................................................................................... 146
Definio das integridades
......................................................................................................................................... 148
Sistemas multi-empresa
......................................................................................................................................... 149
Aba icones da.........................................................................................................................................................
soluo
150
Aba dados genericos
......................................................................................................................................................... 151
Aba miscelnia......................................................................................................................................................... 153
Criando uma tela
.........................................................................................................................................................
inicial para a aplicao
156
Inserindo uma nova .........................................................................................................................................
figura
156
Removendo uma figura
......................................................................................................................................... 157
Alterando o tamanho.........................................................................................................................................
da tela inicial
157
Alterando a cor e o aspecto
.........................................................................................................................................
da moldura
157
Aba histrico ......................................................................................................................................................... 158
Aba instalao......................................................................................................................................................... 158
Formatao de tela
..........................................................................................................................................................
da soluo
166
Gerenciamento.........................................................................................................................................................
de projetos
166
Definio do projeto
.......................................................................................................................................................... 167
Formatao da tela
..........................................................................................................................................................
do projeto
168
Desenhando a.........................................................................................................................................................
barra de ferramentas da aplicao
168
Estabelecendo.........................................................................................................................................................
uma ao para um boto
171
Menus POP-UP em .........................................................................................................................................
botes
172
Colocando um.........................................................................................................................................................
logotipo lateral na janela da aplicao
173
Ttulo logotipo
......................................................................................................................................... 173
Fonte logotipo
......................................................................................................................................... 173
Largura logotipo
......................................................................................................................................... 173
Cor incio do logotipo
......................................................................................................................................... 173
Cor final do logotipo......................................................................................................................................... 173
Colocando uma
.........................................................................................................................................................
imagem como fundo da janela da aplicao
174
Colocando uma
.........................................................................................................................................................
figura transparente no interior do formulrio
174
Encolhendo e expandindo
..........................................................................................................................................................
mdulos da rvore
175
Definindo mdulos..........................................................................................................................................................
na rvore do projeto
176
Definindo um mdulo
.........................................................................................................................................................
do tipo "Menu"
176
Definindo um mdulo
.........................................................................................................................................................
tipo janela de dados
178
Desenhando telas para
.........................................................................................................................................
entrada de dados
187
Colocando campos...................................................................................................................................
na tela
188
................................................................................................................................... 189
Validao
................................................................................................................................... 189
................................................................................................................................... 191
................................................................................................................................... 191
Colocando frmulas.........................................................................................................................................
nas telas
191
Estabelecendo condies
.........................................................................................................................................
especiais
192
Condio para incluir
................................................................................................................................... 192
Condio para excluir
................................................................................................................................... 192
Condio para alterar
................................................................................................................................... 192
Definindo uma.........................................................................................................................................................
tabela em grid
192
Colocando um grid na
.........................................................................................................................................
tela
196
Caractersticas e propriedade
.........................................................................................................................................
do controle GRID
197
Propriedades do grid
................................................................................................................................... 199
Definindo uma.........................................................................................................................................................
rotina avulsa
202
Definindo um processo
.........................................................................................................................................................
pr-definido
203
Cabealho do processo
.........................................................................................................................................
pr-definido
203
Cupom fiscal
................................................................................................................................... 204
Processo pr-definido
......................................................................................................................................... 204
Definindo uma.........................................................................................................................................................
consulta
207
Contedos
......................................................................................................................................... 208
Grupos e ordenao......................................................................................................................................... 209
Seleo
......................................................................................................................................... 209
Criao de filtragem
................................................................................................................................... 210
Unio de tabelas ................................................................................................................................... 211
Definindo um relatrio
.........................................................................................................................................................
ou etiqueta
211
Geral
......................................................................................................................................... 212
Nome do .RPT
Tabela bsica
Apelido
................................................................................................................................... 212
................................................................................................................................... 212
................................................................................................................................... 212
Cupom fiscal
................................................................................................................................... 213
Tabelas auxiliares e .........................................................................................................................................
Contedo
213
Formatao de relatrios
......................................................................................................................................... 213
Criando um relatrio.........................................................................................................................................
padro
213
Criando uma janela de
.........................................................................................................................................
previso (preview) para o relatrio
214
Formatando um relatrio
......................................................................................................................................... 215
Propriedades do relatrio
................................................................................................................................... 215
Seleo de controles
...................................................................................................................................
com "retngulo de seleo"
218
Mltiplos filtros
................................................................................................................................... 219
Colocando um campo
...................................................................................................................................
no relatrio
219
Inserindo sub-relatrios
................................................................................................................................... 224
Colocando um totalizador
...................................................................................................................................
no relatrio
224
Colocando uma quebra
...................................................................................................................................
no relatrio
225
Imprimindo um cdigo
...................................................................................................................................
de barra em relatrio ou etiqueta
225
Imprimindo valores ...................................................................................................................................
em cores diferentes no relatrio
226
Formatando etiquetas
......................................................................................................................................... 227
Definindo um programa
.........................................................................................................................................................
executvel
228
Ttulo no menu
......................................................................................................................................... 228
Programa executvel......................................................................................................................................... 228
Mdulo pronto
......................................................................................................................................... 229
Integrando um.........................................................................................................................................................
formulrio existente ao projeto
229
Ttulo no menu
......................................................................................................................................... 229
2007 GAS Tecnologia
Contents
......................................................................................................................................... 229
Criando um formulrio
.........................................................................................................................................................
avulso no projeto
230
Geral e Tabelas auxiliares
......................................................................................................................................... 230
Criando uma tela
.........................................................................................................................................................
complementar
231
Boto continua
Boto cancela
......................................................................................................................................... 231
......................................................................................................................................... 231
8 Utilizando
...................................................................................................................................
o editor de cones
238
Controles do editor.......................................................................................................................................................... 239
9 Utilizando
...................................................................................................................................
o editor de programas
241
Declaraes de variveis
..........................................................................................................................................................
ou funes externas
242
Designaes de variveis
.......................................................................................................................................................... 242
Funes e rotinas ..........................................................................................................................................................
globais
243
Controles do editor
..........................................................................................................................................................
na barra de ferramentas
243
Boto procura......................................................................................................................................................... 243
Boto procura/substitui
......................................................................................................................................................... 244
Boto de sincronia
......................................................................................................................................................... 244
Botes para desfazer/refazer
.........................................................................................................................................................
modificaes
244
Botes para manipular
.........................................................................................................................................................
as endentaes do cdigo
244
Botes para manipular
.........................................................................................................................................................
comentrios
245
Opes de configurao
..........................................................................................................................................................
do Editor de Programas
245
Ajuste de cores
......................................................................................................................................................... 246
Endentao ......................................................................................................................................................... 246
Fonte
......................................................................................................................................................... 246
10 Utilizando
...................................................................................................................................
o Editor de Recursos
246
As ferramentas de..........................................................................................................................................................
formatao de tela
247
Selecionando .........................................................................................................................................................
um controle na tela
248
Selecionando .........................................................................................................................................................
mltiplos controles na tela
249
Retirando controles
.........................................................................................................................................................
da tela
249
Alterando a posio
.........................................................................................................................................................
de controles
249
Alterando o tamanho
.........................................................................................................................................................
de um controle
250
Colocando controles
.........................................................................................................................................................
pr-programados na tela
250
Colocando um.........................................................................................................................................................
controle na tela
251
Tab ou abas
Label
Boto
......................................................................................................................................... 251
......................................................................................................................................... 251
......................................................................................................................................... 251
Imagem
Painel
......................................................................................................................................... 252
......................................................................................................................................... 252
10
......................................................................................................................................... 252
Gmask
......................................................................................................................................... 252
Grid
......................................................................................................................................... 252
Sub-relatrio
Quebra
......................................................................................................................................... 252
......................................................................................................................................... 252
Linha
Shape
......................................................................................................................................... 252
......................................................................................................................................... 252
Texto 3D
......................................................................................................................................... 253
Picture
......................................................................................................................................... 253
Designando propriedades
.........................................................................................................................................................
para controles
253
Definindo um campo
.........................................................................................................................................................
no-editvel
253
Definindo condio
.........................................................................................................................................................
de visibilidade de campos
253
Controles de formatao
......................................................................................................................................................... 253
Gravao da tela ......................................................................................................................................... 253
Restaurao da tela ......................................................................................................................................... 254
Ordem de acesso aos
.........................................................................................................................................
controles
254
Criao de tela padro
......................................................................................................................................... 254
Seleciona todos
......................................................................................................................................... 254
Apaga coluna do grid......................................................................................................................................... 254
Insere coluna no grid.........................................................................................................................................
- aps
254
Insere coluna no grid.........................................................................................................................................
- antes
255
Alinha esquerda ......................................................................................................................................... 255
Alinha direita
......................................................................................................................................... 255
Alinha pelo topo
......................................................................................................................................... 255
Travamento de controles
......................................................................................................................................... 255
Categorizao de propriedades
......................................................................................................................................... 255
Coloca ou retira grade
.........................................................................................................................................
de formatao
255
Recorta formulrio ......................................................................................................................................... 255
Exibindo e ocultando
.........................................................................................................................................................
as ferramentas
256
Usando o Clipboard
.........................................................................................................................................................
de tela
256
11 Definindo
...................................................................................................................................
opes da tela padro
256
Disposio dos campos
.......................................................................................................................................................... 257
Disposio dos ttulos
.......................................................................................................................................................... 257
Dimenses das imagens
.......................................................................................................................................................... 257
Dimenses memo/texto
.......................................................................................................................................................... 257
Margens e distncias
.......................................................................................................................................................... 257
Maior controle......................................................................................................................................................... 257
Distncia
......................................................................................................................................................... 257
Margem esquerda
......................................................................................................................................................... 257
Margem do topo
......................................................................................................................................................... 257
Quantidade de colunas
.......................................................................................................................................................... 258
Recalcular o tamanho
..........................................................................................................................................................
da tela
258
Fonte dos ttulos .......................................................................................................................................................... 258
Fonte dos campos.......................................................................................................................................................... 258
12 Utilizando
...................................................................................................................................
o banco de campos
258
13 Utilizando
...................................................................................................................................
o Dirio de Bordo
260
Apresentando e ocultando
.......................................................................................................................................................... 260
Mostrando o dirio..........................................................................................................................................................
em zoom
260
Abrindo e folheando
.......................................................................................................................................................... 260
Navegando no texto
.......................................................................................................................................................... 260
Imprimindo o contedo
.......................................................................................................................................................... 260
262
2007 GAS Tecnologia
Contents
1 .BAS
11
................................................................................................................................... 262
................................................................................................................................... 262
4 .VBP
................................................................................................................................... 262
5 .DEF
................................................................................................................................... 262
6 .SQL
................................................................................................................................... 262
7 .RC
................................................................................................................................... 263
8 .HHK .HHP
...................................................................................................................................
.HHC .HTM
263
9 Disparando
...................................................................................................................................
a gerao de fontes
263
Histrico de gerao
..........................................................................................................................................................
de fontes
265
268
1 Estabelecendo
...................................................................................................................................
uma ao ps-compilao
268
Gerar
.......................................................................................................................................................... 268
2 Executvel
...................................................................................................................................
da aplicao
269
3 Arquivo...................................................................................................................................
resource da aplicao
270
4 Arquivo...................................................................................................................................
de ajuda on-line
270
5 Adaptador
...................................................................................................................................
de arquivos
270
6 Disparando
...................................................................................................................................
a gerao dos executveis
270
7 Compilao
...................................................................................................................................
manual
271
FAZ_EXE.BAT
FAZ_HLP.BAT
.......................................................................................................................................................... 271
.......................................................................................................................................................... 271
FAZ_RES.BAT
.......................................................................................................................................................... 271
273
1 Editar gabaritos
................................................................................................................................... 273
Regras para a edio
..........................................................................................................................................................
de gabaritos
273
GABPRO.DOC
......................................................................................................................................................... 274
GABMAN.DOC
......................................................................................................................................................... 274
INICIO.HTM / .........................................................................................................................................................
CORPO.HTM / INDEX.HTM
274
Criar o documento.......................................................................................................................................................... 274
Editar documento .......................................................................................................................................................... 274
Compilar
.......................................................................................................................................................... 275
Visualizar
.......................................................................................................................................................... 275
Dicas para otimizar
..........................................................................................................................................................
a documentao
275
Captura de telas
......................................................................................................................................................... 275
Resoluo
......................................................................................................................................................... 275
Aparncia
......................................................................................................................................................... 275
Momento certo......................................................................................................................................................... 276
A documentao gerada
.......................................................................................................................................................... 276
Projeto fsico ......................................................................................................................................................... 276
Manual do usurio
.........................................................................................................................................................
da aplicao
276
Arquivo de ajuda
.........................................................................................................................................................
para a aplicao final
277
Diretivas de substituio
......................................................................................................................................................... 277
2007 GAS Tecnologia
11
12
................................................................................................................................... 278
APELIDO_TAB_AUXILIAR
................................................................................................................................... 278
rvore
CAMPO_ATRIB
................................................................................................................................... 278
................................................................................................................................... 278
................................................................................................................................... 278
COND_EXCLUSAO
................................................................................................................................... 278
COND_EXC_LANC................................................................................................................................... 278
COND_INCLUSAO................................................................................................................................... 279
COND_INC_LANC................................................................................................................................... 279
COND_INVERSA ................................................................................................................................... 279
CONS_SQL
................................................................................................................................... 279
CONS_TITULO ................................................................................................................................... 279
CP_ALVO_LANC ................................................................................................................................... 279
CP_ALVO_PROC ................................................................................................................................... 279
CP_APELIDO
................................................................................................................................... 279
CP_CAMPO_ESTRANGEIRO
................................................................................................................................... 279
CP_CASAS_DECIMAIS
................................................................................................................................... 279
CP_LST_INTERNA................................................................................................................................... 279
CP_MASCARA ................................................................................................................................... 280
CP_MSG_AJUDA ................................................................................................................................... 280
CP_NOME
................................................................................................................................... 280
CP_SEQUENCIA ................................................................................................................................... 280
CP_TABELA_ESTRANGEIRA
................................................................................................................................... 280
CP_TAMANHO
CP_TIPO
DATA
................................................................................................................................... 280
................................................................................................................................... 280
................................................................................................................................... 280
DESCRICAO
DESC_BD
DESC_TAB
................................................................................................................................... 280
................................................................................................................................... 280
................................................................................................................................... 280
................................................................................................................................... 281
................................................................................................................................... 281
................................................................................................................................... 281
INT_CP2
INT_NOME
INT_TABELA
................................................................................................................................... 281
................................................................................................................................... 281
................................................................................................................................... 281
JANELA
................................................................................................................................... 281
JANELA_MDI
................................................................................................................................... 281
MSG VALIDACAO ................................................................................................................................... 282
MSG_CRIT_RELACAO
................................................................................................................................... 282
MSG_MENU
................................................................................................................................... 282
NOME_BD
................................................................................................................................... 282
NOME_EMPRESA................................................................................................................................... 282
NOME_EXECUTAVEL
................................................................................................................................... 282
NOME_FORM
................................................................................................................................... 282
PRE-VALIDACAO ................................................................................................................................... 282
Q_LANCAMENTOS
................................................................................................................................... 282
REL_SQL
................................................................................................................................... 282
REL_TITULO
................................................................................................................................... 282
2007 GAS Tecnologia
Contents
13
TABELA_AUXILIAR
................................................................................................................................... 283
TABELA_BASICA ................................................................................................................................... 283
TAB_ALVO_LANC................................................................................................................................... 283
TAB_ALVO_PROC................................................................................................................................... 283
TB_APELIDO
................................................................................................................................... 283
TB_NOME
................................................................................................................................... 283
TITULO_JANELA ................................................................................................................................... 283
TITULO_PROJETO
................................................................................................................................... 283
TIT_LANCAMENTO
................................................................................................................................... 283
TIT_PROCESSAMENTO
................................................................................................................................... 283
VALIDACAO
................................................................................................................................... 283
VALOR INICIAL ................................................................................................................................... 284
VALOR_LANC
................................................................................................................................... 284
Para substituio
.........................................................................................................................................................
de imagens
284
BMP_BAJUDA
......................................................................................................................................... 284
BMP_BANTERIOR......................................................................................................................................... 284
BMP_BAPAGACOL......................................................................................................................................... 284
BMP_BCANCELA ......................................................................................................................................... 284
BMP_BCONFGRAF......................................................................................................................................... 284
BMP_BCONFIMP ......................................................................................................................................... 284
BMP_BCONSULTA......................................................................................................................................... 284
BMP_BEXCLUI
......................................................................................................................................... 285
BMP_BFILTRO
......................................................................................................................................... 285
BMP_BFINALIZA ......................................................................................................................................... 285
BMP_BGRADE
......................................................................................................................................... 285
BMP_BGRAFA
......................................................................................................................................... 285
BMP_BGRAVA
BMP_BIMPRE
BMP_BINCLUI
......................................................................................................................................... 285
......................................................................................................................................... 285
......................................................................................................................................... 285
BMP_BINFODB
......................................................................................................................................... 285
BMP_BPRIMEIRO ......................................................................................................................................... 285
BMP_BPROCURA ......................................................................................................................................... 285
BMP_BREPARA ......................................................................................................................................... 286
BMP_BSEGUINTE ......................................................................................................................................... 286
BMP_BSENHA
......................................................................................................................................... 286
BMP_BTOTALIZA ......................................................................................................................................... 286
BMP_BULTIMO ......................................................................................................................................... 286
BMP_CBOIND
......................................................................................................................................... 286
ICONE_APLICACAO
......................................................................................................................................... 286
TELA_INICIAL
......................................................................................................................................... 286
Indicativos ou .........................................................................................................................................................
flags
286
AC_ALTERACAO ......................................................................................................................................... 287
AC_EXCLUSAO ......................................................................................................................................... 287
AC_FILTRAGENS ......................................................................................................................................... 287
AC_INCLUSAO
......................................................................................................................................... 287
AC_PESQUISAS ......................................................................................................................................... 287
CP_AJUDA
......................................................................................................................................... 287
CP_INVISIVEL
CP_LISTAEXT
CP_LISTAINT
......................................................................................................................................... 287
......................................................................................................................................... 287
......................................................................................................................................... 287
13
14
......................................................................................................................................... 288
FORCAR_RELACAO
......................................................................................................................................... 288
IND_PRIMARIO
......................................................................................................................................... 288
IND_UNICO
INT_1-N
......................................................................................................................................... 288
......................................................................................................................................... 288
MONOUSUARIO
MULTIUSUARIO
......................................................................................................................................... 288
......................................................................................................................................... 288
QDE_CAMPOS
......................................................................................................................................... 288
QDE_BD
......................................................................................................................................... 288
QDE_CAMPOS_ALVO
......................................................................................................................................... 289
QDE_CONSULTAS......................................................................................................................................... 289
QDE_CP_TAB_BASICA
......................................................................................................................................... 289
QDE_INDICES
......................................................................................................................................... 289
QDE_INTEGRIDADES
......................................................................................................................................... 289
QDE_INT_CPS
......................................................................................................................................... 289
QDE_JANELAS
......................................................................................................................................... 289
QDE_LANCAMENTOS
......................................................................................................................................... 289
QDE_PROCESSOS......................................................................................................................................... 289
QDE_RELATORIOS......................................................................................................................................... 289
QDE_TABELAS ......................................................................................................................................... 289
QDE_TAB_AUXILIAR
......................................................................................................................................... 290
TB_PARAMETROS......................................................................................................................................... 290
TEM_AJUDA
......................................................................................................................................... 290
TEM_ATRIBUTOS ......................................................................................................................................... 290
TEM_BAJUDA
......................................................................................................................................... 290
TEM_BANTERIOR ......................................................................................................................................... 290
TEM_BAPAGACOL......................................................................................................................................... 290
TEM_BCANCELA ......................................................................................................................................... 290
TEM_BCONFGRAF......................................................................................................................................... 290
TEM_BCONFIMP ......................................................................................................................................... 290
TEM_BCONSULTA......................................................................................................................................... 290
TEM_BEXCLUI
......................................................................................................................................... 291
TEM_BFILTRO
TEM_BFINALIZA
TEM_BGRADE
......................................................................................................................................... 291
......................................................................................................................................... 291
......................................................................................................................................... 291
TEM_BGRAFA
TEM_BGRAVA
TEM_BIMPRE
......................................................................................................................................... 291
......................................................................................................................................... 291
......................................................................................................................................... 291
TEM_BINCLUI
......................................................................................................................................... 291
TEM_BINFODB
......................................................................................................................................... 291
TEM_BOTAO_INTERNET
......................................................................................................................................... 291
TEM_BPRIMEIRO ......................................................................................................................................... 291
TEM_BPROCURA ......................................................................................................................................... 292
TEM_BREPARA ......................................................................................................................................... 292
TEM_BROWSE ......................................................................................................................................... 292
TEM_BSEGUINTE ......................................................................................................................................... 292
TEM_BSENHA
......................................................................................................................................... 292
TEM_BTOTALIZA ......................................................................................................................................... 292
TEM_BULTIMO ......................................................................................................................................... 292
TEM_CBOIND
......................................................................................................................................... 292
TEM_COND_ALT_REG
......................................................................................................................................... 292
TEM_COND_EXC_LAN
......................................................................................................................................... 292
TEM_COND_EXC_PRO
......................................................................................................................................... 292
TEM_COND_EXC_REG
......................................................................................................................................... 293
2007 GAS Tecnologia
Contents
15
TEM_COND_INC_LAN
......................................................................................................................................... 293
TEM_COND_INC_PRO
......................................................................................................................................... 293
TEM_COND_INC_REG
......................................................................................................................................... 293
TEM_CONSULTAS......................................................................................................................................... 293
TEM_CPMEMO ......................................................................................................................................... 293
TEM_CPS_LANCAMENTOS
......................................................................................................................................... 293
TEM_DESC_BD ......................................................................................................................................... 293
TEM_DESC_TAB ......................................................................................................................................... 293
TEM_FORMULA_INV_PRO
......................................................................................................................................... 293
TEM_GRAFICOS ......................................................................................................................................... 293
TEM_GRID
......................................................................................................................................... 294
TEM_INDICES
......................................................................................................................................... 294
TEM_INTEGRIDADES
......................................................................................................................................... 294
TEM_LANCAMENTOS
......................................................................................................................................... 294
TEM_MAJUDA
......................................................................................................................................... 294
TEM_MANTERIOR......................................................................................................................................... 294
TEM_MAPAGACOL......................................................................................................................................... 294
TEM_MCANCELA ......................................................................................................................................... 294
TEM_MCONFGRAF......................................................................................................................................... 294
TEM_MCONFIMP ......................................................................................................................................... 294
TEM_MCONSULTA......................................................................................................................................... 294
TEM_MEXCLUI ......................................................................................................................................... 295
TEM_MFILTRO
......................................................................................................................................... 295
TEM_MFINALIZA ......................................................................................................................................... 295
TEM_MGRADE
......................................................................................................................................... 295
TEM_MGRAFA
......................................................................................................................................... 295
TEM_MGRAVA
TEM_MIMPRE
TEM_MINCLUI
......................................................................................................................................... 295
......................................................................................................................................... 295
......................................................................................................................................... 295
......................................................................................................................................... 298
15
16
......................................................................................................................................... 298
REPETE
......................................................................................................................................... 298
301
1 Criando...................................................................................................................................
o Instalador da Aplicao
301
2 O Utilitrio
...................................................................................................................................
Adaptador de Arquivos
301
3 O Utilitrio
...................................................................................................................................
Conversor de Arquivos DBF
303
307
1 Aspectos
...................................................................................................................................
do funcionamento da aplicao
307
2 Definio
...................................................................................................................................
do projeto
308
Dados genricos .......................................................................................................................................................... 310
Estrutura do BD .......................................................................................................................................................... 310
Banco de dados .......................................................................................................................................................... 311
Tabelas
.......................................................................................................................................................... 311
Campos da tabela
......................................................................................................................................................... 313
Fornecedores
......................................................................................................................................... 313
Indexadores
......................................................................................................................................... 315
Parmetros do Sistema
......................................................................................................................................... 316
Produtos em estoque
......................................................................................................................................... 317
Contas a pagar
......................................................................................................................................... 322
Notas fiscais
......................................................................................................................................... 324
Itens da NF
......................................................................................................................................... 326
Movimentao de produtos
......................................................................................................................................... 328
Sadas de mercadorias
......................................................................................................................................... 330
ndices das tabelas
......................................................................................................................................................... 332
Contas a pagar
Fornecedores
......................................................................................................................................... 333
......................................................................................................................................... 333
Indexadores
......................................................................................................................................... 333
Itens da NF
......................................................................................................................................... 334
Movimentao de produtos
......................................................................................................................................... 334
Notas fiscais
......................................................................................................................................... 335
Parmetros do sistema
......................................................................................................................................... 335
Produtos em estoque
......................................................................................................................................... 335
Sadas de mercadorias
......................................................................................................................................... 336
Integridades ......................................................................................................................................................... 337
Notas Fiscais
......................................................................................................................................... 338
Itens da nf
......................................................................................................................................... 339
Produtos em estoque
......................................................................................................................................... 339
Sadas de mercadorias
......................................................................................................................................... 340
Tela inicial
......................................................................................................................................................... 340
Inserindo as janelas
..........................................................................................................................................................
de dados
341
Definindo as janelas
..........................................................................................................................................................
de dados
345
Fornecedores ......................................................................................................................................................... 346
Indexadores ......................................................................................................................................................... 351
Produtos
......................................................................................................................................................... 353
Entradas de produtos
......................................................................................................................................................... 359
Itens da NF ......................................................................................................................................................... 366
Colocando o grid
.........................................................................................................................................................
na tela
376
Financeiro
......................................................................................................................................................... 381
Contents
17
Sada de mercadorias
......................................................................................................................................................... 382
Parmetros do.........................................................................................................................................................
sistema
390
Movimentao.........................................................................................................................................................
dos produtos
391
Ajuste de estoque
......................................................................................................................................................... 394
Formulrios sem
.........................................................................................................................................................
vnculos de dados
396
Formulrios com
.........................................................................................................................................................
alterao bloqueada por default
396
Gerando os programas
..........................................................................................................................................................
fontes
397
Gerando os programas
..........................................................................................................................................................
executveis
399
401
1 Ativando
...................................................................................................................................
a aplicao gerada
401
2 Informando
...................................................................................................................................
os diretrios de trabalho
401
Dados (com extenso
..........................................................................................................................................................
MDB)
401
Controle (com extenso
..........................................................................................................................................................
LDB)
402
Inicializao (com extenso
..........................................................................................................................................................
INI)
402
3 Informando
...................................................................................................................................
a senha e acessando a aplicao
402
4 Operando
...................................................................................................................................
a aplicao
404
Teclas de controle..........................................................................................................................................................
de edio (janelas)
404
Teclas de controle..........................................................................................................................................................
de edio (grid)
405
Incluindo Fornecedores
.......................................................................................................................................................... 407
Incluindo indexadores
.......................................................................................................................................................... 410
Incluindo Parmetros
.......................................................................................................................................................... 410
Incluindo produtos.......................................................................................................................................................... 410
Carregando um
.........................................................................................................................................................
campo do tipo multimdia
416
Retirando um .........................................................................................................................................................
arquivo do campo multimdia
416
Operando o plano..........................................................................................................................................................
de senhas
416
Alterando a senha
......................................................................................................................................................... 417
Criando Grupos
......................................................................................................................................................... 418
Removendo um
.........................................................................................................................................................
grupo
419
Alterando permisses
.........................................................................................................................................................
de grupos
419
Credenciando .........................................................................................................................................................
usurios
420
Descredenciando
.........................................................................................................................................................
usurios
421
Digitando Notas Fiscais
..........................................................................................................................................................
de Fornecedores
421
Uilizando os recursos
..........................................................................................................................................................
da aplicao
422
Boto para alternar
.........................................................................................................................................................
visualizao
423
Boto de incluso
......................................................................................................................................................... 425
Boto de apresentao
.........................................................................................................................................................
de grfico
425
Boto de procura
......................................................................................................................................................... 425
Boto de filtragem
.........................................................................................................................................................
e ordenao
425
Barra de navegao......................................................................................................................................... 426
Boto de imprimir
......................................................................................................................................................... 427
Boto de consulta
......................................................................................................................................................... 428
Boto de informaes
......................................................................................................................................................... 428
Boto de finalizar
......................................................................................................................................................... 428
Operando com consultas
.......................................................................................................................................................... 428
Vizualizando uma
.........................................................................................................................................................
consulta existente
429
Criando uma nova
.........................................................................................................................................................
consulta
429
Contedos
......................................................................................................................................... 430
Nome da consulta ................................................................................................................................... 430
Tabelas
................................................................................................................................... 431
Campos a mostrar ................................................................................................................................... 431
Coluna avulsa
................................................................................................................................... 431
17
18
................................................................................................................................... 432
................................................................................................................................... 432
......................................................................................................................................... 432
................................................................................................................................... 433
Seleo de registros/Unio
...................................................................................................................................
de tabelas
433
Apagando uma.........................................................................................................................................................
consulta
434
Apagando colunas
.........................................................................................................................................................
das grades de consulta
435
Quebra na impresso
.........................................................................................................................................................
de consultas (COPY)
435
Procurando um registro
.......................................................................................................................................................... 436
Trabalhando com ..........................................................................................................................................................
grficos
437
Alterando a forma
.........................................................................................................................................................
de visualizao do grfico
439
Gravando um .........................................................................................................................................................
grfico
439
Imprimindo um.........................................................................................................................................................
grfico
440
Reparao do banco
..........................................................................................................................................................
de dados
440
442
1 Funes
...................................................................................................................................
genricas geradas na aplicao
442
DDMM
DDMMAA
.......................................................................................................................................................... 442
.......................................................................................................................................................... 442
Existe
Extenso
GDV1
.......................................................................................................................................................... 443
.......................................................................................................................................................... 443
.......................................................................................................................................................... 443
GDV2
GDvCb
GravaNoIni
.......................................................................................................................................................... 443
.......................................................................................................................................................... 444
.......................................................................................................................................................... 444
HaNaString
LoadGasPicture
LoadGasString
.......................................................................................................................................................... 444
.......................................................................................................................................................... 445
.......................................................................................................................................................... 445
LPad
MMAA
NMes
.......................................................................................................................................................... 445
.......................................................................................................................................................... 445
.......................................................................................................................................................... 446
NSem
PegaIntDoIni
PegaSequencia
.......................................................................................................................................................... 446
.......................................................................................................................................................... 446
.......................................................................................................................................................... 447
PegaStrDoIni
PTab
RAt
.......................................................................................................................................................... 447
.......................................................................................................................................................... 448
.......................................................................................................................................................... 448
Retira
RPad
Substitui
.......................................................................................................................................................... 448
.......................................................................................................................................................... 449
.......................................................................................................................................................... 449
ValBrasil
VCGC
VDV1
.......................................................................................................................................................... 449
.......................................................................................................................................................... 450
.......................................................................................................................................................... 450
VDV2
VDvCB
VHORA
.......................................................................................................................................................... 450
.......................................................................................................................................................... 451
.......................................................................................................................................................... 451
VUF
.......................................................................................................................................................... 451
2 Variveis
...................................................................................................................................
de sistema
452
De abrangncia global
.......................................................................................................................................................... 452
vgPwUsuario ......................................................................................................................................................... 452
vgPwGrupo ......................................................................................................................................................... 452
2007 GAS Tecnologia
Contents
19
vgPwSenha
......................................................................................................................................................... 452
vgPwObS
......................................................................................................................................................... 452
......................................................................................................................................................... 453
......................................................................................................................................................... 453
vgDirExe
vgDB
......................................................................................................................................................... 453
......................................................................................................................................................... 453
vgNomeIni
......................................................................................................................................................... 453
vgNomeSistema
......................................................................................................................................................... 453
vgProjetista ......................................................................................................................................................... 453
vgBotoesOk ......................................................................................................................................................... 453
vgAtencao
vgImpConv
vgCtHint
......................................................................................................................................................... 453
......................................................................................................................................................... 454
......................................................................................................................................................... 454
......................................................................................................................................................... 459
3 Como ...................................................................................................................................
feito o controle de lanamentos?
460
4 Os arquivos
...................................................................................................................................
de formato .DEF e .SQL
462
2007 GAS Tecnologia
19
20
9 Definindo
...................................................................................................................................
mdulos para impressora fiscal
472
A primeira...
A segunda...
A terceira
.......................................................................................................................................................... 473
.......................................................................................................................................................... 475
.......................................................................................................................................................... 477
A quarta...
.......................................................................................................................................................... 481
Implementando TEF
..........................................................................................................................................................
- Transferncia Eletrnica de Fundos discada
486
Suporte a impressora
..........................................................................................................................................................
Daruma
488
10 Mdulos
...................................................................................................................................
de apoio Emisso de Cupom
488
Modelo da impressora
.......................................................................................................................................................... 489
Porta de conexo .......................................................................................................................................................... 489
Horrio de vero .......................................................................................................................................................... 489
Configuraes para
..........................................................................................................................................................
TEF
489
Abertura de caixa .......................................................................................................................................................... 489
Fechamento de caixa
.......................................................................................................................................................... 489
Leitura X
Reduo Z
Sangria
.......................................................................................................................................................... 489
.......................................................................................................................................................... 490
.......................................................................................................................................................... 490
Suprimentos
Cancela item
.......................................................................................................................................................... 490
.......................................................................................................................................................... 490
Cancela cupom
.......................................................................................................................................................... 490
492
1 Lista das
...................................................................................................................................
propriedades
492
514
1 Tutorial...................................................................................................................................
Mysql
514
Introduo
.......................................................................................................................................................... 514
O que o banco de
..........................................................................................................................................................
dados MySQL
514
Viso geral ......................................................................................................................................................... 514
Passo 1 - Instalao
..........................................................................................................................................................
do banco
515
Fazer o download
.........................................................................................................................................................
do MySQL 5.1
515
Instalar o MySQL
......................................................................................................................................................... 519
Download MySQL
.........................................................................................................................................................
ODBC Driver
532
Instalar MySQL
.........................................................................................................................................................
ODBC Driver
536
Download MySQL
.........................................................................................................................................................
GUI Tools
538
Instalar MySQL
.........................................................................................................................................................
GUI Tools
541
Passo 2 - Definio
..........................................................................................................................................................
no GAS
546
Selecionar tipo.........................................................................................................................................................
do BD no GAS
546
Gerar projeto ......................................................................................................................................................... 548
Passo 3 - Definio
..........................................................................................................................................................
no Banco
553
Criar banco e .........................................................................................................................................................
estrutura
553
2007 GAS Tecnologia
Contents
21
Passo 4 - Conexo..........................................................................................................................................................
no projeto gerado
559
Dados sobre o.........................................................................................................................................................
banco no servidor
559
2 Tutorial...................................................................................................................................
Firebird
562
Introduo
.......................................................................................................................................................... 562
O que o banco de
..........................................................................................................................................................
dados Firebird
562
Viso geral ......................................................................................................................................................... 562
Passo 1 - Instalao
..........................................................................................................................................................
do banco
563
Fazer o download
.........................................................................................................................................................
do Firebird 2.0
563
Instalar o Firebird
......................................................................................................................................................... 564
Download Firebird
.........................................................................................................................................................
ODBC Driver
571
Instalar Firebird
.........................................................................................................................................................
ODBC Driver
572
Passo 2 - Definio
..........................................................................................................................................................
no GAS
578
Selecionar tipo.........................................................................................................................................................
do BD no GAS
578
Gerar projeto ......................................................................................................................................................... 578
Passo 3 - Definio
..........................................................................................................................................................
no Banco
579
Criar banco e .........................................................................................................................................................
estrutura
579
Passo 4 - Conexo..........................................................................................................................................................
no projeto gerado
583
Oitavo item ......................................................................................................................................................... 583
XV Captulo 15 - Extra
587
1 Do Clipper
...................................................................................................................................
para o VB - Analogias
587
Funes e procedures
.......................................................................................................................................................... 587
No Clipper ......................................................................................................................................................... 587
No Visual Basic
......................................................................................................................................................... 588
Retornando o valor
..........................................................................................................................................................
de uma funo em Visual Basic
588
Uso de parmetros..........................................................................................................................................................
opcionais
588
Chamadas a funes
..........................................................................................................................................................
externas
588
Variveis de memria
.......................................................................................................................................................... 588
Arquivos DBF, NTX
..........................................................................................................................................................
e DBT versus TABELAS
588
Tipos de campos .......................................................................................................................................................... 589
Operadores
.......................................................................................................................................................... 589
Estruturas de cdigo
.......................................................................................................................................................... 589
Funes do Clipper
..........................................................................................................................................................
e do GAS-DOS versus Visual Basic
590
Funes idnticas
......................................................................................................................................................... 590
Funes com .........................................................................................................................................................
correspondncia no Visual Basic
590
Funcoes criadas
.........................................................................................................................................................
pela GAS Informatica
592
2 Glossario
................................................................................................................................... 592
Alias
.......................................................................................................................................................... 593
ANSI
Aplicao
rea de cliente
.......................................................................................................................................................... 593
.......................................................................................................................................................... 593
.......................................................................................................................................................... 593
Argumento
.......................................................................................................................................................... 593
Arquivo de inicializao
.......................................................................................................................................................... 593
Arquivo DEF
.......................................................................................................................................................... 593
Arquivo resource .......................................................................................................................................................... 593
Arranjo ou varivel..........................................................................................................................................................
indexada
594
ASCII
.......................................................................................................................................................... 594
Asterisco
.......................................................................................................................................................... 594
Banco de campos.......................................................................................................................................................... 594
Banco de dados .......................................................................................................................................................... 594
Banco de dados multiusurio
.......................................................................................................................................................... 595
Campo invisvel .......................................................................................................................................................... 595
Campo no editvel
.......................................................................................................................................................... 595
2007 GAS Tecnologia
21
22
.......................................................................................................................................................... 595
Bitmap
.......................................................................................................................................................... 595
Bookmark
.......................................................................................................................................................... 595
Booleano ou lgico
.......................................................................................................................................................... 596
Caixa de dilogo .......................................................................................................................................................... 596
Campo
.......................................................................................................................................................... 596
Campo Alvo
.......................................................................................................................................................... 596
Campo chave
.......................................................................................................................................................... 596
.......................................................................................................................................................... 598
.......................................................................................................................................................... 598
.......................................................................................................................................................... 599
Consulta pr-definida
.......................................................................................................................................................... 599
Controle
.......................................................................................................................................................... 599
Controles externos.......................................................................................................................................................... 599
Controle vinculado.......................................................................................................................................................... 599
Copy buffer
.......................................................................................................................................................... 599
Crystal reports
.......................................................................................................................................................... 599
Data control
Data bound
Default
.......................................................................................................................................................... 600
.......................................................................................................................................................... 600
.......................................................................................................................................................... 600
DLL
Domnio
Dynaset
.......................................................................................................................................................... 600
.......................................................................................................................................................... 600
.......................................................................................................................................................... 600
Equi-join
Etiqueta
Evento
.......................................................................................................................................................... 601
.......................................................................................................................................................... 601
.......................................................................................................................................................... 601
.......................................................................................................................................................... 602
.......................................................................................................................................................... 602
.......................................................................................................................................................... 602
ndice
.......................................................................................................................................................... 602
Inner join
.......................................................................................................................................................... 603
Integridade referencial
.......................................................................................................................................................... 603
Instncia
.......................................................................................................................................................... 603
2007 GAS Tecnologia
Contents
23
Janela
.......................................................................................................................................................... 603
Janela modal
.......................................................................................................................................................... 603
.......................................................................................................................................................... 604
.......................................................................................................................................................... 604
Left join
.......................................................................................................................................................... 604
.......................................................................................................................................................... 604
.......................................................................................................................................................... 605
.......................................................................................................................................................... 606
.......................................................................................................................................................... 606
Modal
Mdulo
Objeto
.......................................................................................................................................................... 606
.......................................................................................................................................................... 606
.......................................................................................................................................................... 606
OLE
.......................................................................................................................................................... 606
Outer join
.......................................................................................................................................................... 606
Parmetros do sistema
.......................................................................................................................................................... 607
Permisses
Pixel
Procedure
.......................................................................................................................................................... 607
.......................................................................................................................................................... 607
.......................................................................................................................................................... 607
.......................................................................................................................................................... 608
.......................................................................................................................................................... 608
.......................................................................................................................................................... 608
Query
.......................................................................................................................................................... 608
Query de ao
.......................................................................................................................................................... 608
Query de parmetro
.......................................................................................................................................................... 608
Query de seleo .......................................................................................................................................................... 608
Recordset
.......................................................................................................................................................... 608
Registro
.......................................................................................................................................................... 609
Registro corrente .......................................................................................................................................................... 609
Relao
.......................................................................................................................................................... 609
Relatrio
.......................................................................................................................................................... 609
Reparao de banco
..........................................................................................................................................................
de dados
609
Rotina avulsa
.......................................................................................................................................................... 609
Self join
.......................................................................................................................................................... 609
Separador
Servidor OLE
Snapshot
.......................................................................................................................................................... 610
.......................................................................................................................................................... 610
.......................................................................................................................................................... 610
SQL
Sub
Tabela
.......................................................................................................................................................... 610
.......................................................................................................................................................... 610
.......................................................................................................................................................... 610
Tabela-alvo
.......................................................................................................................................................... 610
Tabela anexada .......................................................................................................................................................... 610
Tabela ANSI
.......................................................................................................................................................... 611
Tabela ASCII
.......................................................................................................................................................... 611
Tabela bsica
.......................................................................................................................................................... 611
Tabela estrangeira.......................................................................................................................................................... 611
Tipo de campo
.......................................................................................................................................................... 611
23
24
Index
617
Captulo
I
Captulo 1- Introduo
26
Captulo 1- Introduo
Esta a quinta verso do GAS para Windows. Lanada h alguns anos aps o incio da
comercializao da sua predecessora, esta verso j incorpora, conforme prometemos, quase todos
os recursos existentes na verso MS-DOS deste produto, consideradas as enormes diferenas entre
os dois ambientes, alm de recursos de extrema necessidade em nossa atual conjuntura de
mercado, como o acesso a diversos tipos de base de dados corporativas. Alguns recursos no
puderam ainda ser disponibilizados; porm, conforme sempre dizemos, outras verses viro sempre
acompanhadas de diversas novidades e implementaes que colocaro, com certeza, este produto
entre os melhores de sua classe.
Esperamos que voc faa bom uso deste material. Criticas e sugestes so sempre bem vindas.
GAS Tecnologia.
1.1
Captulo 1- Introduo
27
1.1.1
Aspectos da Interface
Tanto o GAS quanto as aplicaes por ele geradas possuem interface padro do Windows, com
caracterstica MDI ou interface de mltiplos documentos. Isto significa que todas as janelas da
aplicao esto contidas em uma nica janela principal (MDI) dentro da qual as demais podem ser
utilizadas, minimizadas e maximizadas.
Aplicaes com este tipo de interface apresentam, normalmente, um alto grau de qualidade e
sofisticao pela inexistncia, salvo em raras situaes, de janelas modais - aquelas que o usurio
28
obrigado a resolver, antes que consiga clicar e ativar outras janelas da aplicao.
Alm de possuir a ajuda de operao on-line padro Windows, o GAS apresenta uma ajuda
especfica para os objetos de sua interface, atravs de bales com textos elucidativos relativos ao
contexto.
1.1.2
Modelagem da rvore
O GAS possui modelador prprio que permite ao projetista desenhar a estrutura hierrquica do
projeto (rvore) conforme necessrio, com uma interface bastante amigvel.
Sempre que um novo projeto criado, o GAS coloca diversos mdulos da interface padro
Windows (opes Arquivo, Editar, Exibir, Janela, etc.) na rvore do projeto, que podem ser retirados
ou modificados, a qualquer instante, pelo projetista.
O modelador apresenta cones especiais para identificar o tipo de mdulo existente na rvore
(menu, janela de entrada de dados, relatrio, rotina avulsa, etc.). A modelagem da hierarquia do
projeto feita livremente atravs da insero, movimentao ou eliminao de mdulos.
Arvore da soluo\projeto
O modelador do projeto do GAS possui diversos recursos para facilitar o trabalho do projetista.
Alguns deles:
Captulo 1- Introduo
29
1.1.3
Definio da Soluo\Projeto
Aspectos da Soluo\projeto podem ser definidos pelo projetista pela simples marcao de
opes. Algumas opes que podem ser marcadas so:
30
quantidade de caracteres a serem utilizados para endentar as estruturas no cdigo fonte Visual
Basic;
botes estilo Internet. O GAS poder gerar, caso tenha sido configurado, barra de ferramenta
na aplicao com botes de estilo semelhante aos existentes nos browsers da Internet.
se a aplicao final ir ficar estacionada na senha, sempre que for abandonada por um usurio,
caso esteja provida do plano de senhas (veja item Segurana de Acesso Aplicao, mais
adiante). Esta opo especialmente til na confeco de aplicaes voltadas para balco
(PDV) onde diversos vendedores utilizam o sistema na mesma estao de trabalho. Na
definio do projeto, bem como nas definies de tabelas e outros lugares, o projetista poder
digitar texto para ser utilizado na documentao do projeto.
1.1.3.1
Solues multi-projetos
A estrutura principal para definio de projetos do GAS foi alterada visando possibilitar a definio
de vrios projetos de forma agrupada dentro de uma nica soluo (.GAS). Essa caracterstica pode
ser comparada a solues (nome dado em algumas IDE's como, por exemplo, o Visual Studio). O
projetista definir a estrutura dos bancos de dados em um local centralizado e, depois de definidos
os bancos, poder determinar quais bancos sero utilizados dentro de cada projeto.
1.1.4
Captulo 1- Introduo
31
32
campo modificado;
tipos intrnsecos de campos. Quando, por exemplo, o projetista define um campo do tipo CGC,
o GAS estabelece automaticamente o seu tamanho, validao, mscara e outros detalhes
inerentes a este tipo de campo. Alguns dos campos intrnsecos oferecidos so: rotativo
(spinners), optativo (botes de radio), telefone, CPF, CGC, e-mail, web page, carto de crdito,
cdigos de barra EAN e UPCA (EAN 13 e 8, UPC-A, 3 de 9 e 2 de 5 interleaved), etc.
EAN
UPCA
1.1.5
Banco de Campos
medida que as definies so feitas, um banco de campos vai sendo formado a partir das
informaes definidas. Assim, sempre que se fizer necessrio ou que desejar, o projetista poder
clicar para capturar definies de campos j feitas, para serem aproveitadas em novas definies que
estiverem sendo efetuadas, economizando assim um precioso tempo.
1.1.6
Editor Interno
Sempre que o projetista desejar o editor de programas interno do GAS pode ser invocado para
oferecer ao projetista as condies de escrever cdigo Visual Basic para ser integrado ao sistema
aplicativo gerado.
O editor interno do GAS possui trs reas distintas para a insero de cdigo:
declaraes de variveis e funes externas, que deve ser utilizada para declarar os nomes das
variveis que tero visibilidade dentro do escopo do mdulo que estiver sendo definido.
Captulo 1- Introduo
33
Se o mdulo em definio for o ttulo do projeto, as variveis tero escopo global, em toda a
aplicao;
funes ou rotinas globais, que devem ser utilizada para que o projetista crie suas prprias
funes para o mdulo e
designao de variveis, que podem ser utilizadas para designar valores para as variveis
criadas na primeira rea do editor.
O editor possui diversas facilidades para auxiliar o projetista no seu trabalho, como por exemplo,
procura e substituio de texto, auto-endentao e cores diferentes para palavras chaves, comandos,
comentrios, etc.
1.1.7
34
uma imagem de padro bitmap (.BMP) pode ser escolhida para ser utilizada como
apresentao (splash screen) da aplicao final,podendo-se, ainda, definir as dimenses e a
moldura da tela onde a imagem ser apresentada.
todos os cones a serem utilizados na aplicao gerada podem ser configurados utilizando-se
os que so oferecidos pelo GAS na sua galeria de cones, ou quaisquer outros que o projetista
desejar utilizar.
ainda para manipular a aparncia da aplicao final a ser gerada, o projetista poder criar
logotipos verticais laterais com texto em degrad em qualquer dos forms da aplicao, para
identific-los com um visual mais agradvel;
texturas em bitmap podem ser escolhidas para servir como pano de fundo dos forms da
aplicao com uma apresentao bastante profissional. O projetista pode ainda colocar nos
forms diversos objetos como icones, imagens ou texto em 3-D, em qualquer ngulo.
Captulo 1- Introduo
1.1.7.1
35
Marca d'gua
O projetista pode definir uma marca d'gua na aplicao final, em tempo de execuo. Na figura
abaixo mostrado como se coloca no projeto.
36
1.1.8
Captulo 1- Introduo
37
definir ou no um nome ao menu. Caso seja definido, o usurio pode chamar pelo nome
definido dentro do seu projeto;
permitir ou no que o menu seja visvel, podendo ser atravs do atendimento de uma
determinada condio;
definir ou no uma pre-validao, podendo assim criar uma condio para que o menu esteja
ou no habilitado;
definir ou no uma tecla de atalho para que ao pressionada seja chamado este formulrio;
38
O projetista poder ainda utilizar expresses do prprio Visual Basic ou ainda funes escritas
nesta linguagem, atravs do editor interno do GAS, que so automaticamente integradas ao cdigo
gerado na aplicao final.
Na definio de uma janela de dados, uma tabela eleita como tabela bsica e o projetista tem a
oportunidade de estabelecer os relacionamentos entre a tabela bsica e outras tabelas existentes em
qualquer um dos bancos de dados definidos para a aplicao final. Ento, a partir desses
relacionamentos, diversas outras definies podem ser feitas:
processamentos podem ser definidos de modo que, contedos de campos digitados possam
ser utilizados em frmulas para modificar campos de outras tabelas da aplicao ou da prpria
tabela em digitao, inclusive em registros diferentes daquele em que a digitao esteja sendo
efetuada. Por exemplo, pode-se estabelecer que, quando da digitao de um item de Nota
Fiscal de fornecedor, a tabela de produtos em estoque seja processada em seus campos
"quantidade em estoque" e "preo mdio", com o acrscimo da quantidade de produto recebida
e o reclculo do preo mdio do produto;
Captulo 1- Introduo
39
lanamentos podem ser estabelecidos para a criao de novos registros em quaisquer tabelas
de qualquer banco de dados da aplicao (ou na prpria tabela em digitao) com a imediata
colocao de valores em seus campos, da mesma maneira e facilidade como feita nos
processamentos do item anterior. Por exemplo, ao registrar um recebimento em "contas a
receber", pode-se estabelecer que um lanamento de crdito seja feita na tabela de
"contacorrente", referente ao valor recebido.
40
Captulo 1- Introduo
1.1.9
41
42
Se desejar que uma tabela seja apresentada em grid, entretanto, sem nenhum relacionamento
com a tabela da janela de dados(pai), tambm possivel, bastando apenas informar nas definies
do Grid, que o mesmo no possui relacionamento com o PAI.
Captulo 1- Introduo
43
Figura 1.8
Diversas facilidades foram colocadas no GAS para facilitar ao projetista formatar janelas de dados.
A barra de ferramentas de tela que aparece automaticamente ou pode ser invocada contm diversos
desses recursos:
boto magic button para a criao de tela padro. A partir de parmetros que o prprio
projetista tenha determinado atravs da tela de opes, este boto cria automaticamente uma
tela padro de digitao para a tabela bsica da janela de dados;
44
boto para permitir o estabelecimento automtico da posio ordinal dos campos na janela
(ordem na qual sero digitados);
boto para restaurar a tela anterior, caso o projetista tenha trabalhado um certo tempo em uma
tela que deseja descartar;
boto para seleo, de uma s vez, de todos os controles que estejam presentes na janela;
botes para a insero na janela de dados, de pictureboxes, texto 3D, frames, shapes, lines,
botes, labels, imagens, painis e tabs. Uma vez colocado um controle na janela, alm de
designar propriedades para o mesmo, o projetista poder escrever rotinas para controlar os
eventos sobre este controle;
podem ser inseridos na janela de dados controles para receber variveis de memria (no
existentes em bancos de dados);
boto para bloquear a movimentao dos controles posicionados na tela;
grade em milmetros, que pode ser configurada, para facilitar o posicionamento dos objetos na
tela;
Captulo 1- Introduo
45
h um objeto clipboard persistente (que permanece mesmo depois que o GAS abandonado)
para permitir cpia e colagem de controles de container para container;
uma lista para a designao de propriedades para qualquer um dos objetos colocados na tela,
tais como:
1. expresso de validao e respectiva mensagem ao usurio, caso esta no seja atendida
quando da digitao do campo;
2. pr-validao ou condio para que o campo seja editado;
3. valor inicial ou default a ser assumido para o campo e oferecido como sugesto ao usurio final
da aplicao;
4. frmulas a serem mostradas na janela de digitao de dados. Por exemplo, ao digitar um
cdigo de fornecedor.
5. em uma Nota Fiscal, pode-se facilmente estabelecer que alguns dados da tabela de
fornecedores, como nome e endereo, sejam apresentados dentro de labels ou painis;
6. possibilidade de se programar eventos como FormLoad(), FormUnload(), FormActivate(),
KeyDown(), KeyPress(), etc.
Para utilizar esses recursos, o projetista poder utilizar uma interface semelhante do prprio
Visual Basic, como por exemplo, selecionar mltiplos controles e arrast-los de uma s vez ou
designar propriedades comuns a diversos controles ao mesmo tempo.
Outro recurso importante que o GAS oferece para a formatao de tela o reconhecimento
automtico de certos tipos de campos definidos. Por exemplo, se existe um campo do tipo optativo
definido na tabela bsica, ao ser colocado na tela aparecem automaticamente os botes de rdio
correspondentes s opes do campo, dentro de um frame com o ttulo deste campo. Um campo do
tipo imagem que colocado na tela, apresenta automaticamente um objeto para conter a figura e um
boto para permitir ao usurio final inserir figuras, quando operando a aplicao.
46
Esses processamentos podem ser definidos de modo entremeado com relatrios dando uma
enorme flexibilidade aplicao. Numa entrada de Notas Fiscais, por exemplo, o projetista poder
definir que, aps conferidos os itens digitados na nota sejam creditados s quantidades de produtos
em estoque, um relatrio seja disparado para imprimir os tens agregados, um outro processo poder
ser disparado para calcular um novo preo mdio dos produtos, outro relatrio pode ser disparado
para a emisso das etiquetas para afixao nos produtos,etc., tudo isso em uma s ao.
Captulo 1- Introduo
Figura 1.10
47
48
Figura 1.11
Figura 1.12
Captulo 1- Introduo
49
Figura 1.13
Crystal Reports - se constitui numa interface prpria que permite ao usurio fazer as definies
que depois, so passadas automaticamente ao Crystal Reports. Importante dizer que toda a
definio do relatrio feita por meio da interface amigvel do GAS , atravs de simples cliques
sobre botes, tabs e listas. O utilitrio Crystal Reports ser invocado pelo GAS apenas para a
definio do layout e do posicionamento dos campos definidos para constar no relatrio ou etiqueta.
Dentre as definies solicitadas para este tipo de relatrio, destacam-se:
a) ttulo sob o qual aparecer no menu a ser acionado pelo usurio da aplicao final;
b) nome do arquivo onde sero armazenadas as definies do relatrio (.RPT) para serem
utilizadas pelo Crystal Reports;
c) expresso SQL que define a query a ser utilizada no relatrio;
d)agrupamentos (quebras) e ordenaes que porventura o projetista deseja colocar no relatrio;
e) seleo dos registros a serem impressos.
Telas demonstrando a criao,propriedades e apresentao dos relatrios e etiquetas:
50
Captulo 1- Introduo
51
52
As informaes recebidas nessas telas podem ser utilizadas para o estabelecimento de filtros e
condies diversas, proporcionando grande flexibilidade no controle da aplicao.
Captulo 1- Introduo
53
Figura 1.14
Tudo o que for anotado neste livro gravado automaticamente junto com as definies do projeto,
estando sempre disponveis a um clique do mouse, sempre que um projeto aberto.
54
Pode-se tambm fazer um cerceamento em nvel de menus, de modo que possam ser sempre
ocultos a determinados grupos de usurios. Um usurio cadastrado dentro de um grupo "herda" as
permisses do seu grupo e, durante a operao da aplicao, os botes e opes de menu sero
habilitados ou desabilitados (ou mesmo ocultos), conforme o credenciamento designado ao usurio
que a esteja operando.
Captulo 1- Introduo
55
Acionada a opo de emisso de programas fontes, um dilogo oferecido ao projetista para que
ele possa selecionar os mdulos que deseja gerar.
56
Captulo 1- Introduo
57
O banco de dados manipulado pela aplicao gerada (JET Engine, SQL Server ou Oracle) dever
estar instalado no ambiente do usurio final para que as aplicaes possam funcionar corretamente.
1.2
58
1. Nmeros com separadores de milhares e decimais. Neste tipo de dado, durante a digitao, os
nmeros vo sendo apresentados da direita para a esquerda, sendo ainda possvel utilizar-se
de um extensor (boto opcionalmente colocado junto ao campo) que apresenta uma
calculadora completa logo abaixo do campo na qual podem ser feitas operaes com captura
do resultado;
2. Datas em diversos formatos, inclusive com o nome do ms por extenso. Neste tipo de campo,
tambm possvel a utilizao do extensor para apresentar um calendrio de onde podem ser
consultadas e capturadas as datas desejadas;
3. Campos do tipo caracter com formato especial, como CPF, CGC, etc.
4. Lista externa (semelhante a uma DbComboBox) com a possibilidade de se escolher vrios
campos (colunas) para serem visualizados segundo uma ordem preestabelecida. Esses
campos podero ser provenientes de qualquer um dos bancos de dados com que a aplicao
esteja trabalhando, independentemente do nmero de registros existentes nas tabelas.
5. Campos do tipo rotativo (spinner), optativos, lgicos, memo, etc.
Apresentao de vrios tipos de grficos envolvendo campos (colunas) das tabelas
apresentadas nas grades;
Impresso de janelas de dados, consultas e grficos que estiverem sendo apresentados;
Captulo 1- Introduo
59
Campo especial para multimdia - este tipo de campo permite a carga e gravao no banco de
dados, de qualquer tipo de arquivo, como por exemplo, DOC, AVI, ZIP, MID, EXE, MP3, etc.,
alm de qualquer tipo de imagem. Se o micro do usurio final possuir um scanner conectado,
este poder digitalizar imagens diretamente para o campo! Se for necessria a edio do
contedo deste campo, a aplicao acionar automaticamente o aplicativo Windows que estiver
associado ao tipo de arquivo, ou seja, se voc armazenou um DOC em um campo, a aplicao
invocar o MS-Word para edit-lo; se este campo contm um arquivo JPG gravado, ser
convocado o editor de imagens preferido do usurio. A aplicao gerencia automaticamente se
o arquivo foi modificado e, se for o caso, disparar o evento datachanged da aplicao,
habilitando automaticamente os botes de gravao e cancelamento, para que o usurio possa
regravar o arquivo modificado no campo do banco de dados. Aplicaes manipulando imagens
BMP criadas com a verso anterior do GAS (GAS- 98) podero ser convertidas com o utilitrio
conversor disponibilizado pela GAS Informtica. Este conversor transformar rapidamente
campos imagem BMP gravados no banco em campos multimidia contendo imagens JPG, com
a compresso que voc selecionar.
60
Assim fazendo, o tamanho do banco de dados ser drasticamente reduzido. S para exemplificar,
tipicamente, um BD com 40 MB poder ficar, aps convertido, com menos de 2MB!
Digitao em grid - o GAS possui um objeto especial para permitir a digitao em grid. Todos
os tipos de campos podem ser digitados dentro do prprio grid, inclusive campos do tipo listas
externas e internas, rotativos, lgicos, memo, etc. Todos os recursos de mscaras, calculadora,
calendrio, etc. existentes na digitao em telas so disponibilizados para os campos digitados
no grid. A cada nova linha includa ou alterada no grid, todos os processos e lanamentos
definidos so disparados automaticamente e todos os forms visveis no momento so
imediatamente atualizados para espelhar os novos valores que porventura tenham sido
alterados.
Tratamento da tecla ENTER e das setas para funcionar como se fosse a tecla TAB e
SHIFT-TAB para avanar e retroceder campos na tela;
Captulo 1- Introduo
61
Correo ortogrfica via automao OLE com o MS-Word para campos do tipo texto e memo
na aplicao final.
O projetista poder colocar boto na barra de ferramentas da aplicao (ou deixar opo de
men) para fazer esse trabalho automaticamente. No entanto, para utilizar este recurso, o usurio
final dever ter o MS-Word instalado em seu equipamento;
Rotinas de reparao e compactao de banco de dados;
Os registros visualizados nas janelas de dados podem obedecer a um filtro inicial estabelecido
por campos informados em uma outra janela, antes da janela de dados ser mostrada. Por
exemplo, uma tela recebe o cdigo do fornecedor e este campo far parte de uma expresso
para filtrar registros que aparecero na prxima janela.
Informaes em tabelas relacionadas 1-N com diversos nveis (pai, filho,neto...), podem ser
digitadas em grids colocados em uma mesma janela;
Recursos de previso (preview) de relatrios com zoom em qualquer escala. O usurio poder
imprimir apenas uma pgina, se necessrio. Poder tambm facilmente navegar em todas as
pginas do relatrio.
62
1.3
O contedo abaixo, uma viso geral das mudanas chaves, das melhorias e de caractersticas
novas na verso 2007 do GAS.
Alteraes gerais e implementaes:
1.3.1
Solues multi-projetos
A estrutura principal para definio de projetos do GAS foi alterada visando possibilitar a definio
de vrios projetos de forma agrupada dentro de uma nica soluo (.GAS). Essa caracterstica pode
ser comparada a solues (nome dado em algumas IDEs como, por exemplo, o Visual Studio). O
projetista definir a estrutura dos bancos de dados em um local centralizado e, depois de definidos
os bancos, poder determinar quais bancos sero utilizados dentro de cada projeto.
Captulo 1- Introduo
1.3.2
63
Executveis independentes
Com esta funcionalidade, cada modulo (projeto) ter a sua gerao dos fontes de forma
independentes, ou seja, cada um ter o seu prprio executvel, entretanto, podendo estar
interligados ou no.
1.3.3
Sistemas multi-empresa
Na definio da estrutura dos bancos de dados o projetista poder optar por realizar o controle
multi empresa para quaisquer bancos de dados. Uma vez definido que o banco de dados ter
controle multi- empresa, ser disponibilizada a opo para determinar quais tabelas estaro sob esse
controle. Pode-se, portanto, trabalhar com apenas algumas das tabelas de um banco com o controle
interno para multi-empresa. O controle multi empresa disponibilizado no GAS baseado em uma
tabela do banco que ser escolhida como sendo a tabela de empresas que tambm conter o campo
"Cod~Emp". Esse mesmo campo ser criado de forma automtica para todas as tabelas que tiverem
o controle multi empresa definido. Assim que o usurio tentar acessar o sistema ser solicitada a
empresa que ir utilizar para trabalhar, e todos os registros inclusos ou lanados recebero de forma
automtica o campo Cod~Emp de acordo com essa empresa selecionada;
64
1.3.4
Gerenciamento de projetos
Alm de gerenciar os projetos, o mdulo de soluo pode ser usado para gerar fontes de um
aplicativo, que controle os outros executveis e as rotinas globais a todos os outros projetos.
1.3.5
Captulo 1- Introduo
65
ser utilizada para encriptao do plano de senhas. Sendo assim, at mesmo solues diferentes
podero compartilhar mdulos de senhas de um mesmo banco de dados.
1.3.6
66
1.3.6.1
Access
Nas verses anteriores, o GAS j acessava nativamente o banco de dados Access (jet 3.6),
utilizando a forma de conexo pelos componentes DAO.
Agora, para o banco de dados ACCESS oferecido tambm a conexo via componentes ADO.
1.3.6.2
SQL Server
O Acesso ao banco de dados SQL Server por aplicaes geradas, foram mantidos e melhorados
nesta verso.
Alm disto, o cdigo gerado perfeitamente compatvel com as verses gratuitas do SQL Server,
conhecida como: SQL Server 2005 express Edition, e pode ser baixada diretamente no site do
fabricante.
1.3.6.3
Oracle
O Acesso ao banco de dados Oracle por aplicaes geradas, foram mantidos e melhorados nesta
verso.
Alm disto, o cdigo gerado perfeitamente compatvel com as verses gratuitas do Oracle,
sendo ela: Oracle 10g Express Edition, e pode ser baixada diretamente no site do fabricante.
1.3.6.4
Firebird
Implementado nessa verso o acesso nativo ao banco de dados Firebird. Esta implementao foi
realizada tomando-se como base a verso 2.0 (Release Candidate 2) devido a vrias caractersticas
presentes nessa verso que no existem na verso 1.5. Para maiores detalhes sobre o projeto
Firebird 2.0, acesse o site do desenvolvedor (http://www.firebirdsql.com). O driver utilizado para conex
o o Firebird ODBC-JDBC v. 2.0.0.138. Para maiores detalhes sobre o projeto Firebird
ODBC-JDBC acesse ao site do desenvolvedor (http://www.praktik.km.ua/).
Captulo 1- Introduo
1.3.6.5
67
My Sql
Foi tambm implementado nessa verso o acesso nativo ao banco de dados MySQL. A
implementao foi realizada tomando-se como base a verso 5.0. O driver utilizado para conexo o
MyOleDb v.3.9.
1.3.7
68
Captulo 1- Introduo
69
70
Captulo 1- Introduo
71
72
1.3.8
Captulo 1- Introduo
73
Sendo assim pode-se construir, por exemplo, um nico projeto, gerar um nico cdigo fonte e
uma nica instalao que possibilite o usurio utilizar o aplicativo gerado com banco de dados MDB
ou SQL Server. Quando a aplicao for executada pela primeira vez, ser solicitado o tipo de banco
de dados a ser utilizado. Com as novas classes para acesso a dados, a padronizao do cdigo
possibilita que at mesmo cdigos escritos manualmente pelo programador possam ser executados
em qualquer um dos tipos de banco de dados selecionados. Assim sendo, no existe mais a
preocupao de escrever um cdigo especfico para MDB, SQL Server, Oracle, etc. As classes se
encarregam de fazer as devidas converses para o banco especificado. Ao acessar a aplicao, ser
solicitado o preenchimento de informaes sobre qual banco deseja utilizar.
1.3.9
3 - Projetos: Permite ao projetista definir quais projetos da soluo utilizaram o banco de dados
selecionado. possivel definir para cada banco, para quais projetos eles estaro disponveis.
74
1 - Multi Empresa: Permite ao projetista definir se este banco de dados, ter o controle Multi
empresa.
2 - Tipos de DB: Permite ao projetista definir quais os tipos de banco de dados, o banco de
dados escolhido ir trabalhar. Em projetos com mais de um banco de dados, possivel definir os
tipos que estaram disponveis no aplicativo gerado, para cada um dos bancos.
Captulo 1- Introduo
75
1 - Permitir incluso em consulta: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a incluso de um novo registro.
2 - Permitir alterao em consultas: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a alterao de um registro existente.
3 - Permitir Excluso em consultas: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a excluso de um registro existente.
4 - Tipo empresa: Com esta opo marcada, a tabela ser tratada com uma tabela de controle de
empresas. Esta tabela ser utilizada para cadastrar os registros que o usurio quiser utilizar como
registro das empresas na entrada do programa.
5 - Multi empresa: Com esta opo marcada, esta tabela ter o controle de empresa em cada
registro cadastrado.
6 - Invisivel: Com esta opo marcada, a tabela no ser apresentada ao usurio final.
76
2 - Permitir Nulo: Define se o campo permitir que sejam gravados valores nulos. Muito utilizado
em integridades.
3 - Valor Default: Permite criar um valor default (padro) para o campo. O valor default registrado
no banco de dados, e ser gravado quando nenhum valor for enviado ao campo.
Captulo 1- Introduo
77
2 - Ordem de ndices: Possibilidade de definir, em tempo de projeto, a ordem que os ndices iro
aparecer na janela de procura e na lista de ndices da aplicao gerada.
78
grid esto carregados efetivamente na memria do controle. Se o driver utilizado para conexo com o
banco de dados permitir o grid tambm poder utilizar o preenchimento gradual.
Dessa maneira, enquanto os registros estiverem sendo retornados da base de dados, o grid j
poder mostrar a parte dos registros que j foram adquiridos. O novo controle permitir definio de
cor para fundo e texto individualmente para cada clula. Assim, o projetista tem a possibilidade de
determinar, por exemplo, condies para determinao da cor de fundo ou de texto de alguma
informao. Tambm estar disponvel nessa verso do controle recursos especficos para colunas
numricas: o usurio poder ver na barra de status do grid informaes de total, mximo, mnimo e
mdia das informaes. Agora tambm possvel selecionar vrias linhas no grid para para operar
com eles, por exemplo, para excluir, grafar, etc.
O controle permitir que o usurio modifique a ordem de apresentao das colunas, bem como
determinar a ordenao de registros (crescente/decrescente) clicando sobre o ttulo de uma ou de v
rias colunas. Tambm foi embutido no controle uma barra de filtro (antes era externa), que poder ser
habilitada ou no pelo usurio em tempo de execuo. Ser possvel ainda definir a quantidade de
registros que sero retornados pela query (TOP). Todos os recursos comentados aqui estaro dispon
veis tanto em grids de consultas como em grids filhos (em janelas de dados);
Captulo 1- Introduo
79
80
Captulo 1- Introduo
81
principal funo a incluso de registros (em tabelas com um grande volume de informaes) ou
para formulrios em que sero realizados, obrigatoriamente, filtros para a aquisio de dados;
Um excelente recurso a possibilidade de abrir um form desvinculado dos dados, dando mais
velocidade, ideal para bancos em servidores na internet:
82
Captulo 1- Introduo
83
84
Captulo 1- Introduo
85
Histrico para gerao de fontes em que se guardado log de data/hora, verso, observaes do
programador e verso/release do GAS,utilizada para gerao
86
Captulo 1- Introduo
87
88
Captulo 1- Introduo
89
90
Captulo 1- Introduo
91
92
Captulo 1- Introduo
93
94
Captulo 1- Introduo
95
96
Captulo 1- Introduo
97
Captulo
II
Captulo 2 - Instalao e requisitos
2.1
99
2.2
Procedimentos de instalao
Para instalar o GAS no equipamento, deve-se proceder conforme se segue:
Insira o CD no drive CD-ROM;
Selecione, a partir do menu Iniciar, escolha a opo Executar;
Clique sobre o boto Procurar e selecionar o programa SETUP.EXE no CD;
Siga as instrues do programa utilitrio de instalao.
Aps a execuo desses passos, o utilitrio instalador dever ter criado em seu computador uma
pasta contendo alguns cones, representando atalhos para ativao de programas, bem como,
opcionalmente, ter aberto o arquivo LEIAME.TXT e criado um atalho para o GAS na rea de
trabalho.
2.3
2.4
Habilitar a execuo
Na sua primeira execuo, aps ter sido instalado no equipamento, se adquirido sem o plugue, o
GAS apresentar uma tela requisitando dados de cadastro.
100
Neste momento, voc dever entrar em contato com a Gas Tecnologia para obter a sua contra
senha de instalao. Uma vez devidamente registrada, sua cpia estar habilitada para uso em seu
equipamento.
2.5
Captulo
III
Captulo 3 - Conceitos preliminares
102
3.1
Consideraes
Recomendamos a leitura deste captulo mesmo aos que possuam experincia em programao.
Alguns conceitos abordados so importantes para o entendimento de como o GAS trata as
informaes que vo sendo a ele passadas pelo projetista no decorrer da execuo de um projeto de
sistema. H tambm alguns conceitos na forma de glossrio, que so importantes de se conhecer
para um melhor entendimento da programao no ambiente Windows e da manipulao de dados
em bancos de dados relacionais atravs de instrues SQL.
3.2
3.2.1
Modelador do projeto
A modelagem ou desenho de um projeto com o GAS feita utilizando-se o seu modelador. Por
intermdio deste recurso, pode-se estabelecer toda a hierarquia dos mdulos que comporo a
aplicao final. Os mdulos so inseridos no projeto na forma de rvore hierrquica, verticalizada,
aparecendo dentro do modelador conforme exemplo da figura 3.1. Um fato importante a ser
observado na rvore do projeto que ela espelha exatamente a estrutura de menus que sero
levados para a aplicao final.
Os mdulos inseridos imediatamente abaixo do ttulo do projeto (no segundo nvel) aparecero na
barra de menu da aplicao enquanto os demais aparecero em sub-menus.
103
Figura 3.1
Mltiplos projetos
A estrutura principal para definio de projetos do GAS foi alterada visando possibilitar a definio
de vrios projetos de forma agrupada dentro de uma nica soluo (.GAS). Essa caracterstica pode
ser comparada a solues (nome dado em algumas IDE's como, por exemplo, o Visual Studio). O
projetista definir a estrutura dos bancos de dados em um local centralizado e, depois de definidos
os bancos, poder determinar quais bancos sero utilizados dentro de cada projeto.
104
Figura 3.2
3.2.2
3.2.2.1
Menu
Constitui-se de um mdulo de bifurcao para outras opes. apresentado na forma de
retngulo com as demais opes que podem ser selecionadas pelo usurio.
Abaixo de mdulos do tipo menu podem ser inseridos quaisquer outros tipos de mdulos.
3.2.2.2
Janela de dados
um mdulo que serve para a definio de uma tabela que tenha sido inserida na estrutura do
banco de dados do projeto. Esta definio compreende a sua estrutura, como campos, validaes,
ndices, relacionamentos, processos, lanamentos, etc. Quando inserimos uma janela de dados na
rvore do projeto, o GAS coloca automaticamente uma opo no menu para a sua ativao na
aplicao final. As demais opes necessrias, como, por exemplo, incluso de registros, alterao,
consultas, etc, sero colocadas em outras opes de menu ou botes na barra de ferramentas,
servindo para atender a todas as janelas de dados que forem definidas na aplicao e atuando sobre
a janela que estiver ativa no momento da operao.
Abaixo de um mdulo janela de dados, podero ser inseridas outras janelas de dados ou tabelas
em grid 105 , estabelecendo um relacionamento 1-N (pai e filho), relacionamento este que o projetista
ter de criar quando definir a estrutura do banco de dados para a aplicao.
A criao deste tipo de mdulo, compreende duas etapas, sendo a definio do modulo
formatao da janela de dados.
ea
Sobre definio de um mdulo do tipo janela de dados, todos os detalhes de como definir est
disponvel no captulo 5 - Operando o GAS, no menu definindo um mdulo tipo janela de dados 178 .
3.2.2.3
105
Tabela em grid
Este tipo de mdulo pode ser inserido somente abaixo de uma janela de dados, compondo a
parte "N" de um relacionamento 1-N que o projetista dever ter criado na estrutura do banco de
dados. A rigor, uma tabela pode ser mostrada em grid sempre que estiver relacionada na rvore a
uma outra tabela me, mesmo que no banco de dados no exista especificamente este
relacionamento. Porm, na aplicao final, a nica forma de garantir a excluso de registros filhos por
integridade referencial criando-se o relacionamento no banco de dados. Outros mdulos podem ser
inseridos abaixo de uma tabela em grid, concedendo total abertura na apresentao de mdulo que
obedeam a relacionamentos do tipo me-filha-irm-neta-bisneta...
Uma vez que uma tabela seja apresentada em grid na aplicao final gerada, com exceo de
campos do tipo imagem, todos os demais tipos de campos podem ser digitados dentro do prprio
grid, inclusive campos do tipo listas externas e internas, rotativos, lgicos, memo, etc. Todos os
recursos de edio, como por exemplo, a digitao com mscaras, so disponibilizados para os
campos digitados no grid. A cada nova linha includa ou alterada no grid, todos os processos e
lanamentos definidos so disparados automaticamente e todos os forms visveis no momento so
imediatamente atualizados para espelhar os valores que, porventura, tenham sido alterados.
Tambm, podem ser definidas frmulas para serem apresentadas nas colunas, sendo atualizadas
simultaneamente no momento da digitao. Naturalmente, essas frmulas podem envolver campos
de qualquer um dos bancos de dados manipulados pela aplicao. Com isto, o GAS oferece duas
maneiras de trabalhar com relacionamento 1-N: da forma onde a tabela me e filha aparecem em
forms separados e a forma onde as tabelas filhas so disponibilizadas em grids dentro do mesmo
form onde aparece a tabela me.
3.2.2.4
Rotina avulsa
Uma rotina avulsa constitui-se de um programa ou fragmento de programa no gerado pelo GAS,
ou seja, elaborado manualmente pelo projetista utilizando o Editor de Programas do GAS.
3.2.2.5
Consulta pr-definida
Este tipo de mdulo possibilita a criao de consultas aos registros das tabelas definidas na
aplicao. denominada pr-definida porque estabelecida pelo projetista em tempo de projeto,
diferindo, assim, das consultas que o usurio poder criar em tempo de execuo da aplicao, caso
o projetista queira disponibilizar este recurso. Essas consultas sero sempre apresentadas na
aplicao em forma de grade, onde os registros aparecero em linhas e os campos em colunas.
3.2.2.6
Relatrio
Um mdulo do tipo relatrio tem por finalidade emitir, em papel, o resultado da leitura dos
registros de uma ou mais tabelas definidas para a aplicao. Os relatrios so definidos utilizandose
totalmente a interface do GAS, por intermdio do G-Reports, ou utilizando-se do utilitrio Crystal
Reports, que acompanha o Visual Basic, para que seja efetuada externamente a formatao dos
mesmos.
3.2.2.7
Etiqueta
Tudo o que se aplica a mdulos do tipo relatrio tambm se aplica aos mdulos do tipo etiqueta
que, nada mais do que um tipo especial de relatrio. A Gas Tecnologia desenvolveu, ainda, oito
conjuntos de fontes true-type para a impresso dos seguintes cdigos de barras: EAN-13, EAN-8,
106
UPC-A, cada uma delas com dois estilos (normal e curto), 2 de 5 interleaved e o cdigo 3 de 9.
3.2.2.8
Processos pr-definidos
Este tipo de mdulo permite a definio de processamentos especiais, pr-definidos pelo
projetista, para executar certas tarefas, como por exemplo, fechamento de ms, clculo de folha de
pagamento, baixas em estoque, histricos, etc. Na definio desses mdulos, o projetista tem total
flexibilidade para envolver outros bancos de dados, efetuar clculos, apagar registros, etc., correndo
uma mesma tabela quantas vezes se fizer necessrio e efetuando processos diferentes a cada
passagem. Telas complementares podem ser criadas para serem apresentadas antes dos processos,
de modo a permitir o estabelecimento de filtros e condies de processos e lanamentos. Abaixo de
um mdulo processo pr-definido, agora, podem ser inseridos relatrios, etiquetas ou outros
processos pr-definidos, podendo-se ou no gerar relacionamentos entre eles.
3.2.2.9
Programa executvel
Um mdulo do tipo executvel pode ser inserido na rvore do projeto para disparar a execuo de
um programa executvel qualquer, do DOS ou do Windows, a partir da aplicao final gerada.
3.2.3
107
mdulos propriamente ditos. Existem apenas para completar a estrutura de menu que qualquer
aplicao padro Windows deve ter.
3.2.3.1
Arquivo
Esta opo normalmente aparece como a primeira de qualquer aplicao Windows, sob a qual
so disponibilizadas normalmente opes de apoio (backup de banco de dados, manuteno de
senhas, etc), sada da aplicao, etc.
3.2.3.2
Editar
Abaixo desta opo normalmente so disponibilizadas opes genricas de edio, como copiar,
colar, cortar, etc.
3.2.3.3
Exibir
Esta opo normalmente utilizada para agrupar opes de exibio de objetos da interface que
podem ser exibidas ou ocultadas do usurio.
3.2.3.4
Janela
Sob esta opo so disponibilizadas comumente as opes de organizar cones da aplicao e,
ainda, a lista de janelas abertas em aplicaes MDI.
3.2.3.5
Ajuda
Finalmente, sob este ttulo so disponibilizadas algumas opes de ajuda da aplicao, bem
como a janela de crditos (sobre...).
3.3
Captulo
IV
Captulo 4: Guia rpido para criar um aplicao
4.1
Via expressa
109
A cpia do GAS pode ser instalada com diversos exemplos para servir de base de conhecimento
e aprendizado dos recursos da ferramenta. Cada um desses exemplos explora de forma diferente as
facilidades de criao de aplicaes. Se voc optou por instalar esses exemplos, eles podem se
constituir de uma tima base de consulta para a assimilao da maneira correta de definir o que
pode ser implementado nas aplicaes. Este captulo no entrar no mrito dos exemplos. Ele
procurar auxili-lo na criao de um novo projeto, descrevendo, pela ordem e de maneira sucinta,
os passos necessrios para sua criao. O seu objetivo apontar a seqncia exata dos tpicos
deste manual que devem ser consultados para possibitar que, em poucos minutos, voc se
familiarize com os recursos oferecidos pelo GAS e obtenha um resultado concreto e imediato.
Primeiramente voc dever configurar o GAS de acordo com as suas preferncias. O tpico Opes
para personalizar a operao do GAS descreve os aspectos de sua configurao.
4.1.1
Figura 4.1
110
Figura 4.2
Figura 4.3
A abertura de um novo projeto tambm pode ser efetuada selecionando-se as opes de menu
Arquivo/Novo projeto e dispondo o nome do novo projeto a ser criado. O GAS utiliza a extenso .GAS
para identificar os arquivos que armazenam projetos. Informado o nome do novo projeto, este
criado e carregado na rvore do projeto.
4.1.2
4.1.3
Definir o projeto
A definio de um projeto deve sempre comear pelo mdulo que aparece em primeiro lugar na
111
rvore. neste ponto que a definio dos dados relativos ao projeto como um todo feita. O ttulo
deste mdulo , inicialmente, SEM NOME DEFINIDO. Voc dever alterar este ttulo para que ali
aparea o ttulo do seu projeto. Isto pode ser feito clicando com o boto direito do mouse sobre este
ttulo e selecionando a opo "Define o mdulo selecionado" no menu pop-up que surgir. Assim
procedendo, sero disponibilizadas definies a serem feitas neste mdulo. Pode-se, ainda, clicar
diretamente sobre o boto de definio de mdulos existente na barra de ferramentas, caso esta
esteja visvel.
A definio do projeto compreende cinco etapas, das quais, pelo menos as duas a seguir so
obrigatrias:
Dados genricos do projeto - nesta parte so definidos alguns aspectos genricos do projeto
como, por exemplo, o ttulo da aplicao e seu nome executvel, tipo de banco de dados
utilizado, endentao e comentrios nos programas fontes, etc. Consulte o tpico Definindo os
dados genricos do projeto para executar esta tarefa.
Estrutura do banco de dados da aplicao - esta , talvez, a parte mais importante da definio
de um projeto. Aqui, so criadas as tabelas que iro compor o banco de dados. Mais de um
banco de dados pode ser utilizado. Para cada tabela sero estabelecidos os campos que esta
ir conter. Cada campo dever ser definido segundo o tipo de informao que ir receber.
ndices e integridades podero tambm ser criados para serem ligados s tabelas. O tpico
Definindo a Estrutura do Banco de Dados 137 explica detalhadamente como estas definies
podem ser feitas.
Alm dessas definies, voc poder fazer tambm a formatao da barra de ferramentas da
aplicao. Para executar esta operao, voc poder consultar, os tpicos Desenhando a barra de
ferramentas da aplicao e Utilizando o Editor de Recursos 246 . Se voc no desejar fazer esta
operao, o GAS definir uma barra de ferramentas default na aplicao final, o queatender
perfeitamente. Aps este passo, a situao dever ser a seguinte:
Criada a estrutura do banco de dados necessria, fato que nos permitir referir s tabelas,
campos, ndices e, dependendo da aplicao, relaes de integridades.
Criada a barra de ferramentas para atender a aplicao (ou ser apresentada a barra default).
Definidos o ttulo e nome do programa executvel da aplicao, bem como o nome de seus
arquivos de dados.
4.1.4
112
4.1.5
4.1.5.1
Geral
Aqui so feitas algumas definies genricas como, por exemplo, qual a tabela bsica desta
janela, nome do mdulo .FRM que ir ser gerado, as permisses de acesso a esta janela, etc. O
tpico Definindo uma Janela de Dados - Geral 345 explica os aspectos desta parte da definio.
4.1.5.2
Tabelas auxiliares
Esta etapa da definio necessria somente quando voc precisar abrir outras tabelas, alm da
tabela bsica, para se referenciar a seus campos, process-los e criar lanamentos a partir da tabela
bsica. Consulte o tpico Definindo uma Janela de Dados - Tabelas Auxiliares 183 para maiores
detalhes.
4.1.5.3
Lanamentos
A definio de lanamentos s necessria em certo tipo de aplicao. Nesta parte da definio
so estabelecidas as tabelas que iro receber os lanamentos, quais dos seus campos sero
modificados e os valores a serem lanados. Os detalhes dessas definies esto no tpico "
Definindo uma Janela de Dados - Lanamentos 184 ".
4.1.5.4
Processos
Nesta parte da definio so estabelecidos os processamentos de campos de tabelas do banco
de dados, baseando-se nos campos a serem modificados e seus respectivos valores. Consulte o
tpico "Definindo uma janela de dados - Processos 186 " para se inteirar dos detalhes. Para
completar a definio da janela de dados, falta a formatao da tela de digitao de dados para a
tabela bsica. Esta operao feita utilizando-se o Editor de Recursos do GAS. Consulte o tpico
Utilizando o Editor de Recursos para conhecer os detalhes da elaborao de telas de digitao.
4.1.6
4.1.7
113
Se existir algum mdulo ainda no definido, o projetista dever selecionar este mdulo e verificar
os fatores ainda a definir. Em alguns mdulos voc ter de marcar explicitamente a opo mdulo
pronto para dizer ao GAS que o mdulo est pronto para ser gerado, segundo o seu critrio.
4.1.8
Captulo
V
Captulo 5 - Operando o GAS
5.1
115
Ao ser ativado, o GAS apresenta uma interface semelhante que aparece na figura 5.1 a seguir
para ser utilizada na abertura de projetos.
Figura 5.1
A primeira aba permite a criao de novos projetos ou, ainda, a abertura de um gabarito que
tenha sido previamente gravado no diretrio de instalao do GAS, por intermdio da opo
Gravar como gabarito, a ser vista mais adiante neste captulo;
A segunda aba utilizada para se abrir um projeto qualquer do GAS que esteja acessvel em
um drive local ou de rede;
A terceira aba apresenta uma lista com os doze ltimos projetos abertos pelo GAS. Basta
selecionar um deles para que este seja aberto e disponibilizado na rvore do projeto.
5.2
116
Este boto pode ser utilizado para disparar a gerao dos programas fontes da aplicao.
S aparece habilitado quando todos os mdulos da rvore do projeto esto completamente definidos.
Posteriormente, por meio de um dilogo, o projetista poder ligar ou desligar a gerao de certos
mdulos. O Captulo 6 - Gerao de programas fontes 262 para a aplicao detalha os aspectos
da gerao de fontes.
Logo aps a gerao dos programas fontes, o GAS dispe ao projetista, automaticamente, a
interface de gerao dos programas executveis necessrios ao seu funcionamento. No entanto, este
boto poder ser utilizado para acessar o mdulo de compilao, de uma forma independente, no
qual o projetista poder selecionar os mdulos que deseja compilar. Para maiores detalhes, referir-se
ao Captulo 7 - Gerao de Executveis 268 .
Se os programas fontes da aplicao foram gerados pelo menos uma vez, este boto estar
habilitado para ativar a criao do kit de instalao da aplicao. O Captulo 9 - Gerao de
programas auxiliares e converses 301 descreve detalhadamente esta operao.
Este boto pode ser utilizado para ativar e desativar a disponibilizao do Dirio de Bordo,
utilizado para anotaes que devero ser vinculadas ao projeto de sistema em definio. Por esta
razo, s estar habilitado quando existir uma definio de projeto em andamento. Os aspectos da
utilizao deste recurso esto descritos no tpico Utilizando o Dirio de Bordo 260 .
Este boto poder ser clicado para invocar o Editor de Programas do GAS. Existem diversas
situaes, durante a fase do desenvolvimento do projeto, em que este boto poder ser utilizado.
Consulte o tpico Utilizando o Editor de Programas 241 para obter detalhes de sua utilizao.
Este boto poder ser clicado para invocar o editor de cones do GAS. Assim como o Editor
de Programas, existem diversas situaes, durante a fase do desenvolvimento do projeto, em que
este boto poder ser utilizado. Consulte o tpico Utilizando o Editor de cones 238 para obter
detalhes de sua utilizao.
Este boto serve para ativar o Editor de Recursos do GAS para a formatao de telas e da
barra de ferramentas para a aplicao a ser gerada, processo que detalhado no tpico Utilizando
o Editor de Recursos 246 .
Este boto s estar habilitado se um mdulo do tipo relatrio ou etiqueta estiver
completamente definido e selecionado na rvore do projeto. A formatao de relatrios e etiquetas
utilizando o G-Reports, formatador interno do GAS, est descrito no tpico Definindo um Relatrio
ou Etiqueta 211 deste captulo. A interface com o Crystal Reports tambm efetuada
automaticamente, por meio deste boto, caso o projetista tenha optado por este utilitrio na insero
do mdulo de relatrio no projeto.
Este boto ativa a interface de definio do mdulo que se encontra selecionado na rvore.
Para estabelecer as definies do mdulo, o projetista dever clicar sobre este boto.
117
Este boto tem por finalidade permitir a insero de novos mdulos na rvore do projeto. S
estar ativado se o mdulo selecionado na rvore suportar um mdulo subordinado. Esses mdulos
so o ttulo do projeto, menus, janelas de dados, tabelas em grid, processos pr-definidos, relatrios,
formulrios avulsos, etc.
Este boto serve para cortar para o clipboard textos do Editor de Programas, mdulos da
rvore do projeto ou suas definies. O texto selecionado apagado do editor e disponibilizado na
rea de transferncia (ou clipboard). J o mdulo movido para outra posio da rvore do projeto
ou mesmo para outro projeto, utilizando-se a opo de colagem a ser referenciada logo a seguir. O
mesmo ocorre com as definies de mdulo recortadas.
Este boto serve para copiar todas as definies efetuadas no mdulo selecionado para uma
rea de transferncia. Este recurso foi disponibilizado no GAS para permitir a herana de definies
de um mdulo para outro, dentro da rvore, ou para ser levado a um outro projeto. Quando o Editor
de Programas for a janela ativa, este boto pemitir copiar o texto nele selecionado para o objeto
clipboard (ou rea de transferncia). Mdulos da rvore do projeto tambm podero ser copiados.
Uma vez que algum texto do Editor de Programas, os mdulos da rvore do projeto ou as
definies do mdulo tenham sido copiadas para a rea de transferncia, o projetista poder clicar
sobre este boto para aproveitar tudo o que foi definido, com a finalidade de modificar somente o que
for necessrio, com um ganho considervel de tempo na fase do projeto. No caso de ser o Editor de
Programas a janela ativa, o texto existente na rea de transferncia ser inserido no texto, na posio
do cursor.
Este boto, se estiver habilitado, poder ser utilizado para apagar o que estiver sendo feito no
momento, o que pode ser tanto um mdulo selecionado na rvore do projeto, quanto controles
selecionados no Editor de Recursos do GAS ou texto selecionado no Editor de Programas. Exceto
para este ltimo, o apagamento de informaes sempre feito mediante uma confirmao prvia.
Este boto serve como atalho para a apresentao da ajuda de operao do GAS.
Finalmente, este boto um atalho para o abandono da operao do GAS.
5.2.1
118
Este boto serve para sincronizar o mdulo selecionado na rvore com o texto do editor. Se
este boto estiver ligado (em baixo), o texto apresentado na rea ativa do editor estar sempre
sincronizado com o mdulo selecionado na rvore, ou seja, se o projetista selecionar um novo
mdulo na rvore, o texto da janela apresentar imediatamente o cdigo que foi digitado para aquele
mdulo. Se este boto estiver desligado (em cima), nenhum sincronismo ocorrer.
Este boto serve para desfazer, de modo ilimitado, quaisquer alteraes que tenham sido
efetuadas no Editor de Programas do GAS.
Este boto serve para refazer, de modo ilimitado, quaisquer aes que tenham sido desfeitas
no Editor de Programas do GAS.
Este boto serve para endentar cada uma das linhas do bloco selecionado, proporcionando
uma facilidade maior na formatao das estruturas da linguagem definidas diretamente pelo
projetista.
Este boto serve para retirar a endentao de cada uma das linhas do bloco selecionado,
proporcionando uma facilidade maior na formatao das estruturas da linguagem definidas
diretamente pelo projetista.
Este boto serve para comentar cada uma das linhas do bloco selecionado. Caso o projetista
no tenha selecionado algum bloco de linhas e pressione este boto, o caracter de comentrio
(apstrofo) ser includo no incio da linha indicada.
Este boto serve para retirar o comentrio de cada uma das linhas do bloco selecionado.
5.3
5.4
5.4.1
119
O menu arquivo
A figura a seguir um exemplo do que pode estar aparecendo no menu Arquivo do GAS:
Figura 5.2
A exemplo do que ocorre na barra de ferramentas, algumas opes podem estar desabilitadas por
no se aplicarem ao contexto do momento da operao. As seguintes opes podem ser ativadas a
partir deste menu:
5.4.1.1
Novo projeto
Esta opo serve para criar um novo projeto de sistema. O projetista dever informar um nome
para o novo projeto e o GAS criar e iniciar este novo projeto, carregando as opes default na
rvore do novo projeto.
5.4.1.2
5.4.1.3
Abrir gabarito
Esta opo serve para abrir um gabarito de projeto previamente gravado com a opo explicada a
seguir. Todas as definies gravadas em gabaritos so aproveitadas em um novo projeto.
5.4.1.4
120
5.4.1.5
Dirio de bordo
Apresenta ou oculta o Dirio de Bordo vinculado ao projeto. Esta opo tem um boto
correspondente na barra de ferramentas e s est disponvel quando existe um projeto em definio.
5.4.1.6
Gerar fontes
Esta opo aciona a gerao dos programas fontes para a aplicao. S aparece habilitada
quando todos os mdulos da rvore do projeto esto completamente definidos. Existe boto com
funo idntica na barra de ferramentas.
5.4.1.7
Criar executveis
Esta opo aciona a interface de criao de programas executveis necessrios ao
funcionamento da aplicao gerada. A barra de ferramentas possui um boto com esta
funcionalidade.
5.4.1.8
Reparar projeto
Esta opo serve para corrigir problemas de integridade ou ndices que, porventura, venham a
ocorrer nos projetos doGAS. Esta opo s estar disponvel para seleo se nenhum projeto estiver
carregado no GAS. O tpico Reparao do Projeto detalha as razes da necessidade desta opo.
5.4.1.9
Utilitrios
Esta opo abre um sub-menu de onde podem ser acionadas diversas opes de utilitrios do
GAS. Aqui tambm, algumas opes podero no estar habilitadas para seleo por no se
aplicarem ao contexto do momento da operao. A figura a seguir mostra quais so as opes
disponveis:
Tambm com um boto de funcionalidade idntica na barra de ferramentas, esta opo aciona a
interface que cria o programa instalador para a aplicao final.
121
Esta opo serve para solicitar ao GAS que crie um utilitrio conversor de arquivos do formato
DBF para o formato MDB. Com isto, possvel o reaproveitamento total dos dados das aplicaes
provenientes do DOS. O tpico Utilitrio Conversor de Arquivos DBF aborda detalhadamente a
utilizao deste recurso.
5.4.1.9.4 Imprimir dirio de bordo
Utilize esta opo para passar para a impressora as anotaes referentes ao projeto existente no
Dirio de Bordo.
5.4.1.9.5 Rever mensagem erro de gerao
Durante o processo de gerao de programas fontes, o GAS executa testes de consistncia sobre
as definies do projeto. Qualquer incoerncia reportada em uma mensagem de erro com o
conseqente cancelamento do processo de gerao. O projetista poder, ao corrigir o problema,
selecionar esta opo para rever a ltima mensagem de erro reportada. A seguir, podero estar
aparecendo no menu, os nomes de um ou mais projetos recentemente abertos. O GAS armazena os
nomes dos 3 ltimos projetos que carregou, ficando o mais recente posicionado em primeiro lugar.
5.4.1.10 Finalizar
Com um boto correspondente na barra de ferramentas, esta opo serve para encerrar a
operao do GAS.
5.4.2
O menu Editar
A figura abaixo corresponde ao menu Editar. Algumas opes podem aparecer desabilitadas por
no se enquadrarem no contexto do momento da operao:
122
Figura 5.3
Inserir
Esta opo serve para inserir mdulos na rvore do projeto. Um mdulo inserido sempre
subordinado ao que estiver, naquele momento, selecionado na rvore. A insero de mdulos na
rvore do projeto detalhada no tpico Inserindo um Mdulo na rvore do Projeto 134 .
5.4.2.2
Cortar
Esta opo serve para cortar o texto selecionado no Editor de Programas do GAS para a rea de
transferncia(clipboard).
5.4.2.3
Copiar
Esta opo serve para copiar definies inteiras de mdulos para um posterior aproveitamento em
outro mdulo semelhante do mesmo ou de outro projeto. Se a janela ativa for o Editor de Programas
do GAS, esta opo servir para copiar o texto selecionado no Editor para a rea de transferncia.
5.4.2.4
Colar
Complementando a opo anterior, esta opo serve para dispor na rvore do projeto as
definies copiadas. Se a janela ativa for o Editor de Programas do GAS, esta opo servir para
colar o texto existente na rea de transferncia na janela de edio.
5.4.2.5
123
Apagar
Esta opo serve para apagar o objeto selecionado no momento, tanto podendo ser um mdulo
da rvore quanto um objeto qualquer durante a formatao de telas. Se a janela ativa for o Editor de
Programas do GAS, esta opo servir para apagar o texto selecionado no Editor.
5.4.2.6
Procura
Esta opo serve para ativar o dilogo de pesquisa de texto dentro da janela em edio do Editor
de Programas do GAS.
5.4.2.7
Substitui
Esta opo serve para ativar o dilogo de pesquisa e substituio de texto dentro da janela do
Editor de Programas do GAS.
5.4.2.8
Sincroniza
Esta opo tem por finalidade sincronizar o mdulo selecionado na rvore com o texto do Editor
de Programas do GAS. Se esta opo estiver marcada, o texto apresentado na rea ativa do editor
estar sempre sincronizado com o mdulo selecionado na rvore, ou seja, se o projetista selecionar
um novo mdulo na rvore, o texto da janela apresentar imediatamente o cdigo que foi digitado
para aquele mdulo. Se estiver desmarcada, nenhum sincronismo ocorrer.
5.4.2.9
Desfaz
Esta opo serve para desfazer, de modo ilimitado, quaisquer alteraes que tenham sido
efetuadas no Editor de Programas do GAS.
5.4.2.10 Refaz
Esta opo serve para refazer, de modo ilimitado, quaisquer alteraes que tenham sido
efetuadas no Editor de Programas do GAS.
5.4.2.11 Endenta
Esta opo serve para endentar cada uma das linhas do bloco selecionado na tela de edio do
Editor de Programas do GAS, proporcionando uma facilidade maior na formatao das estruturas da
linguagem definidas diretamente pelo projetista.
5.4.2.12 Desendenta
Esta opo serve para retirar a endentao de cada uma das linhas do bloco selecionado na tela
de edio do Editor de Programas do GAS, proporcionando uma facilidade maior na formatao das
estruturas da linguagem definidas diretamente pelo projetista.
124
5.4.2.13 Comenta
Esta opo serve para comentar cada uma das linhas do bloco selecionado na tela de edio do
Editor de Programas do GAS. Caso o projetista no tenha selecionado algum bloco de linhas e
pressione este boto, o caracter de comentrio (apstrofo) ser includo no incio da linha indicada.
5.4.2.14 Descomenta
Esta opo serve para retirar o comentrio de cada uma das linhas do bloco selecionado na tela
de edio do Editor de Programas do GAS.
5.4.2.15 Editor de cones
Esta opo aciona o Editor de cones do GAS para permitir sua utilizao.
5.4.2.16 Editar cdigo de programa
Esta opo ativa o Editor de Programas do GAS. Este recurso pode ser utilizado em diversos
pontos da definio do projeto.
5.4.2.17 Formatar relatrio
Esta opo ativa a interface de formatao do relatrio ou etiqueta que est selecionado na
rvore.
5.4.2.18 Formatar tela
Esta opo aciona o Editor de Recursos para a formatao da tela de digitao para a janela de
dados selecionada na rvore.
5.4.2.19 Definir
Esta opo abre uma interface para que sejam estabelecidas as definies do mdulo
selecionado na rvore ou modelador do projeto.
5.4.3
O menu exibir
Este menu apresenta algumas opes de exibio de peas da interface do GAS. Sua utilizao
est detalhada no tpico seguinte, denominado Opes para Personalizar a Operao do GAS 125
.
5.4.4
O menu opes
Este menu serve para configurar opes de operao que esto tambm detalhadas no tpico a
seguir.
5.5
125
5.5.1
Figura 5.4
Barra de ferramentas
Clicando sobre esta opo, o projetista poder ocultar ou exibir a barra de ferramentas do GAS.
Como todas as opes que se encontram na barra de ferramentas esto tambm disponveis nas
opes de menus, quando aquela estiver oculta, a operao do GAS poder ser feita por essas
opes, embora com um pouco mais de dificuldade.
5.5.1.2
Banco de campos
Por intermdio desta opo, o projetista poder ocultar ou apresentar o banco de campos
disponveis para captura, que o GAS monta a partir das informaes existentes na estrutura definida.
Esse mesmo banco de campos relaciona a lista de variveis, constantes e funes (function e sub)
disponveis para o objeto em definio. O banco de campos s aparece habilitado no menu se a
situao de operao indicar a sua necessidade. Para facilitar a manipulao das informaes nele
relacionadas, a janela do banco de campos apresenta botoeira com diversos operadores, como
mostrado na figura a seguir, inclusive transferncia de dados como inteiro, quociente e resto da
diviso inteira, concatenao de strings, etc.
258
Ferramentas da tela
As ferramentas de formatao de telas ou barra de ferramentas so parte da interface do Editor
de Recursos do GAS, sendo que sua janela pode ser exibida ou ocultada por meio desta opo. S
est disponvel se a situao de operao estiver indicando que ela necessria. Consulte o tpico
126
246
Figura 5.5
5.5.1.4
Dirio em zoom
Esta opo s estar habilitada quando o Dirio de Bordo estiver sendo exibido, servindo para
apresent-lo em tamanho normal ou ampliado, ocupando toda a rea de cliente do GAS.
5.5.1.5
5.5.2
127
Figura 5.6
5.5.2.2
Tratamento de nomes
Esta opo permite ao projetista especificar como o GAS tratar os nomes das tabelas, campos e
apelidos que sero digitados durante a entrada de informaes na definio da estrutura para o
banco de dados. As opes so:
5.5.2.2.1 Capitalizar
No importando o que o projetista esteja digitando, o GAS ir capitalizar a primeira letra, ou seja,
convert-la em maiscula.
5.5.2.2.2 Maisculas
Nenhum tratamento ser dado pelo GAS ao que o projetista digitar para os nomes de tabelas e
campos.
5.5.2.3
Configuraes
As configuraes de diversas fases da operao do GAS esto divididas em uma interface com
cinco abas. Ao ser selecionada esta opo de menu, a tela da figura a seguir apresentada:
128
Figura 5.7
5.5.2.3.1 Modelador
Nesta aba podem ser configuradas diversas opes do modelador do projeto. medida que as
configuraes vo sendo efetuadas, o seu efeito vai sendo mostrado imediatamente na janela de
amostra existente nesta janela:
5.5.2.3.1.1 Fontes do modelador
Esta opo serve para configurar a fonte a ser utilizada na vore do projeto.
5.5.2.3.1.2 Cores do mdulo
As cores utilizadas para identificar os mdulos existentes na rvore do projeto pode ser
configurada da maneira que o projetista julgar mais conveniente. Esta opo til para permitir a
visualizao imediata do estgio em que se encontra o desenvolvimento do projeto. O GAS permite
que sejam configuradas tipos de fontes e cores para as situaes a seguir:
Definidos
Todo mdulo que estiver totalmente pronto para ser gerado, aparecer na cor aqui configurada.
Em definio
Os mdulos que estejam incompletos na sua definio, aparecero na cor configurada para este
item.
129
Preservados
Alguns mdulos que o projetista no deseja gerar, ele poder marcar o desligamento da sua
gerao. Isto se aplica a qualquer tipo de mdulo que possa ser disponibilizado na rvore. Por
exemplo, o tpico Definindo uma janela de dados - Geral 178 explica os detalhes desta opo.
Mdulos que o projetista tenha marcado para no serem gerados aparecero na cor configurada para
este item.
Todos
Esta opo serve para trocar, de uma s vez, os atributos de cor para as opes anteriores.
5.5.2.3.2 Telas e relatrios
Nesta aba, aparecem algumas opes para utilizar em telas e relatrios, como mostra a figura a
seguir:
Figura 5.8
5.5.2.3.2.1 Tamanho da grade
Ajuste o tamanho, em pixels, da grade a ser utilizada para a rea de formatao de telas e
relatrios, quando esta estiver visvel.
5.5.2.3.2.2 Texto exemplo
Informe um texto a ser utilizado como exemplo nos campos dispostos nas telas e labels em
relatrios para a impresso de campos, quando a opo denominada "Texto exemplo na tela",
explicada anteriormente neste captulo, estiver marcada.
2007 GAS Tecnologia
130
Nesta aba, como mostra a figura a seguir, aparecem as opes a serem configuradas
exclusivamente para os relatrios e etiquetas a serem formatados por meio do G-Reports do GAS.
131
Figura 5.9
5.5.2.3.3.1 Cores das rguas
Estabelea os atributos de cores a serem utilizadas para exibir nas rguas auxiliares de
formatao.
5.5.2.3.3.2 Distncia entre registros
Especifique a distncia, em milmetros, a ser utilizada como default da propriedade para separar
registros. Esta informao poder ser reajustada posteriormente, no momento da formatao de
relatrio.
5.5.2.3.3.3 Papel
Informe o tipo de papel a ser utilizado para o relatrio e tambm algumas medidas de margens
para clculo da rea til da impresso.
Consideraes sobre margens de papel
Existe, hoje, disponvel no mercado, uma grande quantidade de marcas e modelos de
impressoras. Alm de serem diferentes em aspectos como resoluo, velocidade, qualidade, etc.,
essas impressoras diferem no aspecto do aproveitamento do papel. Todas elas s conseguem
imprimir dentro de uma rea til circunscrita por margens (topo, esquerda, direita e fundo). Essas
margens existem possivelmente por problemas de concepo, como, por exemplo, pela necessidade
de trao de papel. Elas podem ser maiores ou menores, de acordo com a impressora utilizada. Por
meio da funo API GetDeviceCaps(), possvel recuperar os valores exatos dessas margens, desde
que a impressora esteja instalada na mquina. Como as impressoras dos equipamentos de
desenvolvimento nem sempre so as mesmas existentes nas mquinas onde a aplicao ser
132
executada, o projetista dever estabelecer manualmente essas margens para que o GAS
disponibilize na rea de formatao somente a rea til calculada por meio dessas medidas.
5.5.2.3.4 Diretrios
Finalmente, na ltima aba, mostrada na figura a seguir, podem ser configurados os diretrios dos
diversos utilitrios com os quais o GAS ir manter algum tipo de interface.
Figura 5.10
Idioma
Ainda no menu Opes, esta opo permite a livre seleo do idioma (Portugus, Espanhol ou
Ingls) ao qual a aplicao estar ou est sendo desenvolvida. Cabe aqui ressaltar o fato da seleo
de idiomas s estar disponvel na verso Enterprise do gerador em questo, sem que nenhum
projeto esteja aberto no momento corrente.
5.6
Reparao do projeto
Os projetos desenvolvidos pelo GAS ficam armazenados em um arquivo de extenso .GAS. As
informaes que vo sendo passadas pelo projetista, como, por exemplo, nomes de bancos de
dados, tabelas, campos, relaes, ndices, janelas de entrada de dados, estrutura hierrquica, dirio
de bordo, enfim, toda a definio do projeto fica armazenada neste arquivo que, por sua vez, um
banco de dados de formato MDB. E, por se tratar de um banco de dados com alto grau de
dependncia de ndices e relacionamentos, possvel que, por um motivo qualquer, haja a perda de
ndices ou de relacionamentos, compromentendo a integridade do que foi definido para o projeto. Por
133
esta razo, foi disponibilizada, no GAS, a opo "Reparar projeto", abaixo da opo de menu
Arquivo. O projetista poder utilizar esta opo para fazer a reparao do banco de dados do
projeto, a fim de corrigir os possveis erros existentes, caso sinta essa necessidade.
5.7
Figura 5.11
134
movimentar troncos inteiros por meio da rvore. Cada tipo de mdulo tem uma figura diferente para
represent-lo, permitindo a sua identificao imediata, com uma rpida visualizao.
medida que os mdulos so inseridos na rvore, o menu da aplicao final tambm vai sendo
naturalmente definido, pois a disposio dos mdulos na rvore do projeto espelha exatamente o
menu da aplicao final. Os mdulos inseridos imediatamente abaixo do ttulo do projeto aparecero
no primeiro nvel do menu. Os demais, aparecero em submenus.
Conforme vimos no tpico Opes para Personalizar a Operao do GAS, para facilitar ao
projetista visualizar o estgio em que se encontra o desenvolvimento do projeto, o GAS permite a
configurao de cores para os mdulos que j esto definidos (prontos para serem gerados) e para
os mdulos que ainda no esto definidos. Os mdulos que no sero gerados por opo do
projetista tambm podem aparecer em cores diferentes.
5.7.1
5.7.2
Selecione no menu apresentado pela figura a seguir, o tipo de mdulo a ser inserido;
135
Figura 5.12
Selecione, quando solicitado, a posio em que o mesmo deve ser inserido. O GAS apresenta
uma segunda rvore contendo apenas os mdulos de nvel igual ou superior ao que est sendo
inserido. O projetista dever clicar sobre o mdulo aps o qual (e de seus filhos) o novo mdulo
ser inserido.
Os mdulos que so inseridos no primeiro nvel da rvore, ou seja, diretamente ligados ao
ttulo do projeto, ficaro sempre visveis no menu da aplicao final, aparecendo um ao lado do
outro. aconselhvel para uma melhor esttica que o projetista evite dispor palavras compostas
(que contenham espaos) para definir os ttulos dos menus que aparecem neste primeiro nvel.
Os demais mdulos sempre aparecero em submenus, um abaixo do outro, no sendo
necessrio este cuidado.
5.7.3
136
5.7.4
Copiando definies
Definies j efetuadas para um mdulo, banco de dados, tabelas e mdulos do projeto podem
ser copiadas para o clipboard e depois inseridas em outros pontos da rvore ou, ainda, em outros
projetos do GAS, a fim de se reaproveitar as informaes. Para copiar um banco de dados, tabela ou
mdulo para outro ponto da rvore ou para outro projeto, proceda conforme se segue:
Selecione o item que deseja copiar para o clipboard;
Selecione a opo de menu "Editar/Copiar" ou clique sobre o boto de copiar existente na barra
de ferramentas, caso esta esteja visvel. Caso o item a ser copiado seja um mdulo da rvore
do projeto, isto , no seja um banco de dados ou tabela criados nas definies do projeto, o
projetista poder, ainda, clicar com o boto direito do mouse sobre o referido item e selecionar a
opo Copiar presente no menu pop-up que surgir;
Caso o projetista queira colar o item copiado para um projeto diferente, primeiramente o mesmo
dever selecionar o projeto que receber o mdulo copiado. O projetista dever, ainda,
selecionar o item sob o qual (caso seja um mdulo da rvore do projeto) ou a rea
correspondente (caso seja um banco de dados ou tabela) onde deseja inserir o novo mdulo;
Selecione a opo de menu "Editar/Colar" ou clique sobre o boto de colar existente na barra
de ferramentas, caso esta esteja visvel. Caso o item a ser colado seja um mdulo da rvore do
projeto, isto , no seja um banco de dados ou tabela criados nas definies do projeto, o
projetista poder, ainda, clicar com o boto direito do mouse sobre o item sob o qual o novo
mdulo ser colado e selecionar a opo Colar presente no menu pop-up que surgir;
Neste ponto, o novo item ter herdado todas as definies que foram designadas para o item
copiado. Faa as modificaes nas definies do novo item, conforme necessrio. Cabe
ressaltar que os banco de dados e tabelas no possuem um clipboard comum com os mdulos
da rvore de projeto. Assim sendo, poder ser efetuada, por exemplo, a cpia do banco de
dados e de um mdulo da rvore ao mesmo tempo.
5.7.5
137
5.7.6
Definio da soluo
A definio da soluo deve, obrigatoriamente, ser feita em primeiro lugar, por ser o ponto onde
definida toda a estrutura do banco de dados da aplicao. O dilogo para captar as informaes
dessas definies aparece em uma interface que varia de duas a cinco abas:
5.7.6.1
Figura 5.16
Aba Estrutura: A definio da estrutura dos bancos de dados e das tabelas que iro compor a
aplicao a parte mais importante do desenvolvimento do projeto.
A figura acima apresenta a interface que o GAS oferece para a definio do banco de dados:
Os seguintes botes devem ser utilizados nestas definies:
138
boto de gravao
boto de cancelamento
boto de incluso
boto de excluso
Pode-se, ainda, fazer uso das teclas de atalho CTRL-S, CTRL-A, CTRL-I e CTRL-E, assim como
ocorre na aplicao final gerada, para, respectivamente, salvar as alteraes definidas, cancelar as
alteraes efetuadas, incluir novas informaes e excluir informaes j existentes.
Ao clicar em cada uma das listas, a mesma se tornar ativa, e a parte inferior da mesma mudar
apresentado o frame respectivo a seleo de cada lista:
5.7.6.1.1 Definio do banco de dados
Definindo Banco: Primeiramente, o projetista deve definir um nome para o banco de dados a ser
utilizado. Mais de um banco de dados pode ser especificado permitindo que o projetista
informe, por exemplo, o nome de um banco de dados j existente com o qual a aplicao em
definio poder ter algum tipo de integrao. Para cadastrar bancos de dados deve-se
selecionar a lista de bancos de dados e utilizar o boto de incluso.
Aba Geral
139
140
O projetista pode escolher qual ou quais bancos de dados sua aplicao ir funcionar.
Com isto, oferecida a opo de escolha do banco no momento da instalao.
Access: Nas verses anteriores, o GAS j acessava nativamente o banco de dados
Access (jet 3.6), utilizando a forma de conexo pelos componentes DAO. Agora,
para o banco de dados ACCESS oferecido tambm a conexo via componentes
ADO.
SQL Server: O Acesso ao banco de dados SQL Server por aplicaes geradas,
foram mantidos e melhorados nesta verso. O cdigo gerado compativel com
SQL Server 2000/2005. Alm disto, o cdigo gerado perfeitamente compatvel
com as verses gratuitas do SQL Server, conhecida como: SQL Server 2005
Express Edition, e pode ser baixada diretamente no site do fabricante.
Oracle: O Acesso ao banco de dados Oracle por aplicaes geradas, foram
mantidos e melhorados nesta verso. O cdigo gerado compatvel com Oracle
8i/10g. Alm disto, o cdigo gerado perfeitamente compatvel com as verses
gratuitas do Oracle, sendo ela: Oracle 10g Express Edition, e pode ser baixada
diretamente no site do fabricante.
Firebird: Implementado nessa verso o acesso nativo ao banco de dados Firebird.
Esta implementao foi realizada tomando-se como base a verso 2.0 (Release
Candidate 2) devido a vrias caractersticas presentes nessa verso que no
existem na verso 1.5. Para maiores detalhes sobre o projeto Firebird 2.0, acesse o
site do desenvolvedor (http://www.firebirdsql.com). O driver utilizado para conexo
o Firebird ODBC-JDBC v. 2.0.0.138. Para maiores detalhes sobre o projeto Firebird
ODBC-JDBC acesse ao site do desenvolvedor (http://www.praktik.km.ua/).
MySQL: Tambm implementado nessa verso o acesso nativo ao banco de dados
MySQL. A implementao foi realizada tomando-se como base a verso 5.0. O
driver utilizado para conexo o MyOleDb v.3.9.
Acesso via Internet - na verso Enterprise do GAS, o projetista poder utilizar-se dessa
opo para habilitar o uso do banco SQL Server ou Oracle via Internet. Para
estabelecer o acesso em questo, bastar ser informado aplicao o IP ou host no
qual o banco de dados se encontra. Opes para script - na Verso Enterprise do GAS,
o projetista tem a sua disposio, oferece opes avanadas para personalizao do
script, as quais para alguns bancos de dados interessante a sua definio, de acordo
141
Security
Info=False;DRIVER={Sql
Server};
;DATABASE=
NOME_DO_BANCO;
Aba Projetos:
142
A seguir, o projetista deve cadastrar as tabelas que iro compor o banco de dados selecionado.
Para cadastrar uma tabela, basta clicar na lista de tabelas, clicar sobre o boto de incluso e informar
o seu nome e apelido. Se desejar, o projetista poder tambm digitar um texto descritivo da tabela
que est sendo criada para que seja inserido na documentao do projeto. Se a tabela que est
sendo definida for uma tabela do tipo parmetro, esta opo dever ser assinalada nesta janela
(vide Glossrio). Informados esses dados, o projetista poder pressionar o boto de gravao para
salvar as informaes.
1 - Permitir incluso em consulta: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a incluso de um novo registro.
2 - Permitir alterao em consultas: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a alterao de um registro existente.
3 - Permitir Excluso em consultas: Por opo do projetista, caso esta opo esteja marcada,
quando for construido uma consulta, ser possivel efetuar a excluso de um registro existente.
4 - Tipo empresa: Com esta opo marcada, a tabela ser tratada com uma tabela de controle
de empresas. Esta tabela ser utilizada para cadastrar os registros que o usurio quiser utilizar como
registro das empresas na entrada do programa.
5 - Multi empresa: Com esta opo marcada, esta tabela ter o controle de empresa em cada
registro cadastrado.
6 - Invisivel: Com esta opo marcada, a tabela no ser apresentada ao usurio final.
143
Uma vez cadastrada uma tabela, o projetista dever definir a sua estrutura. Para isto, deve
selecionar, na lista de tabelas, a tabela a ser definida. A seguir, dever clicar na lista de campos e
adicionar o campo, clicando sobre o boto de incluso.
Figura 5.17
Quando um novo campo adicionado tabela, o dilogo da figura acima apresentado para
permitir a definio deste campo. Neste momento, o projetista dever fornecer as seguintes
informaes:
Nome do campo
Esta informao se constitui na identificao do campo dentro do banco de dados. O nome do
campo pode conter espaos, acentos e outros caracteres. Alguns caracteres, no entanto, no
podero constar do nome do campo, pois so utilizados no cdigo fonte a ser gerado, como, por
exemplo, colchetes, exclamao, ponto, etc., sendo vetados automaticamente pelo GAS no momento
da digitao. Os projetos do GAS so dicionarizados, significando que os nomes dos campos
correspondentes em tabelas diferentes tm de ter o mesmo nome. Por exemplo, o campo Cdigo do
Fornecedor em uma tabela de fornecedores tem de ser referenciado com este nome em todas as
tabelas onde venha a aparecer dentro do banco de dados. A contra-partida que, quando o
projetista necessitar alterar o nome de um campo ou qualquer um dos seus atributos, o GAS faz
automaticamente todas as alteraes necessrias nas demais tabelas definidas no projeto. Por esta
razo, caso o novo campo j exista em alguma outra tabela definida no projeto, o projetista poder
selecionar o campo desejado, ao invs de digitar suas informaes. Com isto, todas as demais
informaes como tipo, tamanho, mscara, etc., so automaticamente capturadas, poupando o
tempo precioso do projetista.
Ttulo amigvel
Ao contrrio do campo Nome, esta informao se constitui na identificao do campo para o
usurio final. O ttulo amigvel utilizado no processo de formatao da tela de uma janela de
2007 GAS Tecnologia
144
dados. Para o usurio final, essa informao exibida via janela de dados, mesmo quando esta
visualizada na forma de grid. Para habilitar a utilizao dos ttulos amigveis, o projetista dever
marcar a opo Usar ttulos amigveis na aba Miscelnea.
Tipo do campo
Ao informar o tipo do campo, o projetista poder utilizar os tipos de campos normais do Visual
Basic ou, ainda, os tipos de campos intrnsecos que o GAS oferece, como, por exemplo, Multimdia,
Lista Interna, Rotativo, Optativo, CPF, CGC, CEP, UF, Hora, Fone, Fone com DDD, E-Mail,
WebPage, Carto de Crdito e Cdigos de barra diversos. Para definir um tipo de campo, basta
capturar da lista o tipo desejado. Se selecionar um dos tipos intrnsecos, o GAS disponibilizar
automaticamente todos os demais atributos do tipo de campo selecionado. Caso seja selecionado o
tipo de campo UF, o GAS preencher automaticamente o item "Lista" com todas as Unidades da
Federao, possibilitando que o usurio do aplicativo final gerado utilize uma lista com todas as
possibilidades. Se um campo j estiver posicionado na janela de dados e o seu tipo for alterado, em
alguns casos, ele ir desaparecer da tela, aps um aviso do GAS. Isto se deve ao fato de que o tipo
de campo est diretamente relacionado com o tipo de objeto disponibilizado na tela. Por exemplo, um
campo do tipo caractere alterado para lgico ir desaparecer porque o primeiro usa uma textbox e o
outro usa uma checkbox.
Lista
Esta informao s ser solicitada se o projetista tiver selecionado os tipos de campos Lista
Interna ou Optativo. Neste caso, esta informao dever ser preenchida com as opes, separadas
pelo caractere "|" (pipe), como, por exemplo: Casado|Solteiro|Vivo|Outros.
Apelido
Como o prprio nome indica, o apelido (ou alias) uma maneira abreviada de se referir ao campo.
O GAS sugere automaticamente um apelido para o campo em definio, o que pode ser,
naturalmente, modificado pelo projetista, se ele assim o desejar. O apelido ser utilizado dentro dos
programas fontes gerados para efetuar referncias a este campo.
Tamanho
Esta informao passada ao GAS para a criao, nos programas fontes, de rotina para controlar
a quantidade mxima de dgitos ou caracteres que podero ser digitadas no campo.
Decimais
Caso o campo em definio seja do tipo numrico, o projetista poder especificar uma quantidade
de casas decimais a ser considerada para este campo. Se for especificado um nmero de casas
decimais maior do que 0, no tamanho j estar computado a posio da vrgula.
Mscara
Os programas fontes gerados pelo GAS so providos de um mdulo (classe) para controlar os
caracteres que esto sendo digitados no campo pelo usurio final. Este controle efetuado segundo
a mscara que estiver sendo aqui definida. As mscaras possveis para os campos esto detalhadas
no tpico de mesmo nome existente no Glossrio deste manual.
145
Seqncia
Se o projetista dispor nesta informao um nmero diferente de zero, este campo ser
incrementado automaticamente na quantidade especificada, quando for digitado na aplicao final.
Os campos que podem se autoincrementados so os do tipo numrico, data ou, ainda, caractere
com mscara para dgitos numricos.
Descrio para empresa
Define se o campo ser usado para armazenar o nome da empresa. Esta opo estar disponvel
se o banco estiver marcado a opo "Multi empresa".
Permitir Nulo
Define se o campo permitir que sejam gravados valores nulos. Muito utilizado em integridades.
Valor Default
Permite criar um valor default (padro) para o campo. O valor default registrado no banco de
dados, e ser gravado quando nenhum valor for enviado ao campo.
Invisvel
O projetista dever marcar esta opo se desejar criar um campo invisvel dentro da tabela em
definio. Um campo invisvel , normalmente, criado com o objetivo de servir de alvo para
processamentos por meio de outras tabelas. Um campo com atributo invisvel nunca poder ser visto
por usurios, diferentemente da visibilidade estabelecida por condio, a ser vista mais adiante neste
captulo, nos tpicos Definindo uma janela de dados/Definindo atributos de campos, na qual a
visibilidade est em funo de uma condio que analisada para cada registro corrente e pode
envolver o usurio, campos de registros de tabelas relacionadas, etc.
Ajuda
Se o projetista desejar apresentar ao usurio da aplicao algum tipo de ajuda especfica (dica ou
hint) para o campo, dever informar a mensagem desejada.
Descrio
Digite informaes sobre o campo em definio para que sejam utilizadas na documentao da
aplicao, que gerada pelo GAS.
Diversos campos podero ser criados para uma tabela. Sempre que terminar a informao para
um campo, o projetista dever clicar sobre o boto de gravao para salvar as informaes digitadas.
Informados todos os campos, o projetista ainda poder trocar a sua ordem dentro da tabela. Para
isto, dever selecionar o campo desejado e utilizar as setas qua aparecem direita da lista da figura
abaixo, para moviment-lo para cima ou para baixo, dentro da lista, alterando a sua posio ou
ordem dentro da tabela.
146
Figura 5.18
Aps definir as tabelas, o projetista poder tambm definir os seus ndices. A definio de ndices
efetuada de maneira semelhante definio de tabelas e campos, por meio do dilogo da figura
abaixo. Basta clicar sobre a lista de ndices e sobre o boto de incluso. Depois, basta fornecer as
informaes adicionais:
Figura 5.19
Nome
Este campo representa a identificao do ndice dentro dos programas fontes gerados. O nome
do ndice pode conter espaos, acentos e outros caracteres. Alguns caracteres, no entanto, no
podero constar do nome do campo, pois so utilizados no cdigo fonte a ser gerado, como, por
exemplo, colchetes, exclamao, ponto, etc., sendo vetados automaticamente pelo GAS no momento
da digitao.
Ttulo amigvel
Ao contrrio do campo Nome, esta informao se constitui na identificao do ndice para o
usurio final. Durante a operao da aplicao final, o usurio poder selecionar o ndice, por meio
deste nome, a ser utilizado na navegao dentro da tabela. Para habilitar a utilizao dos ttulos
amigveis, o projetista dever marcar a opo Usar ttulos amigveis na aba Miscelnea.
Campos
A partir desta lista, podem ser selecionados os campos que constituiro a chave para o ndice em
definio. Uma chave pode ser composta de diversos campos.
147
Primrio
O projetista dever marcar esta opo, se este ndice de chave primria. Em uma tabela,
somente um ndice primrio poder ser definido, no sendo, no entanto, obrigatrio. Porm, se um
ndice primrio for definido, este, obrigatoriamente, dever ser nico (o GAS marca automaticamente
a opo seguinte).
nico
O projetista dever marcar esta opo se a chave do ndice em definio tem este tipo de atributo.
Diversos ndices podem ser definidos como nicos para uma tabela.
Decrescente
No caso de utilizao de banco de dados do Access (MDB), para cada campo selecionado na lista
de campos chaves, o projetista poder marcar se a ordem para o campo ser crescente ou
decrescente. Deste modo, podem ser criadas chaves para os ndices com diversos campos e
direcionamentos diferentes.
Tipo de ndice
Esta opo e a seguinte (FillFactor) s estaro disponveis no caso de utilizao de banco de
dados SQL Server (verso Enterprise do GAS). O projetista dever selecionar uma das opes:
CLUSTERED - Cria um objeto no qual a ordem fsica dos registros a mesma da ordem do
ndice primrio criado e o nvel leaf do ndice (fundo) contm os dados reais dos registros.
NONCLUSTERED - Cria um ndice que especifica a ordem lgica de uma tabela. Com este tipo
de ndice, a ordem fsica dos registros no a mesma da sua ordem indexada. O nvel leaf de um
ndice desse tipo contm registros do ndice. Cada registro de ndice contm o valor da chave
NONCLUSTERED e um ou mais localizadores de registros que apontam para o registro da tabela.
Fillfactor
Esta opo especifica um percentual que indica quanto o SQL Server deve encher o nvel leaf de
cada pgina do ndice, durante a sua criao. Quando uma pgina de ndice fica cheia, o SQL
Server precisa ter um tempo para dividir a pgina do ndice a fim de abrir lugar para novos registros,
o que muito dispendioso. Para uma atualizao intensiva de tabelas, um valor de FILLFACTOR
bem estabelecido leva a um ganho de performance.
Invisvel
Possibilidade de definir, em tempo de projeto, um ndice, entretanto, deixa-lo como invisivel, para
que o usurio no o veja em na opo de procura.
Ordem de ndices
Pode-se definir, em tempo de projeto, a ordem que os ndices vo aparecer na janela de procura e
na lista de ndices da aplicao gerada.
148
Caso seja necessrio, relaes de integridade 1-N (pai/filhos) e 1-1 (referncias) podem ser
definidas entre as tabelas. Essas relaes so utilizadas para efetuar a integridade entre tabelas do
sistema bem como para efetuar integridades de validaes onde certo tipo de informao s pode
ser digitada em uma tabela segundo a sua existncia em outra. Uma relao inserida no projeto da
mesma forma que feita para as definies explicadas nos itens anteriores, observando que a tabela
bsica a ser considerada no relacionamento a tabela que estiver selecionada na lista de tabelas. A
partir do dilogo da figura 5.20, clique sobre a lista de relaes e sobre o boto de incluso, inserindo
as demais definies para vincular as tabelas:
Figura 5.20
Ttulo amigvel
Informe uma informao que identifica esta relao de integridade dentro do projeto.
Opes 1-1 e 1-N
Selecione o tipo de relao a ser efetuada.
Tabela/Campos estrangeiros
Escolha a tabela a ser relacionada e um de seus campos para sincronizar com a tabela base.
Campos da tabela base
Selecione um dos campos para sincronismo com o campo da tabela estrangeira. Para efetivar o
estabelecimento da integridade entre os campos selecionados, clique sobre o boto de concatenar
exibido a seguir: boto para concatenar definies Se existir mais de um campo definindo a
integridade, selecione os outros campos e pressione novamente este boto acima. O boto limpar,
mostrado a seguir, pode ser utilizado para recomear a seleo dos campos da relao de
integridades. boto para limpar definies Para o estabelecimento de uma integridade, voc deve
levar em considerao os seguintes aspectos:
neste tipo de relacionamento, os campos dastabelas bsica e estrangeira a serem ligadas no
precisam ter os mesmos nomes, mas devem apresentar as mesmas caractersticas (atributos).
a tabela estrangeira ou a tabela bsica da integridade dever ter ndice primrio ou nico com os
campos que compem a integridade.
se a integridade for 1-1, a tabela/campo estrangeiro dever ter um ndice primrio ou nico pelos
149
campos selecionados para constituir a integridade. Tambm, a integridade deve ser efetuada no
sentido da tabela original para a tabela consultada, como, por exemplo, de Sadas de produtos para
a Tabela de produtos.
se a integridade for do tipo 1-N, a tabela bsica da integridade (tabela selecionada na lista
Tabelas) dever ter um ndice primrio ou nico pelos campos selecionados para constituir a
integridade. Tambm, a integridade deve ser efetuada no sentido da tabela me para a tabela filha,
como, por exemplo, de Notas para Itens de Notas.
Tipo de Integridade
Para todos os bancos que suportarem tal recurso, possvel definir o tipo de integridade, para
que seja construida utilizando trigger ou constraint.
5.7.6.1.6 Sistemas multi-empresa
Na definio da estrutura dos bancos de dados o projetista pode realizar o controle multi empresa
para quaisquer bancos de dados.
Uma vez definido que o banco de dados ter controle multi- empresa, ser disponibilizada a op
o para determinar quais tabelas estaro sob esse controle.
Pode-se, portanto, trabalhar com apenas algumas das tabelas de um banco com o controle
interno para multi-empresa. O controle multi empresa disponibilizado no GAS baseado em uma
tabela do banco que ser escolhida como sendo a tabela de empresas que tambm conter o campo
"Cod~Emp". Esse campo dever ter a seguinte opo marcada:
150
Esse mesmo campo ser criado de forma automtica para todas as tabelas que tiverem o controle
multi empresa definido. Assim que o usurio tentar acessar o sistema ser solicitada a empresa que
ir utilizar para trabalhar:
151
152
A soluo pode tambm ser um aplicativo, tipo um "centralizador" ou "gerente" onde ser
possivel atravs dele acessar as aplicaes. Por este motivo, apresentado a aba de dados
genricos, onde as informao sobre os dados constante no aplicativo so solicitados.
Titulo: Informe um ttulo para a aplicao, que ser utilizado como ttulo do formulrio principal
(MDI), quando a aplicao estiver sendo executada.
Nome executvel(EXE): Informe um nome para o programa executvel da aplicao, sob o qual
ela ser ativada dentro do ambiente Windows.
Nome da empresa - informe o nome da empresa ou softwarehouse que desenvolve este projeto.
5.7.6.4
153
Aba miscelnia
Figura 5.21
154
155
Figura 5.22
156
Figura 5.24
5.7.6.5.1 Inserindo uma nova figura
Para inserir uma figura na tela inicial basta clicar sobre o boto a seguir: boto para inserir figura
Escolha uma figura que esteja gravada em um diretrio qualquer, por intermdio de um dilogo
padro do Windows.
157
O projetista ainda tem a opo de utilizar um diretrio de figuras nico para todos os projetos, o
que permite manter uma melhor padronizao dos sistemas desenvolvidos, alm de evitar a
necessidade de replicao desse diretrio para cada um dos projetos existentes. Esse recurso
especialmente vlido para o caso do projetista optar por utilizar a mesma tela inicial em todos os
projetos. Para definir o diretrio unificado de figuras para os projetos, basta indic-lo no campo
identificado como "Diretrio para figuras do projeto", disponvel na aba cones da Definio do
projeto.
5.7.6.5.2 Removendo uma figura
Para remover a figura, basta clicar sobre o boto a seguir e confirmar a sua remoo.
Para alterar o tamanho da tela inicial, basta utilizar a barra de rolagem para estabelecer o
percentual em relao ao tamanho total da tela que dever ocupar.
5.7.6.5.4 Alterando a cor e o aspecto da moldura
O aspecto da moldura utilizada para apresentar a tela inicial pode ser configurada, alterando-se os
valores das opes:
Chanfro interno
Chanfro externo
Largura do chanfro
Largura da borda
O boto a seguir serve para apresentar o dilogo de escolha de cores para a moldura: boto para
ajuste de cor da moldura
158
5.7.6.6
Aba histrico
O projetista ter agora como verificar o histrico de todas as geraes que foram feitas para um
projeto, contendo a informao do nmero da verso, data e hora de gerao, verso e release do
GAS utilizada para a gerao, alm de um comentrio descrito pelo prprio projetista. no momento
da gerao daquela verso;
5.7.6.7
Aba instalao
A partir do GAS2007, o prprio GAS oferece opo de gerar um aplicativo que voce poder
utilizar para instalar seu programa em uma outra mquina, ou fazer a distribuio do mesmo.
159
Habilitar gerao de instalador: Com esta opo marcada, o GAS ir criar um aplicativo que
poder ser utilizado para distribuir seu aplicativo, para os casos de instalao e de atualizao
tambm.
Na aba Instalao, aps habilitar a gerao do instalador, o projetista tambm tem disponvel uma
rvore, e de acordo com o item selecionado, ser exibido os campos para o devido preenchimento:
Dados para instalao:
Nome do instalador: o nome que o projetisa ir dar ao aplicativo de instalao. Em geral
se utilizar Setup.exe, entretanto, o projetista pode definir o nome que lhe for mais
conveniente.
Pasta para instalao: a pasta onde o aplicativo ser instalado. Em geral se utiliza a pasta
"arquivos de programas", e ainda com uma pasta com o nome da empresa. Por exemplo o
GAS, instalado na pasta: "c:\arquivos de programas\GAS informtica\GAS2007".
Grupo do menu iniciar: Deve ser informado qual o grupo de aplicativos ser criado. Por
exemplo, o GAS utiliza a pasta GAS2007.
Arquivos texto com informaes:
160
161
162
163
164
165
166
Selecione para qual sistema operacional esta instalao ser compatvel. De acordo com o
sistema operacional escolhido, a aplicao poder variar de tamanho, ficando menor ou
maior, visto que alguns dos arquivos so especficos de cada S.O.
5.7.7
5.7.7.1
Gerenciamento de projetos
Alm de gerenciar os projetos, o mdulo de soluo pode ser usado para gerar fontes de um
aplicativo, que controle os outros executveis e as rotinas globais a todos os outros projetos.
5.7.8
167
Definio do projeto
A definio do projeto, segue o mesmo padro da definio da soluo, sendo que ela no
apresenta todas as abas disponveis na definio da soluo.
168
Titulo: Informe um ttulo para a aplicao, que ser utilizado como ttulo do formulrio principal
(MDI), quando a aplicao estiver sendo executada.
Nome executvel(EXE): Informe um nome para o programa executvel da aplicao, sob o qual
ela ser ativada dentro do ambiente Windows.
Nome da empresa - informe o nome da empresa ou softwarehouse que desenvolve este projeto.
Aba Instalao: Segue o mesmo padro da aba respectiva na definio da soluo: Aba
Instalao 158
5.7.9
5.7.9.1
169
Figura 5.25
Associada a essa janela dever aparecer tambm a janela de Ferramentas da tela, representada
pela figura abaixo. A tecla F4 serve para mostrar e ocultar esta janela.
170
Figura 5.26
171
servem para apagar colunas nas grades e para configurao da impressora, respectivamente;
172
Apesar dos aplicativos gerados apresentarem interface MDI, os botes que possuem funes
pr-programadas pelo GAS e presentes na barra de ferramentas do aplicativo final podem ser
disponibilizados livremente nos formulrios do referido aplicativo. Com o GAS, tais botes
prprogramados sero automaticamente habilitados/desabilitados de acordo com o status das
opes de menu/barra de ferramentas do MDI.
No que se refere a chamadas a janela de dados pormeio de uma Ao no clique de boto,
pode-se, inclusive, efetuar as mais diversas filtragens necessrias, de forma que sejam
apresentados somente os dados convenientes.
Em se tratando do boto de abandonar a aplicao (sair), a funo escrita pelo projetista ser
disponibilizada na sub-rotina QueryUnload do formulrio principal, que o penltimo fragmento
de cdigo executado pela aplicao, antes de retornar ao Windows.
5.7.9.2.1 Menus POP-UP em botes
Tambm possvel definir menus popup que sero disparados ao clique de botes de comando.
Para cada menu popup, o projetista pode configurar quantos itens sejam necessrios, com aes
personalizadas;
5.7.9.3
173
Figura 5.27
Selecione a fonte a ser utilizada para exibir o ttulo. Somente fontes do tipo true-type podem ser
selecionadas.
5.7.9.3.3 Largura logotipo
174
5.7.9.4
Figura 5.28
5.7.9.5
175
Figura 5.29
O GAS tomar a cor do primeiro pixel da figura como sendo a cor de transparncia.
Figura 5.13
Um clique sobre o sinal alterna a situao, ou seja, expande ou contrai o mdulo, exibindo ou no
os mdulos que lhe so subordinados. A figura abaixo apresenta o mesmo fragmento da rvore na
176
situao expandida. Observe que, na figura a seguir, os mdulos "filhos" de Arquivo j esto sendo
exibidos.
Este recurso pode ser utilizado para esconder no modelador certos mdulos que o projetista no
tenha interesse, no momento, de visualizar.
Figura 5.14
Os dilogos que aparecem para solicitar as definies do mdulo variam de acordo com o tipo de
mdulo.
5.7.11.1 Definindo um mdulo do tipo "Menu"
Este tipo de mdulo bastante fcil de definir. Sero necessrias ao GAS apenas duas
informaes, como mostra a interface da figura abaixo
177
Figura 5.32
Ttulo do menu: Refere-se ao texto que aparecer no menu oferecido ao usurio. O caractere
"&" poder ser utilizado para criar o atalho para esta opo de menu. A letra que precede este
caractere ser o atalho e aparecer sublinhada no menu.
Nome do controle: um nome utilizado para referenciar este item de menu dentro dos
programas fontes.
Ocultar: Esta opo existe em alguns dos mdulos inseridos na rvore, como, por exemplo,
janelas de dados, relatrios, etiquetas, etc. Se estiver marcada, este mdulo no ir aparecer
em menus, ficando a cargo do projetista programar a sua apresentao quando e onde
desejado.
Visvel: Informe uma condio que, se avaliada como verdade, permitir que o usurio visualize
este mdulo no menu. Este recurso pode ser utilizado para cercear mdulos a certos usurios,
em sistemas multi-usurio com plano de senhas. Para a entrada desta informao, o projetista
poder utilizar tabelas, variveis, constantes ou funes globais do sistema ou mesmo o Editor
de Programas Interno do GAS.
Pr-validao: Informe uma condio que, se avaliada como verdade, permitir ao usurio
acessar o item de menu (visvel) referente a essa janela de dados. Essa condio est
submissa condio de visibilidade definida no item anterior. Assim como aquele, este recurso
pode ser tambm utilizado para cercear mdulos a certos usurios, em sistemas multi-usurio
com plano de senhas. Para a entrada desta informao, o projetista poder utilizar tabelas,
variveis, constantes ou funes globais do sistema ou mesmo o Editor de Programas
Interno do GAS.
Atalho: Trata-se da tecla escolhida para que ao pressionada ative o mdulo em questo.
exibido uma lista contendo todas as teclas possveis para se utilizar como atalho para este
mdulo.
Criar lista de janelas: Marque se, neste menu, estar vinculada a lista de janelas abertas. Em
aplicaes MDI, comumente necessrio que um dos menus da aplicao contenha a lista das
janelas que esto abertas na rea de cliente da aplicao, de forma a facilitar o acesso s
mesmas pelo usurio. Todo formulrio que aberto na rea de cliente, adicionado
automaticamente nesta lista, sendo removido no momento em que o usurio fech-lo. O GAS
178
dispe, por default, esta lista no menu Janelas, que disposto na rvore do projeto.
Em vista de somente um dos menus poder conter esta lista, a marcao desta opo para
uma janela desmarca, automaticamente, aquela que tiver sido efetuada anteriormente em outro
menu.
5.7.11.2 Definindo um mdulo tipo janela de dados
Figura 5.33
O mdulo do tipo Janela de Dados, alm de ser o que mais comumente aparece na rvore do
projeto, o que requer maiores detalhes para ser definido. Sua definio efetuada em cinco
etapas, na interface da acima. Aps a definio de um mdulo do tipo Janela de Dados, necessrio
executar a formatao da tela de digitao para esta janela.
Geral: Na primeira aba da interface de definio de uma janela de dados, os aspectos gerais
podem ser definidos.
Titulo do Menu: Deve ser informado o titulo do menu para este modulo. Este titulo facilitar
a identificao deste modulo durante o desenvolvimento do seu projeto. o texto que
aparecer no menu da aplicao para disponibilizar esta opo ao usurio final.
Titulo da Janela: o texto a ser utilizado no ttulo da janela de entrada de dados.
Nome do Modulo: Corresponde ao nome do arquivo, de extenso .FRM, no qual sero
179
Mdulo pronto: Marque somente quando todas as definies para este mdulo
estiverem completamente prontas. Isto informar ao GAS que as rotinas deste mdulo
podero ser geradas, quando for solicitada a gerao de programas fontes.
No gerar este mdulo: Esta opo existe em todos os tipos de mdulos e serve para o
projetista dizer ao GAS para no gerar mais os programas deste mdulo, a fim de
ganhar tempo. Isto poder ocorrer quando j tenham sido gerados pelo menos uma vez
e caso no haja modificaes..
Cupom fiscal: Marque essa opo se esse mdulo ir se comportar como emissor de
cupom fiscal. Vale lembrar que, alm dessa opo marcada, diversas propriedades
devem ser ajustadas durante a formatao da janela de dados para que a emisso
funcione corretamente. Uma vez marcada esta opo, este mdulo s servir para a
incluso de registros, ficando desabilitadas e ignoradas as outras opes.
Sempre preservar este item: Marque essa opo, quando desejar efetuar uma alterao
manual no cdigo fonte, diretamente pelo VB, e no quiser mais que o GAS gere os
fontes deste mdulo, preservando o que voc fez. Desta forma, o GAS ir ignorar a
gerao deste mdulo, e usar sempre o cdigo que voc alterou e gravou na respectiva
pasta, com o mesmo nome do formulrio.
180
Nome do controle: um nome utilizado para referenciar este item de menu dentro dos
programas fontes.
Ocultar: Esta opo existe em alguns dos mdulos inseridos na rvore, como, por
exemplo, janelas de dados, relatrios, etiquetas, etc. Se estiver marcada, este mdulo
no ir aparecer em menus, ficando a cargo do projetista programar a sua
apresentao quando e onde desejado.
Visvel: Informe uma condio que, se avaliada como verdade, permitir que o usurio
visualize este mdulo no menu. Este recurso pode ser utilizado para cercear mdulos a
certos usurios, em sistemas multi-usurio com plano de senhas. Para a entrada desta
informao, o projetista poder utilizar tabelas, variveis, constantes ou funes globais
do sistema ou mesmo o Editor de Programas Interno do GAS.
Pr-validao: Informe uma condio que, se avaliada como verdade, permitir ao
usurio acessar o item de menu (visvel) referente a essa janela de dados. Essa
181
Nome
Nmero
mdiXXXX.frm
Browse.frm
182
ConfGraf.frm
Grafico.frm
Help.frm
InfoDB.frm
MontaSQL.frm
Procura.frm
Relat.frm
SelQuery.frm
10
Senhas.frm
11
Sobre.frm
12
Apresent.frm
13
Controle.frm
14
Filtra.frm
15
Gauge.frm
16
GMCalc.frm
17
Cale.frm
18
EcfAux.frm
19
EcfCanc.frm
20
EcfDesc,frm
21
EcfPgto.frm
22
FrmMM.frm
23
Preview.frm
24
183
Uma vez definida esta primeira aba - Geral, o projetista poder gravar ou cancelar as informaes
digitadas, clicando sobre os botes correspondentes.
Tabelas Auxiliares
A aba representada na figura a seguir serve para forar a abertura e disponibilizao de outras
tabelas (tabelas estrangeiras) definidas no projeto, para serem consultadas, processadas ou,
ainda, para servirem de alvo de lanamentos a partir da digitao de informaes na tabela
bsica definida na aba anterior.
Para inserir uma tabela auxiliar na lista, proceda conforme se segue:
Clique sobre o boto intitulado Adiciona, para adicionar uma tabela auxiliar;
Selecione a tabela desejada a partir da lista intitulada "Tabela auxiliar";
Selecione um dos ndices para a tabela escolhida, a partir da lista intitulada ndice;
Escolha um campo para unir a tabela bsica nova tabela auxiliar adicionada, a partir da
lista apresentada. Na rea intitulada "Ordem dos campos", aparecem, em seqncia, os
campos escolhidos para a unio das tabelas. O boto Limpa pode ser utilizado para
reinicializar as informaes desta rea;
Figura 5.34
Se a opo "Forar relacionamento" estiver marcada, o GAS criar rotina na aplicao para
tentar posicionar no registro da tabela estrangeira. Esta operao necessria se um
184
processamento ser definido nesta tabela auxiliar, para que seja modificado o registro correto. J
no caso de um lanamento, este posicionamento desnecessrio, pois as modificaes sero
efetuadas sempre sobre o novo registro que criado.
Se o relacionamento estiver sendo forado (opo "Forar relacionamento" marcada), o
projetista poder, ainda, marcar a opo Criticar. Neste caso, o GAS criar rotina na aplicao
para apresentar a mensagem definida no campo "Mensagem de crtica", caso no consiga fazer
orelacionamento durante a execuo.
Lembre-se que, se esta tabela auxiliar estiver sendo aberta como alvo de um lanamento,
este lanamento s ser executado aps a incluso do registro na tabela bsica (origem do
lanamento) razo pela qual deve-se ter um cuidado especial com a opo Criticar, pois ela ser
executada antes que o lanamento seja efetivado. Na maioria dos casos, as tabelas auxiliares
que sejam alvo de lanamentos devem estar com esta opo desmarcada.
Lanamentos
Se o projetista relacionou uma ou mais tabelas auxiliares, a interface representada pela figura
abaixo estar habilitada para a definio de lanamentos. Para criar um lanamento em uma tabela
auxiliar, proceda conforme se segue:
Clique sobre o boto Adiciona para criar um novo lanamento;
Digite uma identificao para o lanamento no campo denominado Ttulo;
Selecione, na lista intitulada "Tabela alvo", a tabela que ir receber o lanamento.
Figura 5.36
185
Lembre-se que este lanamento s ser executado aps a incluso do registro na tabela bsica
(origem do lanamento) razo pela qual deve-se ter um cuidado especial sobre o modo como foi
aberta esta tabela-alvo (na aba "Tabelas auxiliares"), no que diz respeito opo Criticar, pois
esta crtica ser executada antes que o lanamento seja efetivado. Na grande maioria dos
casos, as tabelas auxiliares que sero alvo de lanamentos devem estar com a opo Criticar
desmarcada.
Informe, no campo Quantidade, a quantidade de lanamentos que dever ser efetuada.
Observe que este valor pode ser informado, pelo projetista, de diversas formas:
1. Informando diretamente um nmero;
2. Informando uma varivel que tenha criado e designado;
3. Capturando um campo qualquer do banco de campos;
4. Informando uma frmula que envolva um ou mais campos;
5. Invocando o Editor do GAS (duplo clique no campo ou por meio do boto presente na barra de
ferramentas) para elaborar uma funo que retorne um valor a ser utilizado. Esta flexibilidade
til, por exemplo, quando so efetuados diversos lanamentos em uma tabela, de acordo com
o nmero de parcelas de pagamento de mercadorias.
Conforme o caso exigir, marque a opo "Excluir lanamento", para que o GAS crie rotinas na
aplicao final para apagar o registro alvo do lanamento, quando o registro que o gerou for
apagado;
Se desejar, o projetista pode estabelecer duas condies envolvendo o lanamento em
definio:
1. Para que o lanamento seja efetivado. Esta condio pode ser estabelecida preenchendo-se o
campo "Condio de incluso de lanamento", utilizando os mesmos recursos existentes para
a criao das validaes e prvalidaes explicadas anteriormente neste tpico. Uma vez
estabelecida uma condio, o lanamento s ser criado quando esta condio for atendida;
2. Para que o lanamento seja retirado. Esta condio pode ser estabelecida preenchendo- se o
campo intitulado "Condio de excluso", utilizando aqueles mesmos recursos. Uma vez
estabelecida uma condio, o lanamento s ser retirado se a mesma for atendida;
Finalmente, fazendo uso da coluna "Expresso a ser colocada no campo alvo", para cada
campo alvo, estabelea uma expresso para processlo. Esta expresso pode ser definida
utilizandose o banco de campos ou mesmo invocando o Editor do GAS para elaborar uma
funo para retornar o valor desejado.
Quando o campo alvo do lanamento for um campo seqencial, deve-se utilizar a funo
PegaSequencia, exemplificada a seguir, para que o mesmo seja incrementado automaticamente;
caso contrrio, ele no ser incrementado.
PegaSequencia([Nome BD],"<Nome Tab Alvo do Lanam>", "<Nome Campo
Alvo>", Default, <Incremento>)
186
Processos
Caso o projetista tenha definido tabelas auxiliares relacionadas, a interface da figura abaixo estar
disponvel para que se possa definir processamentos naquelas tabelas. A definio de
processamentos muito semelhante definio de lanamentos, explicado no item anterior. A
principal diferena que, no lanamento, um registro novo criado na tabela alvo e seus campos
so modificados. J no processamento, um registro dever ser localizado e posicionado na tabela
alvo para que um ou mais de seus campos sejam modificados.
Figura 5.37
187
Uma vez que uma janela de dados tenha sido inserida na rvore e esteja totalmente definida,
necessrio desenhar a sua janela de entrada de dados. O GAS est provido de um Editor de
Recursos especialmente criado para permitir ao projetista uma completa liberdade de formatao
das telas de entrada de dados. A utilizao do Editor de Recursos j foi mencionada neste captulo,
no tpico Desenhando a barra de ferramentas da aplicao. Para um completo detalhamento da
sua utilizao, consulte o tpico Utilizando o Editor de Recursos 246 , um pouco mais adiante neste
captulo.
188
Durante a formatao de telas para digitao, botes podem ser criados e posicionados na
mesma para executar uma ao qualquer que o projetista venha a programar, se desejar. Consulte o
tpico Estabelecendo uma ao para um boto descrito anteriormente neste captulo, quando
elucidada a formatao da barra de ferramentas.
5.7.11.2.1.1 Colocando campos na tela
Figura 5.38
Uma vez que um campo seja inserido na tela, seus atributos podem ser definidos,
selecionando-se o campo na tela e o atributo a ser definido, a partir da grade existente na janela
Ferramentas da tela, representada na figura mostrada anteriormente. Os atributos do campo so
informaes que o projetista dever passar ao GAS para definir como este campo dever ser digitado
189
(ou mesmo se ser digitado), que tipo de dado ser aceito para este campo, etc.
A pr-validao se constitui no estabelecimento de uma expresso que, sendo atendida, o
usurio poder acessar o campo e digitar informaes. Caso no seja atendida, o usurio no
poder acessar o campo.
A validao deve conter a expresso que determinar se o dado informado pelo usurio ou no
vlido, de acordo com o que o projetista desejar. Caso seja invlido, o usurio visualizar uma
mensagem para digitar a informao correta para o campo. Para a definio destas expresses, o
projetista poder:
Digitar diretamente uma expresso em Visual Basic. Se for necessrio utilizar campos da
tabela bsica ou de tabelas auxiliares, estes podero ser capturados do banco de campos
oferecido pelo GAS por meio da janela da figura seguinte. Sempre que for necessria a captura
de campos, basta dispor o cursor na posio desejada para inserir o nome do campo,
selecionar o banco de campos e aplicar um duplo-clique sobre o campo a ser capturado. O
banco de campos tambm permite a captura de variveis, constantes e funes (function e
sub) para que sejam inseridas na expresso que define a validao;
Invocar o Editor de Programas do GAS para elaborar uma funo em Visual Basic;
Figura 5.39
Clicar sobre o boto marcado com reticncias (...), situado direita do campo, para utilizar a
interface da figura abaixo, e montar a expresso desejada.
190
Figura 5.40
Existem diversas expresses pr-definidas que o projetista poder montar apenas com alguns
cliques do mouse. Por exemplo, para evitar que um campo seja deixado em branco pelo usurio
(validao), basta selecionar o campo desejado, selecionar a opo Vazio, clicar em "Negar
condio" e concatenar a expresso (veja exemplo na figura 5.29). A opo "Registro de lanamento"
permite testar a varivel de sistema vgRegLancado (vide tpico Variveis de Sistema, neste manual).
Se estiver definindo uma pr-validao, o projetista poder ainda marcar a opo "Limpar campo",
se desejar que o campo seja inicializado, mesmo que j contenha uma informao anterior, caso a
expresso de pr-validao no seja atendida.
Figura 5.41
Na segunda aba desta interface, representada pela figura acima, o projetista pode definir
expresses envolvendo as tabelas auxiliares relacionadas, caso tenham sido definidas. Para montar
191
uma expresso segundo a existncia de um registro relacionado em uma das tabelas auxiliares,
basta selecionar a tabela, o ndice desejado e o campo a ser utilizado na pesquisa e, em seguida,
concatenar a expresso montada pelo GAS, clicando sobre o boto a seguir:
Para este atributo, informe o texto que deseja apresentar ao usurio, caso a expresso de
validao falhe, ou seja, quando o usurio digitar informaes que no podem ser aceitas.
Para esta informao, se desejar, o projetista poder invocar o Editor de Programas e elaborar
uma funo para retornar uma mensagem. Isto pode ser interessante quando existirem diversas
expresses de validao concatenadas para o campo e o projetista queira depurar melhor a
mensagem a ser exibida ao usurio.
Informe um valor a ser sugerido ao usurio, sempre que o mesmo desejar acessar este campo.
Este valor pode, inclusive, ser um campo de um arquivo de parmetros existente na aplicao. Neste
caso, basta capturar o campo desejado por meio do banco de campos.
192
de arquivos relacionados, abertos na aba "Tabelas auxiliares", que sejam do tipo multimdia.
Frmulas tanto podem ser resultados de operaes entre campos numricos quanto campos de
tabelas estrangeiras relacionadas que necessitam ser exibidos na tela. Por exemplo, ao digitar o
cdigo do fornecedor em uma Nota Fiscal, o projetista poder exibir o nome do fornecedor, que
se encontra em uma outra tabela relacionada.
Em se tratando de um resultado numrico, a frmula precisa ser tratada pelo projetista, que
poder utilizar a funo STR$( ) do Visual Basic ou outra qualquer que transforme este resultado
em uma expresso do tipo caractere, sendo aceita na propriedade do controle.
Exemplos:
Str$([Produtos em estoque].Qde * 10)
"Preo: " + Format$(Produtos.Preo, ", "##,##0.00")
5.7.11.2.3 Estabelecendo condies especiais
Selecionando-se o painel de fundo da tela em elaborao (basta clicar com o mouse sobre o
painel), trs definies importantes podem ser efetuadas para a digitao nesta tabela, criando-se
condies por meio de qualquer um dos mtodos explicados anteriormente:
5.7.11.2.3.1 Condio para incluir
Caso seja necessrio, o projetista poder estabelecer uma condio para que haja incluso de
registros na tabela bsica. Se esta condio no for atendida o usurio no poder digitar registros
nesta tabela.
5.7.11.2.3.2 Condio para excluir
Caso necessrio, informe uma condio para permitir excluses de registros nesta tabela bsica.
5.7.11.2.3.3 Condio para alterar
Informe, se necessrio, uma condio para permitir que registros sejam alterados pelo usurio
nesta tabela bsica.
5.7.11.3 Definindo uma tabela em grid
Este tipo de mdulo pode ser inserido somente abaixo de uma janela de dados ou sob um outro
mdulo de tabela em grid, compondo a parte "N" de um relacionamento 1-N que o projetista
preferencialmente dever ter criado na estrutura do banco de dados. A rigor, uma tabela pode ser
exibida em grid sempre que estiver relacionada na rvore a uma outra tabela me, mesmo que no
banco de dados no exista especificamente este relacionamento. Porm, na aplicao final, a nica
forma de garantir a excluso de registros filhos por integridade referencial criando-se o
relacionamento no banco de dados. Nenhum outro tipo de mdulo pode ser inserido abaixo de uma
tabela em grid, exceto uma outra tabela em grid.
Uma vez que uma tabela seja apresentada em grid na aplicao final gerada, todos os tipos de
campos podem ser digitados dentro do prprio grid, inclusive campos do tipo listas externas e
internas, rotativos, lgicos, memo, etc. Todos os recursos de edio, como, por exemplo, a digitao
193
com mscaras so disponibilizados para os campos digitados no grid. A cada nova linha includa ou
alterada no grid, todos os processos e lanamentos definidos so disparados automaticamente e
todos os forms visveis no momento so imediatamente atualizados para espelhar os novos valores
que, porventura, tenham sido alterados. Tambm, podem ser definidas frmulas para serem
apresentadas nas colunas, sendo atualizadas simultaneamente no momento da digitao.
Naturalmente, essas frmulas podem envolver campos de qualquer um dos bancos de dados
manipulados pela aplicao. Com isto, o GAS oferece duas maneiras de trabalhar com
relacionamento 1-N: da forma onde a tabela me e filha aparecem em forms separados e a forma
onde as tabelas filhas so disponibilizadas em grids dentro do mesmo form no qual exibida a tabela
me.
Os passos para adicionar um grid a um projeto, bastante simples, e pode ser feito nesta
sequencia:
1 - Inserir uma tabela em grid: Escolha a janela de dados ao qual deseja adicionar o grid, e com o
boto direito do mouse, clique e escolha a opo "adicionar novo modulo". Na sequencia, ser
exibido outro menu, com a opo de "tabela em grid".
2 - Configurar o novo modulo: Aps adicionar o novo modulo, um novo "menu" adcionado a
rvore, ficando o mesmo logo abaixo da janela de dados ao qual o mesmo ser incluido. Selecione o
novo modulo, e com o lado direito do mouse, escolha a opo de "Definir modulo selecionado". Ser
apresentado, um formulrio com algumas "abas", que devem ser preenchidas com informaes para
a definio deste novo modulo. As abas principais so:
194
Aba Geral - Contm as mesmas solicitaes da janela de dados, todas as informaes esto
disponveis em: Definindo um Mdulo - Aba Geral 178
Aba Tabelas Auxiliares - Contm as mesmas solicitaes da janela de dados, todas as
informaes esto disponveis em: Definindo um Mdulo - Aba Tabelas Auxiliares 183
Aba Opes - Caso o mdulo em definio seja uma "Tabela em grid", uma aba extra
denominada Opes estar presente. A figura abaixo representa essas opes.
195
Figura 5.35
Para estabelecer a expresso de ligao com o pai (relacionamento 1-N), proceda do seguinte
modo:
Selecione, na lista "Cps do filho...", o campo comum s duas tabelas a ser utilizado para
fazer a ligao;
Caso exista, na lista "Cps do pai...", um campo com um mesmo nome e mesmos atributos,
o GAS selecionar automaticamente este campo. Se o campo de ligao no for este, voc
tem a liberdade de selecionar outro;
Aps selecionados os campos nas duas listas, utilize o boto de concatenao para
confirmar a expresso;
196
No existe formatao de tela para um mdulo do tipo Tabela em grid. A tela formatada no
mdulo pai, sobre a qual inserido um objeto gDbGrid. Para inserir grids na tela, proceda da
seguinte maneira:
Insira um ou mais mdulos do tipo "Tabela em grid" na rvore e defina as tabelas bsicas e a
ligao com o pai de cada um deles;
Acesse a tela definida para o mdulo pai e coloque os grids necessrios, por meio do boto
exibido a seguir, existente na janela de Ferramentas da tela;
197
Nesta verso(GAS2007), foi desenvolvido um controle GRID totalmente novo para utilizao nas
janelas de dados e consultas da aplicao gerada. O novo controle, que tem como base a ListView (n
o mais o dbgrid), est muito mais rpido, verstil e sofisticado. Utiliza tcnicas de subclasse e
controle "owner draw" com aquisio de dados em modo virtual. O conjunto dessas tcnicas
possibilita uma extrema economia de memria e uma tima performance. Apenas os dados que est
o sendo mostrados no grid esto carregados efetivamente na memria do controle. Se o driver
utilizado para conexo com o banco de dados permitir o grid tambm poder utilizar o preenchimento
gradual.
Dessa maneira, enquanto os registros estiverem sendo retornados da base de dados, o grid j
poder mostrar a parte dos registros que j foram adquiridos.
Este novo controle permite a definio de cor para fundo e texto individualmente para cada clula.
Assim, o projetista tem a possibilidade de determinar, por exemplo, condies para determinao da
cor de fundo ou de texto de alguma informao. Tambm estar disponvel nessa verso do controle
recursos especficos para colunas numricas: o usurio poder ver na barra de status do grid informa
es de total, mximo, mnimo e mdia das informaes. Agora tambm possvel selecionar vrias
linhas no grid para para operar com eles, por exemplo, para excluir, grafar, etc.
O controle permitir que o usurio modifique a ordem de apresentao das colunas, bem como
determinar a ordenao de registros (crescente/decrescente) clicando sobre o ttulo de uma ou de v
rias colunas. Tambm foi embutido no controle uma barra de filtro (antes era externa), que poder ser
habilitada ou no pelo usurio em tempo de execuo. Ser possvel ainda definir a quantidade de
registros que sero retornados pela query (TOP). Todos os recursos comentados aqui estaro dispon
veis tanto em grids de consultas como em grids filhos (em janelas de dados);
198
199
9 - Adicionado a propriedade: "Ao no duplo click". Agora possivel definir uma funo a ser
executada no duplo click do grid.
Com o grid selecionado, pressionado a tecla F4, o projetista tem a disposio o form de
Ferramentas da tela:
200
Aparncia(cores): Nesta categoria, possvel definir a aparncia dos itens disponveis no grid
Propriedade
Fonte
Descrio
Esta propriedade determina a fonte da linha referente aos registros do
grid.
Fundo barra de
filtro
Fundo
lateral
barra
Fundo
mximo
barra
Fundo
mdia
barra
Fundo
mnimo
barra
Fundo
somatrio
barra
Fundo
status
barra
Fundo coluna
Fundo
ativa
coluna
Fundo clula
Fundo
edio
clula
Fundo
selec.
clula
Fundo
zebra
clula
Fundo grid
Fundo linha
Fundo
coluna
ttulo
Fundo
colunas
ttulo
Linha de grid
Texto
mdia
barra
Texto
mnimo
barra
Texto
mximo
barra
Texto
status
barra
Texto
somatrio
barra
Texto coluna
Texto
ativa
coluna
Texto clula
Texto
selec.
clula
Texto
edio
clula
Texto
zebra
clula
Texto linha
201
202
Texto
coluna
ttulo
Texto
colunas
ttulo
Auto
registro
incluir
492
Figura 5.42
Selecione "Editar/Editar cdigo de programa" no menu, tecle F9 ou, ento, clique no boto
abaixo para invocar o Editor de Programas do GAS;
boto para ativar o Editor
Elabore a rotina em Visual Basic;
203
Marque a opo mdulo pronto, quando acabar de elaborar a sua rotina para informar ao GAS
que este mdulo poder ser gerado, quando for solicitada a gerao de fontes.
5.7.11.5 Definindo um processo pr-definido
Este tipo de mdulo permite a definio de processamentos especiais, pr-definidos pelo
projetista, para executar certas tarefas, como, por exemplo, fechamento de ms, clculo de folha de
pagamento, baixas em estoque, histricos, etc. Na definio desses mdulos, o projetista tem total
flexibilidade para envolver outros bancos de dados, efetuar clculos, apagar registros, etc.,
percorrendo uma mesma tabela quantas vezes se fizer necessrio e efetuando processos diferentes
a cada passagem. Telas complementares podem ser criadas para serem apresentadas antes dos
processos, de modo a permitir o estabelecimentos de filtros e condies de processos e
lanamentos.
Mesmo que no haja uma tela definida para o processo pr-definido em questo, o projetista
poder definir mensagens a serem exibidas no incio e fim do processamento. Para isso, basta
defin-las respectivamente por meio das propriedades Mensagem inicial e Mensagem final do
painel de fundo da tela do processo prdefinido. Para obter maiores detalhes, consulte o Captulo
13- Propriedades dos objetos de tela. Um processo pr-definido definido em duas etapas:
5.7.11.5.1 Cabealho do processo pr-definido
Figura 5.43
A maior parte dos aspectos de definio do cabealho dos processos pr-definidos idntica aos
da definio de Janela de dados, vista em tpicos anteriores deste captulo; por isso, reporte-se
quele tpico para conhecer como so executados. O nico aspecto particular definio do
204
Marque essa opo se este mdulo ir comportar como emissor de cupom fiscal. Neste caso, os
itens vendidos devero ser inclusos por meio de lanamentos.
A aba "Tabelas auxiliares", representada na figura abaixo, serve para relacionar tabelas com os
campos que, porventura, tenham sido inseridos em uma tela complementar criada previamente para
receber informaes a serem utilizadas durante o processamento. Uma tela complementar para
receber variveis antes de processos criada conforme descrito no tpico Criando uma tela
complementar mais adiante neste captulo. Se nenhuma tela for criada, esta aba no ter serventia
neste tipo de mdulo.
Figura 5.44
5.7.11.5.2 Processo pr-definido
205
Figura 5.45
206
Figura 5.46
O campo "Filtro inicial" deve ser preenchido com uma expresso vlida que determinar a
seleo dos registros, diferenciando-se do campo "Condio para processar o registro"pelo fato
deste ltimo no ser agregado clusula WHERE;
O campo "Condio para processar o registro" deve ser preenchido com uma expresso
vlida que determina se o registro ser ou no processado. Utilize o boto marcado com
reticncias para montar esta expresso de uma maneira mais fcil;
Caso voc deseje a excluso do registro da tabela bsica aps o processamento, marque a
opo "Excluir registro da tabela bsica";
Caso tenha marcado a opo acima, voc ainda poder definir uma condio para que este
registro seja excludo. Esta condio pode ser estabelecida da mesma maneira descrita
anteriormente para "Condio para processar o registro";
O projetista ainda poder definir a ordem de execuo dos processos pr-definidos (para um
mesmo grupo de registros a serem processados) por meio da lista "Ordem", na qual devero
ser selecionados os campos para a referida ordenao.
Quando terminar, utilize o boto Grava para salvar as informaes. A definio de lanamentos
e processos a ser efetuada por meio das duas abas seguintes j foi explicada neste captulo, no
tpico Definindo um mdulo tipo janela de dados 184 .
207
Figura 5.47
A rea denominada "Expresso que define a consulta" conter a expresso SQL a ser
montada pela interface da figura acima. Se desejar, o projetista poder manualmente editar esta rea
e construir a expresso SQL que desejar. No entanto, ao fazer isto, o GAS desabilitar a interface
automtica para lhe dar maior liberdade. Para voltar a utilizar a interface automtica, o projetista ter
que recome-la, apagando a expresso. A opo "Query Externa" permite ao projetista definir uma
query manualmente sem que o GAS faa qualquer tipo de tratamento quanto a nomes de campos,
apelidos, etc. Com isso, o cdigo ser gerado exatamente como o projetista o definir.
208
Figura 5.48
Convm lembrar que a expresso que define a consulta deve conter uma sintaxe correta no
padro SQL, pois esta ser avaliada somente durante a execuo da aplicao final, resultando em
erros de execuo, caso no esteja correta. Os botes existentes na janela da figura acima tm as
seguintes funes:
Prosseguir
Tem por finalidade aceitar a expresso montada e transfer-la para a tela anterior, na aba
Contedo.
Cancela
Tem por finalidade cancelar a operao de montagem da expresso da consulta.
Limpar seleo
Tem por finalidade retirar da expresso somente a clusula de seleo (WHERE).
Limpa
Tem por finalidade limpar toda a expresso que est sendo montada, permitindo recomear toda
a definio.
5.7.11.6.1 Contedos
Para a montagem desta expresso, o projetista dever efetuar os passos que se seguem:
Selecione uma tabela na lista Tabelas. Com isto, a lista "Campos a mostrar" preenchida
com os campos da tabela selecionada;
209
A seguir, selecione na lista "Campos a mostrar" os campos que deseja visualizar na consulta.
Desta maneira, diversas tabelas e campos podem ser selecionados para a consulta. medida
que um campo selecionado, o mesmo ser inserido automaticamente na expresso que
apresentada no espao "Expresso que define a consulta". Se for selecionado um campo j
inserido, este automaticamente retirado da expresso. Essas definies acrescentam
expresso SQL da consulta, respectivamente, as clusulas FROM e SELECT. Consulte o
Glossrio para maiores detalhes sobre esses termos.
5.7.11.6.2 Grupos e ordenao
Caso seja necessrio, por meio da terceira aba, representada na figura abaixo, o projetista poder
estabelecer agrupamentos para sumarizao da consulta, bem como a ordem em que os registros
devero aparecer. Estas informaes adicionam, respectivamente, a clusula GROUP BY e ORDER
BY expresso SQL que define a consulta.
Figura 5.49
Caso voc esteja elaborando um agrupamento, deve ter em mente que todos os registros que
contenham o mesmo campo escolhido para agrupar sero sumarizados como se fossem um nico
registro. Portanto, todos os campos que compem a consulta devero ser, obrigatoriamente, do tipo
numrico, exceto aqueles utilizados para efetuar o agrupamento. Devido a esta particularidade,
agrupamento no deve ser confundido com "quebra". O projetista dever selecionar, na lista "
Agrupar por", os campos que comandaro o agrupamento de sumarizao, devendo ter o cuidado
de selecionar estes mesmos campos, na lista Ordenao, para comandar a ordem dos registros.
Aps selecionar os campos para ordenao, o projetista poder tambm estabelecer se ela ser
Ascendente ou Descendente, selecionando a opo correspondente.
O usurio do aplicativo final gerado poder ainda estabelecer ordenaes a seu critrio, tendo
como base os campos exibidos na consulta.
5.7.11.6.3 Seleo
Finalmente, na tela representada pela figura abaixo, a seleo ou filtragem de registros poder ser
210
estabelecida.
Figura 5.50
Caso a opo Selecionar ou a opo "Unir tabelas" esteja marcada, a expresso estabelecida ir
compor a clusula WHERE da expresso SQL. Se a opo Filtrar estiver selecionada, a expresso
estabelecida no ir fazer parte da clusula WHERE, no sendo, portanto, gravada no banco de
dados. O filtro estabelecido por esta opo ter seu contedo avaliado na hora e seu resultado
passado para as devidas propriedades da consulta ou relatrio (propriedade Filter do recordset, etc).
Qualquer que seja a opo selecionada, este passo ir definir quais registros iro participar da
consulta.
5.7.11.6.3.1 Criao de filtragem
211
Se mais de uma tabela foi selecionada para a consulta ou sendo necessria a criao de
relacionamento entre elas, o projetista poder selecionar a opo "Unir tabelas" e os campos das
diversas tabelas que devem ser iguais. Para aglomerar diversas filtragens em uma mesma
expresso, o projetista dever fazer uso do boto Concatena.
5.7.11.7 Definindo um relatrio ou etiqueta
H duas maneiras de se formatar relatrios para serem integrados s aplicaes criadas pelo
GAS.
A primeira delas, mantida ainda nesta verso do GAS apenas por questes de compatibilidade
com verses anteriores, consiste na utilizao do programa Crystal Reports. Este programa
formatador de relatrios acompanhava o Visual Basic at a sua verso 5.0. A partir do
lanamento do Visual Basic 6.0, este programa deixou de ser fornecido nos discos do Visual
Basic, tendo, por isso, de ser adquirido separadamente, caso o projetista deseje fazer uso
dessa ferramenta. Informaes sobre os aspectos de sua operao podem ser encontradas na
documentao fornecida juntamente com aquele produto. Quando este tipo de formatao
utilizada, o GAS faz toda a interface de escolha de tabela, montagem de recordsets, fitros, etc.
e dispe o projetista no controle do Crystal Reports, para que este possa dar forma ao relatrio.
Uma vez terminada essa tarefa, o GAS far a integrao de menu necessria ativao do
referido relatrio, previamente denominado pelo projetista e gravado sob a forma de um arquivo
de extenso .RPT. altamente recomendvel que se utilize o segundo mtodo de formatao
de relatrio, a ser descrito a seguir, uma vez que a Gas Tecnologia poder, em futuras verses
do GAS, retirar este tipo de interface sem prvio aviso.
A segunda maneira de se formatar relatrios e etiquetas para as aplicaes geradas por meio
da utilizao do G-Reports que integrado ao GAS. Os relatrios so criados de modo
semelhante formatao das telas da aplicao, que descrito no tpico Utilizando o Editor
de Recursos neste manual. Os relatrios e etiquetas formatados, utilizando-se desse mtodo,
so integrados aplicao na forma de programa fonte Visual Basic.
O projetista poder, opcionalmente, definir os relatrios G-Reports com base em
expresso SQL para definir a query a ser utilizada no relatrio. Esse recurso proporciona
uma flexibilidade enorme na elaborao dos relatrios, uma vez que o projetista poder
utilizar todo o poder da linguagem SQL, como funes agregadas, juno de tabelas,
ordenao por campo de outra tabela, etc. O conjunto de dados (recordset) a ser utilizado
como base do relatrio poder ser totalmente flexibilizado.
Para habilitar a utilizao de relatrios Crystal Reports, o projetista dever habilitar a opo
"Habilitar Crystal Reports", presente nas opes de configurao do GAS.
Quanto definio de relatrios, neste tpico, trataremos dos dois tipos de relatrio; porm, com
respeito sua formatao, abordaremos somente o segundo mtodo, nativo do GAS. Durante a
instalao do GAS, so tambm instalados diversos exemplos de aplicaes com relatrios.
altamente recomendvel que se observe como os mesmos foram criados e as propriedades
aplicadas aos objetos na rea de formatao. Nas explicaes que se seguiro, o termo relatrio
dever ser entendido como relatrio e etiqueta, a menos que sejam feitas ressalvas para detalhar um
ou outro fato. Relatrios so inseridos na rvore do projeto de modo semelhante aos demais
mdulos, bastando selecionar o mdulo sob o qual se deseja inserir o relatrio ou etiqueta, clicar o
212
boto apropriado para insero de mdulos, selecionar o tipo relatrio ou etiqueta e escolher o
mtodo GReports ou Crystal Reports.
5.7.11.7.1 Geral
A interface da figura abaixo destinada definio de algumas das informaes dos relatrios, as
quais sero abordadas a seguir.
Figura 5.51
A maior parte dos aspectos de definio de relatrios idntica aos da definio de Consultas,
vista no tpico anterior deste captulo; por isso, reporte-se quele tpico para conhecer como so
executados. Os aspectos particulares definio dos relatrios sero explanados a seguir:
5.7.11.7.1.1 Nome do .RPT
Se relatrio do tipo Crystal Reports, informe um nome de arquivo a ser utilizado pelo Crystal
Reports para guardar as informaes referentes formatao do relatrio. Posteriormente, quando
da execuo da aplicao gerada, este arquivo dever estar disponvel no equipamento do usurio,
pois o Crystal Reports utilizar as informaes nele contidas para imprimir o relatrio.
5.7.11.7.1.2 Tabela bsica
Esta informao est presente somente em relatrios do G-Reports. Selecione a tabela bsica do
relatrio a ser formatado.
5.7.11.7.1.3 Apelido
Presente tambm somente em relatrios a serem formatados pelo G-Reports. Informe o apelido
para ser utilizado em referncias tabela bsica do relatrio.
213
Somente para relatrios do G-Reports, informe se este relatrio dever ser enviado para
impressora fiscal.
5.7.11.7.2 Tabelas auxiliares e Contedo
Esses dois aspectos da definio do relatrio so idnticos aos da definio de Consultas, vista
no tpico anterior deste captulo; por isso, reporte-se quele tpico para conhecer como so
executados.
Convm observar que a seleo ou filtragem de registros estabelecida para um relatrio uma
seleo primria e permanente, pois, ao executar a aplicao final, o usurio sempre poder
estabelecer novos critrios de filtragem sempre subordinados (concatenados) ao que foi aqui definido
pelo projetista. Portanto, se o projetista quiser dar plena liberdade ao usurio, no dever estabelecer
filtros para relatrios em tempo de projeto.
5.7.11.7.3 Formatao de relatrios
Uma vez que o relatrio tenha sido definido, pode-se ativar a sua formatao, clicando-se sobre o
boto a seguir, presente na barra de ferramentas:
boto para formatar relatrio
O GAS saber distinguir o formatador de relatrios que dever ativar. Caso um relatrio do tipo
Crystal Reports tenha sido definido e, se o relatrio estiver sendo acessado pela primeira vez, antes
de invocar o Crystal Reports, o GAS apresenta um dilogo informando qual o banco de dados e
query a ser utilizada, bem como o nome do arquivo RPT a ser gravado. Nas demais oportunidades,
quando este relatrio estiver sendo acessado para qualquer alterao que se fizer necessria, o GAS
no mais apresentar este dilogo.
Ainda com respeito aos relatrios do Crystal Reports, convm observar que, em tempo de projeto,
na maioria das vezes, o banco de dados da aplicao ainda no existe! Por isso, o GAS sempre cria
um banco de dados temporrio, de nome DBTEMP.MDB, com a estrutura at o momento definida,
para que o Crystal Reports possa ter as referncias de que necessita. Portanto, uma boa idia
deixar a definio dos relatrios para uma fase mais ao final do projeto, quando toda a estrutura do
banco de dados j estiver completamente definida, no necessitando mais de modificaes. Os
detalhes da utilizao do Crystal Reports devem ser obtidos na prpria documentao daquele
programa utilitrio.
5.7.11.7.4 Criando um relatrio padro
De maneira semelhante ao que feito nas telas da aplicao, os relatrios padro tambm
podem ser criados. As opes de configurao para este tipo de relatrio podem tambm ser
acionadas por meio de "Opes/Opes de tela padro", conforme descrito no tpico Definindo
opes da tela padro 256 deste captulo.
boto para tela padro
214
Ao acionar o boto para gerar a tela padro, o GAS cria um relatrio padro na rea de
formatao, tentando alocar tantos campos quanto possvel. Este relatrio pode ento ser utilizado
como ponto de partida para a formatao do relatrio desejado.
5.7.11.7.5 Criando uma janela de previso (preview) para o relatrio
Para garantir que seu relatrio possa ser visto em uma janela de previso na aplicao final, o
projetista ter que, obrigatoriamente, criar uma tela preliminar para o relatrio.
boto para criar previso do relatrio
Tal procedimento poder ser efetuado, selecionando-se o relatrio em questo e clicandose o
boto apropriado na barra de ferramentas do GAS. a partir dessa tela, exibida na figura 5.52, que a
janela de previso acionada.
Figura 5.52
A janela mostrada na figura 5.52, que permite o acionamento da tela de preview para relatrios e
etiquetas, tambm disponibiliza aos usurios do aplicativo final gerado recursos como o destino
(direcionamento) do relatrio (Janela, Impressora, Arquivo ou Destinatrio de Correio), o formato do
arquivo de sada (HTML, Texto (ASCII), Microsoft Word (DOC), JPEG, GIF ou Bitmap), o local e
nome do arquivo de sada, o intervalo de pginas, o nmero de cpias, o tipo de impresso (grfico
ou texto), boto para configurao de impressora e filtragem a ser promovida nos dados a serem
impressos.
Caso seja utilizada a opo "Destinatrio de Correio" pelo usurio da aplicao final gerada, ser
exibida a janela da figura 5.53 para que possam ser definidas algumas informaes.
215
Figura 5.53
O usurio final poder utilizar tanto o envio do relatrio gerado via MAPI (aproveitamento das
configuraes j definidas do cliente de e-mail), como por envio direto (alm das informaes
padres para MAPI, devero ser definidos o Servidor SMTP, Nome e E-mail do remetente, etc). Essa
ltima forma de envio independe de cliente de e-mail instalado no equipamento do usurio final. Ao
trmino, ser exibida mensagem de confirmao para o usurio final. Esses recursos proporcionam
uma flexibilidade enorme ao usurio do aplicativo final gerado no momento de imprimir seus
relatrios e etiquetas.
Se esta tela no for criada para um relatrio, o GAS assumir que o relatrio deve ser enviado
diretamente para a impressora e, sendo assim, no disponibilizar, nos fontes, as rotinas para o
acionamento da janela de previso.
5.7.11.7.6 Formatando um relatrio
Para a formatao de um novo relatrio, alguns ajustes preliminares devem ser efetuados por
meio da janela de propriedades, que conhecemos da formatao de telas.
5.7.11.7.6.1 Propriedades do relatrio
As propriedades a seguir devero ser ajustadas para o relatrio. Clicando-se no fundo da rea de
formatao do relatrio, o projetista dever conferir as suas propriedades:
Propriedade
Descrio
216
de
Filtro inicial
Distncia
registros
entre
Fonte
Ordem
Orientao
217
218
Tamanho do papel
Selecione o tamanho do papel (tipo utilizado pela maioria das impressoras - A4,
Letter, etc.). Esta propriedade ir influenciar as propriedades altura e largura til do
papel.
A rea de formatao de relatrio, representada pela figura 5.54, bastante
semelhante rea de formatao de telas, com a diferena de que, no caso de
relatrios, duas rguas, uma vertical e outra horizontal so disponibilizadas, com
marcao em milmetros, de modo a facilitar ao projetista a insero de objetos na
rea. Ao ser movido um objeto nesta rea, uma fina linha projetada sobre a
rgua, permitindo a visualizao correta de sua posio. Os relatrios so
formatados por meio da insero de objetos e do ajuste de suas propriedades. A
figura a seguir mostra as ferramentas de formatao de relatrios:
Figura 5.54
Para facilitar o design de formulrios e relatrios o GAS-2007 permite que o projetista possa fazer
seleo de mltiplos controles utilizando caixa se seleo definida com o mouse (clicando no fundo e
arrastando), como acontece na interface de formatao do Visual Studio bem como de outras
ferramentas;
219
Para todos os filtros definidos, janelas de dados, grids ou relatrios, o projetista tem a opo de
definir vrios filtros distintos, de um mesmo mdulo, segundo condies definidas;
Os campos disponveis nas tabelas selecionadas para o relatrio podem ser capturados por meio
da lista (combobox) existente na janela de propriedades. Quando um campo disponibilizado na
tela, desta maneira, dois objetos do tipo label so utilizados - um para o ttulo do campo e outro para
o contedo. Algumas propriedades como, por exemplo, mscara, alinhamento, imprimir a cada
registro, etc. j vm pr-ajustadas. Outra maneira de disponibilizar campos na tela selecionar um
objeto na tela de ferramentas de relatrio e ajustar a sua propriedade Campo para o campo desejado.
Os trs objetos existentes para se imprimir informaes no relatrio so label, texto 3d, imagem e
linhas:
Label
Utilizados para informaes textuais vinculadas ou no a campos. As propriedades possveis para
este objeto so:
Alinhamento - Estabelece se a informao impressa ser alinhada esquerda ou direita
ou, ainda, se ser centralizada ou justificada (ambos os lados). Em se tratando de campos
numricos, o GAS j dispe automaticamente um alinhamento direita.
220
Imprimir - Tem por finalidade estabelecer o momento em que a informao dever ser
impressa. Esta propriedade deve ser observada com bastante ateno, pois a que,
provavelmente, levantar maior quantidade de dvidas. As opes so:
1. Como mscara de pgina - Se esta opo for selecionada, a informao ser
impressa de maneira esttica na pgina. Informaes impressas como mscara de
pgina so dispostas antes de qualquer outra informao. Por isso, esta ajustagem
deve ser utilizada sempre quando a informao for esttica e for aparecer em um ponto
fixo de cada uma das pginas do relatrio, como, por exemplo, uma linha, uma imagem
no vinculada a campo, um texto que o projetista queira imprimir em todas as pginas
naquela posio, ttulo do relatrio, cabealho de colunas, rodaps, etc.;
2. Incio da pgina - Utilizada para imprimir informaes uma nica vez em cada pgina,
diferindo da opo anterior pelo aspecto de poder ser impressa em posio varivel.
utilizada normalmente para informaes do tipo, por exemplo, "Saldo da pgina
anterior";
221
3. Incio do relatrio - Esta opo deve ser escolhida se a informao deve ser
impressa, uma nica vez, no incio do relatrio (somente na primeira folha), logo aps o
cabealho. Da segunda folha em diante, essa informao suprimida e todas as
informaes subseqentes ajustadas com posio varivel "sobem", ou seja, so
impressas mais acima, ocupando o seu lugar;
4. A cada registro - Esta a informao que deve ser utilizada para imprimir contedos
de campos oriundos do banco de dados. Observe cuidados especiais ao utilizar esta
opo em relatrios que possuam quebras. Neste caso, se esta opo for utilizada, a
informao ser impressa como se fosse um cabealho de quebra (semelhante
opo 7, como mscara da quebra);
5. Fim do relatrio - Utilize esta opo para informaes que sero impressas, uma
nica vez, na ltima folha do relatrio. Normalmente, utilizada para impresso de
dados como "Total Geral", por exemplo, podendo ter posio varivel, o que possibilita
a sua impresso logo abaixo da ltima informao impressa;
6. Fim da pgina - Semelhante ao anterior; porm, considerando a pgina do relatrio.
Normalmente, utilizado para dados como "Total da Pgina", por exemplo, podendo
tambm ter posio varivel;
7. Como mscara Quebra N - Se o relatrio contiver quebras, este ajuste deve ser
utilizado para imprimir informaes estticas pertencentes quebra, como, por
exemplo, o cabealho da quebra;
8. Incio Quebra N - Utilizada para imprimir informaes, uma nica vez, a cada quebra
N, diferindo da opo anterior pelo aspecto de poder ser impressa em posio varivel;
9. A cada registro da Quebra N - Se o relatrio possui quebras, esta opo deve ser
ajustada para todas as informaes que sero impressas na referida quebra;
10.Fim da quebra N - Utilize esta opo para imprimir informaes como "Total da
Quebra" ou rodaps de quebra.
Inicializar - Utilizada somente quando a propriedade Totalizador estiver ajustada para uma
opo diferente de No. Determina em que ponto do relatrio a varivel que controla o
totalizador ser inicializada com 0 ou com o valor estabelecido pela propriedade "Valor
inicial".
Largura - a largura, em milmetros, que ser assumida para a impresso da informao,
que a prpria largura do label disponibilizado na rea de formatao. Se a propriedade
Expandir estiver ajustada para No, a informao ser truncada nessa largura.
Mscara - Informe a mscara para formatar a informao a ser impressa. Podem ser
utilizadas as mesmas mscaras disponveis quando da definio de campos para as
tabelas.
Omitir se igual - Esta informao utilizada para inibir a impresso de informaes iguais
nos registros subseqentes. normalmente utilizada em agrupamentos de registros para
inibir informaes repetitivas. As opes so:
222
223
Este objeto pode tambm ser utilizado para a impresso de informaes textuais em
relatrios, com efeitos visuais mais interessantes. A sua utilizao semelhante do label,
descrito no item anterior. A maioria de suas propriedades so idnticas s daquele objeto, sendo,
portanto, utilizadas da mesma forma. A seguir, esto descritas apenas as propriedades aplicadas
exclusivamente a este objeto:
ngulo - Especifique o ngulo, em graus, a ser utilizado para imprimir a informao. A faixa
aceitvel de 0 (normal) at 359 graus.
Contorno - Determina se o texto a ser impresso ir apresentar uma linha de contorno
(outline).
Cor do contorno - Caso a primeira propriedade esteja ajustada para 1 (Sim), esta
propriedade determina a cor a ser utilizada para colorir o contorno das letras.
Cor da sombra - Especifica a cor da sombra a ser projetada pelo texto, caso a propriedade
"Tamanho da sombra", a ser vista mais adiante, esteja ajustada para um nmero maior do
que zero.
Figura - Permite a designao de uma imagem para ser exibida no fundo do texto 3D.
Fonte - Determina a fonte, tamanho e cor a ser utilizada na informao a ser impressa.
Tamanho da sombra - Especifique o tamanho (em pontos) da sombra a ser projetada pelo
texto impresso.
Imagem
Este objeto pode ser utilizado para imprimir nos relatrios, campos do tipo multimdia
contendo imagens ou mesmo imagens estticas no vinculadas a campos das tabelas
selecionadas para o relatrio. Todas de suas propriedades podem ser utilizadas exatamente
como as propriedades dos labels ou texto 3D. O que existe de diferente neste objeto a
propriedade "Expande figura" que, se ajustada para 1 (Sim), determina que a imagem deve ser
ajustada ao tamanho deixado pelo projetista na rea de formatao.
Linha
Este objeto imprimir uma linha em seu relatrio. As propriedades so algumas das
disponibilizadas para labels ou texto 3D. A propriedade diferente, trata-se da:
Direo - Determina a direo da linha, podendo ser:
1. Horizontal
2. Vertical
3. Diagonal para baixo
224
Diversos sub-relatrios com relacionamento 1-N podem ser facilmente inseridos nos relatrios
formatados pelo G-Reports do GAS. Para inserir sub-relatrios, proceda conforme se segue:
Na rvore do projeto, insira um sub-relatrio abaixo de um mdulo do tipo relatrio;
Da mesma forma descrita para mdulos do tipo tabela, explicada anteriormente neste manual,
informe, se necessrio, as informaes nas abas correspondentes a Geral, Tabelas auxiliares e
Opes, sendo que nesta ltima se deve estabelecer a relao de ligao com o mdulo pai.
Se esta ligao no for estabelecida, todos os registros constantes na tabela bsica do
subrelatrio sero impressos na sua totalidade, ou seja, no aparecem vinculados 1-N;
Selecione, na rvore do projeto, o mdulo principal do relatrio (pai) e acesse a formatao do
relatrio por meio do boto apropriado, j mostrado neste captulo, que se encontra na barra de
ferramentas do GAS;
Posicione, na rea de formatao, os campos do mdulo pai, ajustando todas as suas
propriedades, conforme necessrio;
Insira um sub-relatrio na rea de formatao, clicando sobre o boto apresentado abaixo,
existente na barra de ferramentas de relatrio;
boto para inserir subrelatrio
Vincule uma tabela ao sub-relatrio, por meio da propriedade Tabela. Note que esta
propriedade pode ser preenchida somente com as tabelas inseridas na rvore abaixo do
mdulo pai.
Posicione os campos dessa tabela na rea de formatao do sub-relatrio, ajustando as suas
propriedades conforme necessrio. Essas propriedades so semelhantes s descritas nos
tpicos acima. Vale salientar que a facilidade do relatrio padro poder tambm ser utilizada
para o posicionamento dos campos no subrelatrio, bastando selecionar a rea de formatao
do subrelatrio e acionar a gerao do relatrio padro.
5.7.11.7.6.6 Colocando um totalizador no relatrio
Para criar um totalizador de uma coluna, o projetista deve criar um label com o valor a ser
impresso (normalmente, j est posicionado no relatrio). Dever tambm criar um segundo label e
ajustar as propriedades:
Campo
Estabelea o campo numrico que dever ser totalizado por meio do label inserido na rea de
formatao. Este o mesmo campo que consta no label da coluna a ser totalizada;
225
Totalizador
Estabelea o tipo de totalizao desejada;
Posio
Estabelea tambm a posio onde dever aparecer o total ou subtotal. Observe que as posies
dos totalizadores no esto presas a posies exatamente abaixo de campos totalizados na mesma
pgina. Por exemplo, desde que o resultado de uma totalizao esteja dentro de uma mesma
pgina, o seu valor poder ser impresso nesta pgina, inclusive em cabealhos e rodaps.
5.7.11.7.6.7 Colocando uma quebra no relatrio
226
Ajuste a sua fonte e tamanho para o cdigo desejado. Na realidade, o segundo passo no
obrigatrio. Qualquer informao pode ser utilizada para imprimir cdigos de barras, desde que
sejam obedecidas as regras a seguir:
Tipos EAN-13, EAN-8 e UPC-A aceitam somente dgitos numricos e tm de ter o tamanho
exato de 13, 8 e 12 caracteres, respectivamente, incluindo o dgito verificador.
Tipo 2/5 interleaved tambm aceita somente nmeros; porm, no est limitado a tamanho,
embora, dependendo da quantidade de informao, pode ficar impraticvel a sua leitura.
Tipo 3 de 9 pode tambm aceitar letras (maisculas), tambm no tendo limite terico de
tamanho, embora, na prtica, uma certa quantidade de caracteres pode ocasionar dificuldades
de leitura para recuperao do cdigo. O tamanho das fontes utilizadas para impresso de
cdigos de barras, normalmente, devem ser ajustados em valores bem maiores do que o
normal. Tipicamente, apenas como sugesto, as fontes 2/5 interleaved e 3/9 apresentam bom
resultados nos tamanhos entre 20 e 22 pontos, enquanto as demais podem precisar de ajustes
com valores acima de 28 pontos.
5.7.11.7.6.9 Imprimindo valores em cores diferentes no relatrio
227
5. Fim da pgina;
6. Fim do relatrio.
No momento apropriado impresso de cada um dos grupos, estes so separados em trs
subgrupos: sub-relatrios, campos memo e outros (restante dos objetos). Os subgrupos so sempre
gerados na seguinte ordem:
1. Subgrupos outros;
2. Subgrupos de campos memo;
3. Subgrupos de sub-relatrios.
Os campos memo de cada grupo so sempre impressos simultaneamente, podendo inser-los
um ao lado do outro que sero impressos normalmente. Entretanto, o projetista dever tomar
cuidados especiais quando quiser inser-los abaixo um do outro, pois poder ocorrer sobreposio
dos mesmos. Existem duas formas para inserir um campo memo abaixo de outro. A primeira inserir
o campo memo superior com a propriedade Expandir definida como No. Desta forma, o projetista
determinar o tamanho mximo para este campo. A segunda forma definir um sub-relatrio que
utiliza a mesma tabela base do relatrio e, nele, inserir o campo memo desejado. Por meio desta
segunda opo, o projetista no ter sobreposio de campos e os campos memo sero impressos
em sua totalidade. No caso dos sub-relatrios, estes tambm so divididos em grupos e subgrupos,
obedecendo a mesma regra descrita acima.
5.7.11.7.7 Formatando etiquetas
228
Figura 5.55
5.7.11.8.1 Ttulo no menu
Informe um ttulo para constar na opo do menu da aplicao final que ir acionar o programa.
5.7.11.8.2 Programa executvel
Informe o nome completo (drive, path e nome) do programa executvel a ser acionado. Se
desejar, o projetista poder clicar sobre o boto com reticncias para abrir o dilogo de localizao
deste programa.
229
Marque esta opo para informar ao GAS que este mdulo est pronto para ser gerado quando
solicitada a gerao dos programas fontes da aplicao.
5.7.11.9 Integrando um formulrio existente ao projeto
Enter topic text here.
5.7.11.9.1 Ttulo no menu
Informe o nome do formulrio a ser integrado ao projeto. Se desejar, o projetista poder clicar
sobre o boto com reticncias para abrir o dilogo de procura do formulrio desejado.
5.7.11.9.3 Mdulo pronto
Marque esta opo para informar ao GAS que este mdulo j poder ser gerado.
Figura 5.56
230
Todos os forms no modais das aplicaes do GAS necessitam que algumas variveis pblicas
sejam nele definidas. Essas variveis armazenam caractersticas ou situaes do mesmo. Por isso,
os forms existentes integrados ao projeto tm que, obrigatoriamente, conter essas variveis para
evitar erros em rotinas internas e genricas da aplicao. Essas variveis tm de ser declaradas
como Pblicas no mdulo genrico do form:
Varivel
vgSituacao
ACAO_NAVEGANDO
vgCaracteristic
a
F_COMUM
vgTipo
TP_COMUM
vgFormID
Figura 5.57
5.7.11.10.1 Geral e Tabelas auxiliares
Esses dois aspectos da definio de um formulrio avulso so idnticos aos da definio dos
231
mdulos explicados anteriormente. Neste mdulo obrigatrio o projetista criar uma tela
complementar para receber as variveis desejadas e que justifique a criao do form.
5.7.11.11Criando uma tela complementar
A criao de telas complementares serve para propocionar um meio de captao de variveis
cujos contedos so utilizados em alguns tipos de mdulos gerados pelo GAS, como, por exemplo,
relatrios, etiquetas, processos pr-definidos, consultas, etc. Para a criao deste tipo de tela, o
projetista deve proceder de maneira semelhante descrita para a criao de janelas para entrada de
dados, exposta anteriormente neste captulo, contando com as facilidades do Editor de recursos
cuja operao descrita, um pouco mais adiante, neste captulo sob o ttulo Utilizando o Editor de
Recursos. Algumas diferenas bsicas devem, no entanto, serem observadas:
As telas complementares no apresentam campos do banco de dados na lista para serem
posicionados na tela. As variveis devem ser recebidas por meio do objeto gMask, exibido a
seguir, que pode ser inserido na tela e ter as suas propriedades designadas;
boto para inserir o objeto gMask
A propriedade Campo, ao ser atribuda ao objeto gMask, no vincula o campo selecionado a
nenhuma tabela do banco de dados, servindo apenas para captar as caractersticas desse
campo, como mscaras, validaes, etc.
Ao invs da lista de campos existente nas janelas para entrada de dados, apresentada uma
lista contendo dois objetos pr-programados, que podem ser disponibilizados na tela:
5.7.11.11.1 Boto continua
Se inserido na tela, este boto ir automaticamente executar todas as crticas e validaes das
variveis designadas para serem recebidas na tela e para as quais tenham sido designadas as
propriedades Validao, Mensagem, etc. A propriedade "Ao no clique", que deve ser designada e
programada pelo projetista, ser executada logo aps essas validaes.
5.7.11.11.2 Boto cancela
Se inserido na tela, este boto estar prprogramado para simplesmente descarregar o form.
no caso de mdulos do tipo Relatrio ou Etiqueta, mais alguns objetos estaro disponveis
para, opcionalmente, serem inseridos na tela, permitindo a criao de uma interface bastante
elaborada. Todos esses objetos j esto pr-programados segundo a sua funo:
5.7.11.11.3 Nmero de cpias
Campo do tipo rotativo para que o usurio informe o nmero de cpias a serem emitidas do
relatrio ou etiqueta.
232
O projetista poder disponibilizar este objeto para permitir ao usurio designar o formato do
arquivo a ser exportado, caso tenha escolhido destinar o relatrio para um arquivo. Diversos formatos
esto disponveis.
5.7.11.11.6 Arquivo de sada
Caso o usurio tenha selecionado destinar o relatrio para um arquivo, este objeto utilizado para
receber o nome do arquivo a ser gerado. J vem com interface completa constante de um objeto
gMask, com ttulo e boto para ativar o dilogo de arquivos.
5.7.11.11.7 Impressora padro
O projetista pode disponibilizar este objeto na tela para exibir qual a impressora configurada como
padro no Windows.
5.7.11.11.8 Critrio
Este objeto deve ser inserido na tela para exibir o critrio de seleo de registros (expresso
SQL), caso o boto filtra a seguir tenha tambm sido inserido.
5.7.11.11.9 Boto Filtra
Este boto, se inserido na tela, serve para o usurio ativar a interface de montagem da expresso
SQL que define a seleo de registros do relatrio ou etiqueta.
5.7.11.11.10 Configura impressora
Este boto, se inserido na tela, permite ao usurio ativar o dilogo padro do Windows para
configurar impressoras.
5.7.11.12Definindo mdulos para impressora fiscal
A compatibilidade dos aplicativos gerados pelo GAS com a Emisso de Cupom Fiscal e TEF Transferncia Eletrnica de Fundos Discada fora disponibilizada de forma a oferecer a maior
flexibilidade possvel ao projetista. O Captulo 12- O GAS Como Ferramenta de Desenvolvimento
retrata as mais diversas formas de se implementar a Emisso de Cupom Fiscal e TEF Discada s
aplicaes geradas.
5.7.11.13Mdulos de apoio Emisso de Cupom Fiscal e TEF
Os mdulos de apoio Emisso de Cupom Fiscal e TEF Discada tm por finalidade
233
Figura 5.30
Alm de inserir a opo acima referenciada, o projetista dever instalar o servio de backup no
ambiente do usurio final. Para isso, disponibilizado junto com a instalao do GAS o utilitrio
BACKUPSERVICE.EXE, que incorporado automaticamente ao kit de instalao do aplicativo final
gerado. Para instalar o servio de backup, instalao tal que dever ser efetuada no servidor de
arquivos, o projetista dever:
Primeiramente, copiar o arquivo BACKUPSERVICE.EXE para um diretrio do servidor. Como
a configurao desse servio ser efetuada a partir do aplicativo final gerado, utilizado nas
estaes de trabalho, ao menos um usurio dever ter permisso de escrita no diretrio do
servio.
Aps copiar o arquivo, via menu "Iniciar/Executar" do Windows, execute a linha de comando
<diretrio do servio>\backupservice.exe -i. Aps instalado o servio, ser exibida uma janela
234
Figura 5.31
5.7.11.14.1 Aba "Geral"
Arquivo de configuraes
Esse campo permite designar o caminho e nome do arquivo de configurao do backup. Ao
efetuar quaisquer alteraes nas opes de backup, essas so automaticamente gravadas nesse
arquivo e disponibilizadas para o servio de backup. aconselhvel que o endereo seja
discriminado nesse campo utilizando-se o padro UNC (\\servidor\c$\gasbackup\...) e no por drive
235
remoto, uma vez que aquele padro garante que todos os usurios acessem por um mesmo
endereo o diretrio do servio no servidor para que as alteraes das configuraes do backup
possam ser escritas.
Quando o diretrio do banco de dados for solicitado ao usurio do aplicativo final gerado, ao ser
este executado pela primeira vez, de extrema importncia para o funcionamento da rotina de
backup que a indicao desse diretrio seja feita no padro UNC (\\servidor\compartilhamento\...).
Esse caminho, gravado no arquivo .INI do aplicativo, passado no arquivo de configuraes do
backup para que o servio possa acessar o banco de dados.
Nome do usurio
Esse campo permite designar o nome do usurio responsvel pela realizao do backup. Alm
de ser utilizada nos comentrios do arquivo de backup a ser criado, essa informao tambm ser
utilizada na notificao a ser encaminhada para os endereos configurados na aba "Notificao".
Senha para compactao
Esse campo designar a senha, de at 20 caracteres, que ser utilizada na criao do backup do
banco de dados. Caso seja necessria a restaurao futura do backup, o usurio dever dever
informar a referida senha para descompactar o backup criado. Caso o campo em questo no seja
preenchido, no ser utilizada senha alguma na compactao.
Complemento
Esse campo define os comentrios que sero inseridos nos arquivos de backup para referncia
futura. O contedo desse campo ser exibido, por exemplo, logo ao abrir o arquivo de backup e no
email de notificao de execuo do backup.
Habilitar backup
Essa opo define se a rotina de backup ser ou no utilizada. Ao desmarcar essa opo,
nenhum dos backups agendados sero executados.
5.7.11.14.2 Aba "Armazenamento"
236
237
238
Para inserir um novo agendamento, o usurio dever clicar no boto de insero de agendamento
mostrado a seguir e definir o dia da semana e horrio em que o backup ser efetuado.
Caso opte ainda por excluir algum agendamento j cadastrado, o usurio dever utilizar o boto
de excluso mostrado a seguir.
5.8
Figura 5.58
5.8.1
239
Controles do editor
Para viabilizar sua operao, sempre que o editor invocado, so apresentados os seguintes
controles em sua interface:
Os botes acima relacionados servem respectivamente para criar um novo arquivo cone, abrir um
arquivo j existente, salvar o arquivo em definio e, por ltimo, apresente-se a opo Salvar como...
Ao criar um novo cone, o Editor de cones utilizar o forma padro de 32 x 32 pixels e 16 cores para
o cone. Conforme veremos mais adiante, a dimenso e a quantidade de cores podero ser alteradas
facilmente.
Na figura abaixo esto relacionados botes que permitem ao projetista recortar, copiar e colar
fragmentos do cone em definio. Alm desses recursos, o projetista poder desfazer e refazer
modificaes que porventura tenham sido efetuadas na imagem. O ltimo dos botes ali
relacionados, limpa toda a rea de edio do cone, permitindo ao projetista iniciar a definio
novamente.
Na figura acima, est representado primeiramente o controle que permite ao projetista alterar o
zoom do cone em definio. Logo a seguir, h um controle para que o projetista possa selecionar o
tamanho do cone em definio. O projetista poder ainda editar diversos cones em um mesmo
arquivo .ICO, recurso muito comum em editores de cone do mercado. Quando isso ocorre, o prprio
sistema operacional se encarregar de selecionar o tamanho do cone que melhor se adapte
apresentao. Caso apenas um tamanho de cone seja utilizado, o que mais usual, o cone ser
redimensionado pelo prprio sistema operacional para atender apresentao. Para alterar ou inserir
novos tamanhos de cones a um arquivo .ICO, basta o projetista clicar sobre o boto de
gerencimento de imagens (extensor) e efetuar as devidas trocas ou inseres. O mesmo
procedimento pode ser efetuado para definir a utilizao de cones de 16 ou 256 cores. A patela de
cores ajusta-se automaticamente ao nmero de cores definido para o cone. Finalmente, so
apresentadas as cores ativas no momento.
Logo abaixo da barra de ferramentas, o projetista poder visualizar informaes como o diretrio e
nome do arquivo corrente, coordenadas (horizontal e vertical) do ponto indicado pelo mouse, item
selecionado na paleta de ferramentas e escala de vermelho, verde e azul (RGB) da cor selecionada.
240
Figura 5.59
Para efeito de visualizao, o projetista poder omitir ou no a representao dos pixels do cone
em definio, utilizando para isso a opo "Usar pixels". Com base nos valores determinados nos
241
campos Largura e Altura, a opo "Agrupar" traa linhas de agrupamento de pixels, auxiliando sua
manipulao.
5.9
242
Figura 5.60
As trs divises do editor, separadas por uma linha em vermelho, representam reas de edio,
tendo, cada uma, a sua finalidade:
5.9.1
5.9.2
Designaes de variveis
A segunda rea de edio est reservada para as designaes (atribuio de valores iniciais) das
variveis criadas na primeira rea. Em se tratando do Ttulo do Projeto, o contedo aqui digitado ser
inserido dentro da funo MAIN( ) do mdulo principal da aplicao. No caso de Janela de Dados,
ser inserido na procedure FORM_LOAD( ) do mdulo selecionado.
5.9.3
243
5.9.4
5.9.4.1
Boto procura
Tem por finalidade ativar o dilogo de procura de texto no editor, representado na figura 5.61:
boto para ativar pesquisa de texto
Figura 5.61
Neste dilogo, podem ser marcadas as opes de "Palavra inteira" e "Considerar caixa",
respectivamente, para que a pesquisa considere apenas palavras completas e diferencie letras
maisculas das minsculas. Os botes existentes neste dilogo podem estar disponveis ou no,
pois atendem tambm as opes de substituio, explicada a seguir. Em particular, o boto
intitulado "Marca todos" marcar todas as ocorrncias do texto procurado nas reas do Editor de
Programas.
244
5.9.4.2
Boto procura/substitui
Tem por finalidade ativar o dilogo de procura/substituio de texto no editor, representado na
figura 5.62:
boto para ativar pesquisa/substituio de texto
Figura 5.62
A opo "Preservar caixa" permite que a definio de letras maisculas e minsculas das
ocorncias encontradas sejam preservadas no momento da substituio. J a moldura intitulada
"Substituir em" permitir ao projetista definir a regio na qual a substituio ser efetuada: apenas no
texto selecionado ou no texto inteiro.
5.9.4.3
Boto de sincronia
Tem por finalidade sincronizar o mdulo selecionado na rvore com o texto do editor. Se este
boto estiver ligado (em baixo), o texto apresentado na rea ativa do editor estar sempre incronizado
com o mdulo selecionado na rvore, ou seja, se o projetista selecionar um novo mdulo na rvore, o
texto da janela apresentar imediatamente o cdigo que foi digitado para aquele mdulo. Se este
boto estiver desligado (em cima), nenhum sincronismo ocorrer.
boto para ativar/desativar sincronia do mdulo
5.9.4.4
5.9.4.5
245
Figura 5.63
Utilizando o boto direito do mouse sobre a rea de edio do Editor de Programas, o projetista
poder ainda selecionar todo o texto exibido da rea de edio corrente (Designaes de variveis,
Declaraes de variveis ou funes externas e Funes e rotinas globais), remover todos os
marcadores do texto, inserir arquivos de diversos formatos, inserir quaisquer caracteresda tabela
ASCII ou editar as propriedades do editor, as quais veremos no tpico a seguir.
5.9.5
246
Figura 5.64
5.9.5.1
Ajuste de cores
Por meio dessa moldura, o projetista poder ajustar as cores de primeiro e segundo planos para
os itens Nmero de pginas, Strings, Texto, Nmeros, Funes API, Palavras escopo e Janela. O
estilo de fonte (normal, negrito, itlico, dentre outros) tambm poder ser estabelecido para cada um
desses itens por meio da lista"Estilo de fonte".
5.9.5.2
Endentao
Esta opo permite ao projetista definir o padro do nmero de caracteres para a endentao no
Editor de Programas. O valor padro 1.
5.9.5.3
Fonte
Esta opo permite ao projetista manipular o tipo de fonte para a edio no Editor de Programas.
Para alter-lo, basta pressionar o boto "Mudar..." e selecionar a melhor combinao de fonte e
tamanho que lhe convier. Outras opes tambm existentes so "Nmero de linhas" e "Margem
esquerda" que permitem respectivamente inserir o nmero de linhas na margem esquerda da janela
do editor e exibir ou no a margem esquerda da mesma janela.
5.10
247
Se o primeiro item da rvore (Soluo) estiver selecionado no momento e esta soluo possuir
mais de um projeto, o projetista poder executar a formatao da tela de soluo, que ir
acessar os aplicativos dos projetos inclusos na soluo, funcionando como um "gerente" dos
mdulos criados. Consulte o tpico Desenhando a tela da soluo para obter maiores detalhes.
Se o segundo nvel da rvore (Ttulo do Projeto) estiver selecionado no momento, o projetista
poder executar a formatao da barra de ferramentas da janela principal da aplicao. Uma
barra default apresentada como ponto de partida para as modificaes que se fizerem
necessrias. Consulte o tpico Desenhando a barra de ferramentas da aplicao para obter
maiores detalhes.
Se um mdulo do tipo "Janela de Dados" estiver selecionado na rvore do projeto, o Editor de
Recursos invocado para a formatao da janela de entrada de dados da tabela bsica
referente ao mdulo selecionado.
Se um mdulo do tipo Consulta, Relatrio, Etiqueta, Processo pr-definido ou Formulrio
avulso estiver selecionado na rvore do projeto, o Editor de Recursos invocado para a
formatao de uma tela complementar, utilizada para receber variveis de memria digitadas
pelo usurio da aplicao. O tpico de nome Criando uma tela complementar descrito
anteriormente neste captulo detalha este tipo de operao.
Nas explicaes a seguir, o termo tela ser utilizado para se referir aos dois casos (tela ou barra
de ferramentas), visto que no h diferenas no aspecto operacional de sua formatao. O
editor de recursos proporciona diversas facilidades, como, por exemplo, selecionar diversos
controles de uma s vez, drag and drop (arrasta e solta), designao de propriedades para os
objetos, insero de novos controles, etc.
248
Figura 5.65
As propriedades existentes nesta lista aparecem, por default, categorizadas segundo a sua
natureza. Se desejar, o projetista poder tambm apresentla em ordem alfabtica, utilizando o
boto que aparece a seguir:
O Captulo 13- Propriedades dos objetos de tela trata exclusivamente dessas propriedades.
5.10.1.1 Selecionando um controle na tela
Para selecionar um controle na tela em formatao, basta clicar sobre o controle desejado.
249
Quando um controle fica selecionado, oito pequenos objetos quadrados aparecem nos seus cantos e
bordas. Uma vez selecionado um controle, pode-se alterar a sua posio, designar suas
propriedades, retir-lo da tela, etc.
5.10.1.2 Selecionando mltiplos controles na tela
Mltiplos controles podem ser selecionados, de uma s vez, para serem trabalhados em conjunto.
Para selecionar diversos controles de uma s vez, proceda conforme se segue:
Clique sobre um dos controles, selecionando-o;
Pressione a tecla CTRL, retendo-a;
Clique sobre os demais controles que deseja selecionar.
Os mltiplos controles selecionados apresentam, cada um deles, um retngulo que os contorna.
Outra forma de selecionar mltiplos controles clicar sobre o boto especial para selecionar todos os
controles, explicado mais adiante neste tpico.
Existem controles disponibilizados na tela que so capazes de conter outros controles, sendo, por
isso, chamados de containers. Esses controles so o Tab, Frame e o Painel. S possvel selecionar
mltiplos controles que tenham um container comum, ou seja, que estejam posicionados dentro do
mesmo container.
Tambm possvel utilizar o mouse, mantendo pressionado o boto de seleo e arrastando o
mesmo sobre os objetos, de forma a criar um "retangulo de seleo" e em seguida liberando o boto.
Desta forma, os controles que estiverem nesta rea sero selecionados. Caso estes controles
estejam dentro de um frame ou outro objeto, utilize o mesmo procedimento com a tecla "Control"
pressionada, que a seleo abranger o que est dentro do objeto em questo apenas.
5.10.1.3 Retirando controles da tela
Controles que tenham sido inseridos na tela podem ser retirados da seguinte maneira:
Selecione um ou mais controles;
Pressione as teclas SHIFT+DEL ou clique sobre o boto a seguir, existente na barra de
ferramentas do GAS;
boto para apagar seleo
Confirme a retirada do boto, quando solicitado.
5.10.1.4 Alterando a posio de controles
Uma vez selecionados, os controles podem ser movidos para outros pontos da tela, utilizando-se
a operao conhecida como drag and drop (arrastar e soltar). Para alterar a posio de um ou mais
250
251
Figura 5.66
Nenhum controle inserido na tela como default. Para maiores detalhes sobre o desenho de
telas, consulte o tpico Desenhando telas para entrada de dados neste captulo.
5.10.1.7 Colocando um controle na tela
Diversos outros controles podem ser inseridos na tela que esteja sendo formatada. Dependendo
do tipo de mdulo selecionado na rvore, alguns deles podem no estar disponveis. A figura 5.67
apresenta os objetos que podem ser inseridos. A funo de cada um deles, seguindo a ordem da
esquerda para a direita, ser descrita a seguir.
Figura 5.67
Este objeto ou controle pode ser utilizado para conter outros controles organizados em pginas ou
abas. Por exemplo, os dados pessoais de um funcionrio podem ser digitados na primeira pgina e
os seus dados funcionais na segunda, etc.;
5.10.1.7.2 Label
Este controle tem por finalidade exibir mensagens nas janelas de entrada de dados, como, por
exemplo, uma frmula qualquer envolvendo um ou mais campos das tabelas relacionadas. Para
utilizar um label na apresentao de frmula, basta designar a sua propriedade Frmula.
5.10.1.7.3 Boto
Um boto , normalmente, inserido na tela para acionar uma rotina avulsa, que o projetista deseja
elaborar. Para utilizar este recurso, proceda da seguinte forma:
Insira o boto na tela ou na barra de ferramentas;
Utilizando a grade de propriedades, designe o seu aspecto, como figura, altura, largura, etc.;
Designe a sua propriedade "Ao no clique", elaborando uma funo para apresentar a janela
desejada com o auxlio do Editor de Programas. Para obter maiores detalhes, consulte o tpico
Estabelecendo uma ao para um boto neste captulo.
252
5.10.1.7.4 Imagem
Utilize este controle para inserir imagens na tela, como, por exemplo, um logotipo da aplicao ou
da empresa usuria.
5.10.1.7.5 Painel
Este tipo de controle pode ser utilizado para agrupar outros controles ou campos. Pode tambm
ser utilizado para conter uma figura para pano de fundo da tela.
5.10.1.7.6 Frame
Um frame pode ser utilizado para agrupar outros controles em uma determinada rea da tela.
Para este controle, pode-se tambm designar a propriedade Frmula, da mesma maneira que feita
para o label. O resultado da frmula aparecer no ttulo do frame.
5.10.1.7.7 Gmask
Este tipo de objeto um controle genrico de edio desenvolvido pela Gas Tecnologia, que
serve virtualmente para receber qualquer tipo de dado, como, por exemplo, campos numricos com
calculadora, campos data com calendrio, imagens, etc.
5.10.1.7.8 Grid
Este tipo de objeto um controle especial desenvolvido pela Gas Tecnologia para possibilitar a
digitao de registros em tabelas filhas (com relacionamento 1-N). As suas clulas possuem os
mesmos recursos do objeto gMask descrito anteriormente. S estar disponvel para utilizao se o
mdulo em definio for uma janela de dados que esteja subordinada a uma outra em relao 1-N.
5.10.1.7.9 Sub-relatrio
Este tipo de objeto utilizado somente na formatao de relatrios e tem por finalidade inserir um
sub-relatrio na rea de formatao.
5.10.1.7.10 Quebra
Este tipo de objeto tambm utilizado somente em relatrios e tem por finalidade inserir uma
quebra (agrupamento) no relatrio em formatao.
5.10.1.7.11 Linha
Este tipo de objeto utilizado, normalmente, para traar linhas na tela, separando objetos com
efeito puramente esttico.
5.10.1.7.12 Shape
A exemplo do objeto anteriormente descrito, o shape pode ser utilizado para inserir formas na tela
tambm com finalidades estticas ou por qualquer outra razo que o projetista julgar conveniente.
253
5.10.1.7.13 Texto 3D
Este tipo de objeto utilizado, normalmente, para inserir textos com efeitos especiais em 3D, com
sombra, contorno e um ngulo de impresso qualquer.
5.10.1.7.14 Picture
Este tipo de objeto pode ser utilizado para inserir imagens nas telas em formatao. Pode
tambm ser utilizado como container (rea onde outros objetos podem ser posicionados).
5.10.1.8 Designando propriedades para controles
A grade de propriedades tem por finalidade alterar o comportamento e aspecto dos controles que
so inseridos na tela durante a sua formatao. Quando um controle selecionado, o contedo
desta grade se altera para espelhar as propriedades possveis de serem designadas para ele. Se o
projetista selecionar mltiplos controles, esta grade apresentar apenas as propriedades que so
comuns aos controles selecionados, podendo uma propriedade ser designada para os controles
selecionados, de uma s vez. O Captulo 13- Propriedades dos objetos de tela trata exclusivamente
dessas propriedades.
5.10.1.9 Definindo um campo no-editvel
A definio de um campo no editvel (que o usurio nunca pode digitar) possvel
selecionando-se o controle tipo textbox correspondente ao campo e designando a sua propriedade
Editvel para o valor No.
5.10.1.10Definindo condio de visibilidade de campos
Por meio da propriedade Visvel pode-se estabelecer uma condio segundo a qual o campo ser
visvel ou no. Este recurso tem inmeras possibilidades e muito til, por exemplo, para esconder
um campo de um usurio ou grupo de usurios, utilizando-se na expresso da condio o nome do
usurio ou nome do grupo de usurios. Esta condio poder tambm envolver campos das tabelas
relacionadas para que um campo aparea ou no quando o contedo de um campo qualquer
apresentar um determinado valor.
5.10.1.11Controles de formatao
Na janela de formatao da tela existem, ainda, alguns controles que auxiliam o trabalho de
formatao. A figura 5.68 mostra esses controles, que sero explicados a seguir, pela ordem:
Figura 5.68
5.10.1.11.1 Gravao da tela
Deve ser acionada para gravar a tela aps a sua formatao. aconselhvel utilizar este boto,
quando a formatao da janela for muito demorada, evitando assim perda de trabalho.
254
Utilizada para restabelecer a ltima situao em que se encontrava a tela, na ltima vez em que
foi gravada.
5.10.1.11.3 Ordem de acesso aos controles
Este boto estabelece automaticamente, da esquerda para a direita e de cima para baixo, a
ordem com que os controles so acessados quando o usurio da aplicao pressionar a tecla TAB.
5.10.1.11.4 Criao de tela padro
Esta operao formata automaticamente uma tela padro. No caso de formatao de barra de
ferramentas, apresenta a barra que o GAS disponibiliza como default para a aplicao a ser gerada.
No caso de formatao de uma janela para entrada de dados, o GAS apresenta uma tela padro na
qual tenta posicionar todos os campos definidos para a tabela bsica, obedecendo ao que estiver
estabelecido nas opes da tela padro (vide tpico Definindo as Opes de Tela Padro, um pouco
mais adiante) que podem ser visualizadas e alteradas clicando-se com o boto direito do mouse no
boto apresentado a seguir ou selecionando-se "Opes/Opes da tela padro" por meio do menu.
importante observar que, ao construir a tela padro, o GAS tentar posicionar, a partir do
primeiro campo da tabela bsica, quantos campos forem possveis de serem posicionados. Com isto,
poder ocorrer que o projetista tenha que posicionar manualmente os campos finais, que o GAS no
tenha conseguido fixar. Uma vez que os campos estejam posicionados, o GAS insere um check
antes do nome do campo na janela de Ferramentas da tela para indicar que esse j est
posicionado.
Em se tratando de uma tela de arquivo subordinado (filho), que o projetista no deseje inserir em
grid, o projetista ter que retirar, manualmente, os campos correspondentes s chaves de
relacionamento com a tabela pai (normalmente os primeiros da tela), cujos valores no so digitados
pelo usurio, pois so preenchidos automaticamente por rotinas da aplicao.
5.10.1.11.5 Seleciona todos
Este boto tem por finalidade selecionar, de uma s vez, todos os controles posicionados na tela,
permitindo que sejam trabalhados em conjunto.
5.10.1.11.6 Apaga coluna do grid
Este controle s estar disponvel se o mdulo em definio for do tipo Tabela em grid, tendo por
finalide apagar a coluna (campo) que esteja selecionado no grid.
5.10.1.11.7 Insere coluna no grid - aps
Este controle tambm s estar disponvel se o mdulo em definio for do tipo Tabela em grid,
tendo por finalidade inserir uma nova coluna (campo) imediatamente aps a coluna selecionada.
255
Tambm este controle estar disponvel somente se o mdulo em definio for do tipo Tabela em
grid, tendo por finalidade inserir uma coluna (campo) imediatamente antes da coluna selecionada no
grid.
5.10.1.11.9 Alinha esquerda
Este controle s estar disponvel se mais de um controle estiver selecionado na tela, tendo por
finalidade alinhar, verticalmente, esquerda os controles selecionados.
5.10.1.11.10 Alinha direita
A exemplo do controle anterior, este tambm s estar disponvel se mais de um controle estiver
selecionado na tela, tendo por finalidade alinhar, verticalmente, direita os controles selecionados.
5.10.1.11.11 Alinha pelo topo
Tambm este controle, a exemplo dos dois controles anteriores, s estar disponvel se mais de
um controle estiver selecionado na tela, tendo por finalidade alinhar ao topo os controles
selecionados.
5.10.1.11.12 Travamento de controles
Este boto bloqueia os controles posicionados na tela, no permitindo que sejam movidos. Aps
terminar a formatao, o projetista poder desejar clicar sobre este boto para evitar que sejam
movimentados involuntariamente.
5.10.1.11.13 Categorizao de propriedades
Este boto tem por finalidade ligar ou desligar a apresentao da grade auxiliar de formatao de
telas e relatrios. O seu tamanho configurvel por meio do menu "Opes/Configuraes/Telas e
relatrios".
5.10.1.11.15 Recorta formulrio
Este boto tem por finalidade implementar efeito visual de recorte no formulrio em definio,
semelhante aos forms irregulares disponveis na aba Miscelnea (vide tpico Forms irregulares j
visto neste captulo). Caso o projetista tenha definido uma imagem para a propriedade Figura, o
recorte do formulrio contornar a imagem definida. O mesmo efeito ocorrer sobre o prprio
formulrio, caso a propriedade Figura no tenha sido definida.
256
5.11
Figura 5.69
257
258
alocados na tela.
5.12
259
Figura 5.70
Alm dos campos, esse mesmo banco de campos relaciona a lista de variveis, constantes e
funes (function e sub) disponveis para o objeto em definio. Esta janela constituda por uma
srie de abas nas quais esto disponveis no s variveis, constantes e funes (function e sub)
disponveis para o objeto ou campo em definio, mas tambm os campos das diversas tabelas que
esto, no momento, relacionadas situao. Sobre esta lista, convm observar que:
O nome do campo aparece nesta lista, seguido do alias (apelido), entre parnteses, definido
para o mesmo;
Para facilitar a visualizao, os campos da tabela bsica sempre so exibidos na cor preta. A
partir disso, o GAS utiliza duas outras cores, alternando-as, para diferenciar cada nova tabela
relacionada;
Nas abas de variveis, constantes e funes, para facilitar a identificao dos itens, o GAS
exibir na cor preta aqueles itens que sejam globais para todo o sistema, na cor vermelha
aqueles que sejam globais para o mdulo em questo e na cor azul aqueles que forem
privados.
Outras informaes so exibidas, como tipo, tamanho e mscara do campo, para que o
projetista possa saber com que tipo de informao est trabalhando no momento. A partir desta
janela, o projetista poder capturar informaes j definidas no projeto, devendo primeiro clicar
sobre o campo que receber a captura e depois aplicar um duplo-clique no item que deseja
capturar.
Para facilitar a manipulao das informaes, a janela do banco de campos apresenta botoeira
com diversos operadores, como mostrado na figura 5.71, inclusive transferncia de dados como
inteiro, quociente e resto da diviso inteira, concatenao de strings, etc.
Figura 5.71
260
5.13
Captulo
VI
Captulo 6 - Gerao de programas fontes
262
6.1
.BAS
Contm definies de escopo global dentro na aplicao. O Visual Basic dividir o que o GAS
gerar dentro deste mdulo em duas reas distintas: a rea de declaraes de variveis e a rea de
definies de funes e procedures (Sub).
6.2
.FRM
Contm definies de escopo do formulrio ou janela. Nestes arquivos, o GAS ir gerar as
definies dos objetos que fazem parte da interface grfica (GUI), bem como as declaraes de
variveis, funes e procedures.
6.3
.FRX
Arquivos binrios, associados aos arquivos .FRM, contendo definies de alguns tipos de objetos
que so colocados no formulrio.
6.4
.VBP
Um nico arquivo criado por projeto, contendo diversas especificaes, inerentes ao projeto
como um todo, utilizadas peloVisual Basic.
6.5
.DEF
Contm as especificaes da estrutura do banco de dados definido para o projeto. por
intermdio das especificaes contidas neste arquivo que a aplicao final cria o banco de dados, na
primeira vez que executado. Este arquivo tem formato proprietrio do GAS, no sendo utilizado
pelo VB e, sim, pela aplicao gerada. Sua presena tambm necessria para o funcionamento
dos utilitrios de adaptao de projetos e converso de arquivos DBF.
6.6
.SQL
De forma anloga ao arquivo de formato .DEF, o arquivo de formato .SQL um script contendo as
263
especificaes da estrutura do banco de dados SQL Server ou Oracle definido para o projeto. Ele
tambm necessrio para o funcionamento dos utilitrios de adaptao de bancos de dados SQL
Server ou Oracle.
6.7
.RC
Contm todas as imagens, bem como as mensagens utilizadas na aplicao gerada, necessrias
ao seu funcionamento. O GAS gera todas as mensagens da aplicao dentro deste arquivo. Isto
significa que, se for necessria uma traduo da aplicao para o francs (exceto ingls e espanhol),
por exemplo, horas e horas de trabalho sero economizadas com a traduo de um nico arquivo!
Este arquivo compilado em separado, por meio do utilitrio RC.EXE (resource compiler) do
Windows, criando um arquivo resource de extenso .RES, utilizado pela aplicao final.
O GAS utiliza um formato proprietrio de arquivo resource (.RES) que permite a vinculao de
quaisquer formatos de imagem e sem limite de tamanho. Alm disso, o executvel tende a diminuir
consideravelmente com o uso do arquivo resource, visto que as imagens no mais estaro
vinculadas diretamente no executvel. O arquivo resource deve acompanhar o aplicativo final gerado
para que este possa funcionar. Obedecendo estrutura do arquivo .RC, o projetista poder alterar
seu contedo, implementando novas referncias a imagens e strings, utilizando-se das funes
LoadGasPicture e LoadGasString para recuperar essas informaes. Para maiores detalhes sobre
a sintaxe dessas funes, consulte o Captulo 12- O GAS como Ferramenta de Desenvolvimento
442 deste manual.
6.8
6.9
264
Caso a opo seja "Sim" o modulo desmarcado para gerao neste momento e marcado como
preservado e no mais ser gerado pelo GAS, at que o usurio mude esta opo na definio do
modulo.
Caso a opo seja "No" o modulo desmarcado para gerao neste momento, mas no
marcado como preservado. Este recurso interessante em projetos grandes, ganhando velocidade
na gerao dos fontes, pois evita a gerao novamente. Isto recomendado apenas para ganho de
velocidade e em mdulos que no sofreram alterao.
Ao marcar a opo de "Gerar todos", todos os mdulos sero gerados, exceto os que esto
marcados como preservados.
Antes de iniciar a gerao dos programas fontes o GAS efetua uma verificao de consistncia
nas especificaes do projeto. Encontrando alguma inconsistncia ou falta de informaes
imprescindveis, o mesmo interrompe o processo de gerao e apresenta mensagem relativa
inconsistncia encontrada. O projetista dever voltar s definies do projeto e corrigir o problema.
Durante esta operao, se desejar rever a ltima mensagem de erro informada pelo GAS durante
a gerao, o projetista poder selecionar o menu: Arquivo/Utilitrios/Rever mensagem erro de
gerao.
265
Figura 6.1
Na interface para escolha dos mdulos definidos para gerao, o projetista tem um preview id
ntico rvore do projeto, facilitando assim a escolha ou no de mdulos para gerao.
O projetista poder ainda criar e gerenciar um nmero de verso para o projeto, por meio da
moldura intitulada Verso. So trs os campos que controlam a verso, os quais podemos
denominar:
Principal - Nmero principal da verso do projeto, podendo variar de 0 a 999.
Secundrio - Nmero secundrio da verso do projeto, podendo tambm variar de 0 a 999.
Reviso - Nmero de reviso do projeto, podendo variar de 0 a 99999.
Caso a opo "Auto-incrementar verso" esteja marcada, o prprio GAS se encarregar de
incrementar os nmeros de verso. Para maiores informaes, consulte o tpico Definindo os dados
genricos do projeto do Captulo 5 - Operando o GAS. Mesmo com essa opo marcada, caso lhe
convier, o projetista poder ainda intervir manualmente na definio desses nmeros.
6.9.1
266
utilizada para a gerao, alm de um comentrio descrito pelo prprio projetista. no momento da
gerao daquela verso;
Aps a gerao nos casos em que a opo manter histrico esteja ativada, o histrico da gerao
de fontes gravado na aba histrico da definio do projeto.
Captulo
VII
Captulo 7 - Gerao de executveis
268
7.1
Figura 7.1
As opes so:
7.1.1
Gerar
Nenhuma ao ser executada alm da gerao dos executveis, propriamente dita.
7.1.2
Gerar e executar
Aps gerar cada um dos executveis marcados, o GAS os executar em modo sncrono, ou seja,
ficar esperando o trmino da execuo para reassumir o controle.
7.1.3
7.1.4
Gerar e abrir no VB
O GAS proceder a gerao dos arquivos de resource e outros, exceto o executvel da aplicao.
Aps a gerao executado a chamada ao Visual Basic abrindo o projeto da aplicao dentro do
mesmo. Este recurso interessante para identificao de erros e para usurios mais experientes,
269
que queiram testar a aplicao para identificao de erros, antes da gerao em definitiva do
executvel.
Caso nas opes anteriores tenha sido mostrada tela de erro ao gerar o executvel, esta opo
pode ser interessante para descobrir em que linha est o problema. Aps executar a opo de "Gerar
e abrir no VB", j com o VB aberto no projeto em questo, basta utilizar as teclas "Control" + F5 para
que o VB faa uma teste na aplicao, e caso o erro seja na compilao, o titulo do erro exibido, e
o VB estar com o cursor exatamente na linha onde o erro ocorreu, facilitando assim a correo na
maioria dos casos.
Para utilizar esta opo, recomendamos a configurao do VB instalado na mquina, para que a
opo de erros esteja marcada como mostra a figura abaixo:
7.2
Executvel da aplicao
O Visual Basic ser invocado para compilar o projeto, criando um nico programa executvel,
cujo nome o mesmo do projeto com a extenso .EXE. Enquanto o Visual Basic estiver
trabalhando, o GAS ficar gerenciando se o mesmo j acabou a tarefa, assumindo novamente o
controle quando isto acontecer.
Em casos de soluo com mais de um projeto(Multi-Projetos), Cada projeto tem a sua gerao
dos fontes de forma independente, ou seja, cada um tem o seu prprio executvel, entretanto,
270
7.3
7.4
7.5
Adaptador de arquivos
Este programa (quando utilizado JET) ou script (quando utilizado SQL Server, MySQL, Firebird
ou Oracle) nem sempre estar disponvel para ser selecionado e compilado. Sempre que o GAS
detectar que ocorreram mudanas na estrutura do banco de dados durante a fase do projeto, o
mesmo criar automaticamente um projeto/script do utilitrio adaptador de arquivos (vide tpico O
Utilitrio Adaptador de Arquivos, neste manual), disponibilizando a sua compilao/gerao. Se
no houver necessidade, o GAS no criar este utilitrio nem habilitar a sua compilao/gerao.
7.6
7.7
271
Compilao manual
Aps o processo de compilao, o GAS gera tambm trs pequenos arquivos .BAT no diretrio
da aplicao:
7.7.1
FAZ _EXE.BAT
Para compilar o executvel da aplicao.
7.7.2
FAZ _HLP.BAT
Para compilar a ajuda on-line da aplicao.
7.7.3
FAZ _RES.BAT
Para compilar o arquivo resource da aplicao. Embora no faa uso de nenhum desses
arquivos, o GAS os cria para permitir ao projetista, se desejar ou por algum problema qualquer,
compilar manualmente o que for necessrio, apenas executando esses arquivos de lote a partir de
uma janela DOS. Para utilizar qualquer desses arquivos, acione um atalho para o DOS, posicione-se
no diretrio onde a aplicao foi gerada e digite o nome do arquivo desejado.
Captulo
VIII
Captulo 8 - Gerao da documentao
273
Figura 8.1
8.1
Editar gabaritos
O boto Gabarito tem por finalidade editar o arquivo-gabarito da documentao selecionada.
Normalmente, esses gabaritos j esto completos, no necessitando de modificaes; porm, se o
projetista desejar, poder edit-los para enriquec-los de detalhes, alterar formatao de textos,
inserir figuras, etc. Para este trabalho, o GAS tentar localizar o editor de textos MS-Word no
equipamento. Caso no consiga, apresentar dilogo solicitando ao projetista o nome do editor a ser
utilizado, armazenando esta informao para as utilizaes subseqentes.
8.1.1
274
referentes ajuda on-line, que so de formato HTM. Esses gabaritos so criados dentro da pasta
onde o GAS instalado e so em nmero de trs:
8.1.1.1
GABPRO.DOC
Contm a formatao do Projeto Fsico ou especificao do sistema criado.
8.1.1.2
GABMAN.DOC
Contm o texto utilizado para o Manual do Usurio da aplicao final.
8.1.1.3
8.1.2
Criar o documento
O boto Criar tem por finalidade iniciar a criao da documentao selecionada. O GAS cria a
documentao de uma aplicao gerada por intermdio de arquivos-gabaritos, previamente
estabelecidos com diretivas de substituio e condicionais, bem como comandos de repetio.
A abertura desses arquivos assim como todo o
utilizandose automao direta com o MS-Word.
8.1.3
Editar documento
O boto Documento, se estiver habilitado, tem por finalidade ativar o editor com o qual o
projetista poder dar a forma final ao documento, antes de imprim-lo ou de compil-lo, caso assim o
deseje. Deve-se lembrar, no entanto, que o GAS ignorar essas modificaes, se porventura for
275
solicitada uma nova criao da documentao, uma vez que ele parte sempre dos arquivos gabaritos
para executar esta tarefa.
8.1.4
Compilar
O boto Compila, se estiver habilitado, tem por finalidade compilar, de maneira totalmente
transparente, o arquivo de ajuda para aplicao, gerando um arquivo de extenso .CHM. Para esta
tarefa, o GAS utiliza o utilitrio HTML Help Workshop do Windows. Este boto estar desabilitado
caso a ajuda on-line ainda no estiver sido gerada.
8.1.5
Visualizar
O boto Visualiza, se estiver habilitado, fato que somente ocorrer mediante existncia de um
arquivo .CHM no diretrio do projeto, tem por finalidade ativar o utilitrio HTML Help Workshop
Executable do Windows para mostrar a forma final da ajuda on-line, assim como aparecer para o
usurio final. O boto Cancela serve para fechar a janela de documentao e cancelar as operaes.
8.1.6
8.1.6.1
Captura de telas
Algumas telas pertencentes interface fixa da aplicao gerada j foram previamente capturadas
e inseridas no texto dos arquivos-gabaritos. Para estabelecer um padro, resolveu-se capturar essas
imagens utilizando-se uma configurao do Windows, a qual recomendamos seu uso na criao da
documentao. Adotando-a, as novas telas capturadas pelo GAS sero inseridas na documentao
com tamanho e cores padronizadas com aquelas, bem como os tamanhos dos arquivos gerados
estaro otimizados.
8.1.6.2
Resoluo
Foi utilizada a resoluo de 800 por 600 pixels para a tela. As imagens so capturadas pelo GAS
a partir da sua apresentao em vdeo e, portanto, telas maiores do que o formulrio principal (MDI)
do GAS sero capturadas parcialmente. Com esta configurao, consegue-se imagens integrais das
telas desenhadas para a aplicao. Se necessrio, o projetista poder aumentar ainda mais a
resoluo para que as mesmas sejam capturadas integralmente. Esta configurao pode ser
efetuada na mesma aba utilizada para configurar a quantidade de cores, indicada no item anterior.
8.1.6.3
Aparncia
Utilizou-se o esquema de cores denominado "Padro do Windows". Esta configurao definida
na aba denominada "Aparncia", a qual est localizada na mesma interface dos itens anteriores, por
intermdio da lista intitulada "Esquema". Esta configurao assegura que as novas telas capturadas
fiquem da mesma cor das que foram anteriormente capturadas da interface fixa, mantendo um
mesmo padro para a documentao gerada.
276
8.1.6.4
Momento certo
aconselhvel deixar a criao da documentao para o momento em que o projeto estiver
realmente completo, com todas as informaes feitas em sua forma definitiva, incluindo suas telas
nas posies mais apropriadas, telas as quais que sero capturadas automaticamente pelo GAS e
inseridas na documentao. Em se tratando da ajuda on-line, aps a sua gerao, deve-se clicar
sobre o boto Compila para executar a compilao do arquivo de ajuda, de modo que a aplicao
possa assumir a ltima verso deste arquivo.
8.1.7
A documentao gerada
As seguintes peas de documentao podem ser criadas pelo GAS:
8.1.7.1
Projeto fsico
No projeto fsico emitido pelo GAS, a partir do arquivo-gabarito GABPRO.DOC , aparecem todas
as especificaes feitas pelo projetista para a aplicao. As diretivas de substituio, os indicativos e
os comandos e condies existentes no texto do gabarito asseguram que somente texto pertinente a
um projeto especfico seja disponibilizado no arquivo resultante. Opcionalmente, o projetista poder
fazer uso dos arquivos-gabaritos GABMANE.DOC , GABPROE.DOC (verso em espanhol),
GABMANI.DOC e GABPROI.DOC (verso em ingls). As janelas de digitao de dados definidas na
aplicao so automaticamente montadas e capturadas pelo GAS, que cria imagens no formato
BMP para serem inseridas na documentao em um local apropriado.
Sempre que gerar esta documentao, imprescindvel que o projetista siga os seguintes
passos:
Clique sobre o boto Documento para ativar o MS-Word e carregar o Projeto Fsico que
acabou de ser criado;
Clique sobre qualquer parte do ndice do documento para selecion-lo;
Pressione F9 para acionar o dilogo Atualizar Campo daquele editor, atualizando o ndice
inteiro;
Grave o documento.
A razo disto que o gabarito do Projeto Fsico trabalha com comandos @REPETE para inserir,
no documento final, as tabelas, campos, ndices e outros objetos que existam na definio do projeto
e a execuo dos procedimentos acima assegura que novos objetos que, porventura, tenham sido
inseridos no projeto, passem a constar do ndice do documento.
8.1.7.2
277
inseridas no manual.
Sempre que gerar esta documentao, pelas mesmas razes explicadas para o Projeto Fsico, o
projetista dever seguir os mesmos passos descritos para aquela documentao.
8.1.7.3
8.1.7.4
Diretivas de substituio
As diretivas para a substituio de textos e imagens (BMP) em arquivos-gabaritos utilizadas pelo
GAS funcionam como se fossem variveis cujo valor depende do que foi definido no projeto. Os
nomes dessas diretivas foram estabelecidas com palavras de fcil associao com o seu contedo
(mnemnicos) e aparecem sempre com letras maisculas entre colchetes [ ].
Dentro dos arquivos-gabaritos, quando o projetista desejar inserir uma informao proveniente do
projeto, dever utilizar uma diretiva entre colchetes. Uma diretiva de substituio trocada
incondicionalmente pelo seu texto ou imagem correspondente, sempre que encontrada dentro do
arquivo-gabarito, exatamente na mesma posio, mantendo seus atributos de texto e formatao de
pargrafo. No caso de substituio de texto, se o colchete de abertura estiver precedido do caractere
"^", a substituio ser efetuada em maisculas. Por exemplo:
278
[TITULO_PROJETO] ser substitudo por Controle de estoques (se o projeto o tiver definido)
^[TITULO_PROJETO] ser substitudo por CONTROLE DE ESTOQUES.
8.1.7.4.1 Para substituio textual
A lista a seguir contm a relao, em ordem alfabtica, das diretivas de substituio (ttulo e
explanaes) de textos existentes nos arquivosgabaritos.
8.1.7.4.1.1 Analista
8.1.7.4.1.10 COND_INCLUSAO
Apelido de campo.
8.1.7.4.1.18 CP_CAMPO_ESTRANGEIRO
279
280
8.1.7.4.1.21 CP_MASCARA
Mscara do campo
8.1.7.4.1.22 CP_MSG_AJUDA
Seqncia do campo
8.1.7.4.1.25 CP_TABELA_ESTRANGEIRA
Tamanho de campo
8.1.7.4.1.27 CP_TIPO
Tipo de campo
8.1.7.4.1.28 DATA
Data de hoje
8.1.7.4.1.29 DESCRICAO
Descrio do projeto
8.1.7.4.1.30 DESC_BD
Descrio de tabela
8.1.7.4.1.32 FORM_DIRETA
Chaves do ndice
8.1.7.4.1.36 IND_NOME
281
282
Ttulo do relatrio
8.1.7.4.1.54 TABELA_AUXILIAR
Nome da tabela
8.1.7.4.1.60 TITULO_JANELA
Ttulo do projeto
8.1.7.4.1.62 TIT_LANCAMENTO
283
284
8.1.7.5.1 BMP_BAJUDA
Boto de cancelar
8.1.7.5.5 BMP_BCONFGRAF
8.1.7.5.8 BMP_BEXCLUI
Boto de excluso
8.1.7.5.9 BMP_BFILTRO
Boto de gravar
8.1.7.5.14 BMP_BIMPRE
Boto de impresso
8.1.7.5.15 BMP_BINCLUI
Boto de incluso
8.1.7.5.16 BMP_BINFODB
285
286
8.1.7.5.19 BMP_BREPARA
Indicativos ou flags
Os indicativos ou flags so utilizados dentro do texto de um arquivo-gabarito para estabelecer
testes executados pelo GAS a fim de comparar o que est contido no gabarito e o que foi
disponibilizado pelo projetista nas especificaes do projeto. Isto permite ao GAS determinar o que
deve ser retirado do arquivo-gabarito e levado para o arquivo de documentao definitivo. Esses
indicativos, diferentemente das Diretivas de Substituio, no so exibidos entre colchetes (por isso,
no podem conter espaos) e so utilizadas sempre aps os Comandos e Condies (@SE... e
@REPETE...).
Os indicativos ou flags podem ser concatenados com operadores E, OU e ! (not) com ou sem
parnteses. Alguns exemplos de utilizao de indicativos:
@SE !TEM_VALOR_INICIAL
287
288
8.1.7.6.11 CP_SEQUENCIAL
Se o campo seqencial
8.1.7.6.12 CRITICAR
Se o ndice primrio
8.1.7.6.17 IND_UNICO
Se o ndice nico
8.1.7.6.18 INT_1-N
8.1.7.6.23 QDE_CAMPOS_ALVO
289
290
8.1.7.6.34 QDE_TAB_AUXILIAR
8.1.7.6.45 TEM_BEXCLUI
291
292
8.1.7.6.56 TEM_BPROCURA
8.1.7.6.67 TEM_COND_EXC_REG
293
294
8.1.7.6.78 TEM_GRID
8.1.7.6.89 TEM_MEXCLUI
295
296
8.1.7.6.100 TEM_MREPARA
297
8.1.7.6.111 TEM_SCRNAV
Indicativos do projetista
Se desejar, o projetista poder criar os seus prprios indicativos para inserir texto nos gabaritos,
exatamente da mesma forma como feito para os indicativos desta tabela, obervando que no
podem conter espaos. Quando o GAS encontrar um indicativo que no seja seu (no esteja na
tabela) assumir que um indicativo criado pelo projetista. Quando isto acontecer, o GAS far uma
pausa, mostrar o indicativo e perguntar ao projetista se o texto correspondente deve ou no ser
inserido na documentao resultante.
8.1.7.8
Comandos e condies
A fim de permitir ao GAS decidir o que dever ser disponibilizado na documentao a ser criada,
existe dentro dos arquivos-gabaritos alguns comandos e condies para insero de texto. Os
comandos e condies sempre so iniciados pelo caractere @ (arroba), no podendo conter espao
entre este caractere e o comando que segue. As condies para a colocao de texto podem ser
298
uma condio com uma nica possibilidade. O indicativo avaliado pelo GAS de acordo com o
que o projetista tenha colocado nas especificaes da aplicao. Sua frmula genrica :
@SE indicativo
Texto...
Texto...
...
@FIM SE [indicativo]
Observe o exemplo:
@SE TEM_TELAINICIAL
Tela de apresentao: [TELA_INICIAL]
@FIM SE TEM_TELAINICIAL
Se o GAS verificar que o indicativo TEM_TELA_INICIAL verdade (se o projetista optou por gerar
uma tela inicial para a aplicao), disponibilizar a figura correspondente na documentao. Observe
que a abertura de um bloco SE implica no seu fechamento com a instruo @FIM SE
correspondente, sem o qual ocorrer um erro. A insero do indicativo na frente do fechamento do
bloco opcional, servindo apenas para facilitar o controle dos blocos inseridos no gabarito.
8.1.7.8.2 SE Linear
uma condio com duas possibilidades. O indicativo avaliado pelo GAS de acordo com o que
o projetista tenha disponibilizado nas especificaes da aplicao. Sua frmula genrica :
@SE[indicativo|TEXTO1|TEXTO2]
Se "indicativo" for verdade, o GAS inserir na documentao gerada o texto correspondente a
TEXTO1; caso contrrio, inserir o texto correspondente a TEXTO2. No exemplo a seguir,
Segurana: @SE[TEM_SENHA|Com|Sem] senhas Se o GAS verificar que o indicativo TEM_SENHA
verdade (se o projetista disponibilizou o plano de senhas na rvore), inserir o texto "Com" na
frente de " senhas" na documentao gerada; seno, inserir a palavra "Sem ".
8.1.7.8.3 REPETE
Define uma condio de repetio cujo nmero de vezes est em indicativo, que avaliado pelo
GAS de acordo com o que o projetista definiu nas especificaes da aplicao. Sua frmula genrica
299
:
@REPETE indicativo
Texto...
Texto...
...
@FIM REPETE [indicativo]
No exemplo a seguir o GAS ir verificar quanto vale QDE_CAMPOS_ALVO e repetir as
informaes existentes, entre o @REPETE... e o @FIM REPETE..., o nmero correspondente de vezes.
@REPETE QDE_CAMPOS_ALVO
@SE TEM_VALOR_LANC
Campo: [CP_ALVO_LANC]
Com a expresso: [VALOR_LANC]
@FIM SE TEM_VALOR_LANC
@FIM REPETE QDE_CAMPOS_ALVO
Captulo
IX
Captulo 9 - Gerao do Instalador e Adaptador de Banco
301
9.1
158
9.2
Figura 9.1
302
Figura 9.2
Basta informar diretamente no campo ou utilizar o boto com reticncias para capturar o nome do
arquivo MDB a adaptar e clicar sobre o boto Ok. Durante o processo de adaptao, quando este
utilitrio adaptador encontrar alguma incoerncia entre as estruturas antiga e nova, apresentar
dilogos solicitando informaes do usurio, como nos exemplos das figura 9.3 e 9.4:
303
Figura 9.3
Neste exemplo, o adaptador encontrou uma tabela (ENCOMENDAS) que no existia na estrutura
anterior e est solicitando ao operador para eleger uma das tabelas da lista como base para a nova
tabela. Se desejar, o operador poder cancelar ou ignorar esta operao. Poder tambm escolher
uma tabela e prosseguir com a operao.
Figura 9.4
Neste outro exemplo, o adaptador solicita para entrar com a correspondncia de campos anterior
e atual de uma das tabelas do banco de dados. Quando o usurio clica em um dos campos, um
boto marcado com reticncias aparece para ser clicado e apresentar os campos disponveis em
uma lista.
O projetista poder ainda adicionar valores pr-fixados no momento da adaptao dos bancos de
dados, bastando para isso preencher o novo campo com o contedo desejado, sendo este replicado
para todos os registros da tabela. Aps o trmino da converso, o adaptador avisa que renomeou o
arquivo antigo para a extenso .ANT (anterior).
9.3
304
conforme segue: carregue, no GAS, o projeto da aplicao que ir manipular os dados convertidos;
Selecione Arquivo/Utilitrios/Gerar conversor de arquivos DBF... no menu, procedimento que
permitir a visualizao de tela semelhante da figura 9.5:
Figura 9.5
305
todos os campos do tipo numrico dentro dos arquivos DBF sero transformados para preciso
dupla no arquivo MDB. Isto se deve ao fato de que, nas linguagens XBase que manipulam arquivos
DBF, o tipo de dado numrico alcanava sempre 19 dgitos numricos, enquanto que, no mbito do
Visual Basic, os campos numricos possuem diversos tipos dependendo da magnitude de seus
valores;
campos do tipo memo nos arquivos DBF que eram acentuados (dentro das aplicaes criadas
pelo GASPro DOS) tero a acentuao automaticamente convertida para o padro Windows;
erros de converso que porventura ocorram durante a execuo so gravados em um arquivo
.LOG e, ao final da converso, se existir algo a ser exibido, o utilitrio conversor oferecer a opo de
visualizar este arquivo por intermdio do programa WordPad do Windows;
A operao deste utilitrio bastante simples, no requerendo muitos detalhes uma vez que o
GAS j disponibilizou, em seus programas, todos os detalhes informados pelo projetista. Quando
executado, o utilitrio apresenta uma tela semelhante da figura 9.6:
Figura 9.6
Captulo
X
Captulo 10 - Um exemplo prtico
10
307
10.1
308
recebidas sero creditadas no estoque (tabela Produtos em Estoque) e o valor do item ser
operado com a quantidade recebida e acumulado no valor total da NF (tabela Notas Fiscais).
Com as operaes acima, ilustraremos a criao de processamentos de campos em tabelas
estrangeiras, a partir de digitao de informaes em outras tabelas. Aps a digitao de uma NF,
um registro de pagamento criado na tabela de Contas a Pagar, no valor total da NF digitada.
Tambm, na tabela de Movimentao de produtos, criado (caso no exista ainda) um registro para
cada item digitado e os seus campos so atualizados com as quantidades recebidas. Durante a
digitao em Sada de mercadorias, os campos desta tabela so tambm atualizados, de modo que
possam espelhar a quantidade de entradas e sadas de cada item de produto.
Com isto, estaremos conhecendo a definio de lanamentos em tabelas estrangeiras a partir de
digitao de informaes em outras tabelas, inclusive com o estabelecimento de condies para que
lanamentos sejam criados (neste caso, sob a condio do registro no existir na tabela).
10.2
Definio do projeto
Conhecemos alguns aspectos gerais do funcionamento da aplicao exemplo que iremos criar.
Vamos, agora, iniciar a sua criao. Durante este processo, vamos nos ater somente ao aspecto da
criao propriamente dita para que as explicaes no se extendam em demasia. Iremos comentar
as aes somente quando for estritamente necessrio. bom lembrar que, enquanto segue estas
instrues, o projetista sempre poder pressionar a tecla F1 para obter ajuda detalhada para o
contexto ou, ainda, para consultar os diversos tpicos da ajuda on-line do GAS.
Acione o GAS, aplicando um duplo-clique sobre o seu cone na pasta onde tenha sido instalado.
Ao abr-lo, ser apresentada a tela "Projetos do GAS" a partir da qual deve ser selecionada a opo
Novo projeto localizada na aba denominada Novo.
A partir do dilogo padro do Windows, informe o nome de arquivo C:\ESTOQUE\EST. Clique em
Salvar e em seguida confirme a criao do diretrio que, por se tratar de um novo projeto, poder
no existir em seu computador. Sempre que o GAS trabalha com um novo projeto, ele cria um banco
de dados com o nome informado e com a extenso .GAS para que sejam armazenadas as definies
que sero digitadas para este novo projeto. Aps a sua criao, ele carrega diversas definies
default e as apresenta na rvore ou modelador do projeto. A partir deste ponto, o trabalho de
modelagem pode ser iniciado. A figura 10.1 exibe a rvore default para o novo projeto com o qual
iremos trabalhar.
309
Figura 10.1
Clique com o boto direito do mouse sobre o primeiro mdulo da rvore (SEM NOME DEFINIDO)
e selecione a opo "Define o mdulo selecionado". A janela de definio do projeto apresentada.
310
Figura 10.2
10.2.2 Estrutura do BD
A seguir, clique na aba intitulada Estrutura. Aqui, vamos definir os aspectos mais importantes da
aplicao: o banco de dados e sua estrutura. A tela da figura 10.3 apresentada. Os botes
existentes nesta janela tm, pela ordem, a finalidade de:
gravar as informaes digitadas;
cancelar as informaes digitadas;
adicionar item na lista, dependendo da que estiver selecionada;
apagar um item da lista, dependendo da que estiver selecionada.
311
Figura 10.3
Vamos comear definindo um banco de dados de nome ESTOQUE. Em seguida vamos definir a
sua estrutura inserindo primeiramente as tabelas e, em cada uma delas, os campos que a comporo.
Convm observar que, a partir da definio das tabelas, no existe uma regra exata para
executarmos esta tarefa. Por exemplo, podemos adicionar primeiramente todas as tabelas e depois,
selecionando uma a uma, definir os seus campos, ndices e integridades. Podemos tambm, a cada
tabela inserida, definir esses atributos imediatamente. Para facilitar as explicaes, neste exemplo,
vamos inserir primeiramente todas as tabelas e depois trabalharemos com os seus atributos.
10.2.4 Tabelas
Clique sobre a lista tabelas e sobre o boto de adicionar para inserir as informaes constantes da
tabela a seguir:
Durante esta operao, observe os seguintes detalhes:
aps a insero de uma tabela, o boto de gravao deve ser clicado para salvar as
2007 GAS Tecnologia
312
informaes;
a cada nova tabela inserida o boto de adicionar dever ser novamente acionado;
para efeito do nosso exemplo, a informao "Descrio da tabela" no vital, sendo, no entanto,
interessante para verificar onde e como esta informao ser utilizada quando o GAS criar a
documentao da aplicao;
o apelido inserido automaticamente pelo GAS, no havendo necessidade de ser modificado.
Ttulo
Descrio da tabela
Fornecedores
Indexadores
Notas Fiscais
Dados da NF de recebimento de
mercadorias
Itens da NF
Contas a Pagar
Movimentao de
produtos
Produtos em
estoque
Sadas de
mercadorias
mercadorias do estoque
Parmetros do
313
sistema (*)
(*) A tabela Parmetros do sistema a nica que dever ser marcada como sendo do tipo
parmetro, na respectiva caixa de verificao que aparece no canto inferior esquerdo da tela em
questo.
10.2.4.1 Campos da tabela
Agora que todas as tabelas esto criadas, selecione cada uma delas e defina os seus campos. Os
quadros a seguir indicam as informaes que devem ser digitadas para os campos de cada tabela.
As regras para a entrada dessas informaes so:
selecione a tabela na lista Tabelas;
clique sobre a lista Campos;
clique no boto de adicionar;
digite as informaes dos campos;
clique sobre o boto de gravao para efetivar as informaes.
Observe que, quando um campo j tiver sido definido anteriormente em uma tabela, basta
selecion-lo na combobox destinada a receber o nome do campo.
10.2.4.1.1 Fornecedores
Atributo
Informe ou selecione
Nome
Cdigo do fornecedor
Tipo
Numrico
Apelido
Codigo_do_fornecedor
Tamanho
314
Mscara
9999
Atributo
informe ou selecione
Nome
Nome do fornecedor
Tipo
Caractere
Apelido
Nome_do_fornecedor
Tamanho
40
Mscara
@!
Atributo
informe ou selecione
Nome
Contato
Tipo
Caracter
Apelido
Contato
Tamanho
30
Mscara
@!@A
Atributo
informe ou selecione
Nome
Telefone do fornecedor
Tipo
Fone
Apelido
Telefone_do_fornecedor
Tamanho
16
Mscara
999-99-#999-9999
Atributo
315
informe ou selecione
Nome
Ramal
Tipo
Caracter
Apelido
Ramal
Tamanho
Mscara
@!
Atributo
informe ou selecione
Nome
Fax
Tipo
Fone
Apelido
Fax
Tamanho
16
Mscara
999-99-#999-9999
10.2.4.1.2 Indexadores
316
Atributo
informe ou selecione
Nome
Data
Tipo
Data
Apelido
Data
Mscara
999-99-#999-9999
Atributo
informe ou selecione
Nome
Valor
Tipo
Numrico
Apelido
Valor
Tamanho
12
Decimais
Mscara
999.999.999,99
Atributo
informe ou selecione
Nome
Nome da moeda
Tipo
Caractere
Apelido
Nome_da_moeda
Tamanho
10
Mscara
@!@A
Atributo
317
informe ou selecione
Nome
Sigla da moeda
Tipo
Caractere
Apelido
Sigla_da_moeda
Tamanho
Mscara
@!
Atributo
informe ou selecione
Nome
Cdigo
Tipo
Numrico
Apelido
Codigo
Tamanho
Mscara
999
318
Atributo
informe ou selecione
Nome
Descrio do produto
Tipo
Caractere
Apelido
Descricao_do_produto
Tamanho
30
Mscara
@!
Atributo
informe ou selecione
Nome
Unidade
Tipo
Lista interna
Lista
Un|Cx|Lt|Mt
Apelido
Unidade
Observe que o campo acima de um tipo especial, onde as opes digitadas em Lista,
separadas pelo caractere "|", podero ser selecionadas pelo usurio final, por meio de um objeto
denominado combobox, que uma lista que aparece sempre fechada e que pode ser aberta para
seleo. em estoque", que conter os dados cadastrais dos produtos, com quantidades, preos, etc.
Atributo
informe ou selecione
Nome
Referncia tcnica
Tipo
Memo
Apelido
Referencia_tecnica
319
Este campo do tipo textual, apresentado para digitao em uma rea com mltiplas linhas
(textbox multiline).
Atributo
informe ou selecione
Nome
Quantidade em estoque
Tipo
Numrico
Apelido
Quantidade_em_estoque
Tamanho
Mscara
999.999
Atributo
informe ou selecione
Nome
Quantidade em estoque
Tipo
Rotativo
Apelido
Quantidade_minima
O campo acima tambm de um tipo especial. Um campo do tipo rotativo sempre um valor do
tipo inteiro e, na tela, aparece com dois objetos associados: uma caixa de texto para digitao e uma
barra de rolagem, onde o usurio pode clicar para incrementar ou decrementar o valor numrico
existente no campo. Este campo do nosso exemplo conter a quantidade mnima em estoque a ser
considerada para efetuar pedidos ao fornecedor.
Atributo
Nome
informe ou selecione
Preo de custo
320
Tipo
Numrico
Apelido
Preco_de_custo
Tamanho
12
Decimais
Mscara
999.999.999,99
Atributo
informe ou selecione
Nome
Preo indexado
Tipo
Numrico
Apelido
Preco_indexado
Tamanho
10
Decimais
Mscara
9.999.999,99
Atributo
informe ou selecione
Nome
Lucro bruto
Tipo
Numrico
Apelido
Lucro_bruto
Tamanho
Decimais
Mscara
999,99
Atributo
321
informe ou selecione
Nome
Perecvel
Tipo
Lgico
Apelido
Perecivel
O campo acima tambm de um tipo especial. Ser apresentado em uma check box, na qual o
usurio marcar ou desmarcar a opo.
Atributo
Informe ou selecione
Nome
Localizao do produto
Tipo
Optativo
Lista
Loja|Depsito|Fornecedor
Apelido
Localizacao_do_produto
O campo acima tambm tem tipo especial, cujas informaes inseridas em Lista, separadas pelo
caractere "|", aparecero dentro de objetos tipo botes de rdio, circunscritas dentro de uma moldura
(frame) com o ttulo do campo.
Atributo
Informe ou selecione
Nome
Foto do produto
Tipo
Multimdia
322
Apelido
Foto_do_produto
Campos do tipo multimdia, como o definido acima, aparecem com dois objetos associados
quando inseridos na tela: um para apresentar a multimdia e outro (boto) para permitir a carga da
multimdia. Neste nosso exemplo, inserimos este tipo de campo para exibir a figura do produto em
estoque.
Atributo
Informe ou selecione
Nome
Tipo
Data
Apelido
Data_ultima_atualizacao
Mscara
99/99/9999
O campo acima receber um processamento com a ltima data em que foi atualizado (entradas e
sadas) e ser, por isso, definido como "No editvel", a exemplo do campo "Quantidade em
estoque" j definido nesta tabela. Lembre-se sempre que campos no editveis so definidos
normalmente, como qualquer outro tipo de campo, sendo que, quando o inserirmos na tela,
designaremos a propriedade Editvel para o valor No, como veremos mais adiante.
10.2.4.1.5 Contas a pagar
Selecione a tabela "Contas a pagar", clique na lista de campos e, depois, no boto de adicionar.
Informe os campos da tabela "Contas a pagar". Esta tabela receber lanamentos de contas a pagar,
que, neste exemplo, sero representadas pelos valores totais dos itens digitados da NF.
Atributo
informe ou selecione
Nome
Nmero do lanamento
Tipo
Numrico
Apelido
Numero_da_lancamento
Tamanho
Mscara
999.999
Sequncia
323
O primeiro campo desta tabela tem duas particularidades que merecem meno:
a primeira delas que vamos definir este campo para ser incrementado automaticamente de 1
em 1. Por isso, definimos o valor 1 para Seqncia;
a segunda que este campo ser definido como "No editvel", conforme j vimos em dois
campos da tabela "Produtos em estoque", para que o usurio no tenha acesso.
Atributo
informe ou selecione
Nome
Nmero da NF
Tipo
Numrico
Apelido
Numero_da_nf
Tamanho
Mscara
999
Atributo
Informe ou selecione
Nome
Data
Tipo
Data
Apelido
Data
Mscara
99/99/9999
324
Atributo
Informe ou selecione
Nome
Valor
Tipo
Numrico
Apelido
Valor
Tamanho
12
Decimais
Mscara
999.999.999,99
Selecione a tabela "Notas Fiscais", clique na lista de campos e, depois, no boto de adicionar.
Informe os campos da tabela "Notas Fiscais". Esta tabela conter os dados gerais das NF de
fornecedores para a entrada de mercadorias em estoque. Neste sistema, estar fazendo um
relacionamento 1-N (pai-filho) com a tabela que iremos definir daqui a pouco: "Itens da NF". As
tabelas so definidas normalmente, como qualquer uma outra e o relacionamento designado em
uma etapa mais adiante.
Atributo
Informe ou selecione
Nome
Nmero da NF
Tipo
Numrico
Apelido
Numero_da_nf
Tamanho
Mscara
999
Atributo
Informe ou selecione
Nome
Data
Tipo
Data
Apelido
Data
Mscara
99/99/9999
325
Vamos abrir um parnteses para efetuarmos alguns comentrios sobre este campo, o que se
aplica tambm a outros campos existentes nas diversas tabelas desta aplicao (Cdigo do
fornecedor, Nmero da NF, etc). Observe que este campo existe em cinco tabelas:
Indexadores
Contas a pagar
Notas Fiscais
Movimentao de produtos, a ser definida mais adiante
Sadas de mercadorias, tambm a ser definida
Na verdade eles tm correspondncias diretas, pois as datas que nelas existem, na digitao da
"Nota Fiscal" e das "Sadas de mercadorias", so verificadas na tabela de Indexadores e, no trmino
da digitao da NF, esta data ser inserida nas tabelas de "Contas a pagar" e "Movimentao de
produtos". Por esta razo, estes campos so tratados no dicionrio de dados do GAS como sendo o
mesmo campo, ou seja, se voc alterar qualquer um de seus atributos, como, por exemplo, o seu
nome, o GAS ir tambm alter-lo, automaticamente nas demais tabelas j definidas na aplicao,
tanto na estrutura da tabela quanto em validaes e rotinas escritas manualmente; enfim, em
qualquer ponto da definio onde aparea.
Atributo
informe ou selecione
Nome
Cdigo do fornecedor
Tipo
Numrico
Apelido
Codigo_do_fornecedor
Tamanho
Mscara
9999
326
O campo acima definido tambm tem uma particularidade interessante. Trata-se de um campo de
"caracterstica" Lista Externa, isto , no momento da digitao desta informao pelo usurio, uma
lista com os nomes dos fornecedores estar disponvel para seleo. Entretanto, apenas o "Cdigo
do fornecedor" ser gravado nesta tabela.
Voc deve ter notado que o campo de "caracterstica" Lista Externa, que mencionamos acima,
no aparece na lista de tipos de campos para ser selecionado, como aparece, por exemplo, a Lista
Interna. Acontece que um campo com esta caracterstica pode ser de qualquer tipo, como, por
exemplo, numrico, data, caractere, etc., razo pela qual no aparece naquela lista e deve ser
definido de maneira diferente, quando da formatao da tela para esta tabela, um pouco mais adiante
neste captulo.
Atributo
informe ou selecione
Nome
Valor
Tipo
Numrico
Apelido
Valor
Tamanho
12
Decimais
Mscara
999.999.999,99
Este campo ser destinado a sofrer um processamento a cada registro digitado na entrada de
produtos, com uma frmula que acumule o valor total da NF. Ser tambm definido como "No
editvel", quando o inserirmos na tela.
10.2.4.1.7 Itens da NF
Selecione a tabela "Itens da nf", clique na lista de campos e, depois, no boto de adicionar.
Informe os campos da tabela "Itens da NF". Esta tabela estar relacionada com a tabela "Notas
Fiscais", numa relao (filho-pai ou N-1), a ser estabelecida mais adiante.
Atributo
Informe ou selecione
Nome
Nmero da NF
Tipo
Numrico
Apelido
Numero_da_nf
Tamanho
Mscara
999
327
Este campo est sendo definido nesta tabela porque pretendemos criar um relacionamento N-1
com a tabela de "Notas Fiscais" definida anteriormente. Por isso, este campo o mesmo que existe
naquela tabela e, no momento apropriado, utilizaremos este campo para unir essas duas tabelas.
O campo Cdigo, que iremos definir a seguir, o cdigo do produto, ou seja, o mesmo existente
na tabela "Produtos em estoque".
Atributo
Informe ou selecione
Nome
Cdigo
Tipo
Numrico
Apelido
Codigo
Tamanho
Mscara
999
Atributo
Informe ou selecione
Nome
Quantidade entrada
Tipo
Numrico
Apelido
Quantidade_entrada
Tamanho
Mscara
9.999
328
Atributo
Informe ou selecione
Nome
Valor
Tipo
Numrico
Apelido
Valor
Tamanho
12
Decimais
Mscara
999.999.999,99
Mais tarde, durante a definio dos processamentos, utilizaremos estes dois ltimos campos em
operaes para apurar o valor total da NF que atualizar as tabelas "Notas Fiscais" e "Contas a
pagar".
10.2.4.1.8 Movimentao de produtos
Atributo
Informe ou selecione
Nome
Cdigo
Tipo
Numrico
Apelido
Codigo
Tamanho
Mscara
999
Atributo
Informe ou selecione
Nome
Data
Tipo
Data
Apelido
Data
Mscara
99/99/9999
Atributo
Nome
Entradas
Tipo
Numrico
Apelido
Entradas
Tamanho
Mscara
999.999
Atributo
Informe ou selecione
Informe ou selecione
Nome
Sadas
Tipo
Numrico
329
330
Apelido
Saidas
Tamanho
Mscara
999.999
Atributo
Informe ou selecione
Nome
Cdigo
Tipo
Numrico
Apelido
Codigo
Tamanho
Mscara
999
Atributo
Informe ou selecione
Nome
Data
Tipo
Data
Apelido
Data
Mscara
99/99/9999
Atributo
Informe ou selecione
Nome
Quantidade de sada
Tipo
Numrico
Apelido
Quantidade_de_saida
Tamanho
Mscara
9.999
331
332
Atributo
Informe ou selecione
Nome
Valor
Tipo
Numrico
Apelido
Valor
Tamanho
12
Decimais
Mscara
999.999.999,99
At este ponto, j efetuamos as definies das tabelas e seus campos. Vamos, agora, definir os
ndices e integridades entre as tabelas.
333
navegao dentro da tabela correspondente, bem como pesquisas rpidas aos seus registros. No
entanto, o usurio da aplicao final gerada poder estabelecer seu prprio critrio de ordenao de
registros, independente dos ndices criados pelo projetista. Existe, ainda, o caso especial da tabela
do tipo parmetro, que no pode conter ndice definido, uma vez que tabelas desse tipo contm
somente um registro.
10.2.4.2.1 Contas a pagar
Para esta primeira tabela, definiremos dois ndices, cada um deles com um campo:
Ttulo
Tipo
Campos
Lanamento
Primrio nico
Nmero do lanamento
Tipo
nico
Nmero da NF
10.2.4.2.2 Fornecedores
Ttulo
Cdigo
fornecedor
Tipo
do
Nome decrescente
Campos
Primrio nico
Cdigo do fornecedor
Decresc
Nome do fornecedor
A informao Decrescente deve ser marcada para cada campo selecionado para compor o ndice
e antes de selecion-lo. Esta marcao tem utilidade somente neste momento, no sendo atualizada
durante a visualizao deste ndice. Observe o sinal de menos (-) que inserido frente do nome do
campo que tenha a informao Decrescente na expresso do ndice.
10.2.4.2.3 Indexadores
334
Ttulo
Data
Tipo
Primrio nico
Campos
Data
10.2.4.2.4 Itens da NF
Para esta tabela, definiremos um s ndice, sendo ele composto de dois campos:
Ttulo
Tipo
Campos
Nmero da nf
NF e produto
Primrio nico
Cdigo
Para esta tabela, definiremos um ndice composto pelos campos "Cdigo do Produto" e Data:
Ttulo
Tipo
335
Campos
Cdigo
Cdigo e data
Primrio nico
Data
A tabela "Notas Fiscais" conter apenas um ndice simples pelo campo "Nmero da NF":
Ttulo
Nmero da NF
Tipo
Primrio nico
Campos
Nmero da nf
Para esta tabela no iremos - nem podemos - definir ndices. Para tabelas do tipo parmetro no
podem ser definidos ndices, pois tabelas desse tipo contm um s registro. Este registro criado
quando da criao do prprio banco de dados e, posteriormente, o usurio s ter permisso para
modificar este registro e nunca incluir nesta tabela.
Aqui, definiremos dois ndices para permitir ao usurio navegar no cadastro de produtos em
funo da ordem do "Cdigo do produto" e da "Descrio do produto":
Ttulo
Cdigo
Descrio
Tipo
Primrio nico
Campos
Cdigo
Descrio do produto
336
Nesta tabela, vamos observar algo diferente. Primeiramente, iremos definir para a mesma um
ndice composto de dois campos:
Ttulo
Tipo
Campos
Cdigo
Cdigo e data de
sada
Data
Como poderemos ter registros com um mesmo cdigo de produto em uma mesma data (sadas
das mercadorias), este ndice no pode ter atributos Primrio ou nico. Isto acarretar o seguinte
comportamento na aplicao final, com referncia a esta tabela: a operao de filtragem de registros
ficar desabilitada, no sendo possvel o usurio selecion-la. Isto acontece devido ao fato de que,
para a apresentao de um conjunto de registros referente a um critrio de filtragem, criado um
objeto (dynaset) que no trabalha diretamente com a tabela e, sim, com uma cpia de um
subconjunto de seus registros.
Sem um ndice primrio ou nico nesta tabela, no h meios de, num tempo aceitvel, vincular
um determinado registro do filtro com o registro daquela tabela.
Para solucionar este problema, vamos usar o seguinte artifcio:
criaremos um campo invisvel e seqencial nesta tabela;
criaremos um outro ndice para esta tabela, com atributo nico , em funo deste novo campo.
Sendo assim, clique sobre a lista de campos e adicione mais este:
Atributo
Informe ou selecione
Nome
Controle de filtro
Tipo
Numrico
Apelido
Controle_de_filtro
Tamanho
Mscara
9999
Sequncia
Invisvel
337
Pronto! Agora, podemos criar um ndice em funo deste campo. Clique sobre ndices e adicione:
Ttulo
Controle filtro
Tipo
nico
Campos
Controle filtro
No entanto, outro mtodo para filtrar informaes em consultas ou janelas de dados (visualizadas
na forma de grid) poder ser utilizado. Esse mtodo, denominado de filtragem dinmica, poder ser
acionado com o simples preenchimento do campo localizado sobre as colunas do grid.
Podemos, finalmente, criar as integridades de relacionamentos da aplicao.
10.2.4.3 Integridades
As integridades de relacionamentos podem ser criadas para assegurar o funcionamento correto
da aplicao. Esses relacionamentos podem ser 1-1 (referencial) e 1-N (pai e filho), conforme
veremos a seguir. As regras de criao das integridades so as seguintes:
selecione uma tabela na lista Tabelas;
clique na lista Integridades;
338
Selecione esta tabela e clique na lista Integridades. Vamos criar duas integridades referenciais,
respectivamente, com Indexadores e Fornecedores, de modo que um registro de qualquer uma
dessas tabelas no possa ser apagado se estiver sendo referenciado por uma NF.
Ttulo
Indexadores
Tipo
Tabela e campo
estrangeiro
Cp tab bsica
1-1
Indexadores/Data
Data
No se esquea de, neste ponto, clicar sobre o boto de concatenao para que o campo
selecionado seja assumido como campo de unio entre as tabelas.
boto de concatenao
Ttulo
Tipo
Tabela e campo
estrangeiro
Cp tab bsica
Fornecedores/
Fornecedore
s
1-1
Cdigo
fornecedor
Cdigo
fornecedor
do
do
Agora, vamos criar uma outra integridade 1-N (pai-filho) com "Itens da NF". Neste tipo de
relacionamento, quando uma NF excluda, todos os seus itens so excludos automaticamente.
Ttulo
Tipo
Tabela e campo
estrangeiro
339
Cp tab bsica
Itens da nf/
Itens
1-N
Nmero da NF
Nmero da NF
10.2.4.3.2 Itens da nf
Selecione esta tabela, clique na lista Integridades e vamos adicionar uma integridade para impedir
o apagamento de registros dentro da tabela de "Produtos em Estoque" que estejam sendo
referenciados na tabela "Itens da nf".
Ttulo
Produtos
Tipo
1-1
Tabela e campo
estrangeiro
Produtos
estoque/ Cdigo
Cp tab bsica
em
Cdigo
Selecione esta tabela, clique na lista Integridades e vamos adicionar uma integridade que forar
o apagamento automtico dos registros de "Movimentao de produtos" referentes a um produto que
tenha sido apagado do cadastro.
Ttulo
Movimenta
o
Tipo
1-N
Tabela e campo
estrangeiro
Movimentao
produtos/ Cdigo
Cp tab bsica
de
Cdigo
340
Finalmente, selecione esta tabela, clique na lista Integridades e sobre o boto de adicionar para
criar mais uma integridade. Esta impedir que um registro da tabela "Produtos em estoque" seja
apagado se existir um registro de sada para o mesmo.
Ttulo
Produtos
Tipo
1-1
Tabela e campo
estrangeiro
Produtos
estoque/ Cdigo
em
Cp tab bsica
Cdigo
Aps a entrada das informaes da estrutura do banco de dados da nossa aplicao, podemos,
ainda, definir outros aspectos, dos quais, para este exemplo, vamos apenas criar a tela de
apresentao.
10.2.4.4 Tela inicial
Clique sobre a aba intitulada "Tela inicial" para criar uma tela de apresentao para esta nossa
aplicao exemplo, como mostra a tela da figura 10.5. Voc poder clicar sobre o boto de adicionar
imagem e selecionar um arquivo qualquer de extenso .BMP ou .ICO por meio de um dilogo padro
do Windows.
341
Figura 10.5
342
Figura 10.6
Esta janela tem por finalidade definir a posio de insero do novo mdulo. Ela exibe s os
mdulos que ficaro no mesmo nvel do mdulo inserido, permitindo a seleo do mdulo aps o
qual o novo mdulo ficar. Aplique um duplo-clique sobre Exibir. Observe que um mdulo do tipo
menu, intitulado Menu foi inserido logo abaixo da opo Exibir. Agora, selecione e clique sobre o
mesmo e altere o seu nome para &Tabelas. Observe que o caractere "&" utilizado para indicar que
a letra que o segue imediatamente ser utilizada como atalho (hot key) para a opo, aparecendo
sublinhada no menu da aplicao final, pois a estrutura que aparece na rvore do projeto espelha
exatamente a estrutura de menus da aplicao final. Posteriormente, voc poder reparar que existe
outra maneira de alterar os nomes das opes que aparecem na rvore. Agora, repita os passos a
seguir, por duas vezes, observando que, na primeira vez, o passo 3 no ser necessrio, bastando
apenas confirmar a incluso do novo mdulo:
selecione este novo mdulo Tabelas;
insira um mdulo do tipo "Janela de dados" da maneira descrita anteriormente;
aplique um duplo-clique em Tabelas. Com isto, inserimos duas janelas de dados sob o menu
Tabelas. O detalhe da figura 10.7 mostra como dever estar esta parte da rvore do nosso projeto
exemplo:
343
Figura 10.7
At aqui, voc deve ter observado que os mdulos que acabamos de inserir aparecem em uma
cor diferente (normalmente a vermelha), dependendo do que estiver configurado no GAS, pois, para
facilitar a visualizao do andamento do trabalho no projeto, existe uma configurao de fontes de
letras para mdulos ainda no definidos e para mdulos j definidos. Vamos, agora, alterar os nomes
dessas janelas de dados. Selecione e clique sobre cada uma delas, alterando seus nomes para
&Fornecedores e &Indexadores, respectivamente. A seguir, vamos inserir outro mdulo do tipo menu
para agrupar algumas tabelas que chamaremos Movimentao. Procedendo da mesma forma
explicada acima, vamos proceder conforme se segue:
selecione o ttulo do projeto - o primeiro mdulo da rvore;
insira uma opo de menu logo aps o mdulo Exibir;
altere o seu nome para &Movimentao.
agora, sempre selecionando Movimentao antes de cada insero, insira trs janelas de dados
e altere seus nomes para &Entrada de produtos, &Sada de mercadorias, e &Movimentao de
produtos, respectivamente.
A figura 10.8 mostra como dever estar esta parte da rvore.
Figura 10.8
344
Vamos, agora, inserir um mdulo especial. J vimos que os dados de "Notas Fiscais" tm um
relacionamento 1-N com seus itens. Quando o nosso usurio acabar de digitar os dados genricos
de uma NF, gostaramos que passasse automaticamente a digitar os dados de seus "N" itens. Para
que isto acontea, temos de inserir na rvore do projeto, os itens da NF imediatamente abaixo da
janela de digitao dos dados da NF ("Entrada de produtos") de modo subordinado. Para isto, basta
efetuar o que segue: selecione o mdulo "Entrada de produtos" e clique sobre o boto de definies
para estabelecermos a tabela bsica desse mdulo; selecione a tabela "Notas fiscais" na lista
denominada "Tabela bsica";
clique no mdulo "Entrada de Produtos" para selecion-lo;
volte arvore do projeto e insira, abaixo do mdulo "Entrada de Produtos", um mdulo do tipo
"Tabela em grid"; altere o seu nome para "Itens da NF".
Nesta ltima insero, voc deve ter observado que, ao clicar sobre o boto de insero, s duas
opes de tipo de mdulo foram oferecidas. que, abaixo de uma janela de dados, somente uma
outra janela de dados ou uma tabela em grid pode ser inserida, efetuando um relacionamento 1-N.
Agora, esta parte da nossa rvore dever estar espelhando o que aparece na figura 10.9 a seguir:
Figura 10.9
Precisamos, ainda, inserir mais trs janelas de dados para que, depois, possamos defin-las uma
a uma:
selecione o ttulo do projeto e insira uma janela de dados logo aps o mdulo Movimentao,
alterando o seu nome para &Produtos;
novamente, selecione o ttulo do projeto e insira outra janela de dados logo aps Tabelas,
denominando-a &Financeiro; agora, selecione o menu Arquivo e insira outra janela de dados, logo
aps Arquivo, denominando-a &Parmetros. Pronto! Todas as tabelas que criamos na estrutura do
banco de dados j tm o seu lugar correspondente na rvore do projeto, inclusive com os nomes que
devero ser utilizados para o seu acionamento, durante a operao da aplicao final. Conforme j
345
explicado, feche (encolha) novamente o tronco Arquivo na rvore do projeto. Mais tarde, voltaremos a
trabalhar com este mdulo.
Figura 10.10
A figura 10.10 exibe como esta parte da rvore do projeto dever estar aparecendo para voc.
Podemos, agora, entrar na parte de definio de cada uma das janelas de dados que inserimos na
rvore.
346
10.2.6.1 Fornecedores
Selecione Fornecedores na rvore do projeto e, em seguida, clique sobre o boto de definio,
situado na barra de ferramentas:
Um clique com o boto direito do mouse sobre a opo Fornecedores e a seleo da opo
"Define o mdulo selecionado" produzir tambm o mesmo efeito, que a apresentao da interface
de definio de janelas de dados exibida na figura 10.11.
Figura 10.11
Na primeira aba desta interface, selecione na lista "Tabela Bsica", a tabela Fornecedores e
digite as informaes necessrias para que fique igual ao que representado pela figura 10.10.
Durante a entrada dessas informaes, observe que:
os dados da identificao do form no precisam ser informados, pois so inseridos
347
automaticamente pelo GAS; o campo "Ttulo no menu" permite a alterao do nome da opo de
menu, que aparece na rvore do projeto. Antes, foram alteradas diretamente na rvore por intermdio
da seleo do mdulo e com um clique do mouse;
a informao Identificao ser utilizada para criar o arquivo .FRM que armazena a interface
para esta janela;
a informao que aparece em "Ttulo da janela" ser utilizada como ttulo do formulrio (form)
correspondente a esta janela;
clique sobre o boto de gravao para gravar estas informaes.
Acabamos de informar os dados genricos desta janela de dados. Agora, vamos definir a tela de
digitao e alterao dos registros da tabela Fornecedores, bem como os atributos dos campos que
sero digitados pelo usurio. A formatao de telas efetuada ativando-se o Editor de Recursos do
GAS. Selecione, na rvore do projeto, o mdulo Fornecedores e clique sobre o boto que aparece a
seguir, situado na barra de ferramentas do GAS:
348
Figura 10.12
349
Figura 10.13
Figura 10.14
Agora, podemos definir alguns atributos para os campos inseridos na tela, como validaes,
pr-validaes, valores iniciais, etc.
Selecione o campo "Cdigo do Fornecedor", clicando sobre o campo destinado a receber essa
informao. Observe que a lista de propriedades da janela de ferramentas de tela se alterou,
espelhando as propriedades que podem ser designadas para este objeto. Vamos estabelecer uma
expresso de validao para este campo, de modo que o usurio no o possa deixar vazio. Procure
na janela de propriedades a categoria Atributos e clique sobre a propriedade Validao. Poderamos
digitar diretamente uma expresso para efetuar a validao do campo. No entanto, vamos utilizar a
interface do GAS para montar esta expresso. Por default, o GAS j inseriu uma expresso de
validao. Por isso, limpe a expresso desse campo e clique sobre o boto extensor (com
350
Figura 10.15
boto de concatenao
Observe que a nossa expresso de validao j foi montada, aparecendo no espao presente na
base da tela. Agora, para aceitar, clique sobre o boto que aparece a seguir:
351
10.2.6.2 Indexadores
Aplique um clique com o boto direito do mouse no item Indexadores, na rvore do projeto,
selecione a opo "Define o mdulo selecionado" e informe o que aparece na tela da Figura 10.16.
Figura 10.16
352
Vamos elaborar a tela de digitao para os indexadores. Desta vez, vamos deixar que o GAS a
crie para ns, automaticamente:
acione o Editor de Recursos do GAS, conforme explicado no item anterior;
clique com o boto direito do mouse sobre o boto de criao de tela padro para que seja
apresentada a tela da Figura 10.17.
Figura 10.17
a partir da tela da figura 10.17, onde esto as opes da tela padro, altere os parmetros
"Margem esq" e "Margem topo" para o valor 250, clicando sobre o boto Ok em seguida;
agora, clique normalmente sobre o boto de criao de tela padro exibido ainda h pouco.
353
a tela da Figura 10.18 dever ter sido criada pelo GAS. Agora, se desejar, voc poder
aumentar o seu tamanho ou adapt-la.
Figura 10.18
Tendo terminado as definies deste mdulo, vamos acessar a aba Geral da definio da janela e
marcar a opo "Mdulo pronto", gravando as informaes.
10.2.6.3 Produtos
Vamos definir, agora, a janela de "Produtos em Estoque". As definies das janelas de dados
so semelhantes em muitos aspectos; porm, algumas necessitam maiores definies, razo pela
qual estamos comeando pelas mais simples e nos direcionando, em seguida, s que apresentam
um grau maior de dificuldade. Aplique um clique com o boto direito do mouse sobre o item Produtos
na rvore do projeto, selecione a opo "Define o mdulo selecionado" e informe os dados da aba
Geral, conforme aparece na Figura 10.19.
354
Figura 10.19
Clique na aba Processos para que a tela da Figura 10.20 seja apresentada:
Figura 10.20
355
Agora, temos algo diferente. Como j vimos na definio da estrutura do banco de dados, h
nesta tabela bsica, alguns campos que iremos definir como no editveis. Esses campos no sero
digitados pelo usurio, sendo atualizados por meio de processamentos. Vamos definir, agora, um
desses processos. O campo "Data ltima atualizao" vai ser atualizado com a data do sistema
(hoje) sempre que acontecer uma modificao no cadastro do produto. Portanto, vamos definir este
processamento para que, quando o usurio cadastrar um produto pela primeira vez, este campo seja
atualizado automaticamente (processamento na prpria tabela).
Posteriormente, a partir de entradas e sadas de produtos que modificam esta tabela, definiremos
processos idnticos para alterar esta data.
Para criar este processamento, proceda conforme os passos abaixo:
clique sobre o boto Adiciona;
digite o ttulo do processo: "Atualiza data";
selecione a tabela alvo: "Produtos em estoque";
selecione o campo alvo: "Data ltima atualizao";
digite no campo frmula direta: Date;
clique sobre o boto Grava para salvar as informaes.
Podemos, agora, formatar a tela de digitao de dados para esta tabela, onde tambm veremos
algumas novidades. Clique no boto que j conhecemos para acionar o Editor de Recursos do
GAS.
Para formatar a tela da figura 10.21, utilize a experincia que adquiriu na formatao das telas
anteriores, alm das seguintes dicas:
Os objetos painel, frame e tab podem ser utilizados como recipientes para agrupar outros
controles. Por isso, so denominados containers. Observe, por exemplo, o frame Quantidade: para
criar este grupo, voc dever tomar os cuidados a seguir.
coloque o container na tela, neste caso, um frame, e selecione-o;
clique, na janela ferramentas de tela, sobre o campo ou objeto que deseja disponibilizar.
356
Neste caso, selecione o campo "Quantidade em estoque" na lista. Observe que o campo inserido
fica restrito ao seu container, dentro do qual pode ser alinhado e posicionado;
repita os passos acima para o campo "Quantidade mnima".
designe a propriedade Ttulo do container para Quantidade.
Esses campos, em relao tela, so movimentados sempre por meio de seu container, o qual
voc pode selecionar e arrastar para onde desejar.
Figura 10.21
Voc deve ter observado, ao formatar esta tela, que os objetos associados aos campos variam
segundo o seus tipos.
O campo Localizao, por exemplo, um campo do tipo optativo, no qual disponibilizado um
frame (container) e, dentro deste, os botes de radio correspondentes s opes. Para alterar a
posio deste campo, voc deve selecionar e arrastar somente o frame (o seu contedo ir junto).
Vamos, agora, conhecer como se evita com que o usurio acesse um campo para digitao.
Nesta tabela h dois campos para os quais desejamos determinar esta situao.
clique na caixa de texto destinada a receber a informao "Quantidade em estoque" para
selecion-la;
localize a categoria Comportamento na lista de propriedades da janela de ferramentas de tela e
selecione Editvel;
357
clique no boto extensor (com reticncias), direita da propriedade, e selecione a opo No;
repita os passos acima para o campo "Data ltima atualizao".
A seguir, vamos definir diversos outros atributos de validao para os demais campos desta
janela. Selecionando cada um dos campos na tela, digite as informaes constantes nos quadros a
seguir. Para essas definies, voc poder utilizar a interface de montagem de expresses que j
exibimos anteriormente, bem como poder, sempre que desejar selecionar um nome de campo,
utilizar o banco de campos que aparece na figura 10.22.
Figura 10.22
Cdigo
Validao
Not Vazio(Codigo)
Mensagem
358
Descrio do produto
Validao
Not Vazio(Descricao_do_produto)
Mensagem
Quantidade Mnima
Validao
Not Vazio(Quantidade_minima)
Mensagem
Valor inicial
Preo de custo
Validao
Mensagem
Preco_de_custo > 0
Preo de custo deve ser maior que
zero
Preo indexado
Validao
Not Vazio(Preco_indexado)
Mensagem
359
Lucro bruto
Validao
Mensagem
Valor inicial
30
Limpe as validaes dos campos a seguir, pois eles foram definidos como no editveis:
Quantidade em estoque;
Data ltima atualizao.
Finalmente, para terminar a definio da janela de dados "Produtos em estoque", acesse a aba
Geral da janela de definies e marque a opo "Mdulo Pronto".
360
Figura 10.23
A seguir, vamos utilizar pela primeira vez a aba Tabelas Auxiliares desta janela. Clique sobre esta
aba para que a tela da figura 10.24 seja apresentada:
361
Figura 10.24
Esta interface utilizada para forar a abertura de outras tabelas da aplicao, quando a tabela
bsica estiver sendo acessada.
Neste nosso exemplo, quando o usurio estiver digitando informaes na tabela bsica desta
janela que estamos definindo ("Notas Fiscais"), outras tabelas devero ser acessadas:
a de Indexadores, pois necessitamos exibir uma mensagem mais elucidativa quando o usurio
informar uma data na NF que no tenha um indexador correspondente. Lembre-se que, durante a
definio da estrutura do banco de dados, criamos uma integridade entre "Notas Fiscais" e
Indexadores, fato que, por si s, impede que uma NF com data inexistente em Indexadores seja
digitada;
a de "Contas a Pagar", pois naquela tabela ser criado um novo registro (lanamento) contendo
o valor total da NF digitada. Observe que, no caso desta tabela, quando digitarmos a NF, ainda no
temos o valor total da mesma, visto que este ser acumulado a partir dos valores digitados para os
itens da NF. Assim, ao digitar a NF, um registro de lanamento ser criado nesta tabela com o
campo Valor zerado e, durante a digitao de cada item da NF, um processamento que iremos
definir em "Itens da NF" ir alterar este campo. Poderamos, tambm, efetuar tal procedimento de
362
uma maneira diferente: no criaramos este lanamento a partir da digitao em "Notas Fiscais" e,
sim, a partir da digitao dos itens (arquivo filho). Neste caso, porm, teramos que definir uma
condio, determinando que o lanamento fosse criado somente se no existisse (para evitar que
cada item criasse um novo lanamento).
Para adicionar essas duas tabelas auxiliares, basta executar as seguintes regras:
clique no boto Adiciona;
selecione a tabela auxiliar a partir da lista "Tabela Auxiliar";
deixe marcada a opo "Forar relacionamento", caso deseje que a aplicao tente se posicionar
no registro da tabela auxiliar. No caso de Indexadores, esta opo deve ficar marcada. J no de
"Contas a Pagar", esta opo dever ficar desmarcada, pois esta tabela ser aberta apenas para a
criao de um novo registro, no havendo a necessidade de relacionamento;
selecione o ndice a ser utilizado, a partir da lista ndice. No caso da tabela auxiliar "Contas a
Pagar", esta escolha e as trs seguintes devero estar desabilitadas, pois, como no foraremos o
relacionamento, elas no se aplicaro;
selecione o campo para unir a tabela bsica e a tabela auxiliar;
deixe marcada a opo Criticar para que uma mensagem seja exibida ao usurio, caso o
relacionamento no tenha sido efetuado com sucesso;
digite no campo "Mensagem de crtica" a mensagem que deseja mostrar ao usurio, caso o
relacionamento no tenha sido efetuado com sucesso;
clique sobre o boto Grava para salvar as informaes. Inseridas essas duas tabelas auxiliares e
com a tabela Indexadores selecionada, a tela da figura 10.25 dever estar sendo exibida para voc:
363
Figura 10.25
Agora, vamos definir o primeiro lanamento nesta aplicao, que a criao de um registro na
tabela auxiliar "Contas a Pagar". Clique sobre a aba Lanamentos para que a tela da figura 10.26
seja apresentada:
364
Figura 10.26
365
No entanto, agora tal instruo no mais ser necessria na execuo de nosso lanamento, visto
que o GAS j efetuar, automaticamente, todo controle necessrio para que o autoincremento desse
tipo de campo seja efetuado. Voc deve se lembrar que definimos este campo, na estrutura do banco
de dados, como um campo seqencial (de incremento automtico) e tambm que iramos defin-lo
como no editvel.
Exclusivamente para atender a casos de campos seqenciais, o GAS criar na aplicao,
automaticamente, a funo PegaSequencia, que cuida deste detalhe para ns. Os parmetros que
sero utilizados pelo GAS nesta funo sero, pela ordem: nome da tabela que contm o campo
seqencial;
nome do campo seqencial;
valor default para iniciar a seqncia;
incremento a ser utilizado.
Assim sendo, basta que deixemos em branco o campo "Nmero de lanamento". clique, agora,
na rea correspondente ao campo "Nmero da nf" e, a partir do banco de campos representado na
figura 10.27, aplique um duploclique sobre o campo "Nmero da nf" (Numero_da_nf). Observe que o
campo foi capturado do banco de campos;
Figura 10.27
366
clique na rea correspondente ao campo Data e capture o campo Data (Data) do banco de
campos;
clique sobre o boto Grava para salvar as informaes deste lanamento. J explicamos que o
campo Valor ser processado por meio da digitao na tabela "Itens da NF", razo pela qual no nos
preocupamos, agora, com o seu valor.
Agora, para esta janela de dados, falta apenas criar a sua janela de digitao, conforme j
efetuamos para aquelas que definimos anteriormente. Porm, neste caso, no vamos faz-la agora!
A razo que esta tabela tem uma outra subordinada, que so os "Itens da nf" (observe na rvore
do projeto). Quando o inserimos na rvore do projeto, decidimos que o mdulo filho seria do tipo
Tabela em grid, ou seja, decidimos oferecer ao usurio da nossa aplicao um grid para digitao
dos itens da Nota Fiscal. Necessitamos, primeiramente, definir o mdulo inferior ("Itens da nf") para
depois voltarmos a este ponto do mdulo pai ("Entradas de produtos") e formatarmos a sua tela,
inserindo o grid dos itens na mesma tela. O tpico "Colocando o grid na tela", um pouco mais
adiante, descrever a continuao desta definio.
10.2.6.5 Itens da NF
A janela dos itens da NF corresponde aos dados de cada um dos itens de produto recebidos em
uma Nota Fiscal de fornecedor. Aplique um clique com o boto direito do mouse sobre o item "Itens
da NF" na rvore do projeto, selecione a opo "Define o mdulo selecionado" e informe os dados
que aparecem na tela da figura 10.28.
Figura 10.28
367
Clique na aba "Tabelas auxiliares" para definirmos as tabelas que necessitamos abrir quando os
itens da NF estiverem sendo digitados, procedendo de maneira semelhante ao que efetuamos para a
janela de dados anterior. Note que, vrias tabelas j so inseridas automaticamente na lista de
tabelas auxiliares. Essas tabelas foram definidas anteriormente no mdulo-pai, sendo aqui
disponibilizadas. Necessitamos abrir a tabela "Produtos em estoque" (cadastro de produtos) com
relacionamento, pois logo definiremos processamentos para creditar a quantidade que est sendo
recebida por meio da NF na quantidade do produto em estoque, alm de outros processamentos.
Informao
Tabela auxiliar
Produtos em estoque
Forar relacionamento
ndice
Cdigo
Campo
tabelas
Criticar
Contedo
par
unir
as
Cdigo(Codigo)
368
Mensagem
Produto no cadastrado!
Informao
Contedo
Tabela auxiliar
Movimentao de produtos
Forar relacionamento
ndice
Cdigo e Data
Campo
tabelas
par
unir
as
Cdigo(Codigo)
Notas_fiscais!Data
369
Observe que, diferentemente de outros mdulos, neste existe uma outra aba denominada
Opes na interface de definio do mdulo. Clique sobre esta aba e a tela da Figura 10.29 ser
apresentada.
Figura 10.29
Nesta tela, vamos estabelecer quais so os campos de ligao com o mdulo pai. Neste caso, o "
Nmero da nf" ser utilizado. Na lista da esquerda (campos do filho), clique sobre o campo "
Nmero da nf".
Observe que o GAS marca automaticamente o campo de mesmo nome na lista da direita, que
contm os campos do mdulo pai. O GAS sempre efetua esta seleo automtica quando encontra
na lista da direita um campo com nome e atributos idnticos ao que foi selecionado na lista da
esquerda. O projetista poder aceitar ou no esta seleo. No caso do nosso exemplo, exatamente
isto que necessitamos. Clique no boto de concatenao que j conhecemos e a expresso de
ligao montada automaticamente. Em seguida, clique no boto Grava para salvar essas
informaes. Clique na aba Lanamentos para que possamos definir um lanamento na tabela de "
Movimentao de produtos".
370
Este lanamento dever ser condicional, ou seja, dever obedecer uma determinada condio
para ser efetuado. A tabela "Movimentao de produtos" mantm o controle das quantidades de
entrada e sada de cada um dos itens de produtos, diariamente. Sendo assim, quando estivermos
digitando um item de produto, vamos verificar se este item ainda no existe nesta tabela neste dia e,
se isto for verdade, criaremos um novo registro por meio deste lanamento.
A tela da figura 10.30 apresentada para a definio do lanamento.
Figura 10.30
clique no boto extensor (com reticncias), no lado direito do campo "Condio incluso
lanamento";
371
Figura 10.31
372
Movimentacao_de_produtos!Entradas = 0 AND
agora,
posicione
o
cursor
logo
aps
a
palavra
AND
"Movimentacao_de_produtos!Sadas", da mesma forma aplicada anteriormente;
capture
... Movimentacao_de_produtos!Sadas = 0
Com isto, fica estabelecido que este lanamento somente ser retirado quando os campos
Entradas e Sadas da tabela auxiliar apelidada de "Movimentacao_de_produtos" estiverem zerados.
Para terminar a definio deste lanamento, s nos resta designar os valores que sero inseridos nos
campos do novo registro por ele criado.
na rea "Expresso a ser colocada no campo alvo", clique na rea correspondente ao campo
Cdigo;
a partir do banco de campos, capture o campo Cdigo (Codigo) da tabela bsica;
clique na rea correspondente ao campo Data e capture o campo "Notas_fiscais!Data", a partir
do banco de campos.
Clique sobre o boto Grava, pois acabamos de definir o lanamento. Observe que este
lanamento atualiza somente os dois primeiros
campos do registro criado (Cdigo e Data), ficando os outros dois campos para serem
modificados por meio de processamentos que definiremos a seguir. Clique sobre a aba Processos e
a tela da figura 10.32 ser apresentada:
373
Figura 10.32
J utilizamos esta janela anteriormente, definindo um processamento para o campo "Data ltima
atualizao" na janela de dados de "Produtos em estoque". Procedendo da mesma forma, vamos
criar 6 processamentos para serem executados quando os itens da NF (tabela bsica desta janela)
estiverem sendo digitados na aplicao final. Para criar esses processamentos, lembre-se de que
voc poder utilizar o banco de campos para capturar informaes e que cada processamento
iniciado clicando-se sobre o boto Adiciona e terminado clicando-se sobre o boto Grava.
Informao
Contedo a informar/selecionar
Ttulo
Atualiza estoque
Tabela alvo
Produtos_em_estoque
Campo alvo
Quantidade_em_estoque
Frmula direta
Produtos_em_estoque![Quantidade
Quantidade_entrada
em
estoque]
374
Frmula inversa
Produtos_em_estoque![Quantidade
Quantidade_entrada
Informao
estoque]
Contedo a informar/selecionar
Ttulo
ltima atualizao
Tabela alvo
Produtos_em_estoque
Campo alvo
Frmula direta
Date
Informao
Contedo a informar/selecionar
Ttulo
Preo de custo
Tabela alvo
Produtos_em_estoque
Campo alvo
Preo de custo
Frmula direta
Valor
Informao
em
Contedo a informar/selecionar
Ttulo
Movimenta entrada
Tabela alvo
Movimentacao_de_produtos
Campo alvo
Entradas
Frmula direta
Movimentacao_de_produtos!Entradas + Quantidade_entrada
Frmula inversa
Movimentacao_de_produtos!Entradas - Quantidade_entrada
Informao
Contedo a informar/selecionar
Ttulo
Tabela alvo
Contas_a_pagar
Campo alvo
Valor
Frmula direta
Frmula inversa
Informao
Contedo a informar/selecionar
Ttulo
Valor da NF
Tabela alvo
Notas_fiscais
Campo alvo
Valor
375
376
Frmula direta
Frmula inversa
Terminados os processamentos, aproveite para clicar sobre a primeira aba Geral e marcar a
opo "Mdulo pronto", clicando no boto Grava posteriormente.
Figura 10.33
O campo "Cdigo do fornecedor" ser definido como lista externa, ou seja, apresentar uma lista
da tabela de fornecedores que o usurio poder selecionar. Para informar isto ao GAS, temos que
ajustar algumas propriedades, utilizando a janela de ferramentas de tela. Pressione F4 se ela no
estiver presente na tela e proceda conforme se segue:
selecione na tela o campo "Cdigo do fornecedor";
377
na lista de propriedades, localize a categoria Dados, clique sobre a propriedade "BD estrangeiro"
e, utilizando o boto extensor (com reticncias), selecione ESTOQUE;
na mesma categoria, clique sobre "Tabela estrangeira" e selecione a tabela Fornecedores;
clique, agora, em "Campo a mostrar" e selecione "Nome do fornecedor". Repita esse mesmo
procedimento para a propriedade "Campo a ordenar";
finalmente, clique em "Campo a capturar" e selecione o campo "Cdigo do fornecedor".
O campo Valor, por definio nossa, ser um campo no editvel; porm, necessitamos informar,
neste momento, isto ao GAS. Selecione na tela este campo e altere a sua propriedade Editvel para
o valor No.
Vamos, agora, definir atributos de validao para a janela de notas fiscais, como j efetuamos
anteriormente. Observe que o GAS oferece, automaticamente, valores default para a maioria dessas
informaes.
Nmero da NF
Mensagem
Data
Validao
Not VAzio(Data)
Mensagem
Data ilegal!
Valor inicial
Date
378
Cdigo do fornecedor
Validao
Mensagem
Valor
Validao
Mensagem
Conforme j foi citado, o campo Valor ser atualizado por intermdio de processamentos a partir
dos itens digitados para a NF. Por esta razo, voc deve retirar as informaes que foram sugeridas
automaticamente. Agora estamos prontos para inserir o grid para a digitao dos itens da nota fiscal.
Aumente o tamanho da tela que acabamos de criar, abrindo espao para o posicionamento do grid.
Selecione o painel da tela e clique sobre o boto a seguir na janela de ferramentas de tela.
Um objeto gDbGrid ser exibido no topo da tela. Arraste-o e redimensione-o, criando uma tela
semelhante que aparece na figura 10.34.
379
Figura 10.34
Clique sobre o gDbGrid para selecion-lo.Vamos ajustar algumas propriedades, a partir da lista
de propriedades da janela de ferramentas de tela. Primeiramente, na categoria Dados, clique sobre a
propriedade Tabela e selecione "Itens_da_nf". Observe que o GAS preenche, automaticamente, o
gDbGrid com os campos dos itens da nota fiscal, exceto o campo de ligao com o mdulo-pai
("Nmero da nf"). Agora, vamos inserir uma coluna para conter uma frmula para apurar o valor total
do item digitado, que o produto da quantidade entrada pelo valor do item. Para inserir a nova
coluna, proceda conforme se segue:
selecione a coluna Valor;
clique sobre o boto de inserir coluna aps, na janela de ferramentas de tela;
inserida a coluna, selecione-a e designe a propriedade "Ttulo da coluna" (categoria Ttulo) para
"Valor total";
designe tambm a propriedade Ttulo, nesta mesma categoria, para "Produtos da Nota Fiscal".
Esta propriedade aplicada no ttulo do gDbGrid;
380
Figura 10.35
Ns podemos tambm definir o campo Cdigo no grid como uma lista externa, como efetuamos
para o "Cdigo do fornecedor":
na lista de propriedades, localize a categoria Dados, clique sobre a propriedade "BD
estrangeiro" e, utilizando o boto extensor (com reticncias), selecione ESTOQUE;
na mesma categoria, clique sobre "Tabela estrangeira" e selecione a tabela "Produtos em
estoque";
clique, agora, em "Campo a mostrar" e selecione "Descrio do produto". Repita esse
mesmo procedimento para a propriedade "Campo a ordenar";
finalmente, clique em "Campo a capturar" e selecione o campo "Cdigo".
381
Note que para listas extenas em grids, a combo box no exibida em tempo de projeto. Para
terminar esta definio, necessitamos somente marcar a opo "Mdulo pronto", na aba Geral de
definies para informar ao GAS que este mdulo est pronto e gravar.
10.2.6.7 Financeiro
Vamos definir esta janela de dados elegendo como tabela bsica a tabela de "Contas a Pagar",
que ser alimentada por meio dos lanamentos e processamentos j estabelecidos nas janelas de
dados definidas anteriormente. Aplique um clique com o boto direito do mouse no item Financeiro,
na rvore do projeto, selecione a opo "Define o mdulo selecionado" e informe os dados que
aparecem na tela da figura 10.36.
Figura 10.36
Esta janela de dados ser definida muito facilmente, pois, em virtude de ser alimentada por meio
de digitao em outras tabelas (lanamentos e processamentos), o que necessitamos, na verdade,
formatar a sua tela conforme aparece na Figura 10.37, a seguir, utilizando o recurso de tela padro
do GAS:
382
Figura 10.37
Da mesma forma como fora efetuado com as janelas de dados anteriores, marque a opo "
Mdulo pronto" e salve as informaes, clicando no boto Grava.
Figura 10.38
383
Informo
Tabela auxiliar
Produtos em estoque
Forar relacionamento
ndice
Cdigo
Cdigo(Codigo)
Criticar
Mensagem
Produto no cadastrado!
Informo
Tabela auxiliar
Movimentao de produtos
Forar relacionamento
384
ndice
Cdigo e Data
Cdigo(Codigo)
385
Figura 10.39
Com isto, acabamos de montar a condio para que o lanamento seja efetuado, ou seja, quando
um registro de produto no for encontrado na tabela alvo em uma data especfica. Agora, vamos
estabelecer a condio para que este lanamento seja retirado da tabela.
clique sobre a opo "Excluir lanamento" e sobre o campo "Condio excluso lanamento";
selecione "Movimentacao_de_produtos!Entradas" a partir do banco de campos;
transfira este campo, aplicando um duplo clique sobre tal campo;
aps transferir este campo, complete a condio para que fique conforme aparece no texto
386
abaixo:
Movimentacao_de_produtos!Entradas = 0 AND
agora,
coloque
o
cursor
logo
aps
a
palavra
AND
"Movimentacao_de_produtos!Sadas" da mesma forma efetuada anteriormente;
capture
... Movimentacao_de_produtos!Sadas = 0
Com isto, fica estabelecido que este lanamento somente ser retirado quando os campos
Entradas e Sadas da tabela auxiliar "Movimentacao_de_produtos" estiverem zerados. Para terminar
a definio deste lanamento, s nos resta designar os valores que sero inseridos nos campos do
novo registro por ele criado.
na rea "Expresso a ser colocada no campo alvo", clique na rea correspondente ao campo
Cdigo;
a partir do banco de campos, capture o campo Cdigo;
clique na rea correspondente ao campo Data e capture o campo Data, a partir do banco de
campos.
Clique sobre o boto Grava e assim, acabamos de definir o lanamento. Observe que este
lanamento atualiza somente os dois primeiros campos do registro criado (Cdigo e Data), ficando os
outros dois campos para serem modificados por meio de processamentos que definiremos a seguir.
Utilizando a aba Processos, informe:
Informao
Ttulo
Atualiza estoque
Tabela alvo
Produtos_em_estoque
Campo alvo
Quantidade em estoque
Frmula direta
Frmula inversa
Produtos_em_estoque![Quantidade
estoque] - Quantidade_de_saida
em
Produtos_em_estoque![Quantidade
estoque] + Quantidade_de_saida
em
Informao
Ttulo
ltima atualizao
Tabela alvo
Produtos_em_estoque
Campo alvo
Frmula direta
Date
Informao
Ttulo
Movimenta sada
Tabela alvo
Movimentacao_de_produtos
Campo alvo
Sadas
387
388
Frmula direta
Frmula inversa
Movimentacao_de_produtos!Sadas
Quantidade_de_saida
Movimentacao_de_produtos!Sadas
Quantidade_de_saida
Finalizando, vamos criar a tela para executar as sadas de estoque. Voc j sabe como pedir ao
GAS para criar, automaticamente, uma tela. Utilizando este recurso, faa uma tela semelhante que
aparece na figura 10.40. Nesta tela, vamos inserir uma frmula para exibir a descrio do produto
cujo cdigo ser digitado pelo usurio.
Figura 10.40
Para criar esta frmula, insira um objeto label sobre a tela na posio que aparece na figura
10.41.
Figura 10.41
389
Com este controle selecionado, localize a categoria Miscelnea na lista de propriedades e clique
sobre a propriedade Frmula. Em seguida, a partir do banco de campos, selecione o campo
"Produtos_em_estoque![Descrio do produto]" e transfira-o para a propriedade, conforme j
efetuamos anteriormente. Aproveite para alterar tambm a propriedade Ttulo, na categoria Ttulo,
para "Descrio do produto".
Continuando, vamos estabelecer alguns atributos para os campos inseridos nesta tela. Conforme
j efetuamos anteriormente, clique sobre cada um dos campos inseridos na tela para selecion-los e
informe os dados seguintes, lembrando-se de que a utilizao do banco de campos recurso valioso
para executar esta tarefa:
Cdigo
Validao
Not Vazio(Cdigo)
Mensagem
Data
Validao
Not Vazio(Data)
Mensagem
Data ilegal!
Valor Inicial
Date
390
Quantidade de sada
Quantidade_de_saida > 0 AND
Validao
Quantidade_de_saida <=
Produtos_em_estoque![Quantida
de em estoque]
Mensagem
Valor inicial
Valor
Validao
Mensagem
Valor > 0
Valor tem que ser maior do que
zero!
391
Figura 10.42
Observe que diversas opes de acesso e abas foram desativadas. Isto se deve ao fato da tabela
bsica desta janela ter sido definida como uma tabela do tipo parmetro. Aproveite este momento e
marque a opo "Mdulo pronto". Neste mdulo, vamos aceitar tudo o que o GAS oferece como
default. Clique no boto para ativar o Editor de Recursos e crie uma tela padro.
392
Figura 10.43
Observe que, diversas opes de acesso foram desmarcadas. Ocorre que esta tabela
alimentada exclusivamente a partir de lanamentos, no devendo ser permitidas ao usurio as
operaes de:
incluso de registros;
alterao de registros;
excluso de registros.
Aproveite e marque, de uma vez, a opo "Mdulo pronto", pois esta definio ser efetuada
rapidamente. Na aba "Tabelas auxiliares", vamos forar a abertura da tabela "Produtos em estoque"
com relacionamento pela nica razo de exibirmos uma frmula na tela para apresentar a "Descrio
do produto". Assim, informe os dados que aparecem na tela da figura 10.44 a seguir:
393
Figura 10.44
Finalmente, vamos definir uma tela para este mdulo. Esta tela ser utilizada exclusivamente para
visualizao de registros, uma vez que as opes de manuteno nesta tabela esto vetadas.
Solicite ao GAS que crie para voc a tela da figura 10.45 a seguir. O label que aparece selecionado
deve ser inserido manualmente para conter a frmula "Descrio do produto", que voc deve definir
da mesma forma descrita anteriormente.
Figura 10.45
Acesse a lista de propriedades e limpe as propriedades Validao e Msg de validao que o GAS
possa ter inserido automaticamente.
394
10.2.6.11Ajuste de estoque
Agora, para ilustrar nosso exemplo prtico, vamos criar na aplicao uma maneira do usurio
atualizar a quantidade em estoque de produtos diretamente sobre a tabela "Produtos em estoque",
cuja janela de dados j definimos. Isto demonstrar que podemos acessar uma mesma tabela de
outros pontos da aplicao, disponibilizando apenas os campos que queremos e, ainda, inibindo
certas aes do usurio.
Primeiramente, insira uma nova janela de dados na rvore do projeto, procedendo conforme se
segue:
clique sobre o mdulo Movimentao para selecion-lo. Vamos inserir abaixo desta opo de
menu;
clique sobre o boto de insero de mdulos na rvore;
selecione o tipo de mdulo "Janela de dados";
quando solicitada a escolha da posio de insero, aplique um duplo-clique sobre "Sada de
mercadorias";
clique sobre o mdulo recentemente inserido na rvore e altere o seu nome para &Ajuste de
estoque.
Agora, aplique um clique com o boto direito do mouse neste item, na rvore do projeto, selecione
a opo "Define o mdulo selecionado" e informe o que aparece na janela da figura 10.46. Observe
que algumas opes de operao foram alteradas, aparecendo de maneira diferente do que foi
definido nas janelas de dados anteriores:
a opo Permitir incluso foi desmarcada. Isto significa que, a partir deste mdulo, o usurio
no poder incluir registros na tabela bsica;
a opo Permitir excluso tambm foi desativada para que o usurio no possa efetuar
excluses por esse mdulo.
395
Figura 10.46
Figura 10.47
396
Voc deve ter observado que, neste caso, mais produtivo criar esta tela manualmente, ao invs
de utilizar os recursos de tela padro do GAS.
Para o label que aparece selecionado, voc deve ajustar a sua propriedade Frmula de modo que
exiba a descrio do produto correspondente ao cdigo digitado pelo usurio.
10.2.6.12Formulrios sem vnculos de dados
Todas as janelas de dados definidas tero a opo de trabalho sem vnculo de dados. Quando
definida essa opo, o formulrio ser aberto sem mostrar nenhum dado da base, sendo sua
abertura, portanto, extremamente rpida. Essa opo extremamente til para formulrios cuja
principal funo a incluso de registros (em tabelas com um grande volume de informaes) ou
para formulrios em que sero realizados, obrigatoriamente, filtros para a aquisio de dados;
Um excelente recurso a possibilidade de abrir um form desvinculado dos dados, dando mais
velocidade, ideal para bancos em servidores na internet:
397
um boto de liberao na barra de ferramentas. Essa funcionalidade muito til para usurios no
muito atentos que, s vezes, alteram um registro de determinada tabela com o intuito de incluir um
novo registro;
A interface para a gerao de programas fontes aparece representada na figura 10.48. Esta janela
est dividida em duas partes: a primeira delas, a de mdulos auxiliares, esto contidos os mdulos
genricos que so sempre gerados pelo GAS para apoiar a aplicao e na segunda so agrupados
os mdulos efetivamente definidos pelo projetista. Em ambas as partes, a gerao de mdulos pode
ser ligada ou desligada pelo projetista a seu critrio. Naturalmente, na primeira vez que uma
aplicao gerada, nenhum mdulo pode ser desligado, sob pena da aplicao no compilar
corretamente.
Na interface para escolha dos mdulos definidos para gerao, o projetista tem um preview id
ntico rvore do projeto, facilitando assim a escolha ou no de mdulos para gerao.
398
Figura 10.48
Clique sobre o boto Prossegue para disparar a gerao dos programas fontes. Durante esta
fase, o GAS criar tambm o arquivo de ajuda on-line para a aplicao.
399
Figura 10.49
Clique sobre o boto Prossegue desta tela para disparar a gerao dos executveis. Se o Visual
Basic estiver instalado corretamente em seu equipamento, todos os programas executveis da nossa
aplicao estaro disponveis para execuo aps esse processo. O Captulo 11 - Utilizando a
aplicao gerada, a seguir, aborda os aspectos da operao da aplicao que acabamos de criar.
Captulo
XI
Captulo 11 - Utilizando a aplicao gerada
11
401
11.1
11.2
Figura 11.1
Se o arquivo de dados existir no diretrio informado, este ser utilizado pela aplicao; caso
contrrio, a aplicao o criar automaticamente. No diretrio informado, para o nosso exemplo, sero
manipulados os seguintes arquivos:
Cabe ressaltar que, ao ser solicitado ao usurio o caminho do banco de dados para aplicaes
que fazem uso da rotina de backup, de extrema importncia para o funcionamento dessa rotina
que a indicao desse diretrio seja feita no padro UNC (\\servidor\ compartilhamento\...). Esse
caminho, gravado no arquivo .INI do aplicativo, passado no arquivo de configuraes do backup
para que o servio, instalado em um servidor, possa acessar o banco de dados.
402
Devido utilizao do Microsoft Jet Engine v3.6, os aplicativos gerados pelo GAS so
compatveis com bancos de dados MS-Access 2000 e verses anteriores.
Caso o aplicativo utilizasse o SQL Server ou Oracle como banco de dados, a tela da figura 11.2
seria apresentada para indicao do diretrio no qual se encontra presente o arquivo INI das
consultas criadas por meio do construtor de consultas da aplicao final.
Figura 11.2
11.3
403
Figura 11.3
Na primeira vez que a aplicao executada, o projetista dever entrar no aplicativo, informando o
usurio e senha determinados por meio da moldura intitulada "Senha default da aplicao",
presente na aba Miscelnea da definio do projeto no GAS. Para maiores informaes, consulte o
tpico Definindo os dados genricos do projeto do Captulo 5 - Operando o GAS. Este usurio no
tem restries na operao da aplicao e, por isso, importante efetuar o credenciamento dos seus
usurios e descredenciar esse usurio, procedimento que ser demonstrado mais adiante neste
captulo. Ao ativar a aplicao, a tela principal da aplicao, representada na figura 11.4 aparecer:
404
Figura 11.4
11.4
Operando a aplicao
Antes de iniciarmos a descrio da operao da aplicao, vamos conhecer o funcionamento de
algumas teclas.
Tecla
Seta esquerda
Seta direita
Seta
para
SHIFT+TAB
405
cima
ou
HOME
END
DEL
ENTER
TAB
BACKSPACE
Se esta a primeira vez que a aplicao est sendo utilizada, para maior facilidade,
aconselhvel que os dados das tabelas e de parmetros sejam digitados primeiro, pois so
informaes imprescindveis para o funcionamento da aplicao, visto que os demais mdulos
referenciam as tabelas em validaes, relacionamentos, etc. Para este nosso exemplo, vamos
assumir que a implantao ainda no foi efetuada; portanto,temos que digitar alguns registros
fictcios nos arquivos.
406
A tecla F2 determina a forma com que o grid ir se portar, no sentido de recepo dos registros.
O grid sempre aberto em modo de navegao e o acionamento da tecla F2 habilita o grid para ser
possivel a digitao de uma nova informao ou alterao de uma informao existente.
A tabela a seguir mostra apenas algumas dessas teclas e a sua funcionalidade, que podem variar
de acordo com a forma em que ele se encontra, entre navegao e pre-edio(F2):
Tecla
F2
Seta esquerda
Seta direita
HOME
END
DEL
ENTER
Seleciona
uma
parte
contedo do campo digitado
do
TAB
BACKSPACE
407
F5
Atualiza(refresh)
o
recarregando os dados.
grid,
CONTROL + HOME
CONTROL + END
CONTROL + Seta de
Move uma coluna para o lado
Move uma coluna para o lado
movimentao
da seta
da seta
PageUp
PageDown
digite os dados dos registros a seguir, observando que, a cada registro digitado, o boto de
gravao ou o atalho CTRL-S deve ser acionada para efetivar a gravao do mesmo.
408
Cd. do fornec.
Nome do fornec.
Contato
JOO DA SILVA
Telef. do fornec.
111-11-111-1111
Ramal
111
Fax
101-01-010-1010
Cd. do fornec.
Nome do fornec.
Contato
MRCIO
Telef. do fornec.
222-22-222-2222
Ramal
Fax
212-12-121-2121
Cd. do fornec.
Nome do fornec.
Contato
PEDRO ANTONIO
Telef. do fornec.
333-33-333-3333
Ramal
333
Fax
323-23-232-3232
Cd. do fornec.
Nome do fornec.
Contato
MARLENE
Telef. do fornec.
444-44-444-4444
Ramal
Fax
434-34-343-4343
Cd. do fornec.
Nome do fornec.
Contato
JORGE
Telef. do fornec.
555.55.555-5555
Ramal
555
409
410
Fax
545-45-454-5454
Nome da moeda
Dlar
Sigla da moeda
US$
Cdigo
Descri. do prod.
Unidade
Un
Quant. mnima
200
Preo de custo
2,30
Preo indexado
0,23
Lucro bruto
75
Cdigo
Descri. do prod.
Unidade
Un
Quant. mnima
200
Preo de custo
2,30
Preo indexado
0,23
Lucro bruto
75
Cdigo
411
412
Descri. do prod.
Unidade
Un
Quant. mnima
200
Preo de custo
7,50
Preo indexado
0,75
Lucro bruto
60
Cdigo
Descri. do prod.
Unidade
Un
Quant. mnima
100
Preo de custo
12,50
Preo indexado
1,25
Lucro bruto
80
Cdigo
Descri. do prod.
Borracha macia
Unidade
Un
Quant. mnima
400
Preo de custo
6,00
Preo indexado
0,60
Lucro bruto
70
Cdigo
Descri. do prod.
Borracha bicolor
Unidade
Un
Quant. mnima
300
Preo de custo
7,80
Preo indexado
1,00
Lucro bruto
50
Cdigo
Descri. do prod.
Unidade
Caderno
100 fls
Un
espiral
413
414
Quant. mnima
1.000
Preo de custo
10,00
Preo indexado
1,00
Lucro bruto
70
Cdigo
Descri. do prod.
Caderno
150 fls
Unidade
Un
Quant. mnima
1.000
Preo de custo
12,50
Preo indexado
1,25
Lucro bruto
70
Cdigo
Descri. do prod.
Caderno
200 fls
Unidade
Un
Quant. mnima
1.000
espiral
espiral
Preo de custo
15,00
Preo indexado
1,50
Lucro bruto
70
Cdigo
Descri. do prod.
415
10
Grampeador
modelo 1
Unidade
Un
Quant. mnima
30
Preo de custo
18,00
Preo indexado
1,80
Lucro bruto
90
inox
Ao digitar os registros acima, voc deve ter percebido que o cursor no estacionou nos campos
"Quantidade em estoque" e "Data ltima atualizao" para serem digitados. Isto ocorreu porque, na
fase do projeto, esses campos foram definidos com atributo de "no editvel" e as modificaes
ocorrero somente pelas movimentaes de entrada, sada e ajustes de estoque. Para executar esta
tarefa, foram definidos alguns processamentos.
As informaes do campo "Referncia tcnica" (campo do tipo memo) no so relevantes para o
nosso exemplo, podendo ser digitadas quaisquer informaes. Entretanto, para a entrada de
informaes em campos do tipo memo, o usurio poder posicionar o cursor no campo e digitar uma
quantidade imensa de caracteres. As teclas utilizadas para edio deste tipo de campo so as
mesmas exibidas na tabela que explanamos anteriormente com a diferena de que a tecla ENTER
ser utilizada para terminar o pargrafo digitado no campo e no para aceitar e mover o cursor para o
campo seguinte. Para passar para o prximo campo a tecla TAB pode ser utilizada.
416
Caso o micro do usurio final possuir um scanner ou qualquer outro dispositivo de captura de
imagens conectado, o usurio poder ainda digitalizar as imagens diretamente para o campo!
11.4.6.2 Retirando um arquivo do campo multimdia
Para retirar um arquivo que j esteja no campo multimdia, clique sobre o boto associado a este
campo e selecione a opo "Retirar mdia".
417
Figura 11.5
418
boto de cancelamento
11.4.7.2 Criando Grupos
O sistema de senhas da aplicao contm um nvel para agrupar usurios denominado Grupo.
Assim, cada usurio dever estar ligado a um grupo, "herdando" as permisses de acesso que
so atribudas para o grupo. Para a operao com grupos, clique na aba Grupos para que a
aplicao apresente a tela da figura 11.5 apresentada a seguir:
Figura 11.6
419
420
Figura 11.7
selecione o grupo ao qual o novo usurio ir pertencer. Lembre-se de que os usurios "herdam"
as permisses designadas ao grupo;
clique sobre o boto de incluso, que j conhecemos;
digite o nome do novo usurio no campo "Novo usurio";
421
Data - Informe uma data qualquer. bom lembrar que dever haver um registro na tabela de
indexadores com esta data, pois a validao deste campo a existncia de um registro com o valor
do ndice nesta data para que se possa efetuar o clculo do valor indexado.
Fornecedor - Para este campo, basta abrir a lista e selecionar o nome do fornecedor. Na fase do
projeto, definimos este campo para apresentar uma tabela estrangeira (lista externa). Para esta Nota
Fiscal, vamos inserir o fornecedor ATILA FABRIL LTDA. Observe que o campo Valor no pode ser
digitado. Na fase do projeto, definimos este campo como "no editvel" e criamos um processamento
para atualiz-lo com os valores dos itens da Nota Fiscal que sero digitados.
A primeira parte desta janela recebe os dados da Nota Fiscal propriamente dita e a segunda,
422
composta de um grid, se destina a receber os dados dos itens constantes desta Nota Fiscal.
Portanto, aps a digitao dos dados da Nota Fiscal, teremos que digitar os dados de seus itens
que, para exemplificar, podem ser os da tabela que aparece a seguir. Para iniciar a digitao dos
itens, basta clicar na primeira coluna (campo) da primeira linha do grid.
Cdigo
Quantidade
Valor
Borracha bicolor
500
1000
Borracha macia
500
800
200
4000
Caderno
100 fls
espiral
O primeiro campo, a exemplo do fornecedor que informamos para Nota Fiscal, deve ser
selecionado da lista. medida que os dados acima so digitados, alguns aspectos interessantes
podem ser observados:
o valor da Nota Fiscal vai sendo calculado e exibido no campo destinado para isto. Durante o
projeto, definimos um processamento para executar esta tarefa;
se, por ventura, a janela de produtos estiver aberta na tela e exibindo o item que est sendo
digitado, poderemos observar que a quantidade em estoque vai sendo atualizada com a adio da
quantidade do item que est sendo digitado.
Isto se deve aos processamentos que definimos na fase do projeto;
o dado "Valor total" no grid no um campo da tabela de itens da NF. Trata-se de uma frmula
que estabelecemos na fase do projeto que , automaticamente, atualizada quando o item digitado;
diversos registros so digitados para uma s Nota Fiscal, caracterizando o relacionamento 1- N
(um para N) que definimos na fase do projeto.
Para encerrar a digitao de Notas Fiscais, basta clicar sobre o boto de gravao e fechar a sua
janela.
423
na tabela. Selecione a opo Produtos a partir do menu e a tela da figura 11.8 aparecer:
Figura 11.8
As explicaes que veremos a seguir, para o arquivo de produtos, so vlidas para qualquer um
dos arquivos da aplicao.
Existem diversos botes inseridos na barra de ferramentas que podem ser utilizados como
recursos de operao. Na verdade, so atalhos para opes de menu , pois todos tm uma opo
correspondente no menu da aplicao. importante notar que alguns desses botes podero estar
habilitados ou desabilitados, dependendo da situao de operao.
424
Figura 11.9
Um boto de dois estgios existente na barra de ferramentas serve para alternar esses dois
modos de visualizao.
O operador do sistema poder, ainda, fazer uso da hot-key F9 para alternar a forma de
visualizao referida anteriormente.
Quando o referido boto exibido em estado normal, a visualizao tela a tela estar vigorando.
J quando aparece ligado (em baixo), aciona a visualizao em grade.
425
O operador do sistema poder, ainda, fazer uso do atalho CTRL-I para incluir novos registros na
tabela ativa.
O operador do sistema poder, ainda, fazer uso do atalho CTRL-G para grafar da mesma forma
como executada pelo boto acima mencionado. Para marcar mais de uma coluna na grade, clique
sobre uma coluna, retenha o boto e arraste o ponteiro do mouse para outras colunas adjacentes.
11.4.9.4 Boto de procura
Clique sobre o boto a seguir para procurar um registro na tabela ativa (ver tpico Procurando um
registro).
boto de procura de registros
O operador do sistema poder, ainda, fazer uso do atalho CTRL-P para procurar da mesma forma
como executada pelo boto acima mencionado.
11.4.9.5 Boto de filtragem e ordenao
Clique sobre o boto a seguir para visualizar somente um grupo de registros da tabela ativa no
presente momento, obedecendo a uma ordenao especfica, com base em quaisquer campos,
426
Outro mtodo para filtrar informaes em consultas ou janelas de dados (visualizadas na forma de
grid) a filtragem dinmica. Para utilizar esse mtodo, basta preencher o campo localizado sobre as
colunas do grid.
O operador do sistema poder, ainda, fazer uso da hot-key CTRL-F para filtrar ou ordenar da
mesma forma como executada pelo boto acima mencionado.
A barra de rolagem a seguir tem por finalidade efetuar a navegao dentro de uma tabela,
obedecendo-se a ordem estabelecida na lista que aparece ao lado dessa barra:
barra de navegao
A opo "A definir..." permite ao usurio estabelecer seu prprio critrio de ordenao. Ao clicar
sobre esta opo, a janela de ordenao de registros ser exibida, como mostrado na Figura 11.10,
para que sejam selecionados os campos que comandaro a ordenao.
427
Figura 11.10
O operador do sistema poder, ainda, fazer uso das hot-keys F5, F6, F7 e F8 para,
respectivamente, acessar o primeiro registro, registro anterior, registro seguinte e ltimo registro,
analogamente utilizao da barra de navegao.
428
429
Figura 11.11
430
Figura 11.12
Informe o nome pelo qual esta consulta ser identificada no construtor de consultas que aparece
na figura 11.11.
431
11.4.10.2.1.2 Tabelas
Selecione uma ou mais tabelas na lista Tabelas. Ao clicar sobre uma tabela, os seus campos so
exibidos na lista "Campos a mostrar".
11.4.10.2.1.3 Campos a mostrar
Clique sobre um ou mais campos da tabela selecionada, que deseja visualizar na consulta. Se
desejar exibir campos de outras tabelas, clique sobre as outras tabelas e, em seguida, sobre os seus
campos a serem inseridos na consulta.
11.4.10.2.1.4 Coluna avulsa
Utilize essa opo caso queira criar colunas extras (avulsas) em sua consulta, bastando fazer uso
das listas "Contedo da coluna" e "Ttulo para a coluna".
A lista "Funo agregada" contm as funes que fazem parte da linguagem SQL. So elas:
Mdia
Somar
Contar
Mnimo
Para que as informaes sejam extradas corretamente do banco de dados, o uso dessas funes
implica na utilizao do recurso de agrupamento a ser explicado mais adiante. Alm dessas funes
SQL, aparecem tambm nesta lista outras funes colocadas para flexibilizar a elaborao da nova
coluna, como Dia, Ms, Ano, Data e AnoMs.
432
Podemos utilizar este recurso para criar um registro de resumo para cada grupo definido. Por
exemplo, se voc agrupar os registros de sada de produtos por produto, ser exibido apenas um
registro por produto, contendo a totalizao de todas as suas sadas.
11.4.10.2.2.2 Ordenado por
O usurio poder ainda utilizar-se da opo "A definir...", mostrada na lista de ndices, para
estabelecer seu prprio critrio de ordenao. Ao clicar sobre esta opo, a janela de ordenao de
registros ser exibida para que sejam selecionados os campos que comandaro a ordenao.
11.4.10.2.3 Seleo
433
11.4.10.2.3.1 Os primeiros
Pode-se especificar que sejam exibidos somente os primeiros registros retornados por uma
consulta.
o nmero digitado poder ser tratado como quantidade absoluta de registros ou percentual,
dependendo da opo que for selecionada (Registros ou Porcento).
11.4.10.2.3.2 Seleo de registros/Unio de tabelas
Esta opo refere-se ao estabelecimento de uma condio para que os registros sejam exibidos
pela consulta, isto , somente os registros que atenderem condio informada faro parte da
consulta. Assim, poderemos criar grficos, somas de colunas e relatrios com um grupo especfico
de registros. Para estabelecer uma condio de filtragem, proceda do seguinte modo:
abra a lista "Nome do campo" para que sejam exibidos os nomes dos campos que fazem parte
da consulta;
Operando
Significado
434
igual a
<>
diferente de
>
maior que
>=
maior ou igual a
<
menor que
<=
menor ou igual a
LIKE
operador de padres
clique no campo Valor e informe o argumento que dever ser comparado com o valor contido no
campo selecionado (no utilize aspas para valores literais constantes).
At este ponto foi estabelecida apenas uma condio para a consulta. Para a criao de mais de
uma condio, clique sobre o boto intitulado Concatena, selecionando a seguir um dos operadores
E/OU, antes de iniciar a montagem do prximo critrio de seleo de registros. J a opo "Unir
tabelas" deve ser utilizada sempre que se desejar relacionar duas tabelas cujos campos devero ser
exibidos na consulta. Neste caso, o campo Valor ser transformado em uma lista que poder ser
aberta para a seleo de um campo a ser comparado, sempre com o operador de igualdade (=) com
o campo da primeira tabela selecionada.
Para gravar uma consulta, clique sobre o boto de gravao que j conhecemos.
O usurio final poder ainda utilizar a opo "Permitir que outros usurios visualizem esta
consulta" caso queira compartilhar com outros usurios as consultas por ele elaboradas.
435
marque as colunas que se deseja apagar, clicando sobre o seu ttulo e arrastando o mouse para
marcar mais de uma;
clique com o boto direito do mouse para que seja apresentado o menu da figura 11.13:
Figura 11.13
clique sobre a opo "Apagar colunas" para apagar as colunas que estiverem marcadas.
O operador do sistema poder, ainda, fazer uso do atalho CTRL-L para apagar as colunas da
mesma forma como executada pela opo de menu acima mencionada.
11.4.10.5Quebra na impresso de consultas (COPY)
Possibilidade de definir quebra ao imprimir qualquer consulta criada pelo usurio na aplicao
final, bem como definir totalizadores para cada nvel de quebra.
436
Figura 11.14
437
O usurio dever selecionar um ndice da lista ndices, clicar num dos operadores e, finalmente,
informar, em Contedo, o valor a ser localizado no campo.
Se o ndice for composto de mais de um campo, outras chaves de pesquisa se abriro para que
possam receber valores a pesquisar. Para iniciar a pesquisa, clique sobre o boto de confirmao. O
registro encontrado ser exibido na janela ativa. O boto a seguir tem por finalidade limpar e reiniciar
uma pesquisa.
Figura 11.15
Para montar um grfico da quantidade mnima de cada produto, deve-se proceder conforme se
segue:
2007 GAS Tecnologia
438
Figura 11.16
439
Figura 11.17
Altere os dados que julgar conveniente, como, por exemplo, tipo, ttulo, cores, etc. Quando
encontrar o aspecto desejado, clique sobre o boto de confirmao. Caso deseje restaurar a forma
original do grfico, basta clicar sobre o boto a seguir:
440
Um dilogo padro do Windows ser apresentado para solicitar um nome de arquivo sob o qual o
grfico deve ser gravado.
11.4.12.3Imprimindo um grfico
Da mesma forma, para imprimir a imagem do grfico na impressora padro do Windows, clique
sobre o boto de impresso que j exibimos neste captulo.
Captulo
XII
Captulo 12 - O GAS como ferramenta de desenvolvimento
442
12
12.1
12.1.1 DDMM
DDMM(ExpC)
Retorna True (-1) se a data especificada no argumento string ExpC, no formato Dia/Ms, vlida.
Exemplo:
If DDMM("01/08") Then
Print "Data vlida..."
End If
Data vlida...
12.1.2 DDMMAA
DDMMAA(ExpC)
Retorna True (-1) se a data especificada no argumento string ExpC, no formato Dia/Ms/ Ano,
vlida.
Exemplo:
If DDMMAA("01/08/00") Then
Print "Data vlida..."
End If
Data vlida...
443
12.1.3 Existe
Existe (ExpC)
Retorna True (-1) se o arquivo especificado por
ExpC existe no disco.
Exemplo:
Arquivo$ = "C:\APLIC\ESTOQUE\ESTOQUE.INI"
If Not Existe(Arquivo$) Then
Print "O arquivo "; Arquivo$; " no foi encontrado!"
End If
12.1.4 Extenso
Extenso(Valor[,NaoMoeda]
[,NomeSing][,NomePlur])
Retorna a frase, por extenso, correspondente a Valor. Se a flag NaoMoeda for passada como
True, Valor ser tratado como uma quantidade inteira qualquer, podendo serem agregadas palavras
para definir unidades, como, por exemplo, Habitantes, Peas, etc. Os parmetros opcionais
NomeSing e NomePlur correspondem ao nome da moeda corrente com que se deseja retornar a
frase.
12.1.5 GDV1
GDV1(ExpC)
Retorna o Dgito Verificador (DV), de mdulo 11, do argumento ExpC.
Exemplo:
x$="0002"
Print GDV1$(x$)
12.1.6 GDV2
GDV2(ExpC)
Retorna dois Dgitos Verificadores (DV), de mdulo 11, do argumento ExpC. Primeiramente,
calculado o primeiro dgito que incorporado ao argumento e, em seguida, calculado o segundo
dgito.
444
Exemplo:
x$="184173611"
Print GDV2$(x$)
12.1.7 GDvCb
GDvCb(ExpC)
Retorna um dgito verificador do argumento string ExpC. Esta funo deve ser utilizada para
padro EAN 8, EAN 13 ou UPC-A.
Exemplo:
x$ = "000000000001"
x$ = x$ + GDvCb(x$)
MsgBox "O nmero composto com o seu dgito verificador : " + x$
12.1.8 GravaNoIni
GravaNoIni(ExpC1, ExpC2, ExpC3, ExpC4)
Esta procedure executa a gravao de uma informao do tipo caractere no arquivo de
configurao (.INI) do GAS ou das aplicaes por ele geradas. O argumento ExpC1 contm o nome
da seo onde ser gravada a informao, sendo criada (entre colchetes) caso no exista. ExpC2
contm o nome do item que conter a informao (tambm criado, se no existir). ExpC3 contm a
informao a ser gravada e, finalmente, ExpC4 contm o nome completo (drive, diretrio e nome) do
arquivo .INI. Para gravar informaes numricas no arquivo, utilize a funo Str$( ) do VB no
argumento ExpC3.
Exemplo:
GravaNoIni ("Geral", "Dir", "C:\AP","C:\AP\ESTOQUE.INI")
GravaNoIni ("Geral", "Cor", Str$(15), "C:\AP\ESTOQUE.INI")
Resultado no arquivo .INI
[Geral]
Dir=C:\AP
Cor = 15
12.1.9 HaNaString
HaNaString(ExpN1, ExpC1, ExpC2, ExpN2)
Retorna a posio da primeira ocorrncia da expresso caractere ExpC2 dentro de ExpC1, a partir
da posio ExpN1. Se ExpN2 for passada com o valor True (-1), a pesquisa ser efetuada, caractere
a caractere, de ExpC2 independentemente da ordem das mesmas.
445
Exemplos:
Alvo$="Palavra"
Oque$="lavra"
Print HaNaString(1, Alvo$, Oque$, False)
3 'posio de "lavra" em "Palavra"
Agora,
Print HaNaString(1,Alvo$, Oque$, True)
2 'pesquisa caractere a caractere, na qual a letra "a" de "lara"
'foi encontrada na posio 2
12.1.10 LoadGasPicture
LoadGasPicture(ExpN)
Retorna o caminho e nome do arquivo, identificado no resource por ExpN, para onde a imagem foi
extrada.
12.1.11 LoadGasString
LoadGasPicture(ExpN)
Retorna o caminho e nome do arquivo, identificado no resource por ExpN, para onde a imagem foi
extrada.
12.1.12 LPad
LPad(ExpC1, ExpN, ExpC2)
Retorna a string em ExpC1 "completada" esquerda com o caractere passado em ExpC2,
forando um tamanho igual a ExpN.
Exemplo:
x$ = "Gas Tecnologia Ltda"
Print LPad$(x$, 40, "*")
********************Gas Tecnologia Ltda
12.1.13 MMAA
MMAA(ExpC)
446
Exemplo:
If MMAA("08/00") Then
Print "Data vlida..."
End If
Data vlida...
12.1.14 NMes
NMes(ExpC)
Retorna o nome do ms correspondente data especificada em ExpC.
Exemplo:
Print NMes$("01/08/00")
Agosto
12.1.15 NSem
NSem(ExpC)
Retorna o nome do dia da semana correspondente data especificada em ExpC.
Exemplo:
Print NSem$("01/08/00")
Tera
12.1.16 PegaIntDoIni
PegaIntDoIni(ExpC1, ExpC2, ExpN, ExpC3)
Esta funo retorna uma informao do tipo numrico (inteiro), que esteja gravada no arquivo de
configurao (.INI) do GAS ou das aplicaes por ele geradas. O argumento ExpC1 dever conter o
nome da seo existente no arquivo .INI, sempre includa entre colchetes. O argumento ExpC2
contm o nome do item cuja informao se deseja pegar. J o agumento ExpN contm o valor a ser
2007 GAS Tecnologia
447
assumido (default) caso o valor no seja recuperado e, finalmente, o argumento ExpC3 dever conter
o nome completo (drive, diretrio, nome) do arquivo .INI.
Exemplo:
12.1.17 PegaSequencia
PegaSequencia([ExpC1], ExpC2, ExpC3, V1, V2)
Esta funo serve para incrementar o valor de um campo do tipo seqencial em uma tabela. O
argumento ExpC1 opcional, contendo o nome do arquivo MDB. ExpC2 o nome da tabela que
contm o campo seqencial, enquanto ExpC3 o nome do campo seqencial. V1 o valor para
servir como default do campo e V2 o valor a ser utilizado para incrementar o campo.
12.1.18 PegaStrDoIni
PegaStrDoIni(ExpC1, ExpC2, ExpC3)
Esta funo retorna uma informao do tipo caractere, que esteja gravada no arquivo de
configurao (.INI) do GAS ou das aplicaes por ele geradas. O argumento ExpC1 dever conter o
nome da seo existente no arquivo .INI; o argumento ExpC2 contm o nome do item cuja
informao se deseja pegar e, finalmente, o argumento ExpC3 contm o nome completo (drive,
diretrio, nome) do arquivo .INI.
Exemplo:
Contedo do arquivo .INI
[Geral]
Nome da aplicao=ESTOQUE
Diretrio=C:\APLIC
etc...
Dim DirAplic As String
DirAplic$ = PegaStrDoIni("Geral", "Dir", "C:\AP\EST.INI")
Print DirAplic$
C:\AP
448
12.1.19 PTab
ExpC1.PTab( ExpC2, ArrV)
Esta funo executa uma pesquisa indexada no recordset especificado em ExpC1, utilizando o
ndice de nome ExpC2. Os argumentos a serem pesquisados so passados no arranjo ArrV, do tipo
variant. Caso seja encontrado o registro, esta funo retorna True, deixando o ponteiro no registro
encontrado. Se o registro no for encontrado, esta funo retorna False.
Exemplo:
i = Fornecedores.Ptab( "Cdigo", CodFor)
12.1.20 RAt
RAt(ExpC1, ExpC2)
Retorna a posio da ltima ocorrncia da expresso caractere ExpC2 dentro de ExpC1. Esta
funo semelhante funo InStr() do Visual Basic; porm, a posio pesquisada de trs para a
frente.
Exemplo:
Alvo$="Computador"
Oque$="o"
Print Rat(Alvo$, Oque$)
9
12.1.21 Retira
Retira (ExpC1, ExpC2, ExpN)
Retira (remove) todas as ocorrncias de ExpC2 dentro de ExpC1. Se a expresso ExpN for
passada com o valor True (-1), a remoo ser efetuada caractere a caractere de ExpC2.
Exemplo:
Alvo$="abacadabra"
Oque$="bac"
Print Retira$(Alvo$, Oque$, False)
aadabra 'removida a palavra "bac"
Agora,
449
12.1.22 RPad
RPad(ExpC1, ExpN, ExpC2)
Retorna a string ExpC1 "completada" direita com o caractere passado em ExpC2, forando um
tamanho igual a ExpN.
Exemplo:
12.1.23 Substitui
Substitui(ExpC1, ExpC2, ExpC3, ExpN)
Substitui todas as ocorrncias de ExpC2 em ExpC1 por ExpC3. Se o argumento ExpN for
passado como True (-1), a substituio ser feita caractere a caractere, ou seja, cada caractere de
ExpC2 ser substitudo pelo caractere correspondente em ExpC3. No existindo um caractere
correspondente em ExpC3, o caractere de ExpC2 ser removido, resultando numa string que poder
ser maior ou menor, dependendo dos argumentos.
Exemplo:
Alvo$="abacadabra"
Oque$="bac"
PeloQue$="***"
Print Substitui$(Alvo$, Oque$, PeloQue$, False)
a***adabra ' "bac" foi substitudo por "***"
Agora,
Print Substitui$(Alvo$, Oque$, PeloQue$, True)
*****d**r* ' a, b, c foram substudos por *
12.1.24 ValBrasil
ValBrasil(ExpC)
Esta funo til quando se quer pegar o valor numrico de uma string passada em ExpC, no
formato brasileiro, no aceitvel pela funo VAL() do Visual Basic, com vrgulas separando as
decimais e pontos separando os milhares.
Exemplo:
2007 GAS Tecnologia
450
Valor$="1.234,56"
Print ValBrasil(Valor$)
1234.56 ' retorna o valor numrico exato da expresso
12.1.25 VCGC
VCGC(ExpC)
Retorna True (-1) se o argumento passado em ExpC um nmero do Cadastro Geral de
Contribuintes (CGC vlido) ou False (0) se no o for. O argumento ExpC poder conter ou no,
pontos, barras, hfens, etc...
Exemplo:
CGC$="44.990.901/0001-41"
If VCGC(CGC$) Then
Print "O GCG informado invlido!
End If
O CGC informado invlido!
12.1.26 VDV1
VDV1(ExpC)
Retorna True (-1) se o DV (dgito verificador) de 1 dgito, mdulo 11, vlido para a expresso
ExpC. O argumento ExpC poder conter ou no, pontos, barras, hfens, etc..
Exemplo:
Numero$="0001-8"
If Not VDV1(Numero$) Then
Print "Nmero invlido!"
End If
Nmero invlido!
12.1.27 VDV2
VDV2(ExpC)
Retorna True (-1) se o DV (dgito verificador) de 2 dgitos, mdulo 11, vlido para a expresso
ExpC. O argumento ExpC poder conter ou no, pontos, barras, hfens, etc..
Exemplo:
451
Numero$="184.173.611-21"
If Not VDV2(Numero$) Then
Print "Nmero invlido!"
End If
Nmero invlido!
12.1.28 VDvCB
VDvCB(ExpC)
Retorna True (-1) se o DV (dgito verificador) vlido para a expresso string ExpC (padres EAN
8, EAN 13 ou UPC-A).
Exemplo:
x$ = "0000000000017"
If VDvCB(x$) Then
MsgBox "O cdigo vlido!"
Else
MsgBox "O cdigo est incorreto!"
End If
12.1.29 VHORA
VHora(ExpC)
Retorna True (-1) se a hora passada em ExpC representa uma hora vlida.
Exemplo:
Hora$="10:25:60"
If Not VHora(Hora$) Then
Print "Hora ilegal!"
End If
Hora ilegal!
12.1.30 VUF
VUf(ExpC)
Retorna True (-1) se ExpC representa uma Unidade da Federao vlida. Esta funo no case
sensitive, ou seja, minsculas so tratadas como se fossem maisculas e vice-versa.
Exemplo:
Estado$="DF"
If Not VUf(Estado$) Then
Print "Estado invlido!"
452
End If
Estado invlido!
12.2
Variveis de sistema
Nos programas fontes da aplicao so criadas algumas variveis de sistema para controlar
alguns aspectos da sua operao. Essas variveis podem ser testadas pelo projetista, para auxiliar a
tomada de decises, dentro de fragmentos de programas, validaes, condies, etc que tenha
escrito. Algumas tm abrangncia Global (so vistas em qualquer ponto da aplicao), enquanto
outras tm escopo a nvel do formulrio, onde so criadas, funcionando como se fossem
propriedades do form. Outras, ainda, so vistas apenas nas rotinas onde so criadas (abrangncia
Local).
Para minimizar a possibilidade de conflito com variveis que o projetista possa vir a criar, as
variveis criadas pelo GAS dentro dos programas fontes so prefixadas por vg (Varivel do GAS) .
A seguir, esto listadas as variveis mais importantes:
453
12.2.1.6 vgDBAtual
Do tipo numrico, essa varivel corresponde ao nmero do banco de dados atualmente em uso,
caso mais de um banco de dados esteja sendo manipulado pela aplicao.
12.2.1.7 vgDirDb
Do tipo caractere, essa varivel contm o nome do diretrio onde existe o arquivo de dados MDB
ou o nome do servidor SQL ou Oracle utilizado. Esta varivel, caso necessrio, j conter a
contra-barra "\" agregada ao final de seu contedo. Poder, ainda, tornar-se um arranjo se,
porventura, existirem mais de um banco de dados MDB ou servidores SQL e Oracle integrados
aplicao.
12.2.1.8 vgDirExe
Do tipo caractere, essa varivel contm o diretrio onde reside o programa executvel (.EXE) da
aplicao. Esta varivel j tem a contra-barra ("\") agregada ao final de seu contedo.
12.2.1.9 vgDB
Do tipo database, essa varivel armazena um objeto do tipo database relativo ao banco de dados
manipulado pela aplicao.
12.2.1.10vgNomeIni
Do tipo caractere, essa varivel armazena o nome do arquivo de inicializao (.INI) da aplicao.
12.2.1.11vgNomeSistema
Do tipo caractere, essa varivel armazena o nome (ttulo da aplicao).
12.2.1.12vgProjetista
Do tipo caractere, essa varivel contm o nome do projetista.
12.2.1.13vgBotoesOk
Do tipo booleano ou flag, essa varivel tem o valor True (verdadeiro) se os botes da barra j
tiverem sido acertados (habilitados ou desabilitados) para atender situao do momento.
12.2.1.14vgAtencao
Do tipo caractere, essa varivel contm a string "ATENO!" para ser utilizada em ttulos de
caixas de mensagens.
454
12.2.1.15vgImpConv
Do tipo booleano ou flag, essa varivel tem o valor True se a impressora padro do Windows
uma impressora convencional (no um fax, um modem, etc.) para impresso de consultas.
12.2.1.16vgCtHint
Do tipo control, essa varivel armazena um objeto do tipo control e contm o controle por sobre o
qual o mouse est sendo movimentado. utilizada para identificar qual "dica" ser exibida.
12.2.1.17vgBarraFerr
Do tipo booleano, essa varivel assume True se a barra de ferramentas est visvel na aplicao.
12.2.1.18vgAjudaAtiva
Do tipo booleano, essa varivel contm True se a ajuda ativa deve ser exibida.
12.2.1.19vgNomeEstacao
Do tipo caractere, se em ambiente de rede, essa varivel contm o nome da estao onde a
aplicao est rodando.
12.2.1.20vgRsPwGrupo
Do tipo recordset, essa varivel armazena um objeto do tipo recordset criado a partir da tabela de
grupos de usurios no plano de senhas.
12.2.1.21vgRsPwUsuario
Do tipo recordset, essa varivel armazena um objeto do tipo recordset criado a partir da tabela de
usurios no plano de senhas.
12.2.1.22vgRsPwTabelas
Do tipo recordset, essa varivel armazena um objeto do tipo recordset criado a partir da tabela que
armazena os nomes das tabelas e permisses dentro do plano de senhas.
12.2.1.23vgTipoAcrescDesc
Do tipo numrico (inteiro), essa varivel corresponde ao tipo de acrscimo/desconto (Valor ou
Porcentagem) aplicado ao cupom fiscal ou item corrente. Deve-se lembrar, no entanto, que o
acrscimo s aplicvel ao cupom fiscal. O aplicativo final no s controlar o emprego dessa
varivel para o cupom ou item, visto que ela aplicvel a ambos, como tambm ir inicializar (zerar)
seu contedo para cada cupom/item em particular.
455
12.2.1.24vgAcrescDesc
Do tipo numrico (inteiro), essa varivel identifica se o cupom fiscal corrente ser acrescido ou
descontado em seu valor original (Acrscimo ou Desconto). O aplicativo final ir inicializar (zerar)
seu contedo para cada cupom em particular.
12.2.1.25vgValorAcrescDesc
Do tipo numrico (preciso dupla), essa varivel corresponde, independente de estar sendo
representado em Valor ou Porcentagem, ao valor do acrscimo/desconto utilizado para o cupom
fiscal ou item corrente. O aplicativo final no s controlar o emprego dessa varivel para o cupom ou
item, visto que ela aplicvel a ambos, como tambm ir inicializar (zerar) seu contedo para cada
cupom/item em particular.
12.2.1.26vgQtdItem
Do tipo numrico (inteiro), essa varivel corresponde quantidade do item corrente. O aplicativo
final ir inicializar (zerar) seu contedo para cada item em particular.
12.2.1.27vgValorTroco
Do tipo numrico (preciso dupla), essa varivel corresponde ao valor de troco verificado no
pagamento do cupom fiscal corrente. Se a Ao Forma Pgto for programada pelo projetista, esta
ser executada primeiramente para, s ento, o contedo da varivel em questo ser inicializado
(zerado).
12.2.1.28vgValorSubtotal
Do tipo numrico (preciso dupla), essa varivel corresponde ao valor de subtotal (a pagar)
verificado para o cupom fiscal corrente, desconsiderando o eventual desconto/acrscimo
estabelecido. Aps a insero de todos os itens no referido cupom, o valor do subtotal no mais se
altera at que o cupom fiscal seja fechado. O aplicativo final ir inicializar (zerar) seu contedo para
cada cupom em particular.
12.2.1.29vgNumeroCupom
Do tipo caractere (string), essa varivel corresponde ao nmero do cupom fiscal corrente, tendo
seu valor resgatado a partir da impressora fiscal na abertura do cupom fiscal. Seu valor inicializado
na abertura de quaisquer mdulos tipo cupom fiscal, caso haja algum cupom aberto. No entanto,
somente para a terceira forma de compatibilizao com a Emisso de Cupom Fiscal a ser descrita
mais adiante nesse captulo, seu valor ser limpo (zerado). Caso haja cupons fiscais abertos, seu
valor ser reinicializado com o nmero do cupom aberto no momento.
12.2.1.30vgTotalPago
Do tipo numrico (preciso dupla), essa varivel corresponde ao valor total pago at o momento
para o cupom fiscal corrente, totalizando-se o pagamento efetuado por intermdio de cada uma das
formas de pagamento utilizadas. O aplicativo final ir inicializar (zerar) seu contedo para cada
cupom em particular.
456
12.2.1.31vgItemAtual
Do tipo numrico (inteiro), essa varivel corresponde ao nmero do item corrente, dentre aqueles
j utilizados para o cupom fiscal atualmente aberto. O aplicativo final ir inicializar (zerar) seu
contedo para cada cupom em particular.
12.2.1.32vgMoeda
Do tipo caractere, essa varivel corresponde ao smbolo da moeda corrente contida internamente
na impressora fiscal, sem, no entanto, englobar o $. Veja o exemplo de seu contedo: R, US, etc.
Seu valor ser resgatado a partir da impressora fiscal na abertura de quaisquer mdulos tipo cupom
fiscal. Cabe ressaltar que a vgMoeda s estar disponvel se for utilizada, em qualquer mdulo do
sistema, a picture box de simulao de fita de impressora fiscal (propriedade Retorno ECF = Sim),
independente do modo de compatibilizao com ECF adotado.
ACAO_NAVEGANDO
ACAO_INCLUINDO
ACAO_EDITANDO
ACAO_EXCLUINDO
ACAO_EM_PROGRESSO
12.2.2.2 vgCaracteristica
Do tipo numrico, essa varivel assume valores que identificam a caracterstica de um form da
aplicao. Para facilitar o teste desses valores, foram criadas algumas constantes fceis de
memorizar:
F_COMUM
F_DADOS
457
F_COM_PAI
F_COM_FILHO
F_COM_PAI_E_FILHO
F_GRAFICO
F_BROWSE
F_RELATORIO
F_VARIAVE
12.2.2.3 vgTipo
Do tipo numrico, essa varivel assume valores que identificam o tipo do formulrio ao qual se
deseja referir. Para facilitar o teste desses valores, foram criadas algumas constantes fceis de
memorizar:
TP_COMUM
TP_TABELA
TP_PARAMETROS
TP_GRAFICO
TP_CONFGRAF
TP_BROWSE
TP_INFODB
TP_SELEQUERY
TP_RELATORIO
TP_SENHAS
TP_HELP
TP_CALC
TP_CALE
458
TP_VARIAVEL
12.2.2.4 vgUltimoFiltro
Do tipo caractere, essa varivel contm a expresso de filtragem que foi utilizada por ltimo dentro
deste formulrio.
12.2.2.5 vgUltimoTabIndex
Do tipo numrico, essa varivel contm o maior nmero da propriedade tabindex existente no
formulrio dentre os controles possveis de receberem dados digitados.
12.2.2.6 vgFormID
Do tipo numrico, essa varivel contm o nmero identificador deste formulrio.
12.2.2.7 vgTb
Do tipo recordset, essa varivel contm um objeto recordset do tipo table (tabela) que contm a
tabela bsica vinculada ao formulrio.
12.2.2.8 vgTbFiltro
Do tipo recordset, essa varivel contm um objeto recordset do tipo dynaset que contm a
tabela bsica vinculada ao formulrio.
12.2.2.9 vgTemInclusao
Do tipo booleano, essa varivel contm True se permitida a incluso de registros neste
formulrio e, conseqentemente, False se no.
12.2.2.10vgTemExclusao
Do tipo booleano, essa varivel contm True se permitida a excluso de registros neste
formulrio e, conseqentemente, False se no.
12.2.2.11vgTemProcura
Do tipo booleano, essa varivel contm True se permitida a pesquisa de registros neste
formulrio e, conseqentemente, False se no.
12.2.2.12vgTemFiltro
Do tipo booleano, essa varivel contm True se permitida a filtragem de registros neste
formulrio e, conseqentemente, False se no.
459
12.2.2.13vgTemAlteracao
Do tipo booleano, essa varivel contm True se permitida a alterao de registros neste
formulrio e, conseqentemente, False se no.
12.2.2.14vgTemCondicoesEsp
Do tipo booleano , essa varivel contm True se tem, pelo menos, uma condio especial (para
incluir, alterar ou excluir registros) neste formulrio e, conseqentemente, False se no.
12.2.2.15vgEmBrowse
Do tipo booleano, essa varivel contm True se o formulrio atual estiver sendo visualizado em
uma grade e, conseqentmente, False se estiver sendo visualizado em modo tela a tela.
12.2.2.16vgCpRel???
As variveis que iniciam com este prefixo so variveis que armazenam os contedos dos
campos de relacionamento com o formulrio pai. Os caracteres "???" so substitudos pelos nomes
dos respectivos campos de relacionamentos e seus tipos tambm variam de acordo com os tipos
desses campos.
12.2.2.17vgRegLancado
Do tipo booleano , essa varivel contm True se o registro corrente, que est sendo mostrado na
janela de dados, foi criado por um lanamento (no foi digitado).
Date + 30 * vgNParc
12.2.3.2 vgCodLan
Do tipo numrico, essa varivel criada em todos os mdulos que geram lanamentos e contm
uma estrutura de controle do lanamento.
460
12.3
Figura 12.1
Campo
461
Valor
Nmero
3.452
Valor
1.500,00
Data
01/08/00
Parcelas
Vendedor
PEDRO
INT~LAN
00000001
Por intermdio da sada de uma Nota Fiscal, desejamos gerar, na tabela de Contas a Pagar e
Receber, dois lanamentos: um deles lanando um pagamento da comisso do vendedor e um
outro lanando o valor recebido em 3 parcelas. Note que so DOIS lanamentos distintos em uma
mesma tabela e, um deles, com mltiplos registros na tabela-alvo (3 no nosso exemplo).
Aps a sada da Nota Fiscal acima, a nossa tabela de Contas a Pagar e a Receber ficaria
conforme exibido na tabela a seguir:
Data
Not
Valor
HIST.
CD-LAN
01/08/00
15,00
Comiss
048-0000 0001-001
01/08/00
500,00
NF 3452
048-0000
001
01/09/00
500,00
NF 3452
048-0000-0001-001002
0001-001-
462
01/10/00
500,00
NF 3452
048-0000
003
0001-001-
Observe que os valores disponibilizados nos campos (colunas Nat, Valor e Histrico) dependem
do que foi definido, na fase do projeto, para esses lanamentos. Os registros gerados por um
lanamento podem ser modificados ou excludos pelo usurio diretamente da tela definida para a
tabela e isto pode no ser desejvel. Caso queira impedir essas manutenes, a dica utilizar a
varivel de sistema vgRegLancado para montar uma condio especial de alterao ou excluso do
registro. Esta expresso poder ser definida por meio da interface de montagem de expresses (a
mesma utilizada para estabelecer condies, validaes, etc.) para ficar assim:
Not VgRegLancado
Outro aspecto que merece ser abordado para lanamentos que as modificaes efetuadas
sobre registros gerados por lanamentos podero se perder, caso a tabela geradora desses
lanamentos seja modificada, pois quando h uma alteraco na tabela de origem do lanamento, os
campos da tabela alvo do lanamento so refeitos.
12.4
463
}
...
' RELACOES * * * *
RELACAO Notas fiscais/Itens
{
Base Notas fiscais
Estrangeira Itens da nf
Atributo ESQUERDA + ATUALIZA CASCATA + EXCLUI CASCATA
Campo Nmero da nf / Nmero da nf
}
...
' INTEGRIDADES * * * *
RELACAO PW~Usuarios em PW~Grupo
{
Base PW~Grupos
Estrangeira PW~Usuarios
Atributo ESQUERDA + ATUALIZA CASCATA + EXCLUI CASCATA
Campo Nome / Grupo
}
}
464
via Query Analyzer ou SQL Plus, ferramentas respectivamente do SQL Server e Oracle. Tal script,
responsvel por toda criao da estrutura de um banco SQL Server ou esquema Oracle (tabelas,
campos, etc) exemplificado abaixo, possui semelhana aos arquivos .DEF.
/* Criao de default */
/*------------------------------------------------------------*/
CREATE DEFAULT defZero AS 0
GO
...
/*------------------------------------------------------------*/
/* Criao de Tabelas, Indices e Atribuio de Default */
/* Produtos em estoque */
/*------------------------------------------------------------*/
CREATE TABLE [Produtos em estoque] (
Cdigo varchar (8) NOT NULL,
[Descrio do produto] varchar (30) NOT NULL,
Unidade varchar (2) NOT NULL,
[Referncia tcnica] text NOT NULL,
[Quantidade em estoque] int NOT NULL,
[Quantidade mnima] smallint NOT NULL,
[Preo de custo] decimal (12, 2) NOT NULL,
[Preo indexado] decimal (10, 2) NOT NULL,
[Lucro bruto] decimal (6, 2) NOT NULL,
Perecvel bit NOT NULL,
[Localizao do produto] smallint NOT NULL,
[Foto do produto] image NULL,
[Data ltima atualizao] datetime NULL,
[quick~rs] timestamp NULL,
CONSTRAINT Cdigo PRIMARY KEY CLUSTERED
(
2007 GAS Tecnologia
465
Cdigo
) WITH FILLFACTOR = 90
)
GO
...
/*------------------------------------------------------------*/
/* Criao de triggers */
/*------------------------------------------------------------*/
CREATE TRIGGER Fornecedores_UPD ON Fornecedores FOR UPDATE AS
IF UPDATE([Cdigo do fornecedor])
BEGIN
IF (SELECT COUNT(*) FROM deleted INNER JOIN [Notas fiscais] ON
deleted.[Cdigo do fornecedor] = [Notas fiscais].[Cdigo do
fornecedor]) > 0
BEGIN
SET NOCOUNT ON
UPDATE [Notas fiscais]
SET [Notas fiscais].[Cdigo do fornecedor] = (SELECT
inserted.[Cdigo do fornecedor] FROM inserted INNER JOIN
Fornecedores ON inserted.[Cdigo do fornecedor] =
Fornecedores.[Cdigo do fornecedor])
FROM deleted INNER JOIN [Notas fiscais] ON deleted.[Cdigo do
fornecedor] = [Notas fiscais].[Cdigo do fornecedor]
END
END
GO
...
12.5
Se existir plano de senhas no projeto, o GAS gera nas aplicaes um mdulo de manuteno de
senhas que permite o cadastramento de novos Grupos, desde que o usurio que esteja operando a
aplicao pertena ao grupo denominado ADMINISTRAO. A tela da figura 12.2 permite o
cadastramento e personalizao dos grupos.
466
Figura 12.2
Usurios, permisses para cada uma das tabelas existentes e visualizao para cada item de
menu da aplicao podem tambm ser cadastrados. Esse ltimo recurso permite ao projetista
elaborar aplicativos com um elevado grau de personalizao, pois um grupo de usurios denominado
FINANCEIRO, por exemplo, no apenas ter restrio de acesso, mas tambm de visualizao aos
itens de menu, relacionando-se apenas com os itens pertinentes ao seu grupo.
visualizao de dados;
modificao de dados;
incluso de registros;
excluso de registros.
467
Figura 12.3
Figura 12.4
468
12.6
Raciocine que as empresas no fazem duplicao de cadastros e que, com certeza, a sua
aplicao ter de estar integrada a algumas tabelas j criadas e usadas por outras aplicaes
(fornecedores, clientes, produtos, etc.). Para voc criar mais campos nessas tabelas, vai ter que
justificar muito bem. mais ou menos o que acontecia nas empresas, utilizando bancos de dados de
mainframes, antes do boom dos microcomputadores. Aplicaes desenvolvidas para esses
ambientes esto em um patamar mais elevado, significando que, no momento de negociar o seu
desenvolvimento, so bastante mais caras.
Quando uma empresa decide pela utilizao de um banco corporativo, ela deve inicialmente
adquirir o engine do banco de dados e comprar as licenas necessrias para que os micros da rede
possam acess-lo. Isso quer dizer que, o engine instalado em apenas um micro da rede, intitulado
servidor, que deve utilizar sistema operacional Windows NT 4.0/2000. As outras estaes que iro
acessar este servidor apenas devem receber a informao de onde se encontra o servidor. Numa
aplicao do GAS, isto acontece quando ela executada pela primeira vez. Esta informao
armazenada em um arquivo .INI que se encontra no diretrio da aplicao. Todas as aplicaes
desenvolvidas na empresa devero estar utilizando o mesmo servidor, onde diversos bancos de
dados podero existir.
Do ponto de vista do desenvolvimento de aplicao com o GAS para SQL Server e Oracle, a
filosofia a mesma empregada para aplicaes para o Jet Engine (MDB). A diferena bsica que,
nesses bancos de dados corporativos, o projetista dever trabalhar, provavelmente, com vrios
bancos de dados para buscar informaes a serem utilizadas pela sua aplicao. Para que o GAS
469
possa gerar aplicaes para esses bancos de dados, basta escolher o tipo na janela de definio da
estrutura do mesmo. Um benefcio imediato dessa facilidade que o projetista vai poder fazer a sua
aplicao utilizando o Jet Engine (MDB) na sua prpria casa, escritrio ou mesmo, em separado, na
prpria empresa do cliente.
Poder testar o prottipo do seu sistema, apresent-lo a quem for de interesse e, quando tudo
estiver de acordo, vai precisar apenas ajustar essa opo para gerar para o SQL Server ou Oracle.
Diferentemente de aplicaes que utilizam o Jet Engine (MDB), o banco de dados das aplicaes
geradas para SQL Server e Oracle no ser criado automaticamente. O GAS gerar um script com
instrues SQL a ser passado ao DBA que o executar no servidor. Normalmente, o DBA cria o
banco de dados diretamente nesse servidor e, utilizando as ferramentas SQL Query Analyser (SQL
Server) ou SQL Plus (Oracle), executa o script gerado pelo GAS para criar as tabelas, ndices e
triggers para este banco de dados. O DBA dever estar ciente de que esse script que o GAS
gera,contm instrues para apagar tabelas, ndices e triggers existentes e recri-las com estrutura
vazia. Isto significa que, sempre que o script for executado, um banco de dados vazio ser criado e
todos os dados se perdero! Nos casos de modificao de estrutura, onde se pretende preservar
dados existentes, o projetista dever marcar a opo para que o GAS gere os fontes do Programa
Adaptador que, ao ser compilado e executado, ir comparar a nova estrutura com a estrutura
existente no servidor. O prprio adaptador gerar um script (ADAPTA.SQL ) que, de maneira
semelhante para criao de banco de dados, dever ser executado pelo DBA. Neste caso,
altamente recomendvel que se faa um backup do banco de dados antes de executar o script, para
que se possa retornar a uma situao anterior, caso necessrio. Aplicaes SQL Server ou Oracle
geradas pelo GAS exigem ADO 2.5 e respectivamente o SQL Server 7.0 SP2 e Oracle 8.1.x.
12.7
Os controles utilizados pelo GAS dentro dos programas criados so diversos, dependendo da
situao e do que o JET, SQL Server e Oracle permitem:
em algumas situaes, todo o banco de dados dever ser bloqueado ao acesso de outros
usurios (aberto em modo exclusivo), como no caso de execuo da rotina de reparao do banco
de dados ou em caso de existir processamento simultneo em diversas tabelas ao mesmo tempo.
Esta a forma mais restritiva de sua utilizao.
na maioria dos casos, os bloqueios de acesso a outros usurios ocorrem em uma tabela inteira,
o que menos restritivo. As tabelas podem ser abertas com proibio para leitura, impedindo que
seus dados sejam examinados por outros usurios ou, ainda, com proibio somente para gravao
de dados nesta tabela. Os bloqueios de tabelas inteiras ocorrem normalmente quando se faz
470
a forma menos restritiva o bloqueio a nvel de registro, que ocorre quando um registro
individual esteja sofrendo um processo de atualizao qualquer como na edio. Deixar que dois
usurios atualizem um mesmo registro ao mesmo tempo pode redundar em desastre. Portanto, as
rotinas de edio de registros devem estar providas das instrues para bloquear o registro em
edio ao acesso de outros usurios. O JET, SQL Server e Oracle fazem o tratamento de dados em
"pginas" (normalmente de 2.048 bytes) de cada vez. O resultado disto que, salvo em rarssimas
ocasies em que o tamanho do registro tenha exatamente 2K, esses sistemas de gerenciamento de
banco de dados no bloqueiam individualmente um registro e sim TODOS os registros que estejam
em uma mesma pgina. Por exemplo, uma tabela que tenha um tamanho de registro igual a 230
bytes, teriam 9 registros bloqueados de uma s vez. Quando uma pgina bloqueada por um
usurio, outros usurios no podem modificar quaisquer registros dessa pgina (embora possam ler
esses registros). Para o bloqueio de "pginas" de dados, esses sistemas de gerenciamento de banco
de dados permitem dois tipos de bloqueio:
o bloqueio pessimista, que mantm a pgina bloqueada a partir do momento em que o mtodo
EDIT (edio) invocado at o momento em que gravado no banco de dados pelo mtodo
UPDATE (atualizao).
o bloqueio otimista, utilizado nos programas criados pelo GAS, que bloqueia a pgina de dados
somente durante a execuo do mtodo UPDATE (atualizao).
12.8
O campo utilizado para o armazenamento dessas mdias do tipo BLOb (Binary Large Object) e
o controle gCpMM cuida, automaticamente, da sua manipulao. Por exemplo, quando o usurio
selecionar a opo de abertura do menu do controle, o mesmo disponibilizar a mdia e utilizar o
programa aplicativo que estiver associado ao mesmo para abrir e executar essa mdia. Alm disso,
se a mdia for do tipo editvel (.DOC, .RTF, .XLS, etc.), quando o aplicativo for fechado, o controle
verificar, automaticamente, se a mdia foi modificada e habilitar os botes de gravao e
cancelamento para o usurio gravar no banco de dados, caso deseje, a nova mdia modificada pelo
aplicativo associado. Por esta considervel razo, todos os bancos de dados manipulados por
471
aplicaes geradas pelo GAS-98 que utilizavam campos do tipo imagem tero de ser convertidos
para o novo formato. A Gas Tecnologia disponibiliza um pequeno utilitrio, que instalado em
conjunto com o GAS, que torna esta operao bastante simples. s executar este conversor
(CONVIMG.EXE), antes de qualquer adaptao no banco de dados, fornecendo as informaes
solicitadas para que o aplicativo cuide de toda a transformao do banco de dados.
se a mdia a ser inserida no campo for do tipo BMP, WMF ou DIB (que so os tipos que o Visual
Basic aceita gravar no banco de dados), o campo ser, automaticamente, gravado no formato
utilizado pelo Visual Basic como se estivesse vinculado a um controle Data Control. Isto assegura a
compatibilidade com o Crystal Reports;
os demais tipos de imagens (GIF, JPG, TIF, etc.), bem como arquivos de qualquer outro tipo de
mdia ou extenso, sero inseridos no formato proprietrio do GAS;
o projetista que j converteu o banco de dados para o GAS e estiver tendo problemas com
relatrios do Crystal Reports, poder utilizar o referido utilitrio conversor para retornar as imagens
ao formato anterior (GAS-98). Neste caso, dentro de um mesmo campo multimdia, em registros
diferentes, no poder haver outro tipo de mdia gravado, alm de imagens;
se o projetista desejar assegurar que o seu usurio s carregar mdias do tipo BMP, WMF ou
DIB na aplicao, a propriedade OnlyImageBMP dever ser ajustada para True (o default False)
durante a fase de projeto.
472
foi criada a propriedade MediaName (read only) para permitir obter, programaticamente, o nome
da mdia que est gravada no campo. Observe que o nome da mdia retornado sem nenhum path
anexado. Veja um exemplo de utilizao abaixo:
foi criado o mtodo ExportMedia para exportar, programaticamente, o arquivo da mdia gravada
no campo. Este mtodo tem um parmetro opcional, que o nome completo (path+nome) do
arquivo a ser exportado. Se nenhum nome for passado como parmetro, a mdia exportada com o
nome original, dentro do diretrio temporrio configurado no sistema. Se passado um nome de
arquivo para exportao, este no necessita, obrigatoriamente, ser o mesmo que esteja gravado no
campo. Porm, deve ser tomado cuidado especial com a extenso que designa o tipo de arquivo que
est gravado no campo. Por exemplo, se existir um arquivo BMP gravado no campo multimdia e for
passado um parmetro para exportar tal arquivo como "C:\ARQUIVO.AVI", o arquivo ser exportado
corretamente, mas com extenso que no corresponde corretamente ao seu tipo.
Uma boa prtica obter o nome da mdia gravada por meio da propriedade MediaName e apurar
a extenso correta ou, se a troca de nome no for importante, anexar um path vlido de destino
frente do nome. Veja um exemplo de utilizao abaixo:
MMCampo(0).ExportMedia("C:\Arquivos Exportados\" +
MMCampo(0).MediaName)
12.9
Cabe, ainda, ressaltar que os nomes das tabelas citados nas explanaes abaixo so meramente
elucidativos, devendo o projetista, no entanto, seguir a filosofia de trabalho aqui estabelecida.
473
12.9.1 A primeira...
A primeira forma de compatibilizao de aplicaes geradas com o GAS com a Emisso de
Cupom Fiscal consiste em disponibilizar, como mostra a figura 12.6 abaixo, as definies de
Vendas, Itens de Venda e Pagamento em uma estrutura nica.
Figura 12.6
Para utilizar dessa primeira forma, o projetista dever guiar-se pelos procedimentos a seguir:
Na definio das tabelas auxiliares da tabela de Vendas, caso o projetista queira, porventura,
disponibilizar uma combobox na qual os dados exibidos (Nome e CGC/CPF, por exemplo) se diferem
dos dados a serem capturados (Cdigo), o projetista no dever se esquecer de selecionar a opo
"Forar relacionamento" com a tabela de Clientes. J na definio das tabelas auxiliares do grid de
Itens de Venda, o projetista dever "Forar relacionamento" com a tabela de Produtos em Estoque,
permitindo, assim, um perfeito decremento da quantidade de itens emitidos de seu respectivo
registro na tabela de Produtos em estoque. Agora, na definio das tabelas auxiliares do grid de
Pagamento, caso o projetista queira, porventura, disponibilizar uma combobox na qual os dados
exibidos (Descrio da forma de pgto, por exemplo) se diferem dos dados a serem capturados
(Cdigo), o projetista no dever se esquecer de selecionar a opo "Forar relacionamento" com a
tabela de Formas de pagamento.
Com o intuito de proporcionar maior flexibilidade ao projetista, foram criadas diversas variveis
de sistema especialmente para a Emisso de Cupom Fiscal, as quais sero de grande utilidade para
a definio dos lanamentos e processos dos mdulos em questo. Reporte-se ao tpico Variveis
de sistema, presente no Captulo 12 - O GAS como ferramenta de desenvolvimento para obter
maiores informaes.
A partir de ento, formata-se a tela de entrada de dados para a referida estrutura. Cabe ressaltar
que o nico vnculo da tabela de Vendas com a Emisso de Cupom Fiscal ocorre por intermdio da
474
opo "Cupom Fiscal" anteriormente citada, enquanto que os grids de Itens de Venda e Pagamento
so vinculados por intermdio de diversas propriedades presentes na janela de Ferramentas da tela.
Se, porventura, no forem definidos contedos para as propriedades "Tipo desconto item" e
"Valor desconto item" do grupo "ECF - Venda item", o operador poder acionar a hot-key SHIFT-F12,
durante a insero dos itens de venda, para conceder um eventual desconto para o item corrente,
sendo exibida uma tela como a da figura 12.7 a seguir. O desconto poder ser alterado a qualquer
instante. No entanto, uma vez emitido o item de venda, a modificao do desconto no mais poder
ser executada para o referido item.
Figura 12.7
O operador que estiver em qualquer mdulo vinculado Emisso de Cupom Fiscal por meio
dessa forma de compatibilizao, poder, a qualquer momento, efetuar a abertura de gaveta,
pressionando a hot-key CTRL-F12.
475
O projetista poder, ainda, incluir uma picturebox na tela de entrada de dados para que aquela
possa espelhar a impresso do cupom fiscal pela impressora fiscal. Para isso, basta ajustar a
propriedade "Retorno da ECF" da referida picturebox para 1 - Sim. Para reproduzir melhor a
impresso do cupom fiscal na referida picturebox, deve-se dar preferncia s fontes monoespaadas,
como a Courier New, e dimensionar sua largura para 50 posies, largura essa que tambm
utilizada nos cupons fiscais emitidos pela Bematech e que so compatveis com os da Yanco.
Concludos os passos acima relacionados, bastar que sejam inseridas as rotinas de apoio
ECF na rvore do projeto, de forma a facilitar o processo de manuteno da impressora fiscal pelos
usurios do sistema.
12.9.2 A segunda...
A segunda forma de compatibilizao de aplicaes geradas com o GAS com a Emisso de
Cupom Fiscal consiste em disponibilizar, como mostra a figura 12.8 abaixo, as definies de Vendas
e Itens de Venda em uma estrutura nica, habilitando um controle interno, via F12, para a efetivao
dos pagamentos.
O projetista poder utilizar-se dessa forma de compatibilizao para adequar o sistema gerado
TEF - Transferncia Eletrnica de Fundos Discada. Reporte-se para isso ao tpico Implementando
TEF - Transferncia Eletrnica de Fundos Discada, presente mais adiante neste captulo.
Figura 12.8
Para utilizar dessa segunda forma, o projetista dever guiar-se pelos procedimentos a seguir:
Definidas as estruturas das tabelas referentes Vendas e Itens de Venda na definio da
estrutura do banco de dados, deve-se inserir na rvore do projeto a janela de dados correspondente
tabela de Vendas e uma tabela em grid correspondente de Itens de Venda. O nico diferencial
na definio desses mdulos em referncia aos convencionais que deve-se marcar a opo
"Cupom Fiscal" na aba Geral da janela de dados em questo (Vendas), estabelecendo devidamente
todas as tabelas auxiliares, lanamentos e processos necessrios.
Na definio das tabelas auxiliares da tabela de Vendas, caso o projetista queira, porventura,
disponibilizar uma combobox na qual os dados exibidos (Nome e CGC/CPF, por exemplo) se diferem
dos dados a serem capturados (Cdigo), o projetista no dever se esquecer de selecionar a opo
"Forar relacionamento" com a tabela de Clientes. J na definio das tabelas auxiliares do grid de
Itens de Venda, o projetista dever "Forar relacionamento" com a tabela de Produtos em Estoque,
permitindo, assim, um perfeito decremento da quantidade de itens emitidos de seu respectivo
476
Com o intuito de proporcionar maior flexibilidade ao projetista, foram criadas diversas variveis
de sistema especialmente para a Emisso de Cupom Fiscal, as quais sero de grande utilidade para
a definio dos lanamentos e processos dos mdulos em questo. Reporte-se ao tpico Variveis
de sistema, presente no Captulo 12- O GAS como ferramenta de desenvolvimento para obter
maiores informaes.
A partir de ento, formata-se a tela de entrada de dados para a referida estrutura. Cabe ressaltar
que o nico vnculo da tabela de Vendas com a Emisso de Cupom Fiscal ocorre por intermdio da
opo "Cupom Fiscal" anteriormente citada, enquanto que o grid de Itens de Venda vinculado por
intermdio de diversas propriedades presentes na janela de Ferramentas da tela.
Formatada a tela da tabela de Vendas e inserido o grid necessrio tabela de Itens de Venda, o
projetista poder reparar que, ao selecionar o referido grid, aparecero dois novos conjuntos de
propriedades: "ECF - Venda item" e "ECF - Forma pgto", devendo, nessa segunda forma de
compatibilizao com a Emisso de Cupom Fiscal, ambos serem definidos por meio do grid Itens de
Venda.
Figura 12.9
Ao ser acionada a hot-key F12 no grid de Itens de Venda na aplicao final, surgir uma tela
como a da figura 12.10 a seguir para que o operador do sistema possa definir o pagamento dos itens
de venda, sendo apresentadas as descries de formas de pagamento, a partir da tabela de Formas
de pagamento, por meio da listbox presente nessa tela. Tambm devero ser informados, por
477
das formas de
Figura 12.10
Como supracitado, apresentada a tela acima, a hot-key SHIFT-F12 poder ser reutilizada pelo
operador do sistema para que seja concedido eventual acrscimo/desconto para o cupom fiscal
corrente, devendo ser selecionado seu tipo por intermdio das telas subseqentes quela acima
apresentada. O acrscimo/ desconto poder ser alterado a qualquer instante. No entanto, uma vez
emitida a primeira forma de pagamento e seu respectivo valor, a modificao do acrscimo/desconto
no mais poder ser executada para o cupom corrente.
O operador que estiver em qualquer mdulo vinculado Emisso de Cupom Fiscal por meio
dessa forma de compatibilizao, poder, a qualquer momento, efetuar a abertura de gaveta,
pressionando a hot-key CTRL-F12.
O projetista poder, ainda, incluir uma picturebox na tela de entrada de dados para que aquela
possa espelhar a impresso do cupom fiscal pela impressora fiscal. Para isso, basta ajustar a
propriedade "Retorno da ECF" da referida picturebox para 1 - Sim. Para reproduzir melhor a
impresso do cupom fiscal na referida picturebox, deve-se dar preferncia s fontes monoespaadas,
como a Courier New, e dimensionar sua largura para 50 posies, largura essa que tambm
utilizada nos cupons fiscais emitidos pela Bematech e que so compatveis com os da Yanco.
Concludos os passos acima relacionados, bastar que sejam inseridas as rotinas de apoio ECF na
rvore do projeto, de forma a facilitar o processo de manuteno da impressora fiscal pelos usurios
do sistema.
12.9.3 A terceira
A terceira forma de compatibilizao de aplicaes geradas com o GAS com a Emisso de
Cupom Fiscal consiste em disponibilizar, como mostra a figura 12.11 abaixo, um processo
prdefinido para efetuar toda essa tarefa.
478
O projetista poder utilizar-se dessa forma de compatibilizao para adequar o sistema gerado
TEF - Transferncia Eletrnica de Fundos Discada. Reporte-se para isso ao tpico Implementando
TEF - Transferncia Eletrnica de Fundos Discada, presente mais adiante neste captulo.
Figura 12.11
Para utilizar dessa terceira forma, o projetista dever guiar-se pelos procedimentos a seguir:
Definidas as estruturas das tabelas referentes Vendas e Itens de Venda na definio da
estrutura do banco de dados, deve-se inserir na rvore do projeto o processo pr-definido
responsvel por tal compatibilizao. O nico diferencial na definio desse mdulo em referncia
aos processos pr-definidos convencionais que deve-se marcar a opo "Cupom Fiscal" na aba
Geral do mdulo em questo, fato que proporcionar a possibilidade de se definir lanamentos e
processos a partir do denominado cabealho do processo prdefinido. Assim sendo, deve-se
estabelecer devidamente no s as tabelas auxiliares, mas tambm todos os lanamentos e
processamentos necessrios, tais como Lanamento da Venda, Lanamento do item, Processo de
atualizao do total da venda, etc.
Com o intuito de proporcionar maior flexibilidade ao projetista, foram criadas diversas variveis
de sistema especialmente para a Emisso de Cupom Fiscal, as quais sero de grande utilidade para
a definio dos lanamentos e processos do mdulo em questo, como mostra as telas das figuras
12.12, 12.13 e 12.14 a seguir. Reporte-se ao tpico Variveis de sistema, presente no Captulo 12 O GAS como ferramenta de desenvolvimento para obter maiores informaes.
Figura 12.12
Figura 12.13
Figura 12.14
A partir de ento, formata-se a tela do referido processo pr-definido, como mostra a tela da
figura 12.11, viabilizando a entrada de dados para a Emisso de Cupom Fiscal. Cabe ressaltar que o
vnculo do processo pr-definido em questo com a ECF ocorre por intermdio de diversas
479
propriedades presentes na janela de Ferramentas da tela e por meio da opo "Cupom Fiscal"
anteriormente citada.
No decorrer da formatao da tela, dever ser inserido pelo menos um gMask para que sejam
definidos os dois novos conjuntos de propriedades: "ECF - Venda item" e "ECF - Forma pgto". Como
poderemos constatar mais adiante, de forma a auxiliar no estabelecimento das tabelas auxiliares do
mdulo em questo, sugerimos a definio da propriedade Apelido para o gMask principal.
Sugerimos, ainda, ao projetista que insira gMasks adicionais contendo frmulas para representarem
variveis importantes ao operador, tais como Quantidade dos itens, Subtotal, etc.
Figura 12.15
Se, porventura, no for definido contedo para a propriedade "Qde do item", tambm do grupo
"ECF - Venda Item", o operador poder acionar a hot-key * (asterisco), no gMask principal na
aplicao final, aps a digitao da referida quantidade, indicando, assim, a quantidade dos itens de
venda.
Ao ser acionada a hot-key F12, ainda no gMask principal na aplicao final, surgir uma tela
480
como a da figura 12.16 a seguir para que o operador do sistema possa definir o pagamento dos itens
de venda, sendo apresentadas as descries de formas de pagamento, a partir da tabela de Formas
de pagamento, por meio da listbox presente nessa tela. Tambm devero ser informados, por
intermdio do campo Valor do pagamento, os valores referentes a cada uma das formas de
pagamento utilizadas.
Figura 12.16
Como supracitado, apresentada a tela acima, a hot-key SHIFT-F12 poder ser reutilizada pelo
operador do sistema para que seja concedido eventual acrscimo/desconto para o cupom fiscal
corrente, devendo ser selecionado seu tipo por intermdio das telas subseqentes quela acima
apresentada. O acrscimo/ desconto poder ser alterado a qualquer instante. No entanto, uma vez
emitida a primeira forma de pagamento e seu respectivo valor, a modificao do acrscimo/desconto
no mais poder ser executada para o cupom corrente.
O operador que estiver em qualquer mdulo vinculado Emisso de Cupom Fiscal por meio
dessa forma de compatibilizao, poder, a qualquer momento, efetuar a abertura de gaveta,
pressionando a hot-key CTRL-F12.
O projetista poder, ainda, incluir uma picturebox na tela de entrada de dados para que aquela
possa espelhar a impresso do cupom fiscal pela impressora fiscal. Para isso, basta ajustar a
propriedade "Retorno da ECF" da referida picturebox para 1 - Sim. Para reproduzir melhor a
impresso do cupom fiscal na referida picturebox, deve-se dar preferncia s fontes monoespaadas,
como a Courier New, e dimensionar sua largura para 50 posies, largura essa que tambm
utilizada nos cupons fiscais emitidos pela Bematech e que so compatveis com os da Yanco.
Caso queira, o projetista poder fazer uso das propriedades Ao Cancela Cupom e Ao
Cancela Item (consulte o Captulo 13 - Propriedades dos objetos de tela), prevendo, por exemplo, o
cancelamento de cupons e itens de venda no prprio banco de dados, respectivamente, dentre
outras providncias que o projetista julgar necessrias.
Aps a formatao da tela em questo, o projetista dever retornar, ento, definio das
481
tabelas auxiliares deste mdulo para que possa selecionar a opo "Forar relacionamento" do
gMask (Apelido) para a tabela de Produtos em estoque (Cdigo), permitindo, assim, um perfeito
decremento da quantidade de itens emitidos de seu respectivo registro na tabela de Produtos em
estoque.
Concludos os passos acima relacionados, bastar que sejam inseridas as rotinas de apoio
ECF na rvore do projeto, de forma a facilitar o processo de manuteno da impressora fiscal pelos
usurios do sistema.
12.9.4 A quarta...
A quarta forma de compatibilizao de aplicaes geradas com o GAS com a Emisso de Cupom
Fiscal consiste em disponibilizar, como mostram as figuras 12.17 e 12.18 abaixo, oramentos para
que sejam emitidos, s ento e por intermdio de relatrios, os cupons fiscais.
Figura 12.17
Figura 12.18
Figura 12.19
Nessa quarta forma, o projetista poder adotar os mais diversos caminhos. Estaremos expondo o
mais completo de se utilizar nessa quarta forma de compatibilizao com a Emisso de Cupom
Fiscal, cabendo ao projetista avaliar os mdulos que julga imprescindveis. Assim, o projetista dever
guiar-se pelos procedimentos a seguir:
Definidas as estruturas das tabelas referentes aos Oramentos, Itens do Oramento, Pagamento
do Oramento, Vendas, Itens de Venda e Pagamento da Venda na definio da estrutura do banco
de dados, deve-se inserir na rvore do projeto as janelas de dados correspondentes s tabelas de
Oramentos e Vendas, bem como as tabelas em grid correspondentes s demais tabelas aqui
envolvidas. O projetista dever definir tais mdulos de modo convencional, no devendo selecionar a
2007 GAS Tecnologia
482
opo "Cupom Fiscal" para os mdulos acima relacionados, como ocorre com as primeiras formas de
compatibilizao com a Emisso de Cupom Fiscal. Alm disso, dever estabelecer devidamente
todas as tabelas auxiliares, lanamentos e processos necessrios.
Cabe, aqui, uma relevante ressalva ao que acima expomos: fica a critrio do projetista fazer uso
ou no de um processo pr-definido para converter os oramentos em vendas efetivas. Visto que o
GAS cede total abertura para o desenvolvimento de seus aplicativos, o projetista pode gerar
dependncia entre as estruturas de Oramentos e Vendas. Para exemplificar, o projetista poderia
converter automaticamente os oramentos em vendas efetivas por intermdio de lanamentos e
processos definidos diretamente nos referidos mdulos (abas Lanamentos e Processos,
respectivamente), ficando a emisso do cupom fiscal, depois de incluso o referido oramento (e,
portanto, criada a venda efetiva), a cargo do operador do sistema, bastando para isso acessar o
mdulo de emisso de cupom fiscal. Compare a figura 12.17 com a 12.18 e repare que a primeira
reflete parte do processo aqui ressaltado.
Caso o projetista no queira fazer uso de processos pr-definidos para converter os Oramentos
em Vendas, utilizando de lanamentos e processos definidos diretamente nos referidos mdulos
(abas Lanamentos e Processos, respectivamente), o projetista dever "Forar relacionamento" com
a tabela de Produtos em Estoque, na definio das tabelas auxiliares do grid de Itens do Oramento,
permitindo, assim, o correto decremento da quantidade de itens emitidos de seu respectivo registro
na tabela de Produtos em estoque.
483
Com o intuito de proporcionar maior flexibilidade ao projetista, foram criadas diversas variveis
de sistema especialmente para a Emisso de Cupom Fiscal, as quais sero de grande utilidade para
a definio dos lanamentos e processos dos mdulos em questo. Reporte-se ao tpico Variveis
de sistema, presente no Captulo 12 - O GAS como ferramenta de desenvolvimento para
obter maiores informaes.
A partir de ento, formata-se a tela de entrada de dados para as referidas estruturas. Cabe
ressaltar que tais mdulos no tm quaisquer vnculos com a Emisso de Cupom Fiscal. Como
descreveremos mais adiante, o projetista dever disponibilizar relatrios e sub-relatrios, fazendo uso
de diversas propriedades presentes na janela de Ferramentas da tela, para proporcionar a
compatibilizao do aplicativo final com a Emisso de Cupom Fiscal.
484
projetista poder, ainda, habilitar o processo pr-definido para alterar o campo (flag) Convertido em
venda da tabela de Oramentos para que, dessa forma, mantenha-se o controle necessrio sobre a
referida converso.
Figura 12.21
Figura 12.22
Figura 12.23
Alm dos parmetros acima especificados, o projetista dever estabelecer, na aba Opes do
mdulo em questo, uma condio para que, por intermdio da combobox disponibilizada durante a
formatao da tela, somente os oramentos selecionados sejam convertidos em vendas efetivas.
Para efetuar tal processo, basta clicar sobre o boto extensor (com reticncias) do campo "Condio
para processar o registro". Na tela de montagem da expresso, o campo Campo dever ser
preenchido com o campo da tabela bsica que representa o nmero do oramento (em nosso caso,
Orcamento![Nmero do oramento]), enquanto que no campo "Segundo operando" dever ser
selecionado o apelido dado combobox disponibilizada na tela (em nosso caso,
Numero_do_orcamento), complementando com o Operador = (igual).
Abaixo deste mdulo, devero ser inseridos dois outros processos pr-definidos que serviro
para que os Itens do Oramento e Pagamento do Oramento sejam convertidos. Da mesma forma
como o item anterior, o projetista dever estabelecer todas as informaes necessrias, inclusive as
tabelas auxiliares, lanamentos e processos para os mdulos em questo, como mostram as figuras
12.24, 12.25, 12.26, 12.27, 12.28 e 12.29 a seguir:
Figura 12.24
Figura 12.25
Figura 12.26
485
Figura 12.27
Figura 12.28
Figura 12.29
Acessando a aba Opes de cada um dos mdulos em questo, o projetista dever estabelecer
a expresso que define a ligao dos mesmos com o processo pr-definido pai, selecionando os
devidos campos que se encontram nas listas "Cps do filho" e "Cps do pai", como mostram as figuras
12.30 e 12.31 abaixo.
Figura 12.30
Figura 12.31
Figura 12.32
Figura 12.33
486
Durante a formatao do relatrio principal, devero ser inseridos apenas dois subrelatrios, por
intermdio do boto apresentado a seguir, presente na tela de Ferramentas de relatrio. Inseridos os
sub-relatrios necessrios, o projetista poder reparar que, ao selecionar qualquer um dos
sub-relatrios, aparecero dois novos conjuntos de propriedades: "ECF - Venda item" e "ECF Forma pgto", cada um deles definidos por subrelatrios diferentes.
BOTO
Concludos os passos acima relacionados, bastar que sejam inseridas as rotinas de apoio
ECF na rvore do projeto, de forma a facilitar o processo de manuteno da impressora fiscal pelos
usurios do sistema.
487
Para utilizar-se da TEF Discada, tanto em tempo de projeto como no aplicativo final gerado, o
projetista dever fazer uso, ou mesmo necessitar por diversas vezes, dos gerenciadores padro
para TEF Discada, fornecidos pelas operadoras de crdito. Informaes a esse respeito, podero ser
obtidas junto quelas operadoras, bem como informaes de instalao e utilizao. Para
implementar a TEF Discada, o projetista dever primeiramente utilizar-se da propriedade
"TEF/Cheque Eletrnico", que indicar se a forma de pagamento necessitar ou no de
comunicao com os gerenciadores padro. O segundo passo para habilitar a utilizao da TEF
Discada a insero do mdulo "Configuraes para TEF" na rvore do projeto, mdulo o qual
abordaremos mais adiante.
A indicao da propriedade em questo poder ser efetuada por intermdio, por exemplo, de um
campo da tabela Formas de pagamento, funo, constante ou varivel. Reporte-se ao Captulo 13 Propriedades dos Objetos de Tela para obter maiores informaes sobre a propriedade em
questo. Em nosso exemplo, como mostra a figura 12.34, acresceremos o campo TEF Cheque
eletrnico na tabela de Formas de pagamento.
Figura 12.34
Uma vez que o operador j poder determinar quais formas de pagamento faro comunicao
com os gerenciadores padro, essa comunicao ser habilitada automaticamente, no aplicativo final
gerado, quando selecionada uma dessas formas de pagamento, como mostrado na figura 12.35 a
seguir.
Figura 12.35
Figura 12.36
Figura 12.37
Aberta a interface do gerenciador padro, o operador ter acesso a todas as funes operacionais
do mesmo, ficando a cargo do gerenciador a comunicao com a operadora de crdito.
488
Cabe ressaltar que a forma de pagamento Cheque eletrnico funciona apenas como consulta,
no impedindo que, mesmo no caso de uma resposta negativa para o cheque em questo, o
operador d continuidade venda em andamento.
Conforme exigncia das administradoras de crdito para compatibilizao com TEF, o aplicativo
final gerado se responsabilizar pela exibio de toda e qualquer mensagem de retorno do
gerenciador padro utilizado, sendo que, em algumas das vezes, deixar a mensagem em exibio
por no mnimo 5 segundos, dependendo do tipo e status da transao realizada. O mdulo "
Configuraes para TEF", citado anteriormente, viabilizar o acesso s configuraes
administrativas do gerenciador padro, permitindo incluir, excluir, acessar e configurar esses
gerenciadores, como mostra a tela da figura 12.38.
Figura 12.38
Figura 12.39
489
12.10.7 Leitura X
Este mdulo permite ao operador da aplicao final imprimir o relatrio "X", cuja funo principal
a de gerar um parecer exato do movimento dirio da impressora at o momento em que emitido.
490
12.10.8 Reduo Z
Este mdulo permite ao operador da aplicao final emitir um relatrio "Z", cuja funo principal
a de gerar um parecer do movimento dirio da impressora at o momento em que emitido, alm de
efetuar a gravao efetiva de todos os totalizadores na memria no voltil.
12.10.9 Sangria
Este mdulo permite ao operador da aplicao final retirar quantias do caixa, efetuando, para isso,
a abertura de gaveta automaticamente.
12.10.10Suprimentos
Este mdulo permite ao operador da aplicao final inserir quantias no caixa para que possam
servir de troco, etc, efetuando, para isso, a abertura de gaveta automaticamente.
12.10.11Cancela item
Este mdulo permite ao operador da aplicao final cancelar os ltimos 100 itens impressos do
cupom fiscal corrente, sendo 0 (zero) o ltimo item vendido, como mostra a tela da figura 12.40 a
seguir.
Figura 12.40
12.10.12Cancela cupom
Este mdulo permite ao operador da aplicao final cancelar exclusivamente o atual ou ltimo
cupom emitido, sendo imprescindvel que o operador abra (disponha visualmente), na aplicao final,
o cupom fiscal a ser cancelado. Um outro cancelamento s poder ser solicitado aps a emisso de
um outro cupom.
Captulo
XIII
Captulo 13 - Propriedades dos objetos de tela
492
13
13.1
Algumas propriedades podem ser ajustadas diretamente na prpria lista. Outras possuem um
boto extensor marcado com reticncias (...) que pode ser utilizado para ativar algum dilogo padro,
como, por exemplo, para seleo de fontes, cores ou mesmo para ativar o Editor de Programas do
GAS, usado para escrever alguma funo a ser integrada ao cdigo fonte a ser gerado.
493
acionada antes da execuo dos procedimentos normais gerados pelo GAS. Algumas
propriedades do objeto gMask so dependentes da propriedade Tipo de dado; por isso, algumas
podero no estar disponveis em determinado momento. O mesmo pode acontecer com relao ao
objeto Painel, quando este for utilizado como fundo da tela, sobre o qual os demais controles so
colocados.
Lista de propriedades
Propriedade
Descrio
Ao aps alterao
Ao aps excluso
Ao aps incluso
Ao Cancela Cupom
494
Ao Cancela Item
Ao Change
Ao Forma Pgto
Ao FormActivate
Ao Formload
Ao FormResize
Ao FormUnload
Ao GotFocus
495
Ao KeyDown
Ao KeyPress
Ao no Clique
Ao PrepBotoes
Ao Reposition
Ao ltimo campo
Acrscimo/Desconto
Alinhamento
Altura
Altura da etiqueta
Altura da linha
496
ngulo
Aparncia
Apelido
Auto ajuste
Avano da barra
Avano do boto
BD estrangeiro
Campo
497
Campo a capturar
Campo a mostrar
Caracter esquerda
Chanfro externo
Chanfro interno
Cdigo do item
Coluna atual
Condio alterar
498
Condio excluir
Condio impresso
Condio incluir
Contorno
Cor da borda
Esta propriedade tem por finalidade designar uma cor para ser utilizada
na borda do objeto.
Cor da sombra
Cor do contorno
Cor do enchimento
Esta propriedade serve para designar uma cor a ser utilizada para
encher a rea interna do objeto. Esta propriedade s ser aplicada se a
propriedade Enchimento tiver um valor diferente de Transparente.
Cor do fundo
Esta propriedade serve para designar uma cor a ser utilizada para
encher o fundo do objeto (backcolor).
Cor do ttulo
Esta propriedade serve para designar uma cor a ser utilizada no texto do
ttulo do objeto.
499
Esta propriedade serve para designar uma cor a ser utilizada para
encher o formato do ttulo do objeto, quando o objeto gMask contiver o
cursor (foco). Esta propriedade no oferecer qualquer efeito se a
propriedade Enchimento tiver valor definido com Transparente ou se a
propriedade Ttulo no tiver sido definida.
Esta propriedade serve para designar uma cor a ser utilizada para
encher o formato do ttulo do objeto, quando o objeto gMask no contiver o
cursor (foco). Esta propriedade no oferecerqualquer efeito se a
propriedade Enchimento tiver valor definido com Transparente ou se a
propriedade Ttulo no tiver sido definida.
Venda item
Descrio forma de
pgto
Direo
Distncia carreiras
Distncia colunas
500
Duplicatas
Editar em grade
Editvel
Enchimento
Esquerda
Estilo
Estilo da borda
Exibir textura
Expande figura
Expandir
501
Expresso
Extensor
Figura
Desativado
Figura em baixo
Figura iluminado
502
Figura transparente
Filtro
Filtro inicial
Fonte
Fonte do ttulo
Logotipo
Formato
503
Frmula
Esta propriedade deve ser preenchida com uma expresso que retorne
um valor caracter a ser exibido no objeto. Normalmente, esta propriedade
serve para mostrar resultados de clculos que envolvam campos das
tabelas. No caso do objeto imagem, somente campos do tipo multimdia
podero ser disponibilizados.
Grupo
Imprimir
Inicializar
Item do grupo
Junta separadores
Largura
Largura coluna
Largura da borda
Largura da etiqueta
Largura do chanfro
504
Largura logotipo
Limpar campo
Lista\Pesquisa
Lista de opes
Margem esquerda
Margem horizontal
Margem superior
Margem vertical
Mscara
Mensagem final
505
Mensagem inicial
Mensagem
promocional
Mensagem validao
Modal
Nome do controle
Omitir se igual
506
Ordem
Ordem de impresso
Ordem do tab
Orientao
Permitir repetio
507
Pos mx p/ dados
Posio
Posio do ttulo
Pr-validao
Qde de abas
Qde de carreiras
Qde de colunas
Qde do item
508
Retorno da ECF
Saltar pgina
Salvar filtro
Separador esq
Separador topo
Situao tributria
Tabela
509
Tabela estrangeira
Tamanho da sombra
Tamanho do papel
Tamanho mximo
TEF / Cheque
eletrnico
Texto de ajuda
Textura
Tipo
510
Tipo acrsc/desc
Tipo da borda
objeto,
inclusive
formulrio,
Tipo de dado
Tipo de tributo
Ttulo
Ttulo da coluna
Ttulo logotipo
Topo
Totalizador
511
Transparente
Validao
Valor acrsc/desc
Valor inicial
Valor mximo
512
Valor mnimo
Visvel
Visualizar em grade
Captulo
XIV
Captulo 14 - Tutoriais
514
14
Captulo 14 - Tutoriais
14.1
Tutorial Mysql
14.1.1 Introduo
Este breve tutorial apresenta passo-a-passo as definies para o projeto exemplo
"Estoque" que permitem que o mesmo use adequadamente o banco de dados MySQL.
Para todos os passos so utilizadas as ferramentas bsicas que acompanham o banco de
dados.
14.1.2 O que o banco de dados MySQL
14.1.2.1 Viso geral
O MySQL se tornou o mais popular banco de dados open source do mundo porque possui
consistncia, alta performance, confiabilidade e fcil de usar. Atualmente usado em mais
de 6 milhes de instalaes em todos os continentes ( inclusive na Antrtica ), que vo desde
instalaes em grandes corporaes a especficas aplicaes embarcadas. Alm disso, o
MySQL se tornou a escolha de uma nova gerao de aplicaes, que utilizam o modelo LAMP (
Linux, Apache, MySQL, PHP ).
O MySQL funciona em mais de 20 plataformas, incluindo Linux, Windows, HP-UX, AIX,
Captulo 14 - Tutoriais
515
516
Rolar a pgina e localizar os trechos como abaixo e clicar no link "Pick a mirror"
correspondente a sua plataforma operacional;
Captulo 14 - Tutoriais
517
518
Captulo 14 - Tutoriais
519
520
Captulo 14 - Tutoriais
521
522
Captulo 14 - Tutoriais
523
524
Captulo 14 - Tutoriais
525
526
Captulo 14 - Tutoriais
527
528
Captulo 14 - Tutoriais
529
530
Captulo 14 - Tutoriais
531
532
Captulo 14 - Tutoriais
533
534
Captulo 14 - Tutoriais
535
536
Captulo 14 - Tutoriais
537
538
Captulo 14 - Tutoriais
539
540
Captulo 14 - Tutoriais
541
542
Captulo 14 - Tutoriais
543
544
Captulo 14 - Tutoriais
545
546
Na estrutura do banco de dados, marque o tipo "MySQL" para que seja criado o
script de gerao do banco e as rotinas adequadas para a manipulao de seus
dados;
Captulo 14 - Tutoriais
547
548
Captulo 14 - Tutoriais
549
550
Captulo 14 - Tutoriais
551
552
Captulo 14 - Tutoriais
553
554
Se por algum motivo, desejar criar o banco atravs do Script, seguem os procedimentos:
Captulo 14 - Tutoriais
555
556
Captulo 14 - Tutoriais
557
558
Captulo 14 - Tutoriais
559
560
Captulo 14 - Tutoriais
561
562
14.2
Tutorial Firebird
14.2.1 Introduo
Este breve tutorial apresenta passo-a-passo as definies para o projeto exemplo "Estoque" que
permitem que o mesmo use adequadamente o banco de dados Firebird.
Para todos os passos so utilizadas as ferramentas bsicas que acompanham o banco de dados.
Captulo 14 - Tutoriais
563
imediata no crculo de programadores, a primeira verso 1.0. Quase que totalmente ainda compatvel com sua
origem, estando actualmente em sua verso 1.5, com muitas novidades. A verso 2.0 em fase de produo ainda,
dever trazer muitas inovaes, j est se falando at em uma verso 3.0 que hoje tem o codinome Vulcan, cujas
caracter sticas j ento seria de um super banco de dados, seu maior diferencial ainda se baseia na gratuidade, o
banco free em todos os sentidos: no h limitaes de uso, e seu suporte amplamente discutido em listas na
internet, o que facilita enormemente a obteno de ajuda tcnica. O produto se mostrou bastante seguro,
suportando sistemas com dezenas de usurios simultneos e bases de dados acima de 2GB de tamanho.
Fonte: http://pt.wikipedia.org/wiki/Firebird_(servidor_de_base_de_dados) (15/05/2007)
O Firebird derivado do cdigo do Borland InterBase 6.0. Ele tem o cdigo aberto e no possui licena dupla,
portanto voc pode utiliz-lo em qualquer tipo de aplicao, seja ela comercial ou no, sem pagar nada por isso totalmente GRATUITO!
A tecnologia usada no Firebird tem mais de 20 anos, fazendo com que ele seja um produto muito maduro e est
vel.
Fonte: http://www.firebirdnews.org/docs/fb2min_ptbr.html (15/05/2007)
Firebird 1.5 um SGBD SQL completo. poderoso e leve ao mesmo tempo, com mnima
necessidade de configurao e administrao. Atende igualmente bem a aplicaes de um nico
usurio e a aplicaes corporativas. Um simples servidor Firebird pode manipular mltiplas bases de
dados independentes, cada uma com mltiplas conexes clientes. E o melhor de tudo:
verdadeiramente Open Source, assim, livre de qualquer exigncia de licenas, mesmo para uso
comercial.
Fonte:
http://www.comunidade-firebird.org/cflp/html_docs/001_FacSheet/Firebird%201_5%20Factsheet.htm
(15/05/2007)
564
Captulo 14 - Tutoriais
565
566
Captulo 14 - Tutoriais
567
568
Captulo 14 - Tutoriais
569
570
Captulo 14 - Tutoriais
571
572
Captulo 14 - Tutoriais
573
574
Captulo 14 - Tutoriais
575
576
Captulo 14 - Tutoriais
577
578
Na estrutura do banco de dados, marque o tipo "Firebird" para que seja criado o
script de gerao do banco e as rotinas adequadas para a manipulao de seus
dados;
Captulo 14 - Tutoriais
579
580
Captulo 14 - Tutoriais
581
582
Captulo 14 - Tutoriais
583
584
Voc deve configurar a tela de acesso ao banco de dados, como segue abaixo:
Captulo 14 - Tutoriais
585
Captulo
XV
Captulo 15 - Extra
Captulo 15 - Extra
15
Captulo 15 - Extra
15.1
587
A Gas Tecnologia no pode ignorar que a maioria das pessoas que trabalhavam e ainda
trabalham com bancos de dados no ambiente MS-DOS, mesmo que no tenham tido a oportunidade
de um contato com a ferramenta GAS Pro para este ambiente (o que ainda est em tempo!), tiveram,
pelo menos, bastante contato com a linguagem CA-Clipper da empresa Computer Associates,
detentora de uma imensa faixa do mercado de aplicaes para banco de dados no ambiente
MS-DOS. De repente, aparecem novas tecnologias e o mercado tende para as aplicaes que rodem
no ambiente grfico do Windows. Todo mundo quer conhecer e ter o que h de mais moderno no
mercado e, neste momento, nos vem a necessidade premente do profissional se atualizar para
atender demanda e, s vezes, vem-nos aquela sensao de orfandade, impotncia e frustrao de
esquecer tudo o que sabemos e comear de novo, somente com a experincia!
Mas s a experincia j muita coisa! No h por que se desesperar e desanimar! A informtica
assim mesmo! Enquanto, por um lado, mostra-se fascinante e envolvente, por outro, o seu
dinamismo no permite acomodaes. O profissional tem de estar atento s tendncias impostas por
quem tem este poder e prosseguir sempre, se quiser continuar competitivo... Este tpico dedicado
aos profissionais que vieram da linguagem CA-Clipper e que no possuem experincia na
linguagem Visual Basic. A GAS Informtica espera que, de alguma forma, essas informaes
possam auxiliar aos usurios do GAS na migrao de suas aplicaes para o ambiente Windows.
No nosso intuito, nem seria possvel, dissecar aqui os detalhes das duas linguagens.
Sabemos, no entanto, que a maior dificuldade em se assimilar uma segunda linguagem saber o
que, nesta nova linguagem, corresponde ao que conhecemos e dominamos na primeira. S assim
fica um pouco mais fcil! exatamente isto o que pretendemos com este tpico: mostrar as
principais diferenas, chamando a ateno do projetista para os aspectos cujos detalhes podero
buscar diretamente nos manuais e na ajuda on-line do Visual Basic sem perder muito tempo. Nas
explicaes que se seguem, a sigla VB ser aplicada ao Visual Basic e a sigla CLIPPER ser
aplicada ao CA-Clipper. As palavras que aparecerem sublinhadas devem ser utilizadas para procurar
os tpicos correspondentes nos manuais do VB ou mesmo na sua ajuda on-line (boto LOCALIZAR
). Alguns termos tcnicos utilizados no somente neste tpico mas em todo o manual podem estar
definidos no Glossrio existente neste captulo.
588
Captulo 15 - Extra
589
memo do VB so armazenados diretamente, como um campo normal de uma tabela. O que seriam
os arquivos NTX so armazenados como objetos do tipo ndice. Outros objetos so tambm
armazenados nos arquivos MDB do VB, como, por exemplo, queries e relaes.
15.1.8 Operadores
Os operadores em VB funcionam da mesma maneira que no CLIPPER, ressaltando apenas que
no existem no VB os operadores INLINE (:=), INCREMENTO (+= e ++) e DECREMENTO (-= e -- ).
O operador Not Equal (!=) tem o seu corrrespondente <> (diferente de) em VB. Tambm os
operadores NOT, AND e OR no necessitam dos pontos no incio e no final no VB.
A estrutura em VB, a seguir, corresponde estrutura DO.. WHILE ... SKIP ... ENDDO do
CLIPPER para ler um arquivo:
Do While Not objeto.EOF
[Instrues]
[objeto.MoveNext]
[Exit Do]
Loop
590
A estrutura em VB, a seguir, corresponde mesma estrutura IF... ELSEIF... ELSE... ENDIF do
CLIPPER:
If a = 1 Then
[Instrues]
Else If a=2 Then
[Instrues]
Else
[Instrues]
End If
Captulo 15 - Extra
591
Print A
Print A;
Trim
Objeto.Recordset.AddNew
Instr
Ubound
Objeto.Recordset.BOF
DateDiff
NSem *
NMes *
CDate
Objeto.Recordset.Seek
Objeto.Recordset.Index="nome"
Collection object
Dim
Kill NomeArquivo
Print
Vazio *
Objeto.Recordset.EOF
Kill NomeArquivo
Close
Collection object
Open
Existe *
Objeto.Recordset.FindNext
Open "Arq" For Binary As # Area
Objeto.Recordset.Nomatch = False
Get # Area
Get # Area
Name Arq1 As Arq2
Seek
Put # Area
Environ
Objeto.Recordset.MoveLast
Objeto.Recordset.MoveFirst
InputBox
SendKeys
Collection object
Objeto.Recordset.FindNext
Lcase
GetChunk
Rem ou '
CompactDataBase
RPad *
LPad *
Printer.CurrentX
Sub
Printer.CurrentY
End
Rat *
592
RECCOUNT( )
RELEASE
RENAME
REPLICATE
RUN
SEEK
SET
Open X For Output |
SKIP
SKIP -1
SQRT
STRTRAN( )
STUFF( )
SUBSTR( )
TIME( )
UPPER( )
Collection Object
ReDim
Name
String function
Shell
Seek
ALTERNATE TO/ON
Append As # n
Objeto.Recordset.MoveNext
Objeto.Recordset.MovePrevious
SQR
Substitui *
Substitui *
Mid
Now
Ucase
15.2
DateDiff
ChDir
ChDrive
MsgBox
DDMM *
DDMMAA *
Date Statement
GDV1 *
GDV2 *
MkDir
MMAA *
Campo tipo Lista Interna
Parse *
PTab *
Permitido *
RmDir
AbreBancoDados *
VDV1 *
VDV2 *
VHora *
VUf *
Glossario
Este pequeno glossrio tem a finalidade de proporcionar alguns termos de uso corrente nas
aplicaes Windows. Os termos que aparecem sublinhados tambm possuem entradas neste
glossrio, no singular ou no plural.
Captulo 15 - Extra
593
15.2.1 Alias
um nome alternativo dado a um campo ou expresso para ser utilizado na clusula SELECT de
uma instruo SQL, no intuito de faz-la mais curta, mais significativa ou, ainda, para evitar conflitos
na sua execuo.
15.2.2 ANSI
ANSI significa American National Standards Institute. uma tabela ou conjunto de caracteres (8
bits) usado pelo Windows para permitir a representao de at 256 caracteres (0 - 255). Os
primeiros 128 caracteres (0 - 127) correspondem basicamente s letras encontradas no teclado. Os
demais caracteres representam caracteres especiais, como letras de alfabeto internacional, acentos,
smbolos de moedas e fraes.
15.2.3 Aplicao
Uma aplicao ou sistema aplicativo um conjunto de cdigos e elementos visuais que trabalham
juntos em um s programa. So elaboradas com o objetivo de executar operaes inter-relacionadas
de modo a permitir a organizao de informaes que possam ser rapidamente recuperadas,
consultadas, processadas, listadas, etc.
15.2.5 Argumento
Um valor qualquer que passado a uma funo ou sub-rotina para ser por ela utilizado e, s
vezes, transformado.
594
.RC, que se apresenta com a xtenso .RES aps o processo de compilao, podendo ser includo
num projeto Visual Basic. Este tipo de arquivo pode conter imagens, strings de texto, cones e outros
recursos. Dispondo essas informaes em um arquivo separado, pode-se mudar a informao sem
reeditar o cdigo do programa fonte, sendo muito til para aplicaes que sero traduzidas para
outras lnguas. Cada projeto em Visual Basic pode conter somente um arquivo resource associado.
O GAS utiliza um formato proprietrio de arquivo resource (.RES) que permite a vinculao de
quaisquer formatos de imagem e sem limite de amanho. Alm disso, o executvel tende a diminuir
consideravelmente com o uso do arquivo resource, visto que as imagens no mais estaro
vinculadas diretamente no executvel. O arquivo resource deve acompanhar o aplicativo final gerado
para que este possa funcionar.
15.2.10 ASCII
ASCII significa American Standard Code for Information Interchange. uma tabela ou conjunto
de caracteres (7 bits) usado largamente para representar letras e smbolos encontrados nos teclados.
O conjunto de caracteres ASCII representa os primeiros 128 caracteres da tabela ANSI. Certos tipos
de arquivos so normalmente denominados arquivos ASCII em virtude de s conterem esses tipos
de caracteres e, ainda, cada uma de suas linhas, serem terminadas com os caracteres de cdigo 13
e 10 (retorna ao incio e nova linha).
15.2.11 Asterisco
O caractere (*) utilizado como "curinga" em expresses SQL que contenham a clusula LIKE
para aceitar qualquer seqncia de caracteres. Por exemplo, a expresso LIKE "*cidade*" aceita
qualquer nome contendo a palavra "cidade". O asterisco pode tambm ser utilizado para incluir todos
os campos existentes nas tabelas envolvidas em uma query SQL. Por exemplo, SELECT * FROM
MinhaTab retorna todos os campos (colunas) da tabela MinhaTab.
Captulo 15 - Extra
595
se deve ao prprio poder do modelo relacional e, ainda, por proporcionar uma interface padro
chamada SQL (Structured Query Language) que permite muitas ferramentas e produtos diferentes
de bancos de dados trabalharem em conjunto, de maneira consistente e de fcil aprendizado. Um
banco de dados pode conter diversos objetos, como tabelas, ndices, relaes, queries, etc.
15.2.18 Bit
Abreviao de "binary digit" (ou dgito binrio). a menor unidade de dados que um computador
pode armazenar. Bits so expressos por valores 1 e 0.
15.2.19 Bitmap
uma imagem representada por pixels e armazenada como uma coleo de bits, na qual cada
bit corresponde a um pixel. Em sistemas a cores, mais de um bit corresponde a cada pixel. Um
arquivo bitmap tem normalmente a extenso .BMP.
15.2.20 Bookmark
uma string gerada pelo sistema identificando o registro que est contido na propriedade
2007 GAS Tecnologia
596
Bookmark de um objeto recordset. Se o valor da propriedade Bookmark for designado para uma
varivel, podese posteriormente tornar este registro novamente corrente, designando para a
propriedade Bookmark o valor desta varivel.
15.2.23 Campo
uma diviso do registro. Nos projetos do GAS, um campo possui diversos atributos como nome,
tamanho, tipo, etc. Em uma tabela, os campos correspondem s suas colunas e os registros s suas
linhas.
Captulo 15 - Extra
597
Caractere
Exemplo
Localiza
pes*
*
p?lha
1#3
[]
p[ai]lha
p[!ai]lha
p[a-c]lha
598
15.2.31 Classe
a definio formal de um objeto. A classe atua como um gabarito a partir do qual uma instncia
de um objeto criada em tempo de execuo. A classe define as propriedades de um objeto e os
mtodos usados para controlar o comportamento do mesmo.
15.2.37 Clipboard
uma localizao temporria de memria, usada para transferir texto, grficos e cdigo entre
janelas ou aplicaes. No GAS tambm utilizada para transferncia de definies inteiras de
tabela, janelas de dados, etc.
Captulo 15 - Extra
599
15.2.39 Compilao
o processo de transformao de instrues escritas em uma linguagem de programao
qualquer, existente em um programa fonte, em uma linguagem numrica, que diretamente
executada pelo processador da mquina. O programa utilitrio que executa esta tarefa o
compilador, cujo resultado um programa executvel (.EXE).
15.2.41 Controle
um objeto que pode ser colocado em uma janela que tem o seu prprio conjunto de
propriedades e eventos. Os controles so usados para receber informaes do usurio, mostrar
informaes e disparar eventos. Os controles podem ser manipulados utilizando-se os mtodos
disponveis para o mesmo. Alguns controles so interativos (respondem a aes do usurio),
enquanto outros so estticos (acessados somente via cdigo do programa).
600
projetista no faz uso do G-Reports, outro utilitrio formatador de relatrios e etiquetas desenvolvido
pela Gas Tecnologia e intrnseco ao GAS. As especificaes dos relatrios do Crystal Reports so
gravadas em arquivos de extenso .RPT, cuja presena necessria durante a operao da
aplicao final, para que o relatrio correspondente seja emitido.
15.2.48 Default
Significa "padro" e corresponde a uma informao ou situao que ser assumida pelo
programa quando esta no for obtida durante a sua execuo.
15.2.49 DLL
um tipo de biblioteca dinmica (Dynamic Link Library) contendo funes e sub-rotinas
reutilizveis. Desde que exista em uma DLL, uma funo ou sub-rotina pode ser invocada pelo
programa para executar uma tarefa qualquer, bastando que seja declarada previamente. Essas
bibliotecas se apresentam em arquivos com extenso .DLL.
15.2.50 Domnio
Tambm denominado de escopo, domnio um conjunto de registros definidos por uma tabela,
query ou expresso SQL. O termo escopo tambm utilizado para especificar a abrangncia de uma
varivel. Por exemplo, uma varivel que tenha escopo Global "vista" em qualquer parte da
aplicao. Uma varivel Local somente pode ser referida dentro da rotina onde foi definida.
15.2.51 Dynaset
um tipo de recordset que retorna um conjunto dinmico de ponteiros para um banco de dados.
A exemplo de um recordset do tipo table ou snapshot, um dynaset retorna dados em registros
(linhas) e campos (colunas). Diferentemente de um recordset tipo table, um dynaset pode ser
resultante de uma query que junta duas ou mais tabelas. Os registros em um dynaset podem ser
atualizados.
Captulo 15 - Extra
601
15.2.52 Equi-join
um tipo de relacionamento onde registros de duas tabelas so combinados e adicionados ao
objeto recordset somente se existirem valores iguais nos campos de ligao entre elas. Em Visual
Basic, equi-join referido como sendo inner-join.
15.2.53 Etiqueta
um tipo de mdulo que pode ser inserido nos projetos do GAS. Este tipo de mdulo tratado e
definido da mesma maneira como tratado o mdulo do tipo relatrio.
15.2.54 Evento
uma ao reconhecida por um objeto, como um clique de mouse ou uma tecla pressionada, e
para o qual podem ser programadas instrues a serem executadas (cdigo). Eventos podem ocorrer
como resultado de uma ao do usurio ou pelo cdigo do programa ou, ainda, podem ser
disparados pelo sistema.
15.2.56 Exclusive
Indica se um banco de dados ou tabela pode ser compartilhado por outros usurios em um
ambiente multiusurio. Se o banco de dados ou tabela for aberto em modo exclusivo, no poder ser
compartilhado.
15.2.57 Filtro
um conjunto de critrios aplicados a registros de modo a criar um subconjunto destes. Os filtros
usados nas aplicaes do GAS utilizam queries SQL.
15.2.58 Form
Quer dizer "formulrio". uma janela ou caixa de dilogo. Forms so recipientes (containers) de
controles. Um form para interface de documentos mltiplos (MDI) pode tambm atuar como
recipiente de outros forms (filhos) e de outros controles.
15.2.59 Frmula
Durante o desenvolvimento de um projeto por meio do GAS, uma frmula pode ser definida tanto
como sendo o resultado de uma operao envolvendo campos numricos de uma ou mais tabelas,
bem como sendo um campo de uma tabela qualquer (campo estrangeiro) que mostrado em uma
janela de digitao. Para definir uma frmula a ser colocada na janela de digitao de dados, o
projetista dever designar a propriedade frmula de um controle do tipo label, painel ou frame.
602
15.2.63 Grade
um objeto para visualizao e digitao de tabelas, que possibilita a visualizao de diversos
registros ao mesmo tempo. A Gas Tecnologia desenvolveu um controle OCX (gDbGrid) constitudo
de uma grade onde podem ser digitadas informaes com diversos recursos de edio. Este recurso
implementado nas aplicaes geradas sempre que necessrio.
15.2.64 Grupo
uma coleo de usurios de uma aplicao, identificada por um nome de grupo e por um
identificador pessoal. Permisses designadas a um grupo se aplicam a todos os usurios deste
grupo.
15.2.65 Handle
um valor inteiro definido pelo ambiente de operao (Windows) e usado por um programa para
identificar e acessar um objeto, como, por exemplo, um form ou controle.
15.2.66 cone
a representao grfica de um objeto ou conceito, comumente usado para representar
aplicaes em estado minimizado dentro do Windows. Essencialmente, um cone um bitmap com
um tamanho mximo de 32 x 32 pixels. Nomes de cones tm a extenso .ICO.
15.2.67 ndice
uma referncia cruzada dinmica de campos (colunas) de uma ou mais tabelas, que permite a
Captulo 15 - Extra
603
recuperao rpida de registros especficos de uma tabela. medida que registros so adicionados,
atualizados ou apagados, o sistema de gerenciamento do banco de dados atualiza automaticamente
o ndice para refletir as mudanas. Quando utilizado em um recordset do tipo table, o ndice atual
determina a ordem sob a qual os registros so retornados no recordset. Uma tabela pode ter diversos
ndices associados. O termo ndice pode tambm se referir subscrio de um arranjo ou varivel
indexada.
15.2.70 Instncia
Qualquer conjunto de objetos que compartilha a mesma classe. Por exemplo, mltiplas instncias
de uma classe Form compartilham o mesmo cdigo de programa e so carregados com os mesmos
controles que foram projetados na classe do Form. Em tempo de execuo da aplicao,
propriedades individuais dos controles em cada instncia podem ser ajustadas com valores
diferentes.
15.2.71 Janela
um recipiente para os controles utilizados em uma aplicao. Sempre existe uma janela ativa
dentro de uma aplicao. Seu ttulo aparece normalmente em uma cor diferente das demais.
604
dados, seus objetos e sua estrutura. Uma das linguagens utilizada para a sua manipulao o
Visual Basic. O GAS cria programas nesta linguagem para controlar os bancos de dados das
aplicaes geradas.
Devido utilizao do Microsoft Jet Engine v3.6, os aplicativos gerados pelo GAS so
compatveis com bancos de dados MS-Access 2000 e verses anteriores.
15.2.75 Join
uma operao de banco de dados que combina alguns ou todos os registros de duas ou mais
tabelas, com um equi-join, outer-join ou self-join. Geralmente, um join se refere associao entre
um campo de uma tabela e um outro campo, do mesmo tipo de dado, em uma outra tabela. Um join
criado por meio de uma instruo SQL.
15.2.76 keyword
Palavra chave. uma palavra ou smbolo reconhecido como parte da linguagem de programao,
como, por exemplo, uma instruo, um nome de funo, um operador, etc.
15.2.77 keyword
Durante a definio de um projeto de sistema atravs do GAS, podem ser definidos processos
especiais sobre as diversas tabelas do banco de dados. Um deles o lanamento que se constitui na
criao de um ou mais registros vazios dentro da tabela alvo seguido do preenchimento dos campos
dos novos registros com informaes contidas em frmulas ou informaes contidas em outras
tabelas. O lanamento semelhante ao processamento, s que, com este ltimo, no ocorre a
criao de novos registros. Um processamento anlogo a uma edio de registros e um
lanamento anlogo a uma incluso de registros.
Captulo 15 - Extra
605
15.2.81 Mscara
um conjunto de caracteres associados ao campo, que serve para controlar o tipo e a posio de
dgitos que sero inseridos pelo usurio. Os caracteres especiais especificados nas mscaras so:
ponto de exclamao (!) - significa que o caractere que for digitado nesta posio ser
transformado para maisculo, aceitando qualquer tipo de caractere;
letra maiscula (A) - significa que o caractere que for digitado nesta posio s poder ser
alfabtico, acentuado ou no, impedindo a insero de dgitos numricos;
nmero nove (9) - significa que somente dgitos numricos podero ser digitados no campo em
uma determinada posio;
caractere (# ) - funciona de maneira idntica ao nmero 9 com a diferena que espaos tambm
podero ser digitados;
letra maiscula (N) - significa que somente dgitos numricos ou caracteres alfabticos podero
ser digitados nesta posio;
letra maiscula (X) - significa que qualquer caractere poder ser digitado na posio;
caractere arroba (@) - usado, na primeira posio da mscara, em conjunto com qualquer um
dos acima especificados. Quando este caractere figura na mscara, o caractere seguinte a este
servir para todos os caracteres digitados no campo. Por exemplo: @! (tudo maisculo), @A (tudo
alfabtico), etc. Combinaes podem ser feitas, como por exemplo: @!@A (tudo o que for digitado
no campo s poder ser alfabtico e em maisculas).
Existem alguns tipos de caracteres (insertveis) que podem ser colocados na mscara para
serem automaticamente inseridos no campo, no sendo necessrio que o usurio os digite. Esses
caracteres so: o hfem, o ponto, barras, parnteses, colchetes e chaves. Por exemplo, na mscara
de telefone (999)999-9999 o usurio s precisar digitar os nmeros. Mantendo compatibilidade com
as aplicaes geradas pelo GAS-DOS, as mscaras de campos do tipo caractere preenchidas
totalmente com o caractere 9, a aplicao preencher com zeros esquerda. Se preenchidas
totalmente com #, a aplicao preencher automaticamente com espaos esquerda. Por exemplo:
o caractere "1" com mscara "9999" resultar em "0001"
o caractere "1" com mscara "####" resultar em " 1"
Se no for desejvel este efeito, o projetista poder trocar o tipo deste campo para numrico.
15.2.82 MDI
a abreviao de "Multiple Document Interface" (ou interface de mltiplos documentos). um
tipo de interface no ambiente Windows na qual diversos forms (filhos) ficam contidos em um nico
form (MDI form). O MDI Form uma janela que faz o background de uma aplicao de mltiplos
606
documentos. Um form MDI o recipiente dos forms filhos de uma aplicao. Este tipo de interface
proporciona um alto padro de qualidade aplicao, uma vez que os forms so agrupados em um
s recipiente na rea de cliente, podendo ali serem organizados, manipulados e minimizados, dando
grande flexibilidade de operao aplicao. Tanto o GAS quanto as aplicaes por ele geradas
possuem este tipo de interface.
15.2.83 Menu
Este tipo de mdulo estabelece uma ponte ou bifurcao de acessos para outros mdulos do
projeto. Abaixo deste tipo de mdulo, podem ser inseridos diversos outros.
15.2.84 Mtodo
um procedimento interno que atua sobre um objeto.
15.2.85 Modal
Veja tpico Janela Modal.
15.2.86 Mdulo
Um mdulo nos projetos do GAS corresponde a um tipo de entidade que se agrega ao projeto de
sistema. Os mdulos so colocados hierarquicamente em uma estrutura denominada rvore do
projeto (ou modelador). Os mdulos que podem ser colocados na rvore do projeto so: menu,
janela de dados, relatrio, etiqueta, consulta, rotina avulsa, programa executvel, formulrio avulso,
formulrio existente, processo pr-definido e, ainda, a linha separadora. Em Visual Basic, um mdulo
um item de projeto, com a extenso .BAS, contendo declaraes de variveis de escopo global
(pblicas), funes externas residentes em bibliotecas DLL, as Windows API, e ainda o cdigo fonte
de funes e procedures pblicas, que podem ser chamadas de qualquer ponto da aplicao.
15.2.87 Objeto
a combinao de cdigo (programas) e dados que possam ser tratados como uma unidade,
como, por exemplo, um controle, um form ou uma aplicao. Cada objeto definido como uma
classe.
15.2.88 OLE
Abreviao de Object Linking and Embedding (Ligao e Embutimento de Objetos). a
tecnologia que habilita a criao de aplicaes que contenham componentes de vrias outras.
Captulo 15 - Extra
607
15.2.91 Permisses
um ou mais atributos que especificam o tipo de acesso que um usurio tem aos registros.
Permisses podem ser designadas, dentre outras aes, para incluir, alterar, visualizar e excluir
registros.
15.2.92 Pixel
Abreviao de "picture element" (ou elemento de figura). Um ponto que representa a menor
unidade de medida grfica sobre uma tela. Um pixel dependente do padro de vdeo, ou seja, as
dimenses dos elementos da tela variam com o sistema e com a resoluo.
15.2.93 Procedure
uma sequncia que contm instrues ou cdigo de programa que executam como uma
unidade. Uma Function, Sub ou Property so tipos de procedures.
15.2.94 Processamentos
Um processamento se caracteriza pela alterao de campos de uma tabela a partir de
informaes que estejam sendo digitadas em outra tabela. A tabela que sofre o processamento
denominada de tabela-alvo e o campo que sofre o processamento chamado de campo-alvo. O
processamento semelhante ao lanamento sendo diferente apenas no fato de que, neste ltimo,
existe a criao de novos registros na tabela-alvo. Um processamento anlogo a uma edio de
registros, e um lanamento anlogo a uma incluso de registros.
608
15.2.97 Projeto
Todas as aplicaes definidas por meio do GAS so tratadas como projeto de sistema, o qual se
constitui de um conjunto de informaes necessrias construo de uma aplicao que so
armazenadas e utilizadas no momento apropriado.
15.2.98 Property
um tipo de procedure que cria e manipula propriedades de um mdulo Classe. Uma procedure
do tipo Property inicia com a instruo Property Let, Property Get ou Property Set e termina com a
instruo End Property.
15.2.99 Propriedade
um determinado atributo de um objeto. Propriedades definem caractersticas dos objetos, tais
como cor, tamanho e localizao na tela ou um estado do objeto, tais como habilitado ou
desabilitado.
15.2.100Query
uma instruo formalizada a um banco de dados para retornar um conjunto de registros ou
realizar uma ao especfica em um conjunto de registros determinados.
15.2.101Query de ao
uma query que move ou altera dados. Queries de ao podem adicionar, apagar ou atualizar
registros. Em contraste, queries de seleo retornam registros de dados.
15.2.102Query de parmetro
uma query que requer um ou mais valores (parmetros) informados pelo usurio para ser
executada, como, por exemplo, o nome de uma cidade. Uma query de parmetro no estritamente
um outro tipo de query, sendo mais uma flexibilizao de queries.
15.2.103Query de seleo
uma query que questiona sobre os dados armazenados nas tabelas e retorna um objeto
recordset sem mudar os dados. Uma vez que os dados do recordset so recuperados, consultas e
alteraes podem ser feitas sobre os dados das tabelas envolvidas. Em contraste, queries de ao
podem mudar os dados e no retornar registros.
15.2.104Recordset
um conjunto lgico de registros. Existem 3 tipos de recordset: Dynaset, Snapshot e Table.
Captulo 15 - Extra
609
15.2.105Registro
Em uma tabela, todos os dados existentes para um determinado item chamado de registro. Por
exemplo, em um conjunto de cartes de clientes, cada carto corresponde a um registro contendo
todas as informaes de um cliente em particular. Cada item de informao dentro de um registro
chamado de campo. Um carto de cliente possui campos para nome, telefone, endereo, etc.
15.2.106Registro corrente
o registro em um recordset que voc pode usar para modificar ou examinar seus dados, ou
seja, o registro que est sendo correntemente acessado. Existem diversos mtodos para se
movimentar no banco de dados, alterando o registro corrente.
15.2.107Relao
Um banco de dados pode conter mltiplas tabelas e essas tabelas podem ser relacionadas umas
com as outras por meio de campos em comum. Uma vez relacionadas duas tabelas, os seus campos
esto disponveis para seremacessados, independentemente de qual tabela pertencem. O
relacionamento de tabelas feito normalmente para evitar a duplicao desnecessria de
informaes no banco de dados, conforme explicado no item normalizao. Um relacionamento pode
ser 1-1 (1 registro de uma tabela corresponde a um nico registro da tabela estrangeira) ou 1-N
(cada registro da tabela corresponde a N registros da tabela estrangeira, tambm denominada
pai-filho).
15.2.108Relatrio
Um relatrio um tipo de mdulo que pode ser colocado na rvore do projeto. Para estabelecer
definies dos relatrios (layout), o projetista poder fazer uso do G-Reports ou Cristal Reports,
invocando-os por meio do GAS.
15.2.110Rotina avulsa
Uma rotina avulsa um fragmento de cdigo fonte na linguagem Visual Basic que o projetista
labora, utilizando o Editor de Programas do GAS, de forma que integre automaticamente o projeto da
aplicao gerada.
15.2.111Self join
um join no qual registros de uma tabela so combinados com outros registros da mesma tabela
nos quais existam valores similares nos campos de ligao. Uma self-join pode ser um equi-join ou
um outer-join. Uma self-join til quando se deseja formular perguntas hierrquicas, como uma
2007 GAS Tecnologia
610
15.2.112Separador
Veja tpico Linha Separadora.
15.2.113Servidor OLE
Tambm chamado de Servidor de Automao OLE, uma aplicao que disponibiliza seus
objetos a outras aplicaes.
15.2.114Snapshot
uma cpia esttica de um conjunto de registros recuperados de um banco de dados e copiado
para a memria. Um objeto tipo recordset pode ser criado a partir de uma tabela bsica, de uma
query ou de um outro recordset. Por serem apenas cpias de registros, os snapshots no podem ser
atualizados.
15.2.115SQL
SQL significa Structured Query Language (linguagem estruturada para pesquisa). Esta linguagem
utiliza comandos como SELECT (selecione), UPDATE (atualize), DELETE (apague) contendo
clusulas como WHERE (na qual...), GROUP BY (agrupado por) e ORDER BY (ordenado por...).
Essas instrues, quando aplicadas a um objeto recordset, permitem a pesquisa e atualizao de
seus registros.
15.2.116Sub
um tipo de procedure que realiza uma tarefa especfica dentro de um programa; porm, no
retorna qualquer valor explcito. Uma Sub inicia com uma instruo Sub e termina com uma
instruo End Sub.
15.2.117Tabela
uma unidade bsica de armazenamento em um banco de dados relacional. Uma tabela pode
ser vista como um conjunto de linhas e colunas, semelhantes a uma planilha, onde cada linha
corresponde a um registro e cada coluna corresponde a um campo.
15.2.118Tabela-alvo
Uma tabela alvo referida durante a fase de definio do projeto como sendo uma tabela
destinatria de uma validao, processamento ou lanamento, a partir de informaes geralmente
contidas em outras tabelas do banco de dados.
15.2.119Tabela anexada
uma tabela existente em um outro banco de dados que ligada ao banco de dados nativo do
Captulo 15 - Extra
611
Visual Basic. Os dados das tabelas anexadas permanecem nos bancos de dados externos, onde
podem ser manipulados por outras aplicaes. No possvel utilizar tabelas anexadas em um
objeto recordset do tipo table.
15.2.120Tabela ANSI
Veja tpico ANSI.
15.2.121Tabela ASCII
Veja tpico ASCII.
15.2.122Tabela bsica
uma tabela que serve como ponto de partida para a montagem de conjuntos de registros pelas
queries. Em algumas fases da definio de projetos do GAS, uma tabela-bsica precisa ser definida.
15.2.123Tabela estrangeira
uma tabela de um banco de dados que contm chaves estrangeiras. Geralmente, as tabelas
estrangeiras so usadas para estabelecer ou forar uma integridade referencial. A tabela estrangeira
, normalmente, o lado "N" de um relacionamento 1-N. Um exemplo de tabela estrangeira uma
tabela de cdigos de estados para pedidos de clientes.
15.2.124Tipo de campo
a caracterstica do campo que identifica o tipo e formato de dados que o mesmo pode
armazenar.
612
Captulo 15 - Extra
613
15.2.142Tipo de campo UF
um campo do tipo caractere destinado a armazenar valores de Unidades da Federao (UF).
614
15.2.144Tipo de dado
a caracterstica de uma varivel que determina que espcie de dado ela pode armazenar. Tipos
de dados incluem byte, lgico (booleano), preciso simples, preciso dupla, inteiro, longo, dinheiro,
data, string, objeto, variant (default) e tipos definidos pelo prprio programador, bem como tipos
especficos de objetos, como por exemplo, database (banco de dados), table (tabela), etc.
Captulo 15 - Extra
615
15.2.158Update
o processo que salva as mudanas dos dados em um registro. At que um registro seja salvo,
as mudanas so armazenadas em um registro temporrio chamado copy buffer. A clusula
616
UPDATE em uma instruo SQL muda valores dos dados em um ou mais registros (linhas) em uma
tabela.
15.2.159Usurio
Um usurio qualquer pessoa que esteja utilizando uma determinada aplicao. Em sistemas
gerados pelo GAS que contenham esquemas de segurana, usurios podem ser cadastrados dentro
de grupos, herdando as permisses inerentes a este.
15.2.160Validao
o processo de verificao se uma certa informao fornecida em um campo atende a certas
condies ou limitaes.
15.2.161Varivel
Tecnicamente, uma localizao de memria que contm um dado que pode ser modificado
durante a execuo de um programa. Cada varivel tem um nome sob o qual identificada como
nica dentro do seu nvel de atuao. O tipo de dado armazenado pode ou no ser especificado. Os
nomes de variveis necessitam comear com uma letra e no podem conter pontos ou caracteres
embutidos e usados para especificar tipo. Devem tambm ser nicas dentro da sua rea de atuao
e no podem ter mais de 255 caracteres.
15.2.162Visual Basic - VB
Linguagem de programao de aplicaes para o ambiente Windows, desenvolvida pela Microsoft
Corporation, baseada na linguagem Basic (Beginners All Purpose Simbolic Instructions Code),
composta de elementos visuais (controles) e cdigo (programas).
15.2.163Windows API
A interface de programao de aplicao (API) se constitui de funes, mensagens, estrutura de
dados, tipos de dados e instrues que voc pode usar quando cria aplicaes que rodam no
ambiente Windows.
15.2.164Windows metafile
um arquivo que armazena uma imagem como objetos grficos (linhas, crculos, polgonos) ao
invs de pixels. Existe dois tipos de metafiles: padro e implementado. Arquivos metafile do tipo
padro possuem usualmente a extenso (.WMF) enquanto os arquivos metafile implementados
possuem a extenso .EMF. Arquivos metafile preservam a imagem de uma maneira mais precisa do
que os pixels.
15.2.165Workgroup
um grupo de usurios em um ambiente multiusurio que compartilha dados de um mesmo
sistema de banco de dados.
Index
Index
-EExecutveis Independentes
63
-Ggas2007
62
-Nnovo
62
-SSolues Multi-Projetos
30, 62, 63
617