Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual XMaker PDF
Manual XMaker PDF
MANUAL DO USUÁRIO
http://www.xmaker.com.br
Modular Software
Uberaba – M.G.
2
COPYRIGHT
1. O QUE É O X-MAKER?
1.1. Pré-requisitos
1.2.4 FireBird:
2. INTERFACE DO X-MAKER
Visão geral:
8
3. CONCEITOS BÁSICOS
3.2. Tabelas
3.3. Campos
5. CONFIGURANDO O X-MAKER
6. CONHECENDO AS ETAPAS DE
DEFINIÇÃO DE UM PROJETO
Barra de Ferramentas
Menu Principal
25
Dica:
Dica:
6.2.5.1 Nome
Informe o nome que será utilizado para tratamento interno
dos arquivos fontes e para criação em disco da Tabela. Utilize o
botão para importar uma estrutura predefinida.
6.2.5.2 Tipo
Informe o tipo de dado para armazenamento na Tabela.
6.2.5.3 Chave
Indica se o campo faz parte da chave primária, uma chave
primária é composta por um ou mais campos da Tabela.
6.2.5.4 Tamanho
Informe o tamanho máximo para armazenamento no
campo, não considerar o sinal de negativo (-), o separador de
decimais (,) e outros caracteres separadores utilizados na
máscara.
39
6.2.5.5 Autoincremento
Indica que o campo será incrementado automaticamente
(seqüencialmente), somente campos do tipo: Número inteiro,
Fracionário e data poderão utilizar essa opção. A seqüência é
subordinada a posição do campo na Tabela.
6.2.5.6 Edição
Informe o tipo de edição de controle, o formulário de
entrada de dados irá utilizar o tipo de edição para inserir os
componentes na tela. Os tipos disponíveis são:
Válidos”. Exemplo:
• Check Box (Conferência): Caixa optativa de marca e
desmarca. Os valores válidos são 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 (não é gravado fisicamente na
Tabela) ou não virtual (é gravado fisicamente na Tabela). Sua
utilização é válida quando se deseja mostrar um cálculo ou
fórmula específica.
6.2.5.8 Máscara
Informe a máscara de apresentação do campo para
formulários e relatórios. Os caracteres usados como máscara não
são armazenados na Tabela e não ocupam espaço adicional.
6.2.5.9 Título
Informe o título do campo, esse título é utilizado no
formulário de entrada de dados e relatórios.
6.2.5.10 Índice
Informe o número da ordem de apresentação do campo
durante a consulta no formulário de “Entrada de Dados”.
6.2.5.11 Invisível
Informe se o campo não será visível durante a consulta no
formulário de “Entrada de Dados”.
6.2.5.12 Ajuda
Informe a mensagem de ajuda do campo, essa mensagem é
utilizada no formulário de entrada dados (Hint).
6.2.5.15 Pré-Validação
Informe uma condição lógica para edição do campo no
formulário de “Entrada de Dados”. O campo somente será
editável se a condição retornar “verdadeiro” ou se não existir
nenhuma condição definida.
Exemplo: TabGlobal.DClientes.TIPO_PESSOA.Conteudo = 'F'
Neste exemplo o campo “CPF” somente será editável se o tipo
de pessoa for “Física”. Para deixar o campo sem edição insira o
valor lógico “Falso”, exemplo: False
6.2.5.16 Ação
Informe a “Ação” a ser executada após a “Pré-Validação”,
esta “ação” é executada quando a “Pré-Validação” retorna
“Falso”. Seguindo o exemplo acima do campo “CPF” o
projetista poderá definir se o campo será “Não Editável” ou
“Invísivel” quando o usuário escolher o tipo de pessoa
“Jurídica”.
44
6.2.5.18 Validação
Informe uma função de validação para o campo. Essa
função será vinculada ao evento OnExit (Ao Sair) do campo no
formulário de entrada de dados, ou seja, quando o cursor mudar
de campo ou o usuário clicar em Salvar. Para utilizar mais de
uma validação em um mesmo campo utilize o ponto-e-vírgula,
exemplo: DATAVALIDA;VALORNULO
arquivo texto comum que poderá ser editado por qualquer editor
de texto. Personalizações nesse arquivo são reconhecidas. A
edição desse arquivo é justificável quando o projetista cria novas
funções de validação no arquivo fonte “Validar.Pas”.
6.2.5.19 Procurar em
Informe se o campo será pesquisado e validado em outra
Tabela, a mesma deverá ser definida em “Relacionamentos”,
somente tabelas relacionadas poderão ser pesquisadas. Campos
com o tipo de edição: “Lista Externa (Estrangeira)” poderão
utilizar esta opção para garantir a consistência dos dados.
Processo “Direto”.
Processo “Inverso”.
54
6.2.11 Lançamentos
O X-Maker permite a
criação de até 11 páginas
por formulário, ao
utilizar o recurso de
auto formatação novas
páginas poderão ser
criadas automaticamente
dependendo da
quantidade de campos
da Tabela.
Dica:
Exemplo:
AddMenuItem(PopRelacionados, 'Atividades',
'mnuAtividades', True , 0, 6001);
Exemplo:
Dica:
Dica:
6.4.4.1 Bandas
As “Bandas” são áreas específicas que poderão conter
campos ou objetos a serem impressos. Cada banda é responsável
por um recurso diferente no relatório, temos como exemplo as
áreas de cabeçalho (topo do relatório), rodapé, cabeçalho de
colunas, registros da tabela, grupo de quebra, etc.
Exemplo de “Bandas”.
disponíveis.
Insere um código de barras, muito utilizado para
impressão de etiquetas de produtos.
Insere um objeto “Check Box”.
Insere um objeto de desenho com vários formatos.
Insere uma caixa de texto.
Insere um objeto de compartilhamento com outros
aplicativos, tais como o Word, Excel, Corel Draw e
outros.
Cálculos em Relatórios
exemplo: [Center([Dprodutos.”PRO_DESCRICAO”],
80)]
• Space: Cria uma “String” em branco de tamanho
determinado, sintaxe: Space(<tamanho>), exemplo:
[Space(80)]
• PorExtenso: Retorna um número por extenso, em
português, sintaxe: PorExtenso(<valor>), exemplo:
[PorExtenso([Dproduto.”PRO_PRECO”])]
• StrZero: Converte um número inteiro em “String” com
zeros à esquerda, sintaxe:
StrZero(<número>,<tamanho>), exemplo:
[StrZero([Dproduto.”PRO_CODIGO”], 05)]
• FormatMaskText: Formata uma “String” conforme a
máscara informada, sintaxe:
FormatMaskText(<máscara>, <string>), exemplo:
[FormatMaskText(‘XXXX’,
[Dprodutos.”PRO_UNIDADE”])]
• MascTexto: Formata uma “String” conforme a máscara
informada, sintaxe: MascTexto(<string>, <máscara>),
exemplo: [MascTexto([DClientes."CEP"], '99999-999')]
• MascData: Formata uma data conforme a máscara
informada, sintaxe: MascData(<data>, <máscara>),
exemplo: [MascData([DVendas."VEN_DATA"],
'dd/mm/yy')]
• CalcC_0: Arredonda uma expressão de cálculo e retorna
sem casas decimais, sintaxe: CalcC_0(<valor 1>, <valor
2>, <operador>), exemplo: [CalcC_0(99.56, 85.56, ‘+’)]
• CalcC_1: Arredonda uma expressão de cálculo 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 expressão de cálculo e retorna
com duas casas decimais, sintaxe: CalcC_2(<valor 1>,
94
Dica:
Barra de Ferramentas
Rotina Avulsa
Campos
Declaração de Variáveis Publicas.Pas
Públicas
Componentes Extras Extras.Pas
Chamada de Interno.Pas
Formulários Internos
Calendário Calend.Pas; Calend.Dfm
Calculadora Calculad.Pas; Calculad.Dfm
Agenda de Telefones Agenda.Pas; Agenda.Dfm
Edição da Agenda AgEdit.Pas; AgEdit.Dfm
Acesso de Usuários Acesso.Pas; Acesso.Dfm
Configuração de Senhas.Pas; Senhas.Dfm
Senhas
Edição de Usuários EdUsr.Pas; EdUsr.Dfm
Edição de Grupos de EdGrp.Pas; EdGrp.Dfm
Usuários
Configuração de CfgEmp.Pas; CfgEmp.Dfm;
Empresas Usuárias CfgEmp.Res
Seleção de Empresas SelEmp.Pas; SelEmp.Dfm
Usuárias
Configuração do Ambiente.Pas; Ambiente.Dfm
Ambiente de Trabalho
Configuração da Filtro.Pas; Filtro.Dfm
Filtragem em Tabelas
Bate Papo em Rede BatePapo.Pas; BatePapo.Dfm
Cópia de Segurança Backup.Pas; Backup.Dfm
Restauração de Cópia Restaura.Pas; Restaura.Dfm
de Segurança
Utilitário de CabIntF.Pas; CabStComps.Pas;
Compactação de Dados CabStConsts.Pas; CabiNet.Dll
Formulário de Aguarde.Pas; Aguarde.Dfm
Mensagem de Processo
Visualizador de Fr_View.Pas;Fr_View.Dfm;Fr.Inc
Relatórios
104
Configuração de OpcRel.Pas;OpcRel.Dfm
Impressão
Sobre Sobre.Pas; Sobre.Dfm
Tabelas do Projeto DXXXX.Pas (XXXX = Nome da
Tabela)
Campos e Atributos ATRL9999.Pas (9999 = Nº Seq.
Tabela)
Modelo “Entrada de Modelo1.Pas;Modelo1.Dfm
Dados”
Modelo “Entrada de Modelo2.Pas;Modelo2.Dfm
Dados Filho”
Modelo “Avulso MDI” Modelo3.Pas;Modelo3.Dfm
Modelo “Avulso Modelo4.Pas;Modelo4.Dfm
Normal”
Modelo “Relatórios” Modelo5.Pas;Modelo5.Dfm
Modelo “Gráficos” Modelo6.Pas;Modelo6.Dfm
Modelo “Etiquetas” Modelo7.Pas;Modelo7.Dfm
Método Ptabela
Unit
Tabela.Pas
Descrição
Sintaxe:
Exemplo:
111
Sintaxe:
Exemplo:
var
CamposResultado: Variant;
begin
if Ptabela(TabGlobal.Ditvendas, ['SUM(QUANT)',
'SUM(PRECO * QUANT)'], 'NUMERO =
'+IntToStr(TabGlobal.DVENDAS.Numero.Conteudo),
112
CamposResultado) then
begin
Quant.Value := CamposResultado[0];
Total.Value := CamposResultado[1];
end;
end;
Sintaxe:
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;
Sintaxe:
Exemplo:
Sintaxe:
Exemplo:
115
• Declaração
• Descrição
• Exemplo
LbLinha.Caption := ConstStr(‘-‘,50);
• Declaração
• Descrição
• Exemplo
Pasta := DiretorioComBarra(DirWindows);
• Declaração
• Descrição
• Exemplo
Pasta := DiretorioSemBarra(DirWindows);
• Declaração
• Descrição
• Exemplo
titulo := RetiraHK(mnu_clientes.Caption);
117
• Declaração
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
118
• Declaração
• Descrição
• Exemplo
Pasta := DirWindows;
• Declaração
• Descrição
• Exemplo
Pasta := RetiraBrancos(DirWindows);
119
• Declaração
• Descrição
• Exemplo
ExecutaForm(TFormClientes,FormClientes);
• Declaração
• Descrição
• Exemplo
Ok := CopiaArquivo(‘C:\Projeto\Base.Gdb’,
‘D:\Base.Gdb’);
120
• Declaração
• Descrição
• Exemplo
Ok := CopiaArquivoMascara(‘C:\Projeto\’, ‘D:\’,
‘*.Gdb’) ;
• Declaração
• Descrição
• Exemplo
S := PadR(Sistema.Titulo, 40);
121
• Declaração
• Descrição
• Exemplo
S := PadL(Sistema.Titulo, 40);
• Declaração
• Descrição
• Exemplo
S := Center(Sistema.Titulo, 40);
122
• Declaração
• Descrição
• Exemplo
S := Space(40);
• Declaração
• Descrição
• Exemplo
data := DataAtual;
• Declaração
123
• Descrição
• Exemplo
hora := HoraAtual;
• Declaração
• Descrição
• Exemplo
extenso := PorExtenso(100.50);
• Declaração
• Descrição
124
• Exemplo
• Declaração
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
125
• Declaração
• Descrição
• Exemplo
Nr_dia := Dia(DataAtual);
• Declaração
• Descrição
• Exemplo
Nr_mes := Mes(DataAtual);
126
• Declaração
• Descrição
• Exemplo
Nr_mes_ano := MesAno(DataAtual);
• Declaração
• Descrição
• Exemplo
Nr_ano := Ano(DataAtual);
• Declaração
127
• Descrição
• Exemplo
Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) +
Ano(DataAtual));
• Declaração
• Descrição
• Exemplo
• Declaração
128
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
pontos := ContaOcorrencia(‘.’,‘999.999.999-99’);
• Declaração
• Descrição
130
• Exemplo
numero := FracToStr(100.50);
• Declaração
• Descrição
• Exemplo
• Declaração
131
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
ok := StrNumerica(‘123456’);
• Declaração
• Descrição
132
• Exemplo
ok := ConverteLogico(True);
• Declaração
• Descrição
• Exemplo
ok := ConverteStrToLog(‘T’);
• Declaração
• Descrição
• Exemplo
• Declaração
• Descrição
• Exemplo
• Declaração
function RetornaAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Condicao: String; Qtd:
Integer = 1): Variant;
• Descrição
134
• Exemplo
TabGlobal.DCLIENTES.CLI_CODIGO.Conteudo :=
RetornaAutoIncremento(TabGlobal.DCLIENTES,
‘CLI_CODIGO’, ‘’, 1);
• Declaração
procedure AtribuiAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Componente: TComponent;
Condicao: String; Editavel: Boolean);
• Descrição
• Exemplo
AtribuiAutoIncremento(TabGlobal.DCLIENTES,
‘CLI_CODIGO’, Xedit1, ‘’, True);
135
• Declaração
• Descrição
• Exemplo
Tabela_ed := LocalizaTabela(‘CLIENTES’);
136
8. DICAS E MACETES
Exemplo:
“C:\Arquivos de
programas\Borland\Delphi7\Bin\DCC32.EXE”
procedure TFormClientes.USUARIOEnter(Sender:
TObject);
begin
TabGlobal.DCLIENTES.USUARIO.Conteudo :=
Sistema.Usuario;
end;
Exemplo de Filtragem:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Início do Bloco Modular. Modificações não
serão preservadas}
Result := True;
{99-Final do Bloco Modular. Modificações não
serão preservadas}
TabGlobal.DCONTAS.Filtro.Text := 'CLI_CODIGO =
100';
end;
Exemplo de Ordenação:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Início do Bloco Modular. Modificações não
serão preservadas}
Result := True;
{99-Final do Bloco Modular. Modificações não
serão preservadas}
TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO
Desc';
end;
Exemplo:
TabGlobal.DCLIENTES.NOME.Valor.Visible := False;
Exemplo:
Ou
Exemplo:
\\Servidor\Dados\XMaker\Exemplos\Contas\
ou
F:\XMaker\Exemplos\Contas\
Exemplo:
AddMenuItem(PopRelacionados, 'Atividades',
'mnuAtividades', True , 0, 6001);
Exemplo:
COPY "C:Arquivos de
programas\Firebird\Firebird_1_5\Gbak.exe
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
COPY BASE.GDB BASE.COP
GBAK -B BASE.GDB BASE.GBK
GBAK -R BASE.GBK BASE.GDB