Escolar Documentos
Profissional Documentos
Cultura Documentos
www.xmaker.com.br
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, 7, 2005, 2006 e
Turbo Delphi 2006, 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/2.x, SQLBase,
Oracle, SQLServer, SyBase, DB2, Informix, ODBC, MySql, PostgreSQL e OLEDB.
Agilidade, praticidade e confiabilidade so os pontos principais na
construo de aplicaes atravs dessa ferramenta, seja ela de pequena ou de
grande complexidade. possvel criar um projeto sem nenhum esforo de
programao.
As Empresas desenvolvedoras e organizaes encontraro nessa
ferramenta um ganho significativo de produo e padronizao, a reduo de
custos de desenvolvimento e manipulao de projetos ser uma meta alcanada,
outro ponto importante a independncia de um desenvolvedor especfico, o
trabalho em grupo ser valorizado.
Os profissionais liberais encontraro todos os recursos necessrios para
uma produo mais ativa e dinmica na criao de softwares. Para aqueles que
no se consolidaram no desenvolvimento de aplicaes em ambiente Windows,
podero iniciar a migrao sem traumas ou incertezas.
Pensando no crescimento e aperfeioamento dos estudantes, instrutores e
professores da linguagem de programao Delphi, a verso Free Edition ir
proporcionar um novo universo de conhecimento e experincias na criao de
projetos.
1.1. Pr-requisitos
As exigncias mnimas de software e hardware para que seu sistema
execute corretamente o X-Maker so:
Microsoft Windows (98 ou verso posterior).
Delphi 5, 6, 7, 2005, 2006 ou Turbo Delphi 2006 na verso Professional ou
Enterprise instalado na mquina.
Microcomputador com processador Pentium (ou superior), 64 megabytes de
memria, 120 megabytes de espao livre em disco.
1.2.3 FireBird:
O FireBird o gerenciador de banco dados utilizado pelo X-Maker. Sua
instalao necessria para o funcionamento correto do X-Maker. Caso o
InterBase 6.x ( ou superior ) esteja instalado em seu computador a instalao do
FireBird no ser necessria, por ser compatvel com o FireBird. Qualquer verso
do Interbase inferior a 6.x dever ser desinstalada antes da instalao do FireBird.
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:
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 duplicados na incluso de registros.
Como exemplo podemos citar uma tabela de cadastro de clientes, ao cadastrar o
cdigo 0001 esse cdigo no poder ser mais utilizado por outro cliente enquanto
o mesmo existir.
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.
5. CONFIGURANDO O X-MAKER
Uma configurao padro acompanha o X-Maker em sua instalao, essa
configurao pode ser alterada a qualquer momento pelo projetista. Atravs do XMaker 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.
Menu File: Clique na opo Open e localize a pasta de instalao do XMaker, acesse a pasta Comp\Delphi\Fr234 e Comp\Delphi Exemplo:
C:\XMaker6\Comp\Delphi .
5.2. Modelos
O X-Maker utiliza a pasta Delphi (C:\XMaker6\Delphi) para armazenar os
modelos de mdulos dos projetos, o projetista poder alterar os modelos e
armazenar em pastas diferentes, dessa forma o modelo padro preservado.
Menu Estilo XP: Exibe o menu no padro do Windows XP, cores e formato.
O usurio final poder alterar essa opo no menu Exibir em Ambiente.
Imagem de Fundo (3): Define uma imagem de fundo para o projeto final, o
usurio poder alterar a imagem no projeto final atravs do Menu Principal
Exibir em Ambiente.
Para forar uma gerao dos arquivos fonte das Tabelas, marque a opo
Regerar Fontes. Ao fechar a janela de Tabelas os arquivos fonte sero
regerados.
6.2.1 Definindo Atributos da Tabela
Nome: Informe o nome da Tabela, esse nome ser usado para criao do
arquivo fonte (unit) e para criao da Tabela dentro do Banco de Dados.
Ttulo: Informe o ttulo da Tabela, esse ttulo utilizado para o uso interno
do projeto.
Banco de Dados: Essa informao obrigatria, toda Tabela tem que estar
vinculada a um Banco de Dados, para definir um Banco de Dados clique na
aba Banco de Dados.
Bco. Dados: Tipo de Banco de Dados a ser utilizado, essa opo utilizada
quando a Conexo Padro no est habilitada.
Alias: Esse nome para uso interno da codificao dos arquivos fontes.
Dica:
6.2.5 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.1 Tipo
Informe o tipo de dado para armazenamento na Tabela.
As opes disponveis so:
6.2.5.2 Chave
Indica se o campo faz parte da chave primria, uma chave primria
composta por um ou mais campos da Tabela.
6.2.5.3 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.
Exemplo: CNPJ alfanumrico de tamanho 14 a mscara 99.999.999/9999-99
os pontos (.) e barra (/) no so considerados para calcular o tamanho do campo.
6.2.5.4 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.5 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:
6.2.5.6 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.7 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).
O X-Maker cria uma lista de opes de mscaras disponveis conforme o
tipo e tamanho do campo. Clique no boto vinculado ao atributo.
6.2.5.8 Campos Numricos e Fracionrios:
6.2.5.10 Ttulo
Informe o ttulo do campo, esse ttulo utilizado no formulrio de entrada de
dados e relatrios.
6.2.5.11 ndice
Informe o nmero da ordem de apresentao do campo durante a consulta
no formulrio de Entrada de Dados.
6.2.5.12 Invisvel
Informe se o campo no ser visvel durante a consulta no formulrio de
Entrada de Dados.
6.2.5.13 Ajuda
Informe a mensagem de ajuda do campo, essa mensagem utilizada no
formulrio de entrada dados (Hint).
6.2.5.20 Procurar em
Informe se o campo ser pesquisado e validado em outra Tabela, a mesma
dever ser definida em Relacionamentos, somente tabelas relacionadas podero
ser pesquisadas. Campos com o tipo de edio: Lista Externa (Estrangeira)
podero utilizar esta opo para garantir a consistncia dos dados.
6.2.5.21 Msg. de Erro Mensagem de Erro
Informe uma mensagem de erro a ser apresentada para o usurio quando
os atributos de Validao ou Procurar em retornarem Falso, o X-Maker gera
uma mensagem padro quando este atributo estiver vazio.
6.2.5.22 Valores Vlidos
uma lista de valores com suas respectivas descries. Esta lista
utilizada para campos cuja Edio seja: Lista Interna (Combo Drop), Optativo
(Rdio Button) ou Conferncia (Check Box).
Processo Direto.
Processo Inverso.
6.2.11 Lanamentos
Os lanamentos podero ser utilizados para gerar um novo registro em
outra tabela aps a incluso. O projetista poder definir lanamento avulso de livre
codificao.
TTabela;
Campo:
String;
Edio direta: Informe se o Grid ter uma edio direta, ou seja, no ser
necessrio utilizar um formulrio filho para manipulao dos dados.
Formulrio: A manipulao dos registros poder ser realizada atravs de
um formulrio filho. Antes de inserir um Grid de Relacionamento em um
formulrio de Entrada de Dados faa a definio de um formulrio de
Entrada de Dados Filho da Tabela relacionada.
Este o quarto passo para criao de um projeto, atravs desta opo o projetista
ir definir todos os relatrios, etiquetas e grficos a serem utilizados pelo projeto.
Em um projeto a extrao de resultados realizada atravs dessa opo,
possvel criar vrios tipos de relatrios, o projetista ter toda liberdade de criao
atravs do Editor de Layout.
< Menor que: Indica que apenas os registros cujo campo selecionado,
forem menores que o valor fixo ou varivel sero listados. Exemplo: Nome
< Maria somente os registros que forem menores que Maria sero
listados. Para campos Alfanumricos, conforme exemplo, a comparao
alfabtica. Os campos numricos e datas so comparados por valores.
> Maior que: Indica que apenas os registros cujo campo selecionado,
forem maiores que o valor fixo ou varivel sero listados. Exemplo: Nome >
Maria somente os registros que forem maiores que Maria sero listados.
>= Maior ou Igual: Indica que apenas os registros cujo campo selecionado,
forem maiores ou iguais ao valor fixo ou varivel sero listados. Exemplo:
Nome >= Maria somente os registros que forem maiores ou iguais a
Maria sero listados.
6.4.3 Ordenao
A ordenao dos registros a serem listados definida pelo projetista, a
chave de ordenao poder ser composta ou no. Chaves compostas indicam que
mais de um campo sero utilizados na formao do ndice.
Exemplo de Bandas.
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.
listados,
sintaxe:
Mod: Retorna o resto da diviso entre dois nmeros, sintaxe: value1 Mod
value2
Input: Mostra uma caixa de texto, onde o usurio poder digitar qualquer
informao extra, sintaxe: Input(<caption> [,<default>])
Dica:
A pasta C:\XMaker6\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.
Barra de Ferramentas
Rotina Avulsa
Ao inserir uma rotina avulsa o boto
A opo
fora a recompilao de todos os mdulos
do projeto
Para executar o projeto automaticamente aps a compilao, marque a
.
opo
Outros fatores podero atrapalhar o processo de compilao, uma delas a
configurao errada do compilador e parmetros utilizados. Veja o tpico
Configurando o X-Maker para certificar-se se o compilador est configurado da
forma correta. Por tratar-se de uma compilao via comandos do MS-DOS, devese considerar as restries de uso do MS-DOS, configuraes do Autoexec.bat e
Config.sys podero interferir na execuo.
A compilao poder ser realizada diretamente no Delphi, veja o tpico
Configurando o X-Maker em Compilando e Executando pelo Delphi. No h
diferenas entre os meios de compilao, o resultado ser o mesmo.
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:
if not Ptabela(TabGlobal.Dclientes, [CLI_CODIGO],
[TabGlobal.Dvendas.CLI_CODIGO.Conteudo]) then
MessageDlg(Cliente no encontrado ..., mtWarning, [mbOk], 0);
2) Pesquisa registros realiza clculos e retorna os valores desejados:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Clculos]: Variant, Filtro: String, Resultado:
Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Clculos] = Vetor de clculos, para mais de um campo
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].
4 Parmetro: Update = Expresso em SQL para atualizao (Update).
Exemplo:
if not PTabela(TabGlobal.DESTOQUE, ['CODIGO'],
[TabGlobal.DITVENDAS.PRODUTO.Conteudo], 'QUANTIDADE = QUANTIDADE '+FracToStr(TabGlobal.DITVENDAS.QUANT.Conteudo)) then
MessageDlg(Falha na atualizao ..., mtError, [mbOk], 0);
5) Pesquisar um registro em uma tabela e exclui:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor de Valores]: Variant,
Excluir: Boolean): Boolean;
Funo DiretorioComBarra
Declarao
function DiretorioComBarra(NomeDir: string): string;
Descrio
Insere a ltima barra invertida ao nome do diretrio NomeDir, caso seja
necessrio.
Exemplo
Pasta := DiretorioComBarra(DirWindows);
Funo DiretorioSemBarra
Declarao
function DiretorioSemBarra(NomeDir: string): string;
Descrio
Retira a ltima barra invertida do nome do diretrio NomeDir, caso seja
necessrio.
Exemplo
Pasta := DiretorioSemBarra(DirWindows);
Funo RetiraHK
Declarao
function RetiraHK(S: string): string;
Descrio
Retira os caracteres & e ... de uma string S.
Exemplo
titulo := RetiraHK(mnu_clientes.Caption);
Funo ArrayOfString
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, ;);
Funo StringToArray
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
StringToArray(Azul;Branco;Amarelo, ; , Lista);
Funo DirWindows
Declarao
function DirWindows: string;
Descrio
Retorna a pasta de instalao do sistema operacional Windows.
Exemplo
Pasta := DirWindows;
Funo RetiraBrancos
Declarao
function RetiraBrancos(Str: string): string;
Descrio
Retira todos os caracteres brancos de uma varivel string Str.
Exemplo
Pasta := RetiraBrancos(DirWindows);
Funo ExecutaForm
Declarao
procedure ExecutaForm(FormClass: TFormClass; var Reference);
Descrio
Executa formulrios do tipo MDI.
Exemplo
ExecutaForm(TFormClientes,FormClientes);
Funo CopiaArquivo
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);
Funo CopiaArquivoMascara
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) ;
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);
Funo PadL
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);
Funo Center
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);
Funo Space
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);
Funo DataAtual
Declarao
function DataAtual: TDateTime;
Descrio
Retorna a data atual do sistema.
Exemplo
data := DataAtual;
Funo HoraAtual
Declarao
function HoraAtual: string;
Descrio
Retorna a hora atual do sistema em uma varivel string, no formato 999999.
Exemplo
hora := HoraAtual;
Funo PorExtenso
Declarao
function PorExtenso(FValor: Double): String;
Descrio
Retorna um valor inteiro ou fracionrio por extenso.
Exemplo
extenso := PorExtenso(100.50);
Funo Encript
Declarao
Encript(Encript : String): string;
Descrio
Codifica uma varivel string Encript.
Exemplo
senha := Encript(x-maker); // Retorna: qfjbl.w
Funo Decript
Declarao
function Decript(Decript : String): string;
Descrio
Decodifica uma varivel string Decript.
Exemplo
senha := Encript(qfjbl.w); // Retorna: x-maker
Funo StrZero
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
numero := StrZero(100, 5); // Retorna: 00100
Funo Dia
Declarao
function Dia( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do dia de uma data.
Exemplo
Nr_dia := Dia(DataAtual);
Funo Mes
Declarao
function Mes( Data: TDateTime ): string;
Descrio
Retorna uma varivel string com o nmero do ms de uma data.
Exemplo
Nr_mes := Mes(DataAtual);
Funo MesAno
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);
Funo Ano
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);
Funo UltimoDiadoMes
Declarao
function UltimoDiaDoMes( MesAno: string ): string;
Descrio
Retorna uma varivel string com o nmero do ltimo dia de determinado ms e
ano.
Exemplo
Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) + Ano(DataAtual));
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
Funo MascValor
Declarao
function MascValor(Valor: Extended; Mascara: string): string;
Descrio
Converte uma varivel fracionria Valor para uma string formatada Mascara.
Exemplo
Valor :=MascValor(100.50, ZZZ.ZZ9,99);
Funo MascTexto
Declarao
function MascTexto(S, Mascara: String): string;
Descrio
Retorna uma varivel string S formatada Mascara.
Exemplo
Cep :=MascTexto(38010020, 99999-999);
Funo TrocaString
Declarao
function TrocaString(const S, OldPattern, NewPattern: string; Flags:
TReplaceFlags): string;
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]);
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);
Funo FracToStr
Declarao
function FracToStr(Valor: Extended): String;
Descrio
Converte um nmero fracionrio valor em uma varivel string. retornado o
ponto para as casas decimais e no a vrgula como no mtodo FloatToStr. Este
mtodo o mais indicado para atribuies em expresses SQL.
Exemplo
numero := FracToStr(100.50);
Funo CalcC
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);
Funo Exponencial
Declarao
function Exponencial(N1: Extended; N2: Integer): Extended;
Descrio
Faz o clculo exponencial entre os valores N1 e N2.
Exemplo
calculo := Exponencial(5, 2);
Funo StrNumerica
Declarao
function StrNumerica(N: String) : Boolean;
Descrio
Verifica se varivel string N possui apenas nmeros.
Exemplo
ok := StrNumerica(123456);
Funo ConverteLogico
Declarao
function ConverteLogico(Valor: Boolean): string;
Descrio
Converte uma expresso lgica em uma varivel string. True = T e False = F.
Exemplo
ok := ConverteLogico(True);
Funo ConverteStrToLog
Declarao
function ConverteLogico(Valor: Boolean): string;
Descrio
Converte uma varivel string em uma expresso lgica. T = True e F = False.
Exemplo
ok := ConverteStrToLog(T);
Funo SerialHD
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.
Exemplo
Serial := SerialHD(C); // Unidade C:\
Funo Vnivel
Declarao
function VNivel: Boolean;
Descrio
Exemplo de Filtragem:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco X-Maker. Modificaes no sero preservadas}
Result := True;
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}
TabGlobal.DCONTAS.Filtro.Text := 'CLI_CODIGO = 100';
end;
Exemplo de Ordenao:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco X-Maker. Modificaes no sero preservadas}
Result := True;
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}
TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO Desc';
end;
* Desc = Indica que o ndice ser decrescente.
Como ocultar um campo via cdigo para que o mesmo no seja visualizado
no Grid de consulta do formulrio?
Faa a edio do evento de Inicializao (FormShow) do formulrio de
entrada de dados.
Exemplo:
TabGlobal.DCLIENTES.NOME.Valor.Visible := False;
* A propriedade Valor um TField vinculado a tabela e ao campo.
Como configurar o projeto final para compartilhamento das Tabela em uma
rede?
Para configurar o uso em Rede dos projetos gerados no X-Maker,
simples, execute o projeto e clique no Arquivo -> Empresa Usuria e clique no
boto Editar. No campo Localizao informe o nmero do IP ou o nome do
servidor + pasta + base de dados.
Exemplo:
Localizao (DataBase): C:\XMaker6\Exemplos\Contas\Base.Gdb
Servidor (HostName): 195.195.1.1
Ou
Servidor (HostName): NetServidor
Nas estaes o FireBird tem que estar instalado !
Crie um atalho nas estaes buscando o executvel do projeto e pronto !
Quando usar a Pasta Bsica em Exibir -> Ambiente?
Caso voc no queira buscar o executvel da rede, cada estao teria o
executvel do projeto, utilize a pasta bsica para buscar as definies de usurio e
localizao da base de dados.
Exemplo:
\\Servidor\Dados\XMaker\Exemplos\Contas\
ou
F:\XMaker\Exemplos\Contas\
* As configuraes em Exibir -> Ambiente so gravadas na pasta do Windows, o
nome do arquivo o nome do executvel + a extenso .INI
Exemplo:C:\Windows\Contas.INI
Faa e excluso desse arquivo para voltar as configuraes padres ou faa a
edio do mesmo atravs do Edit ou Bloco de Notas.
Como configurar o boto Tabelas no formulrio de Entrada de Dados?
Exemplo:
{10-Incio do Bloco X-Maker. Modificaes no sero preservadas}
if MenuItem.Tag = 6001 then
begin
FormAtividades := TFormAtividades.Create(Application);
Try
FormAtividades.ShowModal;
Finally
FormAtividades.Free;
end;
end
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}
necessrio referenciar as units dos formulrios utilizados na clusula
uses.
O projetista poder utilizar o boto Tabelas para outras finalidades ou at
mesmo remove-lo, fica a critrio do projetista.
Como posso eliminar os registros excludos e tabelas temporrias em minha
base de dados Firebird/Interbase?
O utilitrio "GBAK" que instalado junto com Firebird faz esse tipo de
operao, a tcnica fazer um backup e depois restaurar, o "GBAK" faz um
backup somente das informaes realmente necessrias e depois restaura. Na
restaurao os ndices so recriados e o seu banco de dados totalmente
"Balanceado".
Aps a utilizao do "GBAK" o seu banco de dados ir conter um tamanho
bem menor e a sua performace ser melhorada.
Exemplo de utilizao do "GBAK":
. V para o "Prompt do MS-DOS"
. Acesse a pasta de localizao do banco de dados
. Digite na linha de comando do DOS:
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
Vamos analisar os comando digitados:
COPY "Arquivos de ... = Copia o "Gbak.exe" da pasta de instalao do Firebird.
tipo
"Zebrado"
no
Grid
de
"OnDrawColumnCell".
Voc poder utilizar este recurso em qualquer formulrio que possui um
"Grid
de
Consulta/Relacionamento",
faa
a
edio
do
evento
"OnDrawColumnCell" na janela "Propriedades (Object Inspector)". Faa a
codificao do evento conforme o exemplo abaixo.
Codificao do evento "OnDrawColumnCell":
{utilize o "var" para declarar variveis}
begin
{codificao...}
with TDBGrid(Sender) do
if odd(DataSource.DataSet.RecNo) then //Se for nmero impar
begin
Canvas.Brush.Color := $00DFDF00; //Cor da linha da linha
Canvas.FillRect(Rect);
DefaultDrawDataCell(Rect,Column.Field,State);
if gdFocused in state then
begin
Canvas.Brush.Color := clNavy; // Cor de seleo
Canvas.FillRect(Rect);
DefaultDrawDataCell(Rect,Column.Field,State);
end;
end;
end;
Nota:
9.DICAS DE PROGRAMAO
Executar link de e-mail ou URL
ShellExecute(0, nil, pchar('mailto:xmaker@xmaker.com.br'), nil, nil,
SW_SHOWNORMAL);
ShellExecute(0, nil, pchar('http://www.xmaker.com.br'), nil, nil, SW_MAXIMIZE);
Obs.: Declare em "uses" a unit ShellAPI
Enviar dados para o Excel
Declare uma varivel do tipo "OleVariant", exemplo:
...
{ Private declarations }
excel: OleVariant;
public
{ Public declarations }
end;
...
Codificao:
try
excel:=CreateOleObject('Excel.Application');
excel.Workbooks.add(1); // Para "nova" planilha ...
//excel.Workbooks.open('c:\XMaker6\projetos\excel\exemplo.xls'); // Abrir
planilha j existente
except
Application.MessageBox ('Verso do MsExcel'+'Incompatvel','Erro',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
excel.cells[05, 03] := 5999.99; // Atribui o valor 5999.99 na linha 05, coluna 03
excel.columns.AutoFit;
excel.visible:=true;
Top := 10;
Width := 30;
Height := 16;
end;
Obs. Os componentes utilizados devem ser declarados em "uses" do formulrio.
Filtrar Dia/Ms/Ano em SQL (Interbase/Firebird)
Utilize o mtodo "Extract" em uma expresso SQL, exemplos:
(Extract(month from Atendimentos.ATE_DATA) = 11) and (Extract(year from
Atendimentos.ATE_DATA) = 2005)
Em relatrio o projetista pode utilizar os valores de componentes de uma
caixa de dilogo, exemplo:
(Extract(month from Atendimentos.ATE_DATA) = :XNumEdit1) and (Extract(year
from Atendimentos.ATE_DATA) = :XNumEdit2)
O projetista poder extrair o dia tambm, exemplo:
Extract(day from Atendimentos.ATE_DATA) = 08)
Importar registros de um arquivo texto
Exemplo de utilizao dos mtodos "assignfile (Delphi)" e "StringToArray
(X-Maker)".
{utilize o "var" para declarar variveis}
var
f: textfile;
i: Integer;
Linha: String;
Lista: TStringList;
begin
{codificao...}
if Not FileExists(Sistema.Pasta + 'Bairros.txt') then
begin
MessageDlg('Arquivo no encontrado!' + ^M+^M + Sistema.Pasta + 'Bairros.txt',
mtWarning, [mbOk], 0);
exit;
end;
if MessageDlg('Importar arquivo de Bairros?', mtConfirmation, [mbYes, mbNo],
0) <> mrYes then
exit;
if CheckBox1.Checked then // Limpa a Tabela se o componente "CheckBox1"
estiver habilitado
TabGlobal.DCEP_Bairros.LimparTabela;
Lista := TStringList.Create;
assignfile(f, Sistema.Pasta + 'Bairros.txt');
reset(f);
try
readln(f, Linha);
while not Eof(f) do
begin
readln(f, Linha);
StringToArray(Linha, ';', Lista);
TabGlobal.DCEP_Bairros.Inclui(Nil);
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0);
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo :=
StrToIntDef(Lista[2], 0);
TabGlobal.DCEP_Bairros.Post;
Application.ProcessMessages;
end;
finally
CloseFile(f);
Lista.Free;
Application.ProcessMessages;
TabGlobal.DCEP_Bairros.Transaction.CommitRetaining;
Application.ProcessMessages;
end;
end;
Exportao de registros para arquivo texto
Exemplo de leitura e gravao de registros em arquivo texto.
var
f: textfile;
i: Integer;
Linha: String;
Campo: TAtributo;
Nome, Separador: String;
begin
Separador := ';' // Separar campos por ; (ponto-e-vrgula)
if MessageDlg('Exportar Bairros?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes
then
exit;
Nome := 'CEP_Bairros.txt';
InputQuery('Bairros', 'Nome do Arquivo:', Nome);
if Trim(Nome) = '' then
exit;
TabGlobal.DCEP_Bairros.Filtro.Clear;
TabGlobal.DCEP_Bairros.AtualizaSql;
assignfile(f, Sistema.Pasta + Nome);
rewrite(f);
while not TabGlobal.DCEP_Bairros.Eof do
begin
Application.ProcessMessages;
Linha := '';
for I:=0 to TabGlobal.DCEP_Bairros.Campos.Count-1 do
begin
Campo := TAtributo(TabGlobal.DCEP_Bairros.Campos[I]);
if not Campo.Extra then
Linha := Linha + Campo.Valor.AsString + Separador;
end;
if Trim(Linha) <> '' then // Retira o ltimo separador da linha
Linha := Copy(Linha, 01, Length(Linha)-1);
writeln(f , Linha);
TabGlobal.DCEP_Bairros.Next;
end;
CloseFile(f);
MessageDlg('Arquivo Gerado: '+Sistema.Pasta + Nome, mtInformation, [mbOk],
0);
Application.ProcessMessages;
end;
Ler linhas de um campo do tipo "Memo"
Para ler o contedo de um campo "Memo" utilize a propriedade "Conteudo"
do objeto, essa propriedade do tipo "TStringList", exemplo:
var
I: Integer;
begin
for I:=0 to TabGlobal.DCLIENTES.Obs.Conteudo.Count-1 do
ShowMessage(TabGlobal.DCLIENTES.Obs.Conteudo[I]);
end;
Campo "Calculado" para mostrar a primeira linha de um campo "Memo"
Campos do tipo "Memo" no so visualizados em "Grid" de Consulta, uma
alternativa criar um campo "Calculado" (Alfanumrico) e atribuir uma frmula
para capturar a primeira linha do "Memo", exemplo:
{ a varivel "Result" dever conter o resultado, exemplo:
I := TabGlobal.DAtendimentos.ATE_RESUMO.Conteudo + 'ABC';
Result := I; }
if
TabGlobal.DAtendimentos.ATE_OBSERVACAO.Conteudo.Count > 0 then
Result := TabGlobal.DAtendimentos.ATE_OBSERVACAO.Conteudo[0]
else
Result := '';