Vous êtes sur la page 1sur 15

Bem-vindo introduo do Visual DataFlex 2010

A Data Access Worldwide a criadora do Visual DataFlex. Desde 1976, a Data Access produz ferramentas para a construo de aplicaes de banco de dados. O Visual DataFlex tambm est disponvel na verso Personal Edition, que uma edio gratuita, totalmente funcional que pode ser utilizada para fins no-comerciais e privados. Neste momento, assumimos que voc tenha instalado o Visual DataFlex Studio. Se no, antes de ler esta introduo, faa o download da cpia em www.download.com ou www.visualdataflex.com e instale-o. O objetivo desta introduo mostrar a voc os passos envolvidos na construo de aplicaes de banco de dados com o Visual DataFlex. Faremos isso usando um cenrio de exemplo. Primeiramente, vamos fazer uma aplicao Windows e ento vamos fazer o banco de dados acessvel via Internet. A funcionalidade ser limitada para o que pode ser obtido por recursos drag & drop (arrastar e soltar) no Visual DataFlex. Mas no deixe isso impedi-lo de ir cada vez mais longe na linguagem de programao subjacente e framework! Vamos comear com a introduo de alguns conceitos para voc.

Orientao a objetos
O Visual DataFlex uma linguagem de programao orientada a objetos. Isso quer dizer que para todos os componentes frequentemente necessrios, uma classe j est definida. Essa classe de fato a definio de como tal componente aparenta e funciona e o que exatamente ele faz quando instanciado como um objeto em um programa escrito. A vantagem que muitos detalhes tcnicos so tratados automaticamente e voc pode se concentrar na real funcionalidade da aplicao a ser desenvolvida.

Workspace
Antes de comear um projeto, um novo ambiente precisa ser criado no computador, que a workspace. A workspace um conjunto de pastas em que a base de dados, cdigo-fonte e outros so armazenados. Em uma workspace, um ou mais projetos podem ser criados. Estes so programas eventuais ou executveis. A workspace e a informao do projeto so vistos no Visual DataFlex Studio atravs do Workspace Explorer. Voc tambm pode visualizar a estrutura do diretrio da workspace na caixa de configurao de propriedades da workspace.

Base de Dados
O Visual DataFlex funciona com qualquer banco de dados SGBD. Por exemplo, a combinao do Visual DataFlex Personal com MS SQL Express muito poderosa. O Visual DataFlex vem com os drivers necessrios de banco de dados, mas para a nossa introduo nos limitaremos ao banco de dados nativo (Embedded). A manuteno da base de dados feita no Visual DataFlex Studio. O Studio permite a criao de tabelas, a definio das regras de negcio e codificao. Mais tarde, voc conseguir facilmente converter tabelas nativas de um banco de dados para qualquer outro banco de dados suportado. Voc pode usar as ferramentas disponveis do Visual DataFlex para a converso automtica dos dados existentes bem como as estruturas das tabelas.

Dicionrio de Dados
Na insero de dados, voc vai querer a mais precisa e consistente informao armazenada no seu banco de dados. Antes de salvar os registros, os dados fornecidos precisam ser validados. Exemplos dessas validaes so: um Estado deve estar com letras maisculas ou um cliente no pode pedir um valor mais alto que o seu limite de crdito. Essas validaes so referentes s Regras de Negcios. Faz sentido armazenar essas regras em um lugar central, que chamamos de Dicionrio de Dados. A vantagem que as regras sero aplicadas em todas as aplicaes que usam o dicionrio de dados e quando uma mudana nas regras tem que ser programada, a mudana feita em somente um lugar. Tambm significa que se uma aplicao migrar para outra plataforma de banco de dados, as mesmas regras de negcios so automaticamente aplicadas, no importa o banco de dados utilizado. O Dicionrio de Dados criado e mantido via Modelador de Dicionrio de Dados no Studio.

Nosso Cenrio de Exemplo: Mdia


Criaremos uma pequena aplicao de banco de dados que chamaremos de Midia. Vamos criar a tabela Midia, na qual colocaremos todos nossos CDs, DVDs, livros, etc. Em seguida, criaremos a tabela Pessoa para armazenar os nomes dos amigos e parentes. Essas duas tabelas sero ligadas entre si de maneira que voc possa conseguir a localizao de cada mdia: voc est com ela ou emprestou para algum amigo? Em resumo, seguiremos os seguintes passos:

Criar um projeto com o nome Midia. Todos os componentes da workspace precisam ser criados enquanto o projeto estiver ativo. Criar uma tabela com o nome Pessoa. A tabela precisa de uma chave nica e colunas para armazenarem endereo, nmero do telefone, data de nascimento e etc, de uma Pessoa. Criar a view de entrada de dados da pessoa, usando o Data Entry Wizard para entrar com os dados na tabela Pessoa. Uma view no Visual DataFlex uma janela, uma tela para entrar com dados. Compilar o programa e testar os primeiros resultados. Criar uma tabela com o nome Midia. Esta ter uma chave nica e algumas colunas para armazenar Autor (/Artista/Escritor), qual o tipo e talvez o preo e o dia da compra. Na tabela tambm armazenaremos o PessoaID, para relacionar com a tabela Pessoa. Manualmente, usando drag & drop (arrastar e soltar), criar a view para entrar com dados em Midia. Depois disso, construiremos alguns recursos mais avanados: o Certifique-se de que Midia e PessoaID so gerados com nmero sequencial automaticamente. o Colocar listas pop-up (selection list) na aplicao para facilitar e melhorar a busca nos registros de Midia e Pessoa. o Assegurar formato consistente da coluna Midia.Tipo escrito. Criaremos um ComboBox para isso e teremos certeza que o usurio entrar com tipos de forma consistente. o Possibilitar o usurio de armazenar uma foto com a Midia. o Fazer com que o banco de dados seja acessvel via Internet!

Vamos comear!
Abra o Visual DataFlex Studio. Vamos iniciar criando uma nova workspace. Do menu File, escolha New Workspace. D um nome para a workspace no nosso exemplo, a chamaremos de Midia e vamos armazenar em C:\Projetos\Midia. Aceite todos os padres (clique em Next nas outras telas) e, antes de fechar o assistente, voc ver um sumrio com informaes recolhidas e o que fazer a seguir.

O Projeto
O prximo passo a criao do projeto. Quase sempre que criamos no Studio, precisamos de um projeto ativo. Voc cria um projeto no menu File, opo New, e Project. Isso abrir uma caixa de dilogo em que selecionamos Windows Project, normalmente a primeira opo no conjunto de cones. A escolha resulta em uma tela em que voc entra com nome do arquivo e o caminho do projeto. O caminho padro traz o caminho dos fontes da workspace criada. Clique em OK. O arquivo Midia.Src criado no disco e Midia feita como projeto corrente. O arquivo do projeto contm um painel com estrutura de menu, barra de ferramentas padro e uma rea onde voc pode trabalhar com suas telas e relatrios. No momento ns no

vamos discutir isso e vamos focar na criao de uma tabela para a entrada de registros.

Criando a tabela Pessoa


O prximo passo no processo criar uma ou mais tabelas. As tabelas podem ser criadas no Visual DataFlex Studio, voc s precisa ter a janela do Table Explorer aberta. Se o Table Explorer no estiver aberto por padro voc encontrar essa janela do lado esquerdo da tela, agrupado junto com o Code Explorer voc pode ativ-lo no menu View, na opo Table Explorer ou o boto posicionado na barra de ferramentas. esquerda voc v a janela do Table Explorer. A lista no meio mostra as tabelas presentes na sua workspace. Os botes acima da lista podem ser usados para criar, excluir ou abrir a tabela para modificao. A mesma funcionalidade pode tambm ser encontrada no menu flutuante que pode ser aberto com um clique com o boto direito do mouse na janela do Table Explorer. No menu flutuante voc perceber algumas opes para o dicionrio de dados. Discutiremos o uso do dicionrio de dados mais adiante. No Table Explorer, clique no boto Create New Table (primeiro boto) ou escolha a opo Create New Table no menu flutuante. Na caixa de dilogo, voc deve entrar com o nome da tabela Pessoa em dois campos de entrada (nomeados como Table Name e Root Name). As outras partes da caixa de dilogos incluindo o boto Simple no so importantes neste momento, e esto presentes para o uso mais avanado. Ao pressionar o boto OK, o Visual DataFlex abrir o Table Editor para a nova tabela que estamos criando.

A informao do painel dividida em trs reas: Colunas ndices Relacionamentos

A informao da coluna editvel via grid, no qual voc pode especificar o nome das colunas e seu tipo, tamanho e ndice principal. Crie a tabela para que sua tela fique como a imagem abaixo. Se voc quiser, voc pode adicionar mais colunas; voc pode querer armazenar o tamanho de seus sapatos, seus hobbies ou um endereo de e-mail. Sinta-se vontade de faz-lo. Essa rpida introduo assume que voc j criou as colunas acima, do tipo e tamanho dados. A coluna PessoaID um campo-chave e cada registro de Pessoa pode ser identificado por ela. Para procurar os registros, criaremos alguns ndices. Vamos supor que queremos fazer a busca por Sobrenome, Nome e CEP. Precisamos criar um ndice para cada um e cada ndice deve ser nico.

A figura mostra que o segundo ndice consiste em dois segmentos: Sobrenome e PessoaID. A segunda coluna faz o ndice nico. Note tambm que a opo Ignore Case est marcada. Isso significa que quando o usurio pesquisa por Johnson a ordem em que achada no depende se foi digitado como JOHNSON, johnson ou Johnson.

A aba tem duas barras de ferramentas. Uma com os botes Add Index e Delete Index lida com a lista de ndices fazendo possvel para voc adicionar e remover um ndice por completo enquanto que a segunda ferramenta lida com o grid com os segmentos do ndice.

O Dicionrio de Dados para a tabela Pessoa


Quando uma coluna marcada como campo-chave, o valor no pode mais ser alterado depois que o registro foi criado. PessoaID usado na ligao do registro entre Midia e Pessoa, por essa razo no queremos permitir a mudana deste valor. Para indicar que a coluna PessoaID um campo-chave, precisamos modificar as definies no dicionrio de dados da tabela Pessoa. Enquanto a classe do dicionrio de dados automaticamente criada enquanto ns criamos a tabela, ela no est aberta para edio ainda. Para abrir o dicionrio de dados, clique com o boto direito do mouse na tabela no editor de tabela e selecione Open Data Dictionary no menu. Uma nova pgina no editor de cdigo parte do Visual DataFlex Studio ser aberta e o foco estar na guia de modelagem de DD. Clique na coluna PessoaID na lista de colunas e ache a opo Protect Value (Key) na lista de propriedades como mostrado na figura. Mude o valor de False para True e, assim, definimos o campo-chave. Enquanto estamos nesta tela, podemos tambm adicionar um pouco mais das Regras de Negcios: Certifique-se que a coluna Sobrenome sempre seja preenchida (Required) selecione Sobrenome da lista de colunas e marque o atributo Required para True. Certifique-se que o CEP e a Cidade sempre sejam armazenados em maiscula (Capslock) o mesmo para CEP e cidade, mudando o atributo Capslock para True.

Precisamos salvar no disco a tabela e o dicionrio de dados. Salve-os de modo independente ou use a opo Save All. Se selecionar a opo Save All voc tambm salva o cdigo-fonte, o que pode ser uma boa idia. Voc ainda pode desfazer as mudanas depois de salvar, pois no tem influncia na pilha de alteraes (undo stack). Por outro lado, fechar o arquivo pode afetar a pilha e voc no poder desfazer todas as mudanas.

Data Entry View


Agora podemos criar uma view para a entrada de dados e o faremos com o Data Entry Wizard. Novamente clique em File, New e agora em View/Report. Como voc pode ver, h diversos assistentes e templates disponveis. Escolha o cone Data Entry Wizard. Entre com as seguintes informaes no assistente: O objeto fica com o nome Pessoa, o nome do arquivo e a descrio Pessoa (sem aspas). Crie uma tela simples de entrada de dados. Escolha Simple Form Entry View Escolha a tabela Pessoa (a nica tabela disponvel nesse momento).

Coloque todas as colunas na view. Adicionando duas pginas tabuladas, o assistente permite a melhor visualizao da view. A pgina do assistente Entry Fields deve seguir o exemplo acima. Na prxima pgina do assistente voc pode indicar se quer ver o alinhamento do label para a esquerda (sempre colocado do lado esquerdo dos controles) ou direita e mudar o texto de cada label. Na foto abaixo voc v que foi selecionado pra direita o alinhamento, e o texto do label da TAB PAGE para Endereo. Clique em Preview para ver como sua tela vai ficar.

Voc pode agora clicar em Next e Finish, que o levar de volta ao Studio. No Studio, a view que o assistente fez para ns ser carregada automaticamente. Isso pode ser facilmente modificado simplesmente arrastando componentes com o mouse, redefinindo o tamanho deles, etc. Se voc no mudou os labels da tab page, ns aconselhamos a voc que os mude agora mesmo. Para isso, no menu View, abra o Object Properties e clique com o mouse em algum lugar da tab page da qual voc quer mudar o label. Na lista de Properties, encontre Label e mude para Endereo e outro por Outros, ou qualquer um que voc achar mais apropriado. Dica: Se voc no consegue achar o Label na lista de propriedades, voc deve ter clicado com o mouse no tab-dialog, ou em algum outro lugar. Tenha certeza que clicou na tab-page (corpo) e tente novamente. Para uma dica visual, os cantos do objeto selecionado precisam mostrar marcadores brancos se a pgina est selecionada e preta quando o continer est selecionado. Agora voc est pronto para testar sua primeira aplicao Visual DataFlex. Para isso, o projeto precisa sem compilado; baseado no cdigo-fonte gerado, o compilador vai fazer um executvel, um .EXE, para rodar a aplicao. O teste pode ser iniciado de diferentes maneiras: 1. 2. 3. 4. Pressionando F8 para somente compilar. Pressionando F5 para rodar. Quando necessria a compilao, o compilador automaticamente lanado. Escolha Project, no menu pull-down, e selecione Compile. Clique no cone do pequeno tringulo azul nas ferramentas.

Se voc escolheu a opo 2 ou 4 e a compilao terminada, a aplicao se inicia. Voc pode chamar a view Pessoa e entrar com novos registros. Note o seguinte: Comece o primeiro registro usando o PessoaID como 1. O prximo 2 e assim por diante (falaremos disso mais tarde) Salve os registros pressionando a tecla F2 ou clicando no cone Save na barra de ferramentas. Limpeza da tela pode ser feita pressionando a tecla F5 (o registro no ser deletado). Assim que entrar com os registros, voc pode navegar entre eles pressionando F7 (Anterior) e F8 (Prximo). F7 e F8 funcionam somente se o cursor colocado nas colunas PessoaID, Sobrenome, Nome ou Cidade. E isso lgico: Essas so as colunas que definimos com ndice. Digite um nome parcialmente em Sobrenome e pressione F9 . Isso encontrar o registro (igual) baseado no contedo informado (parcialmente). Teste isso!

Feche a aplicao para retornar ao Studio.

Nova Tabela Midia


A criao da tabela Midia o prximo passo do nosso processo. Clique novamente no boto New Table no Table Explorer. Entre com Midia para a Table Name e Root Name. Ento, crie as colunas como a seguir. Nota: Na coluna Type ns queremos saber se um CD, DVD, LIVRO etc. DataCompra do tipo Date. Preco numrico com o formato 4.2. Isso significa que o preo pode ter 4 dgitos antes e 2 depois do separador decimal. A coluna PessoaID ser usada no relacionamento com a tabela Pessoa. Vamos, portanto, assegurar que so do mesmo tipo (Numeric) e mesmo tamanho (6 dgitos) como a coluna na outra tabela. MidiaID ser o campo chave. Alm disso, crie ndices para Titulo, Autor e Tipo. Para faz-los nicos, vamos adicionar a coluna MidiaID como ltimo segmento de cada ndice. Podemos tambm ligar a opo Case Insensitive. Dica: At agora ns explicamos que o ndice est l para a rapidez e facilidade de achar um registro. ndices tm outra importante funo, que a rpida classificao em relatrios. No difcil criar mais ndices posteriormente se voc precisar para certos relatrios. A tabela Midia vai conter registros das mdias em posse de certa pessoa. Em palavras tcnicas isso significa que h um relacionamento entre as tabelas Midia e Pessoa. Portanto, vamos criar um relacionamento entre as duas tabelas. Selecione a tab-page Relationships e escolha o primeiro boto na barra de ferramentas (Add relationship). Uma caixa de dilogo com as tabelas aparecer e voc deve selecionar a tabela Pessoa dessa lista. Relacionamentos quase sempre so definidos como muitos para um, ento neste caso, de Midia para Pessoa. A seleo da tabela pai abre a opo para especificar de qual coluna(s) filha para qual coluna(s) pai o relacionamento feito. O tipo e o tamanho da coluna relacionada devem ser iguais nas duas tabelas. A coluna pai (normalmente o campo-chave) precisa ser indexada de forma nica. O resultado deve ser como a figura direita.

Regras de Negcios para Midia


Finalmente, adicionaremos mais regras de negcios no Dicionrio de Dados. Para isso, a tabela precisa ser salva antes. A coluna MidiaID ser o campo-chave e a coluna Titulo requerida. Voc pode ser capaz de fazer isso com as orientaes dadas com o dicionrio de dados da tabela Pessoa. Os valores para Tipo devem ser sempre recebidos em maisculas (o atributo Capslock precisa estar selecionado), mas vamos adicionar algo extra. Queremos que o usurio nomeie com consistncia quando entra com o Tipo. Se um CD-Rom, o Tipo deve ser escrito como CD. Se for um livro, deve sempre ser escrito como LIVRO. Se isso no for escrito com consistncia, pense na dificuldade de fazer uma seleo (Mostrar todos meus livros) quando fizermos um relatrio. Portanto, vamos fazer uma tabela de validao simples na coluna Tipo. Voc faz isso via tab-page Validation Objects. Clique no boto Add Validation Object e entre com os seguintes dados na janela. A coluna selecionada para Validation Objects o Tipo e o tipo do objeto de validao como mostrado a descrio da tabela de

validao. Entre com o nome do objeto como especificado. A essa altura, o nome do objeto deve ter um nome nico. Depois de clicar no boto OK voc pode comear a entrar com valores na tabela. Sugerimos que voc entre com os valores mostrados a seguir. Sinta-se a vontade para adicionar mais Tipos. Por uma das propriedades da tabela de validao, voc pode indicar se o valor pode ser deixado em branco ou no. Se o valor de Allow_Blank_State no True, o usurio precisa selecionar um valor da lista na criao ou edio do registro. Faa sua prpria escolha. O usurio pode escolher uma opo da lista por meio de uma lista drop-down ou pop-up que o padro a definio da propriedade Table_Title torna-se importante para dar mais explicaes ao usurio sobre qual o propsito da janela. Dica: No importante agora, mas d uma olhada na tab-page chamada Structures onde voc pode ver que a tabela Pessoa obviamente adicionada estrutura com Midia. Essa uma sugesto de que as validaes no so aplicveis somente em tabelas simples; tabelas relacionadas tambm so validadas.

Criando a Data Entry View para Midia


A segunda view ser a Data Entry View da Midia. Dessa vez, o assistente no ser usado para a criao da tela. Isso significa que voc aprender como fazer uma tela (Data Entry View) de modo mais manual. No menu File, escolha New, View/Report, mas agora clique no segundo cone: Data Entry View. Depois disso, nomeie o objeto de oMidia e o arquivo no disco ser nomeado Midia.vw. Dica: A tela j notar que o componente ser adicionado ao projeto Midia tambm ser colocado no menu da aplicao automaticamente. Um novo conceito: Data Awareness Antes de continuarmos, vamos explicar um novo conceito: Data Awareness. O Visual DataFlex uma ferramenta para construir aplicaes de banco de dados. Depois da primeira amostra ns vimos que necessrio uma view (interface) para entrar com os dados no banco de dados. Os vrios componentes na interface so aparentemente acoplados s colunas adjacentes nas tabelas. Est certo, exatamente o que aconteceu. Mas na verdade h uma camada extra no meio; o Dicionrio de Dados. O Visual DataFlex conhece diferentes tipos de componentes. Uma importante diferena se os componentes so data aware ou no. Se eles forem, voc atribui objetos de dicionrio de dados (DDOs) para ter o desejado dado (tabela) sua disposio. Vamos dar uma olhada no cdigo-fonte do programa, ento reconheceremos componentes dataaware pelo nome da classe: eles comeam com db. Por exemplo: dbView, dbForm e cdbCJGrid. Vamos continuar. Agora, voc est olhando uma dbView vazia no Studio. A primeira coisa que precisamos fazer decidir qual tabela queremos fazer a manuteno nessa View. No menu View, abra o DDO Explorer. No DDO Explorer nenhuma tabela est selecionada ainda. A adio de DDO feita via clique, no boto Add DDO. Voc pode fazer o mesmo a partir do menu flutuante. Na janela que aberta, voc tem que selecionar o dicionrio de dados correto para essa nova view. Uma vez que queremos editar (criar, modificar, deletar) a tabela Midia, selecione a classe

cMidiaDataDictionary (em destaque na figura acima). O Studio faz automaticamente o DDO da tabela Midia o principal DDO da View e, pelo fato de a Midia ter um relacionamento com uma tabela pai (Pessoa), o DDO para esta tabela tambm ser automaticamente adicionado. Quando as escolhas no so corretas, voc pode mud-las via menu flutuante em cada um dos DDOs e aplicar a mudana. No nosso exemplo isso est correto agora, ento nenhuma ao necessria. Em DDO Column Selector, selecione todas as colunas de Midia (selecione todas, exceto Recnum) e arraste-as para a view. Do mesmo modo, arraste e solte a coluna Sobrenome da tabela Pessoa na view. Alinhe o objeto com a coluna PessoaID. Remova o texto do label do Sobrenome em Object Properties. Mude o layout para algo parecido como a figura. Por exemplo, todos labels so alinhados direita a uma distncia de 2 do controle. Para ver como a aplicao aparece depois da compilao e incio, clique no boto Run ou pressione F5 . Entre com alguns registros de mdia. Deixe a MidiaID comear com 1 e escolha a Pessoa relacionada a ela. Se voc criou alguns registros que foram adicionados, use F7 e F8 para navegar entre os dados. A ordem de entrada dos dados Quando voc muda as posies das colunas PessoaID/Sobrenome e Comentrio, como neste exemplo, voc perceber que, enquanto est entrando com os dados, que a ordem de navegao entre as colunas no foi mudada adequadamente. Podemos mudar a disposio das colunas que so mostradas na View, mas isso no muda automaticamente a ordem de navegao atravs das colunas. Podemos facilmente ajust-la: a partir do menu View, abra o Code Explorer. No objeto oMidia, selecione o objeto oMidia_Comentario e tecle com o boto direito do mouse nele. Agora mova a coluna duas posies abaixo (Escolha Move Object Down ou Alt + ). Isso ser o suficiente. Voc tambm pode fazer isso atravs do boto da ferramenta no topo do painel.

Gerao Automtica de Campos Chaves


Para Pessoa e tambm para Midia definimos que elas so chaves nicas e numricas. Os nmeros armazenados nestes campos chaves no so relevantes para o usurio. No cadastro, seria incmodo para o usurio lembrar qual foi o ltimo nmero dado quando eles tentavam fazer um novo registro. Podemos facilmente cuidar disso; basta seguir os dois passos a seguir: 1. Criar uma tabela extra. Nessa tabela sempre armazenaremos apenas um (1) registro. Isso chamado de tabela de sistema. Nessa tabela definimos apenas duas colunas: UltPessoa e UltMidia. Essas colunas so numricas de 6 dgitos. 2. Os Dicionrios de Dados de Midia e Pessoa tero que gerar esses IDs automaticamente usando o arquivo de sistema. Crie a tabela Sistema como na imagem direita. Para ter certeza que ela se tornou um arquivo de sistema, selecione True no atributo DF_FILE_IS_SYSTEM_FILE.

Queremos que o Dicionrio de Dados incremente automaticamente o ID toda vez que um novo registro salvo. Abra o dicionrio de dados das tabelas Pessoa e Midia no Studio. Procure pelo atributo Auto Increment (Agrupado em Other) na lista de atributos para as colunas PessoaID (em Pessoa) e MidiaID (em Midia) e clique no boto de prompt. Da lista de tabelas, selecione Sistema e a coluna apropriada so essas: UltPessoa para PessoaID e UltMidia para MidiaID. Nota: O valor pode ser adquirido da tabela do sistema ou tabela pai. Por isso voc v o checkbox com o seguinte label: Show System and Related Tables Only.

Ok. Isso deve funcionar, a no ser que voc j tenha criado alguns registros, com IDs 1, 2, 3, etc. A primeira vez que usarmos a funo de incremento automtico e tentarmos salvar o registro com o ID 1, no funcionar porque o valor j existe. Os IDs devem ser sempre nicos um campo-chave! Nossa nova aplicao no pode salvar nenhum registro novo. Ns podemos apagar nossos registros existentes, mas h outra forma de resolver isso. Abra outra ferramenta bastante til no menu Studio Tools: o Database Explorer. O Database Explorer (tambm chamado de DBExplorer) nos d rpido acesso edio de dados nas tabelas. uma ferramenta tpica de desenvolvedores, mas seja cauteloso no seu uso. Ela ignora qualquer segurana ou validao que voc construiu para a sua aplicao. A primeira coisa a se fazer no Database Explorer fazer com que seja possvel mudar os dados. Por padro, o Database Explorer configurado no seu modo mais seguro, e est configurado para que os dados sejam s para leitura. Portanto, clique no pequeno cone no canto inferior esquerdo. Mude o cone colorido de vermelho para o de cor cinza. Vamos supor que o ltimo ID que voc colocou foi 10. E depois entrou com 10 para UltPessoa e UltMidia. O prximo registro criado, o ID ser automaticamente colocado como 11. No se esquea de salvar o registro. Pressione a tecla para salvar ( F2 ) ou clique no boto Save do menu pull-down Record.

Mudanas no Dicionrio de Dados


Antes de compilar e testar nossa aplicao, vamos fazer mais duas melhorias. Abra o Dicionrio de Dados de Midia se ele no estiver aberto. Em Column Settings para a coluna Tipo, v para o grupo Appearance, ache a opo Visual Control e selecione o dbComboForm. Toda vez que essa coluna arrastada para uma view durante o desenvolvimento, queremos que seja um Combobox por padro. Para a mesma coluna; no grupo Data Entry Options, encontre a opo Capslock e coloque como True. Coloque True em Auto Find EQ para a coluna MidiaID.

Alterar Tipo de Controle


As mudanas que acabamos de fazer (Visual Control) ser aplicada somente quando arrastarmos a coluna para uma nova view, mas ns j temos uma view de mdia. Para mudar o controle usado para a coluna Tipo precisamos fazer uma pequena programao. No Code Explorer encontre o objeto oMidia_Tipo. Deixe que o Studio localize o cdigo-fonte do objeto com a opo Locate in editor disponvel quando voc clica com o boto direito do mouse no nome do objeto em Code Explorer. A linha de cdigo dever ser assim:

uma dbForm, mas queremos que se torne um objeto dbComboForm. Mude o cdigo para: Pressione F7 . Essa tecla alterna o Studio entre o design e o cdigo-fonte da view e o dbForm foi visualmente mudado para uma Combo Box. Faa uma ComboBox um pouco maior e aperte F5 para compilar e comear a aplicao. Agora no mais necessrio entrar com o ID (PessoaID ou MidiaID) na criao de um novo registro. Fizemos as seguintes melhorias: Os IDs para Pessoa e Midia so automaticamente incrementados. Preenchendo um ID existente em Midia e apertar o Tab automaticamente acha a Midia com aquele ID, isso o que faz o Autofind EQ. interessante fazer a mesma mudana para o ID Pessoa. Entrar com dados em Tipos de Midia faz muito mais sentido agora. Sempre em maiscula, em um combo-box, que o controle visual apropriado para esse tipo de entrada. A definio do Appearance da coluna Midia.Tipo no dicionrio de dados para ComboBox, essa coluna ser sempre mostrada como um ComboBox por padro. Nota: Fazendo mudana no tipo de controle manualmente faz com que o componente se torne no mais independente, isto , no-autnomo. Nessa situao, o projeto vai compilar e rodar, mas h situaes onde isso no ir ocorrer. Para arrum-lo, adicione Use Dfcentry.pkg na lista de declaraes no topo do componente.

Listas de Seleo
O que ainda pode ser melhorado: se tiver poucos registros na tabela, no um problema encontrar o dado procurado usando F7 e F8 , mas quando as tabelas crescem, precisamos oferecer um jeito melhor de achar os registro certos, ento vamos adicionar listas lookup, tambm conhecidas como Listas de Seleo. No menu File do Studio, escolha New, Dialog / Lookup e comece o assistente de criao da Lookup. Vamos fazer uma lista de seleo para Pessoa, no qual colocaremos Sobrenome, Nome e Telefone (nmero). Aceitamos todos os padres nas outras telas at o fim do assistente, compilamos nosso programa novamente ( F5 ). Voc pode ver que os botes so adicionados automaticamente ao Sobrenome e Nome (botes prompt). Clicando no boto de prompt (ou pressionando F4 ) aparecer na tela a lista de seleo que acabou de ser criada, contendo as seguintes funcionalidades com padro: Dependendo da coluna que o cursor est, a ordem de classificao da lista muda de modo adequado. Basta comear a digitar o Sobrenome desejado e uma janela pop-up aparece. Apertar Enter levar voc ao registro mais prximo. Por causa do uso dos ndices, achar um registro em meio a poucos registros ser to rpido como se procurssemos um registro em meio a milhes! Agora deve ser fcil criar uma lista de seleo na tabela Midia. Talvez voc queira fazer de outra maneira, sem o assistente; por drag & drop. Nesse caso, aqui vo algumas dicas: Escolha File, New, Dialog / Lookup: Table Lookup. Entre com oMidiaLookup como nome do objeto. Use o DDO Selector para escolher as tabelas apropriadas (dica: Titulo e Autor de Midia e Sobrenome de Pessoa).

Para alterar os detalhes da nova Lookup ou uma das colunas (incluindo a ordem) use o Code Explorer e o painel Properties. H muitas opes que voc pode alterar e controlar. Por exemplo, a remoo de colunas da lista permitida por padro. Se voc no quiser isso, voc pode mudar a propriedade da lista chamada pbAllowColumnRemove ou a propriedade da coluna pbAllowRemove. Uma das tarefas feitas automaticamente no uso do assistente da tabela Lookup a conexo da lista da lookup com uma ou mais colunas da tabela pelo dicionrio de dados. J que no utilizamos o assistente desta vez, precisamos fazer essas conexes. Abra o dicionrio de dados de Midia (se no estiver aberto), clique na(s) coluna(s) que voc quer que aparea a oMidiaLookup e selecione o arquivo MidiaLookup.sl para a propriedade Lookup Object da coluna.

Mostrar Todas as Mdias Emprestadas


Vamos fazer algo um pouco mais avanado. No to difcil criar a view onde o usurio pode navegar atravs da Pessoa e mostrar em uma grid todas as Midias que cada pessoa pegou emprestado. O controle usado aqui se chama cDbCJGrid, que pode ser encontrado entre o Data Controls na Class Palette. Para navegar atravs de Pessoa e mostrar somente a Midia apropriada, precisamos construir uma view com um Constraint, um filtro. Como voc vai fazer isso: Crie uma nova view vazia (selecione o template Data Entry View). Use o DDO Explorer para selecionar Midia e Pessoa. Arraste o Nome e Sobrenome na View. Use o painel Properties para mudar os labels de Nome e Sobrenome. Alinhe os objetos horizontalmente. Remova o boto prompt da coluna Sobrenome (encontre o Prompt_Button_Mode na lista do Object Properties e configure-o como PBPromptOff). Isso no remove completamente a lista lookup (voc ainda pode apertar F4 ou selecionar a lookup da barra de ferramenta ou menu flutuante), mas remove a dica visual. Para remover a lista lookup voc precisa adicionar uma linha de cdigo no objeto do dicionrio de dados Pessoa. Veja no DDO Explorer se o Constraint est em Pessoa (veja a imagem). Se esse no o caso, clique com o boto direito do mouse na tabela Midia no DDO Explorer e escolha Add/Change constraint: Adicione o Constraint em Pessoa (tambm verifique o Main DD) e a estrutura deve ser como a imagem direita. Crie um objeto com drag & drop da classe cDbCJGrid a partir da Class Palette. Do DDO Column Selector arraste a coluna Titulo, Autor e Tipo da tabela Midia para a grid.

Fotos
O ltimo melhoramento que faremos na aplicao Windows adicionar fotos na Midia que ns catalogamos, isto , Queremos armazenar uma foto com cada registro de Midia. Primeiro, precisamos mudar a tabela: Abra a tabela Midia se no estiver aberta, e adicione a coluna chamada Foto. Especifique o tipo ASCII e o tamanho de 255. A foto atual no ser armazenada aqui. Cada registro carregar uma referncia para a localizao da foto (pasta) e nome. Abra a view Midia novamente no Studio e aumente um pouco seu tamanho. Entre Class Palette e DataControls encontre o dbBitmap, arraste e jogue na view Midia.

No painel Properties na aba Binding, atribua Data Source (Entry_Item) coluna Midia.Foto. Compile e comece a aplicao.

Na aplicao, encontre o registro da Midia e d um duplo clique na rea que o bitmap deveria estar armazenado. Uma janela pop-up com arquivos vai aparecer. Selecione a imagem que voc quer armazenar para aquele registro e salve o registro! Nota: Normalmente, o Visual DataFlex trabalha apenas com bitmaps (todas imagens so desenhadas pelo Windows como bitmaps) mas voc pode adicionar os formatos grficos TIFF, JPG, GIF e muitos outros formatos grficos com o complemento grtis Graphics Library. A conexo fcil como descrita acima (precisamos apenas conectar com a biblioteca e usar um nome diferente de classe).

Listas e Relatrios
Uma das mais poderosas maneiras para gerar relatrios e integr-los com Visual DataFlex usando o Visual Report Writer e Visual Report Writer Integration Library. um assistente que integra automaticamente um relatrio em sua aplicao Windows. O usurio final pode iniciar o relatrio do menu e ainda poder modificar sua ordenao, dispositivo de sada e os critrios de seleo. simples: primeiro crie um relatrio com o Visual Report Writer e ento inicie o assistente o resto autoexplicativo. Nota: No caso de voc no ter a licena do Visual Report Writer, por favor, entre em contato com o representante de vendas da Data Access da sua regio para receber uma licena de avaliao ou para comprar uma licena. Inicie o Visual Report Writer e selecione File, New. Escolha Standard Report. Voc tambm pode apertar a combinao Ctrl+N . No assistente selecione DataFlex como seu cdigo-fonte e aponte para a Filelist da sua workspace (na pasta Data). Selecione a tabela Midia da lista de tabelas. Na pgina Fields do assistente selecione a coluna Titulo e Preco. Na pgina Grouping do assistente selecione a coluna Autor. As pginas Summaries, Data Filters e Repository podem ser puladas desse relatrio. Depois terminar, veja o relatrio no designer. Para integrar o relatrio acima no seu projeto Windows voc precisa

conectar a biblioteca (opcionalmente instalado com o Developer Edition do Visual Report Writer). A biblioteca vem com um assistente para fazer a integrao do relatrio nas suas aplicaes. O resultado do assistente um componente View do relatrio, automaticamente adicionado ao menu Reports do seu projeto atual. Na autoexplicao do assistente, voc pode selecionar trs diferentes tipos de visualizao da view. A terceira opo nos d mais liberdade. Standard uma visualizao dinmica da view. Isso torna possvel rodar o mesmo relatrio vrias vezes. A grande vantagem da integrao do relatrio a API de programao que possibilita a mudana de filtros, mudana no caminho dos dados no tempo de execuo etc.

Um caminho alternativo para produzir relatrios usando o Winprint. O Winprint Report totalmente programvel no Visual DataFlex. Felizmente h uma maneira de criar um Winprint Report usando o assistente para um rpido comeo. Levam-se poucos segundos para gerar um relatrio como mostrado na prxima pgina que lista todas as Midias, com uma quebra em Autores. Com o relatrio totalmente codificado na linguagem de programao Visual DataFlex, voc pode processar os registros enquanto este esto sendo impressos. A desvantagem deste relatrio que para toda a mudana no layout requerido pelo usurio voc precisa mudar o cdigo do programa e redistribuir a aplicao.

Vamos levar nosso banco de dados para Internet!


No Visual DataFlex possvel compartilhar os mesmos dados e regras de negcios entre Windows e Aplicaes Web (e Web Services, mas isso excede o foco desta primeira introduo).

Aplicaes ASP Clssico e Web 2.0 (AJAX)


Desde 1998 a criao de aplicaes Web tm sido um recurso do Visual DataFlex. Essas aplicaes so chamadas de aplicaes clssicas ASP (Active Server Page). No h nada de errado nessa tcnica, mas as mais avanadas so as aplicaes Web 2.0 (AJAX), Rich Internet (RIA) que fazem uso intensivo do JavaScript do lado cliente. claro que voc tambm pode fazer esse tipo de aplicao Web no Visual DataFlex, at um mtodo recomendvel hoje em dia. Se voc instalou o Microsoft IIS antes da instalao do Visual DataFlex 2010, voc pode escolher a instalao do Visual DataFlex AJAX Library 2.2. Se no fizer a instalao dessa biblioteca, voc pode rodar o programa de instalao do AJAX Library para instal-lo agora. Voc vai adorar os resultados.

Preparaes
Para poder criar aplicaes Web (Web 2.0), tenha certeza que o Visual DataFlex Studio est rodando como Administrador e se sua plataforma o Windows Vista ou Windows 7. Ento, para o uso do AJAX Library na sua workspace, v em Tools, Maintain Libraries, Add Library e localize o lugar onde voc instalou a biblioteca AJAX. Desse local, selecione o arquivo Visual DataFlex AJAX Library.sws. Voc ser perguntado se quer fazer o uso relativo ou absoluto de caminho, escolha o padro. Agora o assistente da biblioteca iniciado e ele guiar voc atravs dos processos de importao da biblioteca para sua workspace. Voc ser perguntado se quer manter o arquivo CSS ou se quer sobrescrev-lo.

Conceitos Gerais
Para rodar aplicaes Internet, o Visual DataFlex usa o Web Application Server (chamado WebApp Server). Esse um software que roda no Microsoft Internet Information Services (IIS). Certifique-se que o seu PC tenha o IIS. Est fora do nosso foco essa introduo para explicar em grandes detalhes, mas aqui est o que acontece: Uma aplicao Web Visual DataFlex est pronta e esperando no servidor. Assim que a requisio HTTP (Internet) chegar ao servidor, a aplicao iniciar e vai servir a requisio. Nessa aplicao Web, esto programados os Web Business Objects (WBO). Esses componentes so comparveis s Views das aplicaes Windows e eles fornecero uma ligao entre a interface, o banco de dados e lgica de negcios (Dicionrio de Dados). O WBO encontrar o dado correto e o validar, a interface (HTML) formatada e mandada de volta para o navegador do cliente. O navegador interpreta o cdigo HTML e apresenta a aplicao do lado do cliente. Desta forma voc pode construir bancos de dados poderosos e rpidos para a Internet. Muitos desenvolvedores usam, e agora a sua vez!

Um Exemplo
O que foi citado pode parecer complexo. Vamos ver como fcil levar nosso banco de dados para a Web. Para fazer uma rpida amostra, vamos utilizar o assistente.

Comearemos criando um novo projeto: File, New, Project: Web Project. Vamos cham-lo de Midia novamente. Note que o cdigo-fonte vai ser chamar WebApp.src. Se voc teve problemas na criao da aplicao Web na sua localizao atual (por causa das limitaes das permisses do Windows, por exemplo), voc deve mudar sua workspace para outra localizao. Depois de criar a aplicao, vamos criar nossos objetos Web. V para File, New, Web Object, vamos iniciar o AJAX View Wizard. O assistente verifica se nosso projeto contm um gerenciador de seo e um objeto Webservice e, se no, pode (e deve) cri-los. O gerenciador de seo d a voc o controle: se a requisio vem de usurios confiveis e verifica seus direitos. O objeto Webservice necessrio para a comunicao entre a parte do lado cliente (normalmente o navegador) e a parte do lado servidor (seu Visual DataFlex Web Application). No nome da pgina, digite Pessoal nas trs colunas (confirme o padro o para o nome do objeto). Como em uma view do Windows, selecione Simple Form Entry View vamos ver e editar registros a partir de apenas uma tabela neste componente Web. Selecione o dicionrio de dados de Pessoal na pgina com o ttulo Main Data Dictionary. Selecione todas as colunas da tabela para a pgina Web. Se voc quiser voc pode como em uma view do Windows separar alguns controles de entrada organizando-os em tab-pages. Tab-pages so usadas em aplicaes Web para conformar-se com um design adequado, no para salvar o espao na tela como em alguns casos de aplicaes Windows. Pela razo que a Web Application pode ser acessada por diversas audincias (uma feira, internet caf, ou sua importante perspectiva) recomendvel conversar com um bom designer grfico sobre sua Web Application Desgn. Voc pode entrar em contato com a Data Access Graphics Department para uma estimativa, se voc quiser. Veja nosso portflio em www.daegraphics.com. O resultado do assistente a pgina Web (Pessoal.asp) e o arquivo (Pessoal.wo). O Pessoal.wo parecido com o Pessoal.vw exceto que os controles no esto l; eles esto no domnio da pgina do navegador. Dentro do Pessoal.wo voc pode adicionar cdigo-fonte Visual DataFlex para melhorar o controle do comportamento da aplicao. Em Pessoal.asp encontraremos todas as instrues HTML prestadas pelo navegador. As aplicaes Visual DataFlex AJAX so independentes de navegadores, ento pequenas diferenas podem ocorrer. A Data Access testa o framework na maioria dos navegadores (Internet Explorer, FireFox, Google Chrome, Safari e Opera). Quando o navegador pede o documento Pessoal.asp do servidor, interface ASP final do IIS processa o documento e envia o resultado para o navegador. Todas as chamadas ASP so processadas no lado servidor ento o usurio final no vai ver isso no cdigo-fonte da pgina. A pgina, no entanto, contm algumas rotinas JavaScript que so automaticamente baixadas para o navegador. Voc pode testar a pgina como com uma aplicao Windows pressionando a tecla F5 . Antes de pressionar F5 , selecione a tab page Pessoal.asp. Se o seu ISP permitir que voc tenha um endereo de IP fixo, voc pode rodar essa aplicao na Internet ao invs de rodar em um computador local. Mas muito cuidado: qualquer um que achar o URL que leva ao seu servidor poder ver e at mesmo modificar seus dados! Ento, segurana um importante problema quando voc continua nesse caminho.

Aprenda mais!
Com isso, conclumos este Guia Rpido de Introduo ao Visual DataFlex. Se voc no o fez ainda, d uma olhada no Electos Um Sistema de Gerenciamento de Contedo escrito e distribudo com o Visual DataFlex. Voc encontrar um documento de Guia Rpido de Introduo como este em www.electos.com dentro do item Get Started! ou em www.dataaccess.eu, em Get Started!. Para aprender mais sobre o Visual DataFlex, visite os seguintes sites para aprender mais sobre o produto e seus criadores: www.visualdataflex.com www.dataaccess.com www.electos.com Sites relacionados:

support.dataaccess.com/forums www.dynamicai.eu (ferramenta de Business Intelligence)

Se a documentao, arquivos help ou os fruns no lhe ajudarem, sinta-se a vontade para pedir assistncia por e-mail. Visite o site da Data Access para opes de suporte na sua regio. Outro timo recurso o novo guia de treinamento extensivo chamado Discovering Visual DataFlex que contm mais de 600 pginas. Esse livro vem sendo feito para cada verso do DataFlex desde 2008. Por favor, entre em contato com seu representante de vendas da Data Access se voc quiser comprar uma cpia desse livro. A figura mostra o livro da verso Visual DataFlex 15.1. A Data Access est trabalhando em um apndice que vai cobrir os novos recursos e mudanas introduzidas no Visual DataFlex 2010.

Estamos ansiosos para ajud-lo a comear com o Visual DataFlex!