Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANUAL DO USURIO
http://www.xmaker.com.br
Modular Software
Uberaba M.G.
COPYRIGHT
1. O QUE O X-MAKER?
O X-Maker um gerador de aplicativos para o ambiente
Windows, voltado para desenvolvedores de software. Utilizando
todo potencial da linguagem orientada a objetos, acelera o
processo de desenvolvimento de forma extremamente eficiente,
prtica e padronizada. Sua principal funo a manipulao de
banco de dados para armazenamento de informaes de
qualquer natureza, agregando todos os recursos possveis e
atuais do ambiente visual e com acesso nativo as bases de dados,
cria projetos altamente profissionais e confiveis.
Os arquivos fontes so gerados na linguagem Delphi 5, 6
ou 7, sendo, portanto necessrio que o usurio tenha instalado
em seu equipamento a verso Professional ou Enterprise do
Delphi. Somente essas verses possuem os recursos disponveis
para acesso as bases de dados utilizadas pelo X-Maker, so elas:
InterBase 5.x/6.x, FireBird 1.x, SyBase, MS-SQL Server,
MySql 3.20/3.23/4.00, PostGreSql 6.5/7.2 e ADO (Access,
Paradox, dBase, Oracle, etc.),. Outras bases de dados podero
ser utilizadas em futuras verses desse produto, temos como
meta a compatibilidade com os diversos gerenciadores de banco
de dados disponveis no mercado.
As verses disponveis do X-Maker so:
1.1. Pr-requisitos
As exigncias mnimas de software e hardware para que
seu sistema execute corretamente o X-Maker so:
2. INTERFACE DO X-MAKER
Atravs de uma interface prtica e amigvel possvel
construir um aplicativo atravs de 06 passos intuitivamente
coordenados. A seguir iremos dar um enfoque geral das opes
disponveis no menu principal, barra de ferramentas e barra de
assistente.
Viso geral:
10
11
12
3. CONCEITOS BSICOS
O X-Maker utiliza alguns conceitos bsicos na definio
de projetos, algum desses conceitos j dever ser de seu
conhecimento, com pequenas variaes de nomes ou definies,
a compreenso dos mesmos facilita a utilizao da ferramenta.
3.2. Tabelas
Atravs de um ou mais campos ns formamos a definio
de um Tabela, essas Tabelas iro conter uma estrutura
predefinida de informaes para que o projeto final possa criar
as Tabelas em disco para armazenar todos os registros de um
sistema.
As Tabelas so constitudas de campos, chave primria e
chaves secundrias (ndices). Uma chave primria definida por
um ou mais campos, sendo que seus valores no podero ser
13
3.3. Campos
So utilizados na definio da estrutura das tabelas. Os
campos so definidos atravs de um conjunto de atributos, tais
como: nome, tipo, tamanho, tipo de edio, mscara, ttulo, etc.
As informaes contidas na definio dos campos so de
extrema importncia, pois os componentes que sero utilizados
na formatao da tela de Entrada de Dados esto subordinados
aos atributos dos campos, principalmente o atributo de Tipo de
Edio.
14
15
16
17
18
5. CONFIGURANDO O X-MAKER
Uma configurao padro acompanha o X-Maker na sua
instalao, essa configurao pode ser alterada a qualquer
momento pelo projetista. Atravs do X-Maker possvel
compilar e gerar o executvel do projeto, para isso necessrio
informar a localizao do compilador do Delphi e os parmetros
adicionais, em Configuraes do Menu Principal existe uma
opo para cada verso do Delphi.
19
20
Finalizando:
Acesse
o
menu
do
Delphi
Tools\Environment Options selecione a aba Library
no campo Library Path, verifique se existe o seguinte
path C:\XMaker3\Comp\Delphi (C:\XMaker3
Corresponde a pasta de instalao do X-Maker) se no
existir faa a incluso do mesmo.
21
22
23
6. CONHECENDO AS ETAPAS DE
DEFINIO DE UM PROJETO
Para o uso correto da ferramenta necessrio conhecer
todas as etapas de definio, o domnio das funcionalidades de
cada objeto disponvel permite uma segurana muito grande
para o projetista. A barra de Assistente do X-Maker contm as
06 etapas (passos) de criao de um projeto, sua utilizao
torna-se totalmente intuitiva e prtica, a Barra de Ferramentas e
o Menu Principal possui os mesmos atalhos da barra de
Assistente.
24
Barra de Ferramentas
Menu Principal
25
26
27
28
29
30
31
32
33
34
Dica:
possvel definir vrios Bancos de Dados, um Banco de
Dados pode conter um conjunto de Tabelas, a utilizao de mais
de um Banco de Dados pode ser utilizado quando o projeto final
realizar o tratamento de multiempresas. Como exemplo
podemos citar um projeto para gerenciamento de uma Loja de
Confeces, essa loja possui Matriz e Filiais, algumas Tabelas
sero utilizadas de forma compartilhada (Clientes, Fornecedores
e Contas a Pagar / Receber), para obter essa operao ser
necessrio criar um Banco de Dados para armazenar as Tabelas
que sero Compartilhadas e um outro Banco de Dados para as
Tabelas no compartilhadas. Em configuraes da Empresa
Usuria no projeto final possvel definir uma localizao
diferente para cada Banco de Dados criado.
35
Escolha a estrutura a ser importada, para as estruturas XMaker, dBase e Paradox basta informar a pasta de localizao
das tabelas, para as demais estruturas outras informaes
adicionais sero necessrias, tais como usurio (login) e senha
(password). Clique no boto
36
37
6.2.5.1 Nome
Informe o nome que ser utilizado para tratamento interno
dos arquivos fontes e para criao em disco da Tabela. Utilize o
boto para importar uma estrutura predefinida.
6.2.5.2 Tipo
Informe o tipo de dado para armazenamento na Tabela.
As opes disponveis so:
38
6.2.5.3 Chave
Indica se o campo faz parte da chave primria, uma chave
primria composta por um ou mais campos da Tabela.
6.2.5.4 Tamanho
Informe o tamanho mximo para armazenamento no
campo, no considerar o sinal de negativo (-), o separador de
decimais (,) e outros caracteres separadores utilizados na
mscara.
39
6.2.5.5 Autoincremento
Indica que o campo ser incrementado automaticamente
(seqencialmente), somente campos do tipo: Nmero inteiro,
Fracionrio e data podero utilizar essa opo. A seqncia
subordinada a posio do campo na Tabela.
6.2.5.6 Edio
Informe o tipo de edio de controle, o formulrio de
entrada de dados ir utilizar o tipo de edio para inserir os
componentes na tela. Os tipos disponveis so:
Vlidos. Exemplo:
Check Box (Conferncia): Caixa optativa de marca e
desmarca. Os valores vlidos so informados no atributo
40
6.2.5.7 Calculado
Indica que o campo do tipo Calculado, o X-Maker
permite que o campo seja virtual (no gravado fisicamente na
Tabela) ou no virtual ( gravado fisicamente na Tabela). Sua
utilizao vlida quando se deseja mostrar um clculo ou
frmula especfica.
Exemplo: Ao definir uma Tabela de Itens da Venda, os
campos Quantidade e Preo Unitrio sero utilizados para
formar o campo de Total Geral, ao definir a Tabela o projetista
no sabe quais sero os valores informados pelo usurio no
momento da venda, para isso utiliza-se uma codificao de
multiplicao entre os campos de Quantidade e Preo Unitrio
criando assim o campo de Total Geral.
6.2.5.8 Mscara
Informe a mscara de apresentao do campo para
formulrios e relatrios. Os caracteres usados como mscara no
so armazenados na Tabela e no ocupam espao adicional.
As mscaras so utilizadas apenas para os campos cujo
tipo de edio seja: Edit (Edio Padro).
41
42
6.2.5.9 Ttulo
Informe o ttulo do campo, esse ttulo utilizado no
formulrio de entrada de dados e relatrios.
6.2.5.10
ndice
6.2.5.11
Invisvel
6.2.5.12
Ajuda
6.2.5.13
Valor Padro
43
6.2.5.14
6.2.5.15
Pr-Validao
6.2.5.16
Ao
44
6.2.5.17
Limpar Campo
6.2.5.18
Validao
45
arquivo texto comum que poder ser editado por qualquer editor
de texto. Personalizaes nesse arquivo so reconhecidas. A
edio desse arquivo justificvel quando o projetista cria novas
funes de validao no arquivo fonte Validar.Pas.
Funes de validao disponveis no Validar.Pas:
// Valida as
// Valida a
//
//
46
6.2.5.19
//
Procurar em
6.2.5.20
6.2.5.21
Valores Vlidos
47
48
49
50
51
Relacionado
com:
relacionamento.
Informe
Tabela
para
disponveis
para
52
53
Processo Direto.
Processo Inverso.
54
6.2.11 Lanamentos
Os lanamentos podero ser utilizados para gerar um novo
registro em outra tabela aps a incluso.
55
56
57
58
59
60
61
Dica:
Para alternar entre a janelas (Propriedades e Prottipo) utilize a
tecla F11.
62
63
64
65
66
67
68
Exemplo:
AddMenuItem(PopRelacionados, 'Atividades',
'mnuAtividades', True , 0, 6001);
de
codificao
do
evento
69
70
71
72
73
74
75
76
6.3.4.10
6.3.4.11
6.3.4.12
6.3.4.13
77
6.3.4.14
6.3.4.15
6.3.4.16
6.3.4.17
Finalizao (FormClose)
78
79
80
81
82
83
84
85
86
responsvel pela
87
6.4.4.1 Bandas
As Bandas so reas especficas que podero conter
campos ou objetos a serem impressos. Cada banda responsvel
por um recurso diferente no relatrio, temos como exemplo as
reas de cabealho (topo do relatrio), rodap, cabealho de
colunas, registros da tabela, grupo de quebra, etc.
Utilize o boto
Banda.
88
Exemplo de Bandas.
Barra de Ferramentas Lateral
Insere um campo/texto em uma Banda, o
campo/texto poder conter um campo da Tabela, texto
ou frmula de clculo.
Este boto utilizado para inserir uma nova banda
no relatrio
Insere uma imagem (bmp, ico, wmf ou emf) em
uma Banda, normalmente utilizado para mostrar um
Logotipo no relatrio.
Insere uma nova pgina de relatrio, sua utilizao
justificvel para relatrios mais complexos com
muitos objetos de definio.
Insere um desenho de uma linha, possibilita a
criao de linhas.
Insere uma caixa de texto com sombras, cria um
efeito de fundo no relatrio.
Insere um grfico, seis modelos de grficos esto
89
disponveis.
Insere um cdigo de barras, muito utilizado para
impresso de etiquetas de produtos.
Insere um objeto Check Box.
Insere um objeto de desenho com vrios formatos.
Insere uma caixa de texto.
Insere um objeto de compartilhamento com outros
aplicativos, tais como o Word, Excel, Corel Draw e
outros.
Clculos em Relatrios
possvel a criao de clculos entre campos em relatrios, ao
inserir um campo/texto
uma janela de edio ser
apresentada, na caixa de texto possvel realizar codificaes.
90
91
Sum:
Totaliza
campos
numricos,
sintaxe:
Sum(<field>),
exemplo:
[SUM([DProdutos."PRO_CUSTO"] )]
Count: Quantifica a quantidade de registros listados,
sintaxe: Count(<dataset>), exemplo: [Count(DProdutos)]
Str: Converte nmero em string, sintaxe: Str(<value>)
Copy: Retorna uma parte de uma string, sintaxe:
Copy(<string>, <from>, <count>)
If: Retorna uma string conforme condio, uma
condio lgica ir determinar o retorno de uma String1
ou String2, sintaxe: If(<expression>, <string1>,
<string2>)
FormatFloat: Converte um nmero em uma string
formatada, sintaxe FormatFloat(<formatstr>, <value>), o
<formatstr> segue os padres do Delphi de formatao.
FormatDateTime: Converte uma data/hora em uma
string formatada, sintaxe: FormatDateTime(<formatstr>,
<value>)
StrToDate: Converte uma string em data, sintaxe:
StrToDate(<value>)
StrToTime: Converte uma string em hora, sintaxe:
StrToTime(<value>)
UpperCase: Converte os caracteres de uma string em
caracteres maisculos, sintaxe: UpperCase(<value>)
92
93
exemplo:
[Center([Dprodutos.PRO_DESCRICAO],
80)]
Space: Cria uma String em branco de tamanho
determinado, sintaxe: Space(<tamanho>), exemplo:
[Space(80)]
PorExtenso: Retorna um nmero por extenso, em
portugus, sintaxe: PorExtenso(<valor>), exemplo:
[PorExtenso([Dproduto.PRO_PRECO])]
StrZero: Converte um nmero inteiro em String com
zeros
esquerda,
sintaxe:
StrZero(<nmero>,<tamanho>),
exemplo:
[StrZero([Dproduto.PRO_CODIGO], 05)]
FormatMaskText: Formata uma String conforme a
mscara
informada,
sintaxe:
FormatMaskText(<mscara>,
<string>),
exemplo:
[FormatMaskText(XXXX,
[Dprodutos.PRO_UNIDADE])]
MascTexto: Formata uma String conforme a mscara
informada, sintaxe: MascTexto(<string>, <mscara>),
exemplo: [MascTexto([DClientes."CEP"], '99999-999')]
MascData: Formata uma data conforme a mscara
informada, sintaxe: MascData(<data>, <mscara>),
exemplo:
[MascData([DVendas."VEN_DATA"],
'dd/mm/yy')]
CalcC_0: Arredonda uma expresso de clculo e retorna
sem casas decimais, sintaxe: CalcC_0(<valor 1>, <valor
2>, <operador>), exemplo: [CalcC_0(99.56, 85.56, +)]
CalcC_1: Arredonda uma expresso de clculo e retorna
com uma casa decimal, sintaxe: CalcC_1(<valor 1>,
<valor 2>, <operador>, exemplo: [CalcC_1(99.56,
85.56, -)]
CalcC_2: Arredonda uma expresso de clculo e retorna
com duas casas decimais, sintaxe: CalcC_2(<valor 1>,
94
Dica:
A pasta C:\XMaker3\Comp\Delphi, contem o arquivo de
ajuda do FreeReport, o nome do arquivo FRUSER.HLP.
6.4.5 Configurando Etiquetas
A configurao da quantidade de colunas por etiqueta
realizada atravs do Menu Arquivo em Opes da Pgina.
95
96
97
98
Barra de Ferramentas
Caixa de opes
Formulrios, Relatrios, etc.).
(Sub-Menu,
99
Rotina Avulsa
Ao inserir uma rotina avulsa o boto
o projetista.
100
101
A opo
todos os mdulos do projeto
fora a recompilao de
102
Mdulo Fonte
Princ.Pas; Princ.Dfm; Princ.Res
BaseD.Pas; BaseD.Dfm; BaseD.Dti
Abertura.Pas; Abertura.Dfm
Atributo.Pas
Estrutur.Pas
Tabela.Pas
LTab.Pas; LTab.Inc
GridPesquisa.Pas; GridPesquisa.Dfm
Princ_Adapter.Pas;
Princ_Adapter.Dfm
Emp_Adapter.Pas;
Seleciona Empresa Emp_Adapter.Dfm
Adapter
Campo_Adapter.Pas;
Campo Adapter
Campo_Adapter.Dfm
Splash.Pas; Splash.Dfm
Tela de Apresentao
Rotinas.Ps
Rotinas Internas
RotinaEd.Ps
Rotinas de Edio
Rotinas de Validao de Validar.Pas
103
Campos
Declarao de Variveis
Pblicas
Componentes Extras
Chamada de
Formulrios Internos
Calendrio
Calculadora
Agenda de Telefones
Edio da Agenda
Acesso de Usurios
Configurao de
Senhas
Edio de Usurios
Edio de Grupos de
Usurios
Configurao de
Empresas Usurias
Seleo de Empresas
Usurias
Configurao do
Ambiente de Trabalho
Configurao da
Filtragem em Tabelas
Bate Papo em Rede
Cpia de Segurana
Restaurao de Cpia
de Segurana
Utilitrio de
Compactao de Dados
Formulrio de
Mensagem de Processo
Visualizador de
Relatrios
Publicas.Pas
Extras.Pas
Interno.Pas
Calend.Pas; Calend.Dfm
Calculad.Pas; Calculad.Dfm
Agenda.Pas; Agenda.Dfm
AgEdit.Pas; AgEdit.Dfm
Acesso.Pas; Acesso.Dfm
Senhas.Pas; Senhas.Dfm
EdUsr.Pas; EdUsr.Dfm
EdGrp.Pas; EdGrp.Dfm
CfgEmp.Pas; CfgEmp.Dfm;
CfgEmp.Res
SelEmp.Pas; SelEmp.Dfm
Ambiente.Pas; Ambiente.Dfm
Filtro.Pas; Filtro.Dfm
BatePapo.Pas; BatePapo.Dfm
Backup.Pas; Backup.Dfm
Restaura.Pas; Restaura.Dfm
CabIntF.Pas; CabStComps.Pas;
CabStConsts.Pas; CabiNet.Dll
Aguarde.Pas; Aguarde.Dfm
Fr_View.Pas;Fr_View.Dfm;Fr.Inc
104
Configurao de
Impresso
Sobre
Tabelas do Projeto
Campos e Atributos
Modelo Entrada de
Dados
Modelo Entrada de
Dados Filho
Modelo Avulso MDI
Modelo Avulso
Normal
Modelo Relatrios
Modelo Grficos
Modelo Etiquetas
OpcRel.Pas;OpcRel.Dfm
Sobre.Pas; Sobre.Dfm
DXXXX.Pas (XXXX = Nome da
Tabela)
ATRL9999.Pas (9999 = N Seq.
Tabela)
Modelo1.Pas;Modelo1.Dfm
Modelo2.Pas;Modelo2.Dfm
Modelo3.Pas;Modelo3.Dfm
Modelo4.Pas;Modelo4.Dfm
Modelo5.Pas;Modelo5.Dfm
Modelo6.Pas;Modelo6.Dfm
Modelo7.Pas;Modelo7.Dfm
105
106
Definio / Utilizao
Retorna o nome da tabela.
Exemplo: DCLIENTES.NomeTabela;
Retorno: CLIENTES = Conforme
exemplo.
Retorna o ttulo da tabela.
Titulo: String
Exemplo: DCLIENTES.Titulo;
Retorno: Ficha Cadastral de Clientes =
Conforme exemplo.
Retorna o nome interno (componente) da
Name: String
tabela.
Exemplo: DCLIENTES.Name;
Retorno: DCLIENTES = Conforme
exemplo.
<Campos>.Contedo: Todos os campos da tabela so acessados
atravs do componente.
<valor do campo>
Exemplo: DCLIENTES.Nome.Contedo
:= Modular Software;
Neste exemplo o campo Nome est
recebendo o valor Modular Software,
cada campo receber o dado conforme
sua origem, que so: Alfanumrico,
Numrico, Data, Memo ou Imagem.
Inclui um novo registro em branco na
Inclui(Campos:
107
TListaCampos):
Boolean
Modifica: Boolean
Exclui: Boolean
Salva: Boolean
Cancela: Boolean
LimparTabela:
108
Boolean
DeletaTabela
CriaTabela
Existe: Boolean
Abrir: Boolean
AtualizaSql;
109
Filtro: TStringList
FiltroRelac:
TStringList
ChaveIndice: String
110
Mtodo Ptabela
Pesquisa de registros, clculos, extrao de dados, atualizaes e
excluses.
Unit
Tabela.Pas
Descrio
O Ptabela pode ser utilizado de cinco (5) forma diferentes,
isso possvel, pois utilizada uma sobrecarga de mtodos.
1) Pesquisar um registro em uma tabela:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
Exemplo:
111
112
CamposResultado) then
begin
Quant.Value := CamposResultado[0];
Total.Value := CamposResultado[1];
end;
end;
3) Pesquisa registros e retorna os valores desejados:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant, [Vetor de Campos p/retorno]: String,
Resultado: Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
4 Parmetro: [Vetor de Campos p/retorno] = Vetor de campos
da tabela para retorno em "Resultado", para mais de um campo
utilize a vrgula (,) exemplo: [CAI_DATA,
CAI_HISTORICO].
5 Parmetro: Resultado = Varivel do tipo "Variant",
previamente declarada, ir conter o resultado do contedo dos
campos (4 Parmetro).
113
Exemplo:
var
CamposResultado: Variant;
begin
if Ptabela(TabGlobal.Dclientes, ['CLI_CODIGO'],
[TabGlobal.Dvendas.CLI_CODIGO.Conteudo], ['CLI_NOME',
'CLI_ENDERECO'], CamposResultado) then
begin
Nome.Value := CamposResultado[0];
Endereco.Value := CamposResultado[1];
end;
end;
4) Pesquisar um registro em uma tabela e atualiza campos
(update):
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant, Update: String): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
114
115
Declarao
function ConstStr(Ch: string; N: byte): string;
Descrio
Prenche uma varivel string Ch com uma seqncia de
caracteres de tamanho N.
Exemplo
LbLinha.Caption := ConstStr(-,50);
Declarao
function DiretorioComBarra(NomeDir: string): string;
Descrio
Insere a ltima barra invertida ao nome do diretrio
NomeDir, caso seja necessrio.
116
Exemplo
Pasta := DiretorioComBarra(DirWindows);
Declarao
function DiretorioSemBarra(NomeDir: string): string;
Descrio
Retira a ltima barra invertida do nome do diretrio
NomeDir, caso seja necessrio.
Exemplo
Pasta := DiretorioSemBarra(DirWindows);
Declarao
function RetiraHK(S: string): string;
Descrio
Retira os caracteres & e ... de uma string S.
Exemplo
titulo := RetiraHK(mnu_clientes.Caption);
117
Declarao
function ArrayToString(OpenArray: array of string;
Separador: char): string;
Descrio
Copia o contedo de um array OpenArray para uma
varivel string, acrescentando o caractere separador
entre cada elemento.
Exemplo
lista := ArrayToString(listbox1.items, ;);
Declarao
procedure StringToArray(St: string; Separador: char;
Lista: TStringList);
Descrio
Copia os diversos elementos de uma string St que
esto separados pelo caractere Separador para uma
lista do tipo TStringList.
Exemplo
118
StringToArray(Azul;Branco;Amarelo, ; , Lista);
7.2.7 Funo DirWindows
Declarao
function DirWindows: string;
Descrio
Retorna a pasta de instalao do sistema operacional
Windows.
Exemplo
Pasta := DirWindows;
Declarao
function RetiraBrancos(Str: string): string;
Descrio
Retira todos os caracteres brancos de uma varivel string
Str.
Exemplo
Pasta := RetiraBrancos(DirWindows);
119
Declarao
procedure ExecutaForm(FormClass: TFormClass; var
Reference);
Descrio
Executa formulrios do tipo MDI.
Exemplo
ExecutaForm(TFormClientes,FormClientes);
Declarao
function CopiaArquivo(Origem, Destino: string):
Boolean;
Descrio
Copia o arquivo Origem para o arquivo Destino.
Retorna True caso a cpia seja bem sucedida.
Exemplo
Ok := CopiaArquivo(C:\Projeto\Base.Gdb,
D:\Base.Gdb);
120
Declarao
function CopiaArquivosMascara(Orig, Dest, Masc:
string): Boolean;
Descrio
Copia todos os arquivos da pasta Origem para a pasta
Destino, conforme a mscara. Retorna True caso todas
as cpias sejam bem sucedidas.
Exemplo
Ok := CopiaArquivoMascara(C:\Projeto\, D:\,
*.Gdb) ;
7.2.12 Funo PadR
Declarao
function PadR(InStr: string; TotalLen: Integer): string;
Descrio
Alinha o contedo da varivel string InStr esquerda,
dentro de um tamanho definido em TotalLen.
Exemplo
S := PadR(Sistema.Titulo, 40);
121
Declarao
function PadL(InStr: string; TotalLen: Integer): string;
Descrio
Alinha o contedo da varivel string InStr direita,
dentro de um tamanho definido em TotalLen.
Exemplo
S := PadL(Sistema.Titulo, 40);
Declarao
function Center(InStr: string; TotalLen: Integer):
string;
Descrio
Centraliza o contedo da varivel string InStr, dentro
de um tamanho definido em TotalLen.
Exemplo
S := Center(Sistema.Titulo, 40);
122
Declarao
function Space(TotalLen: Integer): string;
Descrio
Preenche uma varivel string com espaos em branco
conforme o tamanho contido em TotalLen.
Exemplo
S := Space(40);
Declarao
function DataAtual: TDateTime;
Descrio
Retorna a data atual do sistema.
Exemplo
data := DataAtual;
Declarao
123
Descrio
Retorna a hora atual do sistema em uma varivel string,
no formato 999999.
Exemplo
hora := HoraAtual;
Declarao
function PorExtenso(FValor: Double): String;
Descrio
Retorna um valor inteiro ou fracionrio por extenso.
Exemplo
extenso := PorExtenso(100.50);
Declarao
Encript(Encript : String): string;
Descrio
124
Exemplo
senha := Encript(x-maker); // Retorna: qfjbl.w
Declarao
function Decript(Decript : String): string;
Descrio
Decodifica uma varivel string Decript.
Exemplo
senha := Encript(qfjbl.w); // Retorna: x-maker
Declarao
function StrZero(N: integer; Tamanho: integer): string;
Descrio
Converte um nmero inteiro em string e atribui zero
esquerda conforme o tamanho definido em Tamanho.
Exemplo
125
Declarao
function Dia( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do dia de
uma data.
Exemplo
Nr_dia := Dia(DataAtual);
Declarao
function Mes( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do ms de
uma data.
Exemplo
Nr_mes := Mes(DataAtual);
126
Declarao
function MesAno( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do ms e ano
de uma data, no formato 99/9999.
Exemplo
Nr_mes_ano := MesAno(DataAtual);
Declarao
function Ano( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do ano de
uma data, no formato 9999.
Exemplo
Nr_ano := Ano(DataAtual);
Declarao
127
Descrio
Retorna uma varivel string com o nmero do ltimo dia
de determinado ms e ano.
Exemplo
Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) +
Ano(DataAtual));
7.2.27 Funo DDMMAA
Declarao
function DDMMAA( Data: string ): string;
Descrio
Converte uma varivel string Data para o formato:
99/99/99.
Exemplo
data := DDMMAA(01022004); // Retorno: 01/10/04
Declarao
128
Descrio
Converte uma varivel fracionria Valor para uma
string formatada Mascara.
Exemplo
Valor :=MascValor(100.50, ZZZ.ZZ9,99);
Declarao
function MascTexto(S, Mascara: String): string;
Descrio
Retorna uma varivel string S formatada Mascara.
Exemplo
Cep :=MascTexto(38010020, 99999-999);
Declarao
function TrocaString(const S, OldPattern, NewPattern:
string; Flags: TReplaceFlags): string;
129
Descrio
Substitui os caracteres OldPattern pelos caracteres
NewPattern dentro do varivel string S. As opes
de substituio so definidos em Flags.
Exemplo
cpf := TrocaString(999.999.999-99, ., ,
[rfReplaceAll, rfIgnoreCase]);
7.2.31 Funo ContaOcorrencia
Declarao
function ContaOcorrencia(Substr: string; S: string):
Integer;
Descrio
Retorna quantas ocorrncias do caractere Substr existe
na varivel S.
Exemplo
pontos := ContaOcorrencia(.,999.999.999-99);
Declarao
function FracToStr(Valor: Extended): String;
Descrio
130
Exemplo
numero := FracToStr(100.50);
Declarao
function CalcC(N1,N2: Extended;Operador: String;
Decimal: Integer): Extended;
Descrio
Arredonda uma expresso de clculo e retorna com o
nmero de casas decimais desejados Decimal. Os
operadores suportados so: + (adio), (subtrao), *
(multiplicao) e / (diviso).
Exemplo
calculo := CalcC(100, 50.50, *, 3);
Declarao
131
Descrio
Faz o clculo exponencial entre os valores N1 e N2.
Exemplo
calculo := Exponencial(5, 2);
Declarao
function StrNumerica(N: String) : Boolean;
Descrio
Verifica se varivel string N possui apenas nmeros.
Exemplo
ok := StrNumerica(123456);
Declarao
function ConverteLogico(Valor: Boolean): string;
Descrio
132
Exemplo
ok := ConverteLogico(True);
Declarao
function ConverteLogico(Valor: Boolean): string;
Descrio
Converte uma varivel string em uma expresso lgica.
T = True e F = False.
Exemplo
ok := ConverteStrToLog(T);
Declarao
Function SerialHD(FDrive:String) :String;
Descrio
Retorna o nmero de srie de uma unidade de disco.
Pode ser utilizado para criar um sistema de proteo
contra cpias no autorizadas.
133
Exemplo
Serial := SerialHD(C); // Unidade C:\
Declarao
function VNivel: Boolean;
Descrio
Caixa de dilogo de senha, o usurio digita a senha se for
um usurio Master retorna True, seno retorna False.
Exemplo
If Vnivel then ...
Declarao
function RetornaAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Condicao: String; Qtd:
Integer = 1): Variant;
Descrio
134
Exemplo
TabGlobal.DCLIENTES.CLI_CODIGO.Conteudo :=
RetornaAutoIncremento(TabGlobal.DCLIENTES,
CLI_CODIGO, , 1);
Declarao
procedure AtribuiAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Componente: TComponent;
Condicao: String; Editavel: Boolean);
Descrio
Atribui o prximo nmero a ser utilizado em uma Tabela
em um objeto de edio. O projetista poder informar
uma expresso de filtro em Condicao, como default o
prximo registro ser acrescido de 1 (um).
Exemplo
AtribuiAutoIncremento(TabGlobal.DCLIENTES,
CLI_CODIGO, Xedit1, , True);
135
Declarao
function LocalizaTabela(Nome: String): TTabela;
Descrio
Localiza uma Tabela do projeto pelo nome.
Exemplo
Tabela_ed := LocalizaTabela(CLIENTES);
136
8. DICAS E MACETES
A seguir iremos mostrar algumas dicas, macetes e solues
para utilizao do X-Maker e dos projetos gerados.
8.1. Ao abrir ou criar num novo projeto no XMaker mensagem de erro "unavailable
database" (Banco de Dados Indisponvel)
apresentada, o que fazer?
A mensagem "unavailable database" indica que firebird
no est gerenciando corretamente. Para equipamentos que
utilizem o windows 98 necessrio a reinicializao do micro
aps a instalao do X-Maker, se no for o caso outro problema
pode ocorrer entre o FireBird e o InterBase. Em seu micro j
estava instalado o InterBase ? Faa a seguinte operao: desative
o interbase ou firebird, veja na bandeja de cones do windows
(barra de tarefas), remova no painel de controle em "Adicionar
ou Remover Software" o interbase e o firebird e reinicialize o
micro.
Faa
a
instalao
do
FireBird
"C:\XMaker\Firebird\Firebird.exe".
possvel configurar a forma de execuo do Firebird, em
Painel de Controle -> Firebird 1.5 Server Manager voc
pode alterar a forma de execuo entre Service ou Application.
Como padro o Firebird executado como Service. Faa a
mudana do tipo de execuo caso o problema continue.
137
138
Vejamos outras
Sistema:
informaes
armazenadas
na
estrutura
139
Sistema.Titulo: String
140
Sistema.Grupo: String
Sistema.ListaUsuarios:
TstringList
Sistema.EmpresaUsr: String
Sistema.EnderecoUsr: String
Sistema.BairroUsr: String
Sistema.CidadeUsr: String
Sistema.UfUsr: String
Sistema.CepUsr: String
Sistema.CNPJUsr: String
Sistema.IEUsr: String
Sistema.FonesUsr: String
Sistema.LogoUsr: String
Sistema.Integridade: Boolean
141
Exemplo de Ordenao:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco Modular. Modificaes no
sero preservadas}
Result := True;
{99-Final do Bloco Modular. Modificaes no
sero preservadas}
TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO
Desc';
end;
142
143
144
145
146
147
de
codificao
do
evento
148
149
150