Curso GeneXus X Ev2: Ejercicios prácticos

Tamanho: px
Começar a partir da página:

Download "Curso GeneXus X Ev2: Ejercicios prácticos"

Transcrição

1

2 Copyright Artech Consultores S. R. L Todos os direitos reservados. Este documento não pode ser reproduzido em nenhum meio sem o consentimento explícito de Artech Consultores S.R.L. A informação contida neste documento é exclusivamente para uso pessoal. Marcas Registradas Artech e GeneXus são marcas registradas de Artech Consultores S.R.L. Todas as demais marcas mencionadas neste documento são propriedade de seus respectivos donos. Página 1

3 1. O PROBLEMA NOVO PROJETO, NOVA BASE DE CONHECIMENTO PRIMEIRAS TRANSAÇÕES... 3 TRANSAÇÃO CUSTOMER... 4 TRANSAÇÕES ATTRACTION E COUNTRY RELACIONADAS... 7 Dados relacionados: como se mantém a integridade? TRANSAÇÃO CATEGORY ACRESCENTEMOS AS CIDADES À TRANSAÇÃO COUNTRY TRANSAÇÃO ATTRACTION : ACRESCENTEMOS A CIDADE ADICIONEMOS COMPORTAMENTOS ÀS TRANSAÇÕES (PAPÉIS) PATTERNS: MELHORANDO A INTERFACE PARA TRABALLHAR COM A INFORMAÇÃO LISTAS PDF TRANSAÇÕES FLIGHT E AIRPORT E NECESSIDADE DE DEFINIR SUBTIPOS FÓRMULAS BUSINESS COMPONENTS AUMENTO DO PREÇO DOS VOOS TELA PARA ELIMINAÇÃO DE TODOS OS VOOS PROCEDIMENTOS PARA ATUALIZAR REGISTROS AUMENTO DE PREÇOS DOS VOOS EXCLUSÃO DE TODOS OS VOOS INICIALIZAÇÃO DA INFORMAÇÃO DO BANCO DE DADOS [OPCIONAL] PASAGEM DE PARÂMETROS LISTA DE ATRAÇÕES EM UM GRUPO DETERMINADO WEB PANELS VARIÁVEL DE TIPO DE DADO ESTRUTURADO, DATA PROVIDER PARA CARREGÁ-LA E WEB PANEL PARA MOSTRÁ-LA EXTENDED CONTROLS OBJETO QUERY GXSERVER DEFINIÇÃO DE UM MODELO DE PROCESSO DE NEGÓCIOS (BPM) PARA A RESERVA DE UMA ATRAÇÃO TESTAR O APLICATIVO COM GXTEST PRECISA-SE DE UMA PARTE PARA SMART DEVICES Página 2

4 1. O problema Uma agência de viagens contrata você para desenvolver um sistema para armazenar e manipular a informação com a qual trabalha. Imagine que o sistema é composto de dois módulos: Backend: parte do aplicativo que deverá rodar em um servidor web, de tal modo que os funcionários da agência possam manipular a informação de qualquer lugar com conexão à internet. É privada, por isso deverá ter segurança. Frontend: parte do aplicativo que implementará o site da agência. Será pública, utilizada por qualquer pessoa que queira fazer consultas sobre viagens, destinos, atrações turísticas etc. Nesta atividade prática, implementaremos apenas uma parte da solução para este problema. O que devemos fazer primeiro? 2. Novo projeto, nova base de conhecimento Entrar em GeneXus e criar uma nova base de conhecimento com o nome TravelAgency para começar o desenvolvimento do aplicativo. Sugerimos: Escolher como ambiente de desenvolvimento C#. Tenha certeza de que instalou tudo o que é necessário (incluindo SQL Server). Não criar a base de conhecimento na pasta Meus documentos ou qualquer outra pasta que fique dentro de Documents and Settings, porque essas pastas têm permissões especiais dadas pelo Windows. Use alguns minutos para familiarizar-se com o IDE (ambiente de desenvolvimento integrado de GeneXus). Teste mexer as janelas, visualizar as janelas específicas que deseja (View e View/ Other Tools Windows) e observe com atenção o Folder View dentro da janela Knowledge Base Navigator. Você verá que aparecem já inicializados domínios, alguns objetos, imagens, etc. Sugestão: mantenha a janela propriedades aberta (F4), pois você a utilizará continuamente. Dentro da janela Knowledge Base Navigator observe a seção Preferences, onde se configura o Environment. 3. Primeiras transações Nas reuniões com a agência de viagens, disseram o seguinte: Nós registramos os dados de nossos clientes e lhe oferecemos viagens a distintas cidades de distintos países, das quais também registramos as atrações turísticas. Para começar a construir o aplicativo, devemos começar identificando as entidades da realidade e representá-las por meio de transações. Quais transações devemos criar na base de conhecimento (KB)? Página 3

5 Transação Customer Perguntamos aos funcionários da agência de viagens: quais informações de seus clientes são registradas? Sabendo que a resposta é O nome (que não supera 20 caracteres), sobrenome (que também não supera), endereço, telefone e . Você já pode criar a transação Customer. É preciso lembrar que: Existem várias alternativas para criar objetos: o Partindo-se da página Start Page. o Do menu: File/ New Object o Ctrl+N Será preciso um atributo que identifique cada cliente (CustomerId). Digitando ponto (. ) quando for inserir um novo atributo, este se inicializa com o nome da transação. Adress, Phone e são domínios semânticos que se atribuem automaticamente aos atributos que se definem contendo em seu nome os textos Adress, Phone e o respectivamente. A estrutura da transação deveria ter ficado como se vê abaixo (ao lado, seu form web): O próximo passo é testar o aplicativo em execução. Confira se a janela Output de GeneXus está habilitada e à vista. (View/ Other Tool Windows/ Output) Agora sim, teste o aplicativo em execução pressionando F5. O que acontecerá? Página 4

6 Solução Se você decidir criar o banco de dados e programas localmente (isso só é possível com GeneXus full), será aberta uma janela como a seguinte para insirir a informação do Banco de Dados, Servidor e método de conexão. Lembre-se que, se não existir um banco de dados com o nome que você indicou nesse servidor, GeneXus o cria. Se, em vez disso, o banco de dados e os programas forem criados na nuvem, a caixa de diálogo anterior não aparece, já que GeneXus conhece os dados do servidor na nuvem e configura automaticamente o nome do banco de dados e toda a informação de conexão com ele. Em seguida, abre-se uma Análise de Impacto que detalha que se criará o banco de dados a tabela CUSTOMER dentro dela: Página 5

7 Se você pressionar o botão Create, GeneXus executará o programa que executará essas criações. Ao finalizar o processo, o menu com os links para executar os objetos definidos é aberto no navegador que tiver sido configurado como pré-determinado. Neste caso, apenas um: a transação Customer. Insira alguns clientes no sistema. Modifique algum dado de algum dos clientes inseridos anteriormente e exclua outro cliente. Também teste selecionar um cliente da lista de seleção (entre os ícones que aparecem destacados na imagem a seguir, está a imagem de uma lupa). Página 6

8 Agora, passemos a identificar e a criar a transação seguinte. Lembremos o que nos foi dito: Nós registramos os dados de nossos clientes e lhes oferecemos viagens a distintas cidades de diferentes países, das quais registramos também as atrações turísticas. Transações Attraction e Country relacionadas Agora, vamos criar uma transação para registrar as atrações turísticas e outra para registrar os países aos quais essas atrações pertencem. Que informação a agência de viagens maneja de cada atração? Nome, país, imagem da atração, categoria a que pertence. As atrações já podem ser criadas. Comecemos por Country : Lembre-se que: clicando-se sobre a tecla ponto (. ) quando estiver por dar um nome a um atributo na estrutura da transação, aparece inicializado com o nome da transação. você precisará de um atributo identificador, CountryId. Quando estiver definindo o tipo de dado do atributo identificador, em vez de utilizar diretamente Numeric(4.0), defina o domínio Id com esse tipo de dado. Configure a propriedade Autonumber desse domínio em True para que todos os atributos baseados nele se numerem automaticamente sem que o usuário precise se preocupar. Solução Página 7

9 Observe todos os domínios que já vem pré-definidos em GeneXus, em particular Addres, e Phone, que tinham aparecido automaticamente quando foram criados os atributos CustomerAddress, Customer e CustomerPhone na transação Customer. Defina o atributo CountryName, com tipo de dado, um novo domínio: Name=Character(50). Agora, vamos criar a transação Attraction. Por ora, insira somente o identificador, o nome e o país. Observe que ao inserir AttractionId, automaticamente assume o domínio Id. De modo semelhante, quando inserir o atributo AttractionName, assumirá automaticamente o domínio Name. Por que, além de CountryId, o atributo CountryName foi colocado em Attraction? Página 8

10 Execute para testar. F5. Aparecerá o seguinte relatório de Análise de Impacto. Por que na tabela Atttraction que GeneXus informa que se deve criar no Banco de Dados não aparece o atributo CountryName? Isto é, por que a tabela física não o conterá, sendo que está na estrutura da transação? Depois de estudar o relatório, se estivermos de acordo, pressionamos Reorganize para que efetivamente se execute o que se informa. Abre-se o navegador com o menu com os links aos 3 programas que correspondem a cada uma das transações ( Customer, Country e Attraction ). Inserir como países: Brasil, França e China. Observar que deixando 0 como valor do identificador, ao gravar, é atribuído automaticamente o número posterior ao último atribuído (efetivamente, se está autonumerando). Página 9

11 Inserir como atração turística: Louvre Museum, que está na França. Se você não se lembra qual é o identificador da França no sistema, como inserir o país? Lembre-se que é oferecida uma Lista de seleção de países, criada automaticamente por GeneXus e oferecida com um ícone especial, ao lado de CountryId. Isso acontece porque CountryId tem o papel chave estrangeira (foreign key), nesta transação (ou seja, está apontando para outra tabela). Dados relacionados: como se mantém a integridade? Attraction e Country estão relacionados. Ao colocar CountryId na estrutura de Attraction, por ter exatamente o mesmo nome que o atributo que é chave primária na transação Country, GeneXus entende que em Attraction CountryId é chave estrangeira e mantém automaticamente a integridade da informação. Assim, para exemplificar: Tente inserir uma atração com um id de um país que não exista. É possível salvar a atração turística? Escolha uma atração inserida anteriormente (Louvre Museum, por exemplo) e mude o país por outro que não exista. Conseguiu salvar a alteração? Tente excluir um país (usando a transação Country) que tenha alguma atração associada (França, por exemplo). Foi possível? Conclusão: os programas correpondentes às transações garantem a integridade dos dados. Transação Category Falta completar a informação da transação Attraction. Os funcionários da agência de viagens descreveram que registram de cada atração turística, a categoria (monumento, museu, parque etc) a que pertence. Assim, Página 10

12 necessitaremos criar uma transação para registrar essa informação e acrescentar a categoria à transação Attraction. Mas informaram também que não é obrigatório registrar a categoria da atração que uma dada atração que está se manipulando pertence. Pode deixá-la vazia. Se sabemos que GeneXus controla automaticamente a integridade, como o conseguimos? Solução: Para terminar a definição da transação Attraction, acrescentemos o dado que está faltando: a foto. Para isso, você deve criar o atributo AttractionPhoto do tipo de dado Image. Peça a GeneXus que construa o aplicativo, assim pode testá-lo em execução (F5). Observe o que o relatório de Análise de Impacto informa. Deverá ser criada a tabela Category e a tabela Attraction já existente deve ser convertida, acrescentando três elementos de informação (um pelo atributo CategoryId e dois pelo atributo AttractionPhoto. Não se preocupe em entender por que é preciso armazenar dois valores por imagem). Página 11

13 Reorganize e execute. Insira categorias (como museu e monumento) e acesse as transações turísticas já inseridas para completar sua informação (categoria e foto). Observe que neste caso é possível deixar a categoria vazia (porque a propriedade Nullable foi configurada em Yes na estrutura da transação). No entanto, se você tentar colocar como valor de CategoryId para a atração turística um valor inexistente, não será possível salvar. Página 12

14 Acrescentemos as cidades à transação Country Além dos países com os quais a agência de viagens trabalha, precisamos registrar a informação de suas cidades. Devemos, portanto, acrescentar um segundo nível à transação Country com o identificador e o nome da cidade. Lembre-se que: Posicionado no atributo CountryName, com o botão direito / Insert Level acrescenta o subnível. Uma vez que se dê um nome ao novo nível, digitando aspas ( ) em vez de ponto, o atributo definido incializará com o nome do nível. As cidades serão identificadas por seu próprio id em combinação com o do país. Ou seja, não poderá identificar uma cidade sem antes oferecer a informação do país de que se trata. Assim, poderia existir uma cidade 1 Rosário tanto para Uruguai como para Argentina. País: 1 (Uruguai) Cidade: 1 (Rosário) País: 2 (Argentina) Cidade: 1 (Rosário) Ou poderia ser inclusive que Rosário para Argentina se identificasse com outro número: País: 2 (Argentina) Cidade: 4 (Rosário) Reorganize e execute (F5). Página 13

15 Observe que a Lista de Navegação informará que: A propriedade autonumber para o caso de CityId será ignorada. Isso significa que, em execução, o usuário deverá inserir manualmente os identificadores da cidade. A explicação é que a propriedade Autonumber autonumera somente chaves primárias simples e, neste caso, CityId é o segundo componente de uma chave composta. Será criada uma nova tabela CountryCity para armazenar a informação correspondente às cidades. Insira cidades para os países que você já tinha registrado. Transação Attraction : acrescentemos a cidade. Na transação Attraction, acrescentemos a cidade do país a que a atração pertence. O que deve ser feito se a agência de viagens nos informar que esse valor pode não ser conhecido ou relevante para uma determinada atração em um dado momento? Construa o aplicativo e teste (F5 e Reorganize). Página 14

16 Solução Antes de seguir, abra a transação Customer e modifique o tipo de dado de CustomerId para que tenha domínio Id (e, assim, se autonumere). Também modifique os tipos de dados de CustomerName e CustomerLastName para que passem a assumir o domínio Name. Reorganize. 4. Adicionemos comportamentos às transações (papéis) Depois de testar com nós mesmos o aplicativo temos desenvolvido, nos contam na agência de viagens que, para os clientes, existe um comportamento específico que devemos fazer cumprir na hora de manipular a informação através do programa (transação Customer ). Que comportamento é esse? Eles nos dizem: O sistema deve permitir inserir clientes sem nome e sem sobrenome. O sistema deve advertir o usuário que está deixando o campo telefone sem preencher, já que pode ter sido um descuido. A data de entrada deve ser registrada no sistema (CustomerAddedDate) e deve-se propor como valor prédeterminado para este atributo a data de hoje. Especifique esse comportamento e teste-o (F5 e Reorganize). Lembre-se que: As regras terminam com um ponto-e-vírgula, ;. O método IsEmpty() aplicado a um atributo devolve True quando o atributo está vazio e False, em caso contrário. A variável %today é do sistema e tem o valor da data do dia carregado. Para escrever uma variável dentro da tela Rules, quando digitar & abrem todas as variáveis definidas até o momento para que selecione o que precisa. A outra possibilidade é utilizar Insert/ Variável. Página 15

17 Teste inserir um novo cliente deixando seu nome em branco. É permitido salvar ou passar ao campo seguinte? Faça o mesmo com o sobrenome. Acontece a mesma coisa com o telefone? Se depois informam que a data da entrada no sistema não deveria ser manipulado pelo usuário, mas apenas visualizada, como você estabelece esse comportamento? Especifique-o e teste em execução. 5. Patterns: melhorando a interface para traballhar com a informação Ao mostrar ao cliente o que foi feito até agora, ele nos diz que deseja manipular informação de países, categorias e atrações turísticas de um modo mais potente e vistoso (que ofereça consulta, possibilidade de filtrar, bem como inserir, alterar e excluir dados etc). Para isso, é preciso aplicar os padrões Work With às três transações. Teste e veja em execução. Observe que: Existe um Work With para Smart Devices também. Mas o que você deverá aplicar é o que corresponde ao aplicativo web que está construindo. GeneXus criará automaticamente vários objetos por transação para implementar o Trabalhar com essa entidade. Solução Página 16

18 Por que as transações Category, Country e Attraction não aparecem mais do Developer Menu? Teste: 1. Inserir um novo país; 2. Alterar um país existente (acrescentando uma cidade, por exemplo); 3. Excluir um país existente; 4. Visualizar a informação de um país; 5. Fazer uma busca por nome de país; Página 17

19 6. Inserir um par de transações turísticas (Por ex.: A muralha de China/ Pequim. Torre Eifell de França/ Paris); 7. Filtrar as atrações turísticas cujo nome começa com F. E se agora quiser poder visualizar todas as atrações turísticas da França? Essa possibilidade não está incluída, por mais que devamos personalizar o pattern work with dessa transação para acrescentá-la. Faça em GeneXus e teste em execução. Solução Para isso, primeiro, observe como está especificado que o filtro que existe, por nome da atração turística: 8. Agora, tire os identificadores de país e cidade da tela do Work With e teste-o em execução. Página 18

20 9. Se agora quiser oferecer a possibilidade que o usuário escolha ver as transações ordenadas por nome da atração ou por nome do país, implemente e faça o teste. 6. Listas pdf Agora, imaginemos que como parte do aplicativo, deverá ser implementada a possibilidade de que, a pedido do usuário, sejam abertas listas pdf com a informação solicitada. Por exemplo, suponha que se slicite uma lista pdf que mostre, em ordem alfabética, as atrações turísticas armazenadas no banco de dados. Sabe-se que deve ser mais ou menos como: Implemente em GeneXus. Página 19

21 Lembre-se que para poder visualizar uma lista diretamente do browser, ela deve ser gerada como PDF. Para isso, é preciso configurar as seguintes prorpriedades do objeto procedimento: Main program = True Call Protocol = http Report output = Only to File E a seguinte regra: Output_file( nombre-archivo.pdf, PDF ) Para executar a lista, clique com o botão direito sobre a guia do objeto / Run with this only Reparou no que informa a lista de navegação do procedimento? E se agora for preciso que a lista saia ordenada por nome de páis? Implemente isso, observe o que é informado na lista de navegação e faça o teste. E se agora for preciso apenas listas de atrações da França? Teste (observando a lista de navagação). Em cada caso, deduza qual tabela do banco de dados se está recorrendo para realizar a consulta do for each. Precisa-se também de uma lista como a que segue (que mostre cada categoria e, para cada uma delas, suas atrações turísticas). Implemente e teste o que foi feito. Página 20

22 Acrescente uma nova categoria ao sistema, Art Gallery (galeria de arte), por exemplo. Volte a executar a lista anterior. A categoria saiu na lista? Modifique a lista anterior para que não saiam nas listas as categorias que não tenham atrações turísticas relacionadas. Que modificações você encontrou na lista de navegação? 7. Transações Flight e Airport e necessidade de definir subtipos Agora, é preciso registrar os voos que a agência de viagens oferece. Cada voo tem um modificador e vai de um aeroporto a outro. Cada voo também tem um preço. Para o Preço crie um domínio Numeric(10.0). Crie uma transação para registrar os aeroportos. Cada aeroporto tem um identificador, um nome, um país e uma cidade na qual se encontra. Como é definido que cada voo tem um aeroporto de origem e outro aeroporto de destino? Lembre-se: 1) Que na estrutura da transação: Um ícone representando uma flecha para cima informa que o atributo é chave estrangeira (Foreign Key), ou seja, que aponta a outra tabela. Um ícone representando uma flecha para baixo informa que o atributo é inferido de outra tabela. Um ícone representando uma indica que o atributo é um subtipo. 2) Sobre os grupos de subtipos: Definem-se da mesma maneira que qualquer tipo de objeto. Cada grupo de subtipos deve conter obrigatoriamente um subtipo de um atributo primário (que é chave primária de uma tabela) ou conjuntos de atributos que formam uma chave primária. Página 21

23 Em cada grupo de subtipo, é preciso incluir todos os atributos subtipos que se deve conhecer, pertencentes à tabela base e/ou estendida da chave primária do grupo. Execute e verifique se ao tentar inserir um voo, é disparado um erro se o aeroporto de partida ao qual se está querendo atribuir ao voo não existe. Idem para o aeroporto de chegada. Não se deve permitir inserir um voo em cujo aeroporto de partida coincida com o aeroporto de chegada. Implemente esse comportamento e teste em execução. 8. Fórmulas É Preciso poder registrar o desconto atual que cada voo tem. Defina um novo atributo na transação Flight para armazenar esse dado. Dê ao novo atributo o nome FlightDiscountPercentage e defina que seu tipo de dado seja um domínio Percentage, numérico igual a 3. Deseja-se visualizar o preço final do voo com o desconto aplicado. Para resolver isso, defina outro atributo, chamado FlightFinalPrice, que seja fórmula global que calcule automaticamente o preço final do voo. Pressione F5, observe na Análise de Impacto qual atributo será criado fisicamente e qual não, reorganize e teste o aplicativo em funcionamento. Crie um segundo nível na transação Flight chamado Seat para registrar seus assentos. Posto que os assentos costumam ser identificados por um número e uma letra, a chave primária (ou o identificador único) do segundo nível deverá ser composta por 2 atributos: FlightSeatId: para registrar o número do assento FlightSeatChar: para inserir a letra Defina o domínio Seat Chat, do tipo character(1) com o objetivo que o atributo FlightSeatChar permaneça o mesmo. Restrinja que as letras possíveis de escolher para o domínio sejam de A a F (editando a propriedade Enum Values do mesmo). Página 22

24 Lembre-se que para definir que certo atributo é parte da chave primária, você deve pressionar o botão direito do mouse sobre o atributo e o menu contextual lhe oferecerá a opção Toggle Key. Para conhecer a capacidade de passageiros que o voo permite, crie um atributo novo no primeiro nível da transação Flight chamado FlightCapacity, tipo numeric(4), e defina-o fórmula global que conte a quantidade de assentos que o voo oferece. Deseja-se ver a capacidade do voo no formulário web e controlar que não se registre nenhum voo com menos de 4 assentos. Esse controle deverá ser feito quando terminar de inserir todos os assentos e depois de ter pressionado o botão Confirm. Outra solicitação da agência de viagens é uma lista que mostre todos os nomes de países e, para cada país, a quantidade de atrações turísticas que oferece: E nos pede outra lista que também mostre todos os países que tem mais de 2 atrações para visitar: Página 23

25 9. Business Components Realizaremos algumas operações sobre o banco de dados atrávés de business components. Aumento do preço dos voos Des tempos em tempos, a agência de viagens precisa aumentar os preços de voos em uma determinada porcentagem. Para isso, devemos implementar uma tela que permita ao usuário especificar essa porcentagem de aumento e dar a ordem de aplicá-la a todos os voos do banco de dados. Implemente e faça o teste. Lembre-se que: O objeto web panel permite implementar telas flexíveis para entrada e saída de informação. Para entrada de informação (que o usuário possa inserir valores na tela), se inserem controles variáveis no form. Se quiser editar barras de menu, posicionando-se em GeneXus acima sobre a barra, com o botão direito você poderá inserir, por exemplo, a barra Formatting. Para que a web panel tome alguma ação determinada, podem ser inseridos botões e programar o "evento" associado. Os business components são tipos de dados criados ao configurar a propriedade de nome Business Component do objeto de transação com valor Yes. Ao fazer isso, para inserir, modificar ou eliminar registros das tabelas correspodendentes, poderão ser utilizados, além da transação, uma variável de tipo de dado Business Components em qualquer outro objeto (por exemplo, uma web panel) e realizar as mesmas operações através dos métodos Load (), Save () e Delete (). Para que as operações realizadas através do business componentes fiquem efetuadas de maneira permanente, você deverá executar na sequência o comando Commint. Se a um valor X se quer incrementar em 20%, basta fazer X = X*(1+20/100) = X*1,20 Solução Uma solução possível (tente implementar o que foi pedido sem olhar o que vem a seguir): criamos uma Web Panel com uma variável &percentage, de tipo de dado Numeric(3.0) Página 24

26 Ao dar um clique duplo sobre o botão, somos levados à seção Events, editando o evento Enter, associado ao mesmo. Ali, programaremos a lógica que queremos que se execute quando o usuário pressionar o botão. Precisamos recorrer todos os voos e sobreescrever o preço que eles tinham, aumentando nessa porecentagem indicada pelo usuário na variável da tela. Para recorrer todos os voos do banco de dados, usamos o comando for each. E, para cada nvoo, como editamos para modificar seu valor de FlightPrice? Para isso, vamos precisar de uma variável que tenha toda a estrutura da transação Flight e, além disso, permita salvar no banco de dados. Que tipo de dados terá, então, essa variável? O business component Flight (observar que o tipo de dados business component tem o mesmo nome que a transação). Mas GeneXus não cria esse tipo de dado automaticamente para cada transação. Teremos que pedi-lo. Como fazemos? Ligando a propriedade correspodente da transação. Feito isso, logo: Event Enter for each &flight.load(flightid) &flight.flightprice = &flight.flightprice*(1+&percentage/100) &flight.save()... endfor EndEvent Como as operações para salvar ou exlcuir do banco de dados (através dos métodos Save() e Delete()) podem provocar erros, é importante saber o que aconteceu. Para isso, temos o método Sucess () que devolverá True se não houver erros e False, em caso contrário. Event Enter for each &flight.load(flightid) &flight.flightprice = &flight.flightprice*(1+&percentage/100) &flight.save() If &flight.success() Commit else Rollback endif endfor EndEvent Página 25

27 Ao inserir, modificar ou excluir regitros de uma tabela do banco de dados, enquanto não for dito que tudo o que foi feito fica permante, essas modificações serão provisórias. O que isso quer dizer? Que, por exemplo, se houver um apagão, essas modificações se perderão. A forma de dizer que fique permanente o que foi feito é executar o comando Commit. Se, ao contrário, quisermos que o que fizemos se desfaça, executamos o comando Rollback. Tela para eliminação de todos os voos Salve a web panel anterior com outro nome (para isso, basta posicionar-se sobe a aba e com botão direito, e clicar em Save as) e modifique o Form que contem apenas um botão com o texto "Delete all flights", de modo que em execução esta web panel se veja assim: Quando o usuário pressionar o botão, deverão ser eliminados todos os voos do banco de dados. O que deve ser modificado do evento Enter que estava programado? Nota: se se posicionar sobre o botão e vir suas propriedades, na de nome Caption você pode modificar o texto do botão. Solução Bastará: Event Enter for each &flight.load(flightid) &flight.delete() if &flight.success() Commit Msg( 'Successful deletion') else Msg( 'Deletion could not be done') Rollback endif endfor EndEvent Com Msg conseguirá que se abra essa mensagem na tela da web panel. Página 26

28 10. Procedimentos para atualizar registros Aumento de preços dos voos Imagine que chegam aos milhares os voos que devemos aumentar o preço em uma determinada porcentagem (volte ao primeiro exercício do ponto 9 dessa atividade prática). Sabendo que o aumento do preço é um procediemnto simples e que não vai fazer a integridade falhar de nenhuma maneira, faça como um procedimento, sem utilizar business component. Lembre-se que: Com o comando for each dentro de um procedimento, você pode atualizar os atributos de sua tabela estendida através de simples atribuições. A atualização direta através de procedimentos não controla a integridade da informação. Todo objeto deve declarar os parâmetros que recebe e os parâmetros que devolve. Se não os declara, não receberá, nem devolverá valores. Os parâmeteos são declarados através da regra parm. As variáveis são locais ao objeto onde são utilizadas. Isso significa que se eu quiser receber um valor como parâmetro em uma variável &X, devo declará-la no objeto. Exclusão de todos os voos E se agora você quisesse excluir todos os voos, como foi feito no ponto 9 dessa atividade prática, através de um procedimento? Solução Criar um procedimento FlightsDeletion, que não recebe parâmetros, com o seguinte código: for each defined by FlightPrice Delete endfor Faça um Save as da web panel que tinha implementado no ponto 9 (a que fazia a exclusão através de Business Component) e mude o evento Enter: Event Enter FlightsDeletion() EndEvent E se agora eu quiser apagar toda a informação do banco de dados? Página 27

29 Solução Criar um procedimento DeleteAll com Source: for each defined by CustomerName delete endfor for each defined by FlightPrice delete endfor for each defined by AttractionName delete endfor for each defined by CategoryName delete endfor for each defined by CountryName for each defined by CityName delete endfor delete endfor E mudar a web panel anteiror (save as), acrescentando um botão, ao qual associaremos um evento de usuário. Para isso, editando as propriedades do botão, em OnClickEvent, escolhemos <new> e damos o nome que quisermos: Página 28

30 Depois, clicando com o botão direito sobre o botão: Go To Event e programamos a invocação ao procediemnto. Inicialização da informação do banco de dados [opcional] Quando o aplicativo que você está desenvolvendo for posto em produção (ou seja, começar a ser utilizado pela agência de viagens) deverão ser carregados todos os dados dos clientes, países, categorias, atrações, voos. Escreva um procedimento que inicialize essas tabelas com informação que a agência de viagens tem nos dado e teste-o. Levar em conta que: O comando new insere um registro em uma tabela física. Se não atribuir valor a um atributo da tabela, logo: o Se o atributo for autonumerado, ao salvar o registro no banco de dados (ao alcançar o endnew ), para esse atributo, ficará na memória o valor dado pelo banco de dados a ele. Por exemplo, se estiver salvando uma categoria: New CategoryName = Monument Endnew Sabemos que depois do Endnew se utilizarmos o atributo CategoryId, ele terá o valor que o banco de dados deu ao registro ao inseri-lo. Solução Criar um procedimento DBInitialize com o Source a seguir e invocá-lo de uma web panel: new CustomerName = 'John' CustomerLastName = 'Cage' Customer = '[email protected]' CustomerAddress = '11235 NE 4 Ave, Miami' endnew //Brazil new CountryName = 'Brazil' Página 29

31 endnew new CountryId = CountryId CityId = 1 CityName = 'Rio de Janeiro' endnew //France new CountryName = 'France' endnew new CountryId = CountryId CityId = 1 CityName = 'Paris' endnew new CategoryName = 'Monument' endnew new AttractionName = 'Eiffel Tower' CountryId = CountryId CityId = CityId CategoryId = CategoryId AttractionPhoto = EiffelTower.Link() endnew new CountryId = CountryId CityId = 2 CityName = 'Niza' endnew //China new CountryName = 'China' endnew new CountryId = CountryId CityId = 1 CityName = 'Beijing' endnew new CountryId = CountryId CityId = 2 CityName = 'Shangai' endnew 11. Pasagem de parâmetros Muitas vezes, precisamos que um objeto receba parâmetros para, baseados neles mesmos, executar sua lógica. Por exemplo, uma coisa é realizar uma lista pdf de todas as atrações turísticas do banco de dados, outra é realizar uma lista daquelas atrações cujo nome encontra-se dentro de uma determinada categoria. Página 30

32 Lista de atrações em um grupo determinado Salve com outro nome o procedimento que você tinha criado no ponto 6 para listar as atrações turísticas e, modifique-o para que agora somente liste aquelas cujo nome encontra-se dentro de um grupo recebido por parâmetro (o valor incial e o final do grupo serão os parâmetros recebidos). Implemente uma tela que peça os valores desse grupo ao usuário e invoque este objeto, passando esses valores por parâmetro. Teste em execução. Lembre-se que: Se você definir uma variável baseada em (based on) um atributo, ela ficará ligada ao tipo de dado do atributo, ou seja, se ele se modifica, o da variável também, de acordo com a mudança. As variáveis utilizadas para realizar uma inovação no objeto que chama e as utilizadas para declarar os parâmetros que se recebem no objeto chamado não tem porque coincidirem em nome, mas devem ter tipos de dados compatíveis. Solução: Ao procedimento, vamos chamá-lo AttractionFromTo, acrescentamos a regra parm (e definimos ambas as variáveis no procedimento): parm( in: &fromname, in: &toname ); E no seu Source: print Title print ColumnTitles for each where AttractionName>= &fromname where AttractionName <= &toname print Attractions endfor Depois, criamos uma web panel, na qual definimos duas variáveis que podem ser chamadas de qualquer maneira, por exemplo A e B, mas que devem ter como tipo de dado um compatível com o das variáveis %fromname e %toname. Por quê? Porque serão nessas variáveis que o usuário inserirá valores que no evento que programemos serão enviadas por parâmetros ao procedimento, assim: AttractionsFromTo( &A, &B) Página 31

33 12. Web panels A agência de viagens solicita uma página que lhes possibilite inserir um identificador de um cliente e, ao pressionar um botão, sejam visualizados os dados de tal cliente. Outro requisito solicitado pela agência de viagens é uma página que mostre todos os clientes. De cada cliente, deseja-se ver seu nome completo e endereço. Lembre-se que uma alternativa para ter o nome e sobrenome de cada cliente concatenados, como vemos acima, é definir um atributo fórmula global (atributo virtual não armazenado no banco de dados) cuja definição consista no atributo que armazena o sobrenome + espaço ou vírgula + atributo que armazena o nome. No segundo nível da transação "Flight", acrescente os atributos correspondentes ao identificador de cliente, sobrenome e nome, para poder atribuir a cada assento de um voo, um cliente. Configure a propriedade Nullable=Yes para CustomerId, assim poderão ficar assentos que não foram atribuídos a nenhum cliente. Pressione F5, observe a Análise de impacto e proceda com a reorganizção e execução. Atribua os clientes aos assentos dos voos. Página 32

34 A agência de viagens solicita uma página que mostre todos os clientes e, para cada um, a soma total de preços de seus voos associados. Para reslver isso, salve a última web panel criada (a que contem um grid) com outro nome de objeto. Exclua a coluna CustomerAddress do grid e, em seu lugar, defina e inclua uma variável. Como o cálculo solicitado para cada cliente não se encontra registrado em um atributo, você deverá calculá-lo. Lembre-se que o evento Load em uma web panel com tabela base é executado justamente antes de carregar cada linha no grid. Este evento é adequado para atribuir à variável o cálculo que devolve a soma dos preços dos voos de cada cliente que se está navegando e a ponto de carregar em uma linha no grid. Agora, acrescente uma variável que permita filtrar a informação aberta por sobrenome do cliente. Página 33

35 Acrescente debaixo do grid uma variável que mostre o total gasto por todos os clientes. Lembre-se de esvaziar a variável antes de começar a carregar o grid. Edite novamente as colunas do grid e acrescente uma nova variável chamada &FlightImage como coluna do grid com o objetivo de carregar uma imagem (por exemplo, a imagem de um avião) para cada linha em tal variável: Página 34

36 Não se esqueça de que é necessário inserir a imagem do avião na base de conhecimento. Associe à imagem uma ação para que ao clicar sobre ela, abra outra página (web panel) que mostre os voos relacionados ao cliente da linha. Crie a nova web panel que receba o identificador de um cliente (Customer Id) e mostre na mesma a informação de seus voos. Agora, faça as modificações necessárias para que em vez de abrir uma nova web panel ao clicar sobre a imagem, a informação relativa aos voos do cliente se visualize em outro grid dentro da mesma web panel: Página 35

37 13. Variável de Tipo de dado estruturado, Data Provider para carregá-la e Web Panel para mostrá-la Será preciso mostrar em tela as categorias de atrações turísticas, mostrando de cada uma: nome da categoria e quantidade de atrações turísticas dessa categoria e esse país, como se vê abaixo: Como ainda não aprendemos como realizar um cálculo, deixe o número de atrações turísticas com um valor prédefinido (em branco, por exemplo). Mais adiante, voltaremos sobre este ponto para completá-lo. Lembre-se que: O objeto Web Panel permite desenhar telas para múltiplos usos. Cada objeto GeneXus pode definir variáveis que serão espaços de memória reservados dentro do objeto para manter temporariamente certos valores enquanto o objeto está executando (e que logo se desfazem). As variáveis são um nome que se dá a um espaço de memória que se reserva. Para reservar esse espaço, deve ser especificado seu tipo de dado. Um caso particular é quando uma variável não é de um tipo de dado simples, mas estruturado (ali deverão ser reservadas várias posições de memória para armazenar cada um dos elementos do tipo de dado). Os tipos de dados estruturados podem ser coleções de tipos de dados. Os Data Providers são utilizados para carregar variáveis de tipos de dados estruturados (ou business components, como veremos a seguir, que também são estruturados). Tente implementar o que vimos antes por sua conta, sem ver o que se segue. Página 36

38 Solução Uma possível solução é criar um tipo de dado estruturado que representa uma coleção de categorias com a informação que se precisa (nome de categoria e quantidade de atrações turísticas correspondentes). Depois, um Data Provider que permita carregar uma variável desse tipo, obtendo o nome de categoria do banco de dados. Para especificar seu Source, lembre-se que o mais fácil é arrastar o SDT do Folder View e soltá-lo na tela Source. Assim, terá que preencher somente o que se mostra em verde. Por agora, deixaremos vazio o valor de CategoryAttractions. Observemos que na propriedade Output, aparece o SDT que é coleção, motivo pelo qual a propriedade Collection está em False (se se pusesse em True, o resultado seria uma coleção de coleções). Depois, crie a Web Panel, definindo a variável &categories do tipo de dado do SDT anterior e inseri-a no Form. Será oferecido inseri-la dentro de um control Grid. Você deverá carregá-la, mas como? No evento Start, invocando o Data Provider anterior. Página 37

39 Event Start &categories = GetCategories() EndEvent 14. Extended controls Utilizando o extended control ImageGallery, crie uma web panel que mostre a galeria de fotos de todas as atrações turísticas. Personalize as propriedades do extended control, estabelecendo Width=1000, Height= 500, y Type=Slider: Página 38

40 15. Objeto Query Defina um objeto Query que devolva somente as cidades da França, ordenadas por ordem alfabética, cada uma delas com sua respectiva quantidade de atrações turísticas. Defina uma web panel e, utilizando o control QueryViewer, visualize a consulta anterior como um gráfico. Página 39

41 16. GXserver Publique a base de conhecimento no servidor Crie uma nova web panel (WPCustomers) que mostre a lista de clientes da Agência. Envie esse novo objeto ao servidor para que se integre à base de conhecimento centralizada. Entre no console web verifique o estado final da KB. Cierre la base de conocimiento anterior, y cree una nueva sincronizándose con la KB previamente publicada. De esta forma se recibe localmente una copia de la KB administrada por GXserver. Página 40

42 Nesta nova cópia local, edite a transação Country e defina o novo atributo CountryFlagImage, do tipo Image. Envie essa alteração ao servidor. Feche essa KB e abra novamente a KB inicial. Realize a operção Update para receber a alteração realizada antes. 17. Definição de um modelo de processo de negócios (BPM) para a reserva de uma atração O processo de reserva de uma atração turística consiste em uma série de tarefas que pode ser considerada como um processo de negócio. Este processo começa quando uma pessoa vai à agência de viagens reservar um pacote turístico para uma determinada atração. A primeira coisa que o funcionário da agência deve fazer é inserir uma reserva para tal pacote. Depois de inserida a reserva, é preciso verificar se a pessoa que solicita o pacote é um cliente da agência e, caso não seja, deverá inseri-la como cliente e associar tal cliente à reserva. Feitos esses passos, é preciso verificar se existem pacotes disponíveis para a quantidade de pessoas que desejam fazer a viagem. Se houver lugares disponíveis, a reserva será feita e o processo de negócios é finalizado. Se não houver lugares disponíveis, deve ser oferecido outro pacote ao passageiro. Para implementar o modelo, você deverá criar um objeto Business Process Diagram, mas antes deve criar uma transação Reservation com os seguintes atributos: ReservationId - Id ReservationDate - Date ReservationQty N(4) CustomerId Página 41

43 CustomerName ReservationAvailable Boolean O atributo ReservationAvailable é utilizado para marcar se o pacote turístico está ou não disponível. Para o atributo CustomerId, selecionamos sua coluna Nullable com o valor Yes, para indicar que no momento de inserir uma reserva, podemos não ter ainda o identificador de cliente, da pessoa que está adquirindo a reserva. Defina o modelo de negócios para a reserva de uma atração turística e execute-o, testando todos os casos mencionados na descrição, de forma a recorrer todo o diagrama. Solução Crie a transação Reservation, de acordo com o foi solicitado. Crie um objeto Business Diagram e nomeie-o AttractionReservation. Da barra de ferramentas, arraste ao diagrama um símbolo de NoneStartEvent. Localize a transação Reservation na janela de Folder Vier e arraste-a até o diagrama. Para conectar o nó de Start com a transação, clique na parte inferior do círculo verde e, sem soltar, arraste a conexão até que a ponta da flecha toque a margem superor do retângulo da transação. Para representar a decisão no diagrama para verificar se a pessoa é cliente da empresa, arraste um nó Exlcusive Gateway sobre o diagrama e una-o partindo da transação Reservation. Agora, deve-se definir a condição do Gateway que fará com que o fluxo siga o curso normal (para baixo) quando não é preciso que acrescentar a pessoa como cliente, ou o fluxo alternativo (para a direita), quando a pessoa deve ser inserida como cliente. Primeiro, arraste a transação Customer ao digrama e conecte-a à direita do Gateway. Depois, dê um duplo clique na flecha verde que une o Gateway com a transação Customer e escreva a expressão Reservation.CustomerId = 0 para indicar que o fluxo deve tomar esse caminho se, quando se inseriu a reserva, o atributo CustomerId deixou com o valor 0. Para associar o cliente recém-criado à reserva, você deve criar um procedimento chamado AssignCustomerToReservation e, na seção de regras, escreva uma regra parm com os parâmetros &ReservationId y &CustomerId. No source do mesmo, escreva um For each com uma cláusula Where filtrando o atributo ReservationId pela variável ReservationId recebida por parâmetro. Depois, atribua a CustomerId o valor da variável &CustomerId e feche o For each. Desta forma, designará ao cliete recém-criado a reserva inserida anteriormente. Agora, arraste o procedimento recém-criado até o diagrama e conecte-o partindo da transação Customer. Contiuando com o fluxo habitual (para baixo do Gateway), você deve contar com uma tela onde se possa confimar ou cancelar a reserva. Para isso, pode utilizar novamente a transação Reservation e se marcará a reserva como disponível ou não, por meio do atributo ReservationAvailable. Arraste a transação Reservation da janela de Folder View até o digrama. Renomeie a tarefa como ReservationAvailabity e conectea do Gateway. Para indicar que o fluxo para baixo é o fluxo normal, selecione a conexão e na janela Propriedades atribua a propriedade ConditionType no valor Default. Observe no digrama que o fluxo ficou assinalado com uma linha de cor verde que o cruza. Aproveite agora para conectar a tarefa AssigntCustomerToReservation à tarefa ReservationAvailability. Para avaliar o valor inserido na caixa de selação da transação Reservation, insira da caixa de ferramentas um Exlcusive Gateway e conecte-o da tarefa ReservationAvailability. Depois, conecte o fluxo alternativo do mesmo (que desenhamos para a esquerda) à tarefa Reservation para que se possa acrescentar uma reserva nova. Página 42

44 O que falta fazer agora é levar em conta o caso de que a reserva se confirme, quando já não haverá mais tarefas e o processo deverá ser finalizado. Para indicar que o diagrama deve terminar, insira da caixa de ferramenta um símbolo de NoneEndEvent e conecte-o do Gateway. Essa conexão para baixo é o fluxo normal do Gateway, de modo que quando a reserva se confirmar, o processo se finalizará. Para indicar isso, selecione a conexão e, na janela Propriedades, atribua a propriedade ConditionType com o valro Default. Agora, você deve executar o diagrama. Sobre a aba com o nome do diagrama, clique com o botão direito e escolha Run. Se abrirá uma tela com o Cliente GXflow. Selecione a tarefa Reservation e, para executá-la, pressione o botão de Execute ou dê um duplo clique sobre a tarefa. Insira uma reserva, deixando sem inserir o identificador do cliente. Pressione Confirmar e feche a janela. Para passar à tarefa seguinte, pressione Send. Como não o cliente não foi inserido, a próxima tarefa pendente é a transação Customer. Execute a tarefa e insira a pessoa que solicitou a reserva como cliente. Feche a janela e pressione Send. Observe que a próxima tarefa é ReservationAvailability, já que a tarefa AssignCustomerToReservation é não interativa e, portanto, se executou em forma batch. Execute a tarefa, amrque a caixa de seleção e pressione Confirmar. Feche a janela e pressione Send. Note que agora a caixa de entrada está vazia, indicando que não existem mais tarefas pendentes para executar, já que se chegou ao fim do processo. Execute novamente o diagrama, mas agora teste os outros caminhos do diagrama, inserindo, por exemplo, um identificador de cliente na transação Reservation ou deixando desmarcarda a caixa de seleção ao confirmar a reserva. Para ver o histórico das tarefas executadas, selecione My Process na janela Navigator e dê um clique duplo sobre o Processo AttractionReservation na janela da direita. Você poderá ver em uma janela todas as tarefas que se foram executando. Para ver o histórico em forma de animação, selecione More Actions, View Diagram e pressione o botão de Play. 18. Testar o aplicativo com GXtest GXtest permite salvar sequências de operações para testar novas telas e, verificar ante novas mudanças, que o sistema continue funcionando corretamente. Neste caso, vamos verificar se o preço de um voo se calcula sem erros. Este preço é representado pelo atributo FlightFinalPrice definido com uma fórmula global. Esta fórmula atribui o maior desconto possível, ou seja, se o desconto da empresa aérea é maior, toma-se tal desconto e caso contrário, toma-se o desconto do voo. Utilizando GXtest, defina um caso de teste inserindo um voo com os seguintes valores: País de partida: 1 Cidade de partida: 1 País de destino: 2 Cidade de destino: 1 Preço do voo: 5000 Desconto do voo: 50% Empresa aérea: 1 (desconto da empresa aérea: 30%) O preço calculado do voo será de 2.500, já que como o desconto de voo (50%) é maior que o desconto da empresa aérea (30%), se designará ao preço do voo um desconto de 50%. Cotinuando com o exemplo, insira um par de assentos para o voo e não pressione Confirmar. Página 43

45 Defina em GXtest que o valor correto para o texto que mostra o valor do preço do voo é de Pressione Confirmar e feche o navegador. Verifique em GXtest que o caso de teste tenha sido criado corretamente. Verifique que tenha sido criado o pool de dados com os valores inseridos. Depois, mude a fórmula do atributo FlighFinalPrice (por exemplo, mude o 100 do segundo quociente, pelo valor 10) e execute o caso de teste inserido anteriormente. Verifique se GXtest informa que encontrou um erro e veja o valor calculado incorretamente na tela da transação Flight, que se mostra à venda de resultados do caso de teste. Depois, corrija a fórmula (colocando o valor de 100 em vez de 10) e execute novamente o caso de teste. Verifique que neste caso, GXtest não encontra erros e o resultado de teste mostra o valor do preço do voo calculado corretamente. Solução Abra o aplicativo GXtest Designer, do acesso direto na aérea de trabalho. Crie um projeto novo lhe dê um nome. Agora pressione o signo de mais (cor verde), escolha sua KB da pasta em que está armazenada, acrescente uma descrição e pressione OK. Quando finalizar a importação de dados da KB, pressione OK. A URL que GXtest nos solicita é o aplicativo a testar. Volte a GeneXus, excute a transação Flight, copie a URL do mesmo e cole no campo URL da janela de GXtest. Pressione OK. Na parte direita da janela do Designer de GXtest, pressione o botão direito sobre Test Cases e escolha Record Test Case. Atribua um nome ao caso de test, uma breve descrição e marque a opção para que se autogenere o conjunto de dados de teste. Pressione o botão vermelho na parte superior direita da janela. Você notará que se abrirá o navegador e se executará a transação Flight. Insira um novo voo com os dados especificados na letra do exercíco, incluindo um par de assentos, mas não pressione Confirmar para terminar de inserir o voo. Antes, selecione com o mouse o preço do voo (que mostra o valor 2.500) e pressione o símbolo de check na barra de ferramientas de GXtest de navegador. Escolha VerifyControlRest e acrescente uma descrição. Pressione Aceitar e novamente Aceitar. GXtest avisará que acrescentou corretamente a validação solicitada. Pressione OK. Volte à tela da transação Flight e pressione Confirmar. Feche o navegador e volte ao designer de GXtest. Veja que foi criado um caso de teste. No diagrama, selecione o componente chamado Flight e veja que na janela de comandos foram detalhados todos os passos realizados ao inserir o voo na transação Flight. No panel de Project, à direita da tela e sob DataPools clique no elemento do conjunto de dados. Verifique em tal janela os dados utilizados para inserir o voo. Volte a GeneXus, edite a fórmula do atributo FilghtFinalPrice e, na segunda divisão, escreva 10 em vez de 100. Pressione F5 para atualizar o aplicativo. Para executar o caso do teste definido, volte a GXtest, selecione a guia do caso de teste e pressione o botão de Play, que se encontra em cima, à esquerda da tela. Você verá que uma janela do navegador foi aberta, e é visualizada a tela da transação Flight e começa a execução automática do caso de teste, inserindo-se automaticamente os mesmos dados que você tinha inserido antes, como se fosse uma pessoa que fosse fazendo. Preste atenção aos valores e veja que o preço do voo foi calculado incorretamente. Agora, mostra o valor Quando finalizar o caso de teste, notará que a janela do Designer de GXtest é ativada automaticamente. Abra o designer. Você verá que foi acrescentada uma guia com os resultados do test. Na coluna Result encontrará o símbolo de um inseto, represeta um bug encontrado. No painel da esquerda, se se clicar no símbolo de + ao lado do inseto, serão abertas várias opções e à direita, os testes realizados. Se dermos um duplo clique em Flight, se abrirá uma tela onde se pode ver a tela de transação Flight, os passos que integram o test realizado, o tempo que cada passo tomou e seu resultado. Página 44

46 Baixando a barra, verá que aparece o erro de validação do preço do voo, indicando qual foi o valor esperado e qual foi o valor real obtido. Se clicar sobre a linha do erro, abaixo, se abrirá uma tela do navegador com o valor calculado incorretamente. Volte à transação Flight, deixe a fórmula como estava antes (volte a colocar 100 em vez 10) e volte a GXtest para executar novamente o caso de teste. Verifique que agora não aparece nenhum símbolo de erro e que o resultado do cálculo do voo é correto, mostrando novamente o valor Verifique o valor clicando sobre a linha que mostra a validação de tal preço e verifique na tela do navagador que se mostrará abaixio que o valor mostrado seja também Precisa-se de uma parte para Smart Devices Agora, imaginemos que nos pedem que parte do aplicativo possa ser executada em um Smart Devices. Que parte? Trabalhar com atrações. Implemente o que for necessário para testar com o emulador de Android. Se agora quiser que a lista de atrações turísticas saia no emulador como pontos em um mapa, o que deverá ser alterado? Página 45

Exercícios práticos. GeneXus 15

Exercícios práticos. GeneXus 15 Exercícios práticos GeneXus 15 Copyright GeneXus S.A. 1988-2017. Todos os direitos reservados. Este documento não pode ser reproduzido em qualquer meio sem o consentimento explícito de GeneXus S.A. A informação

Leia mais

Cursos GeneXus - Carregando os tipos de dados estruturados

Cursos GeneXus - Carregando os tipos de dados estruturados Cursos GeneXus - Carregando os tipos de dados estruturados Em mais de uma oportunidade, precisamos armazenar na memória uma lista de elementos que contem o mesmo tipo de informação, mas diferentes valores

Leia mais

Curso Genexus - Introdução a Web Panels

Curso Genexus - Introdução a Web Panels Curso Genexus - Introdução a Web Panels A web panel é o objeto mais flexível dentre os oferecidos por GeneXus. Como já havíamos indicado, trata-se basicamente de uma página web que nos permite resolver

Leia mais

Relações entre os atores da realidade

Relações entre os atores da realidade Relações entre os atores da realidade Em vários exemplos de nossa agência de viagens, vimos podem ser estabelecidas diferentes relações entre que os atores da realidade. Vimos, por exemplo, que uma atração

Leia mais

Curso GeneXus - Comunicação entre Objetos

Curso GeneXus - Comunicação entre Objetos Curso GeneXus - Comunicação entre Objetos Em situações anteriores encontramos a necessidade de chamar um objeto a partir de outro. Por exemplo, no evento Enter da web panel EnterPercentage2, estamos chamando

Leia mais

Identificando atributos disponíveis

Identificando atributos disponíveis Identificando atributos disponíveis Explicaremos agora a definição de tabela base e tabela estendida. São dois conceitos muito simples e é importante compreendê-los, já que são muito aplicados no uso da

Leia mais

Verificação da instalação do GeneXus 15. Como verificar se o GeneXus 15 tm está instalado corretamente

Verificação da instalação do GeneXus 15. Como verificar se o GeneXus 15 tm está instalado corretamente Como verificar se o GeneXus 15 tm está instalado corretamente Conteúdo Resumo... 2 Criação de uma aplicação Web e para Smart Devices em GeneXus... 3 Passo 1 Criação de uma Base de Conhecimento... 3 Passo

Leia mais

Curso GeneXus - Fazendo crescer a aplicação

Curso GeneXus - Fazendo crescer a aplicação Curso GeneXus - Fazendo crescer a aplicação Ao mostrar aos usuarios da Agência de Viagens o aplicativo que temos até o momento, ganhamos a aprovação deles e eles nos lembram que, para cada atração turística,

Leia mais

Curso GeneXus - Atualização do banco de dados - Business Components

Curso GeneXus - Atualização do banco de dados - Business Components Curso GeneXus - Atualização do banco de dados - Business Components Até o momento, vimos que as transações permitem aos usuários inserir, modificar e excluir dados nas tabelas do banco de dados do aplicativo.

Leia mais

Trabalhando com documentos

Trabalhando com documentos Trabalhando com documentos Continuando com a associação de objetos GeneXus às tarefas do diagrama de validação da reserva, seguiremos com as tarefas interativas Add customer information required for traveling

Leia mais

Administrando as bases de conhecimento (GXserver)

Administrando as bases de conhecimento (GXserver) Administrando as bases de conhecimento (GXserver) Quando desenvolvemos um aplicativo com GeneXus, seja em equipe ou individualmente, precisamos manter a KB sempre acessível e atualizada. GXserver possibilita

Leia mais

TRABALHO FINAL 20 Pontos

TRABALHO FINAL 20 Pontos Técnico em Informática Integrado ao Ensino Médio Algoritmos e Banco de Dados Profa. Cleiane Gonçalves Oliveira TRABALHO FINAL 20 Pontos O trabalho final deverá constar os três seguintes tipos de funções:

Leia mais

Curso GeneXus - Otro ejemplo de uso de Business components

Curso GeneXus - Otro ejemplo de uso de Business components Curso GeneXus - Otro ejemplo de uso de Business components Veremos, a seguir, um exemplo prático do uso de Business Components. Comecemos postulando o seguinte cenário: Todo cliente da agência de viagens

Leia mais

Criação da Base de Conhecimento

Criação da Base de Conhecimento Criação da Base de Conhecimento Vamos executar GeneXus Este número que vemos aqui nos indica qual é a versão de GeneXus que estamos executando. É importante estar sempre atualizado com a última versão.

Leia mais

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ INTRODUÇÃO O Programa pode ser instalado em qualquer equipamento que utilize o sistema operacional Windows 95 ou superior, e seu banco de dados foi desenvolvido em MySQL, sendo necessário sua pré-instalação

Leia mais

Delphi 7 Aula 03 Progressão Geométrica

Delphi 7 Aula 03 Progressão Geométrica Delphi 7 Aula 03 Progressão Geométrica Prof. Gilbert Azevedo da Silva I. Objetivos Desenvolver aplicativos com várias janelas, Manipular lista de strings, Utilizar os componentes: MainMenu, ToolBar, ImageList,

Leia mais

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos

Leia mais

Sibele Loss Edimara Heis

Sibele Loss Edimara Heis Sibele Loss Edimara Heis 2016 TUTORIAL ETC Tela Inicial É a primeira tela que aparece ao se logar no sistema. Nesta tela encontram se as funcionalidades do ETC (Notificações, Documentos, Biblioteca, Mensagens,

Leia mais

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido Página 1 de 8 Excel > Macros Executar uma macro Mostrar tudo Há várias maneiras de executar uma macro no Microsoft Excel. Macro é uma ação ou um conjunto de ações que você pode usar para automatizar tarefas.

Leia mais

Painel Administrativo Westlock

Painel Administrativo Westlock Painel Administrativo Westlock Acesso ao Painel Administrativo Para acessar o Painel Administrativo da Westlock clique no endereço http://downloadcenter.westlockcontrolsmarcom.com/admin/ e preencha as

Leia mais

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo Versão do Manual: 2.4 Versão do Aplicativo: 2.17.2 Conteúdo 1. Instalação do AFV...03 2. Configurações...04 3. Recebendo as tabelas...05

Leia mais

Tutorial rápido CMAP TOOLS

Tutorial rápido CMAP TOOLS UFAL - Universidade Federal de Alagoas FEAC Faculdade de Economia, Administração e Contabilidade Tutorial rápido CMAP TOOLS Maceió 04 de Outubro de 2007 Sumário 1.0 Tela de Abertura do CMAP TOOLS... 3

Leia mais

Manual de Instruções. Cadastro de Contribuinte e Configuração de usuário para emissão de NFS-e. SapiturISSQN Versão 1.0 1

Manual de Instruções. Cadastro de Contribuinte e Configuração de usuário para emissão de NFS-e. SapiturISSQN Versão 1.0 1 Manual de Instruções Cadastro de Contribuinte e Configuração de usuário para emissão de NFS-e 1 1. Cadastro de Novo Prestador de Serviço. Quando o usuário acessar o sistema de NFS-e Sapitur ISSQN, vai

Leia mais

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual Aluno

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual Aluno UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA Manual do Moodle- Sala virtual Aluno UNIFAP MACAPÁ-AP 2013 S U M Á R I O 1 Tela de Login...3 2 Tela

Leia mais

Manual Site Unidéias.Net

Manual Site Unidéias.Net Manual Site Unidéias.Net Outubro 2015 Acesso ao site O site está publicado e disponível no endereço www.unideias.net. Acesso ao Sistema (módulo de Blog e Projetos) Para acessar o sistema e gerenciar suas

Leia mais

Microsoft Word 2010 NORMA ABNT para Trabalhos Acadêmicos Conceitos Básicos

Microsoft Word 2010 NORMA ABNT para Trabalhos Acadêmicos Conceitos Básicos Microsoft Word 2010 NORMA ABNT para Trabalhos Acadêmicos Conceitos Básicos [email protected] SUMÁRIO Iniciando o Word... 1 Conhecendo a Ferramenta... 1 Menu Layout da Página... 2 Capa... 3 Folha

Leia mais

TUTORIAL UTILIZAÇÃO XOOPS UEFS. AEI - Gerência de Suporte

TUTORIAL UTILIZAÇÃO XOOPS UEFS. AEI - Gerência de Suporte TUTORIAL UTILIZAÇÃO XOOPS UEFS AEI - Gerência de Suporte Efetuando Login Acesse a URL desejada acrescentando /user.php ao final. Exemplo: degustacao.exemplo.uefs.br/user.php 3. Na área Login do sistema

Leia mais

SRM RELAÇÃO COM OS FORNECEDORES MANUAL DO FORNECEDOR. Junho Versão 2

SRM RELAÇÃO COM OS FORNECEDORES MANUAL DO FORNECEDOR. Junho Versão 2 SRM RELAÇÃO COM OS FORNECEDORES MANUAL DO FORNECEDOR Junho 2013 Versão 2 2 de 26 ÍNDICE Capítulo/Seção Página 1. BEM-VINDOS... 3 2. INFORMAÇÃO DO CONVITE À OFERTA... 4 2.1 ACESSO À SRM... 4 2.2 USUÁRIO

Leia mais

Aula 01 Microsoft Excel 2016

Aula 01 Microsoft Excel 2016 Aula 01 Microsoft Excel 2016 Prof. Claudio Benossi Prof. Rodrigo Achar Prof. Wagner Tufano São Paulo SP 2018 1 01 Informações sobre a interface Aprender a trabalhar com o Excel pode ser o divisor de águas

Leia mais

Manual MAZK (Professor)

Manual MAZK (Professor) Manual MAZK (Professor) O Mazk é um ambiente inteligente para ensino e aprendizagem de diversos temas. Neste aplicativo os professores poderão incluir os materiais e os estudantes poderão aprender sobre

Leia mais

Sumário 1. Perfil Fórum Tarefa Wiki Glossário Mensagem Privada Notas...

Sumário 1. Perfil Fórum Tarefa Wiki Glossário Mensagem Privada Notas... Sumário 1. Perfil... 3 1.1. Modificar Perfil... 3 1.2. Mudar a Senha... 7 2. Fórum... 9 2.1. Adicionar um Novo Tópico ao Fórum... 9 2.2. Responder ao Fórum...12 2.3. Inserção de Link no Fórum...14 2.4.

Leia mais

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo Usando o Eclipse - Fundamentos Professor Vicente Paulo de Camargo O Eclipse é um ambiente de desenvolvimento integrado (IDE) É a ferramenta mais utilizada pelas empresas, visto que pode ser configurada

Leia mais

Criando uma página de Recados com acesso restrito ( Facebook )

Criando uma página de Recados com acesso restrito ( Facebook ) Criando uma página de Recados com acesso restrito ( Facebook ) 1 - Comece criando o banco de dados ( comece dando o nome que facilite vc reconhece-lo ex. adrianoface este nome não poderá conter espaços

Leia mais

Outlook Web App (OWA)

Outlook Web App (OWA) Outlook Web App (OWA) 2010 Índice 1. O que é o Outlook Web App (OWA) 2010?... 3 2. Como acessar o OWA:... 3 3. Como navegar no OWA... 5 4. As seções do OWA... 5 5. O painel de mensagens OWA... 6 5.1 Como

Leia mais

QUESTIONÁRIO. Você encontrará neste tutorial os seguintes tópicos: COMO CRIAR UM QUESTIONÁRIO

QUESTIONÁRIO. Você encontrará neste tutorial os seguintes tópicos: COMO CRIAR UM QUESTIONÁRIO QUESTIONÁRIO Você encontrará neste tutorial os seguintes tópicos: COMO CRIAR UM QUESTIONÁRIO COMO INSERIR QUESTÕES NO QUESTIONÁRIO COMO ACRESCENTAR UMA QUESTÃO DO BANCO DE QUESTÕES COMO ATRIBUIR UMA NOTA

Leia mais

5.9 Mídias: Clique no botão de Gerenciador de Mídias, ou acesse o Menu Conteúdo => Gerenciador de Mídias.

5.9 Mídias: Clique no botão de Gerenciador de Mídias, ou acesse o Menu Conteúdo => Gerenciador de Mídias. 5.9 Mídias: Clique no botão de Gerenciador de Mídias, ou acesse o Menu Conteúdo => Gerenciador de Mídias. Observe que na parte superior temos duas formas de visualização: em Miniatura e Exibição Detalhada.

Leia mais

Os arquivos podem conter qualquer tipo de informação: Texto Sons (Músicas) Imagens (Fotos, etc.) Vídeos E podem ser Programas de Computador

Os arquivos podem conter qualquer tipo de informação: Texto Sons (Músicas) Imagens (Fotos, etc.) Vídeos E podem ser Programas de Computador 1. IDENTIFICANDO ARQUIVOS E PASTAS Arquivos Nos computadores todos os dados estão codificados (guardados/gravados) dentro de arquivos. O tempo todo criamos, alteramos e usamos arquivos no computador. Os

Leia mais

Curso GeneXus Criação da Base de Conhecimento

Curso GeneXus Criação da Base de Conhecimento Curso GeneXus Criação da Base de Conhecimento Vamos executar GeneXus (clique duplo no ícone do desktop) Este nome e este número que vemos aqui, nos indicam qual é a versão de GeneXus que estamos executando.

Leia mais

MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAEGEM

MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAEGEM MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAEGEM MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAGEM Ana Amélia de Souza Pereira Christien Lana Rachid Maio/2017 LISTA DE FIGURA Figura 1 - Página

Leia mais

S40. Primeiros Passos. DAELT - Profa. Mariana Antonia Aguiar Furucho e Prof. José da Silva Maia 1

S40. Primeiros Passos. DAELT - Profa. Mariana Antonia Aguiar Furucho e Prof. José da Silva Maia 1 S40 Primeiros Passos DAELT - Profa. Mariana Antonia Aguiar Furucho e Prof. José da Silva Maia 1 Tela inicial Iniciar o programa pelo ícone do S40 localizado no desktop. Não utilizar o link do menu Iniciar

Leia mais

Inserindo Imagem. Inserindo uma imagem a partir da Galeria

Inserindo Imagem. Inserindo uma imagem a partir da Galeria Inserindo Imagem No writer, para inserir uma imagem é muito simples. Para isso, basta clicar no menu Inserir Figura (De um arquivo, Digitalizar, Galeria do Fontwork). É possível modificar os atributos

Leia mais

Vejamos agora as ferramentas mais utilizadas para criação de imagens:

Vejamos agora as ferramentas mais utilizadas para criação de imagens: Vejamos agora as ferramentas mais utilizadas para criação de imagens: Lápis: Apenas mantenha pressionado o botão do mouse sobre a área em branco, e arraste para desenhar. Pincel: Tem a mesma função do

Leia mais

9. ARQUIVOS E PASTAS 9.1 O QUE SÃO ARQUIVOS E PASTAS?

9. ARQUIVOS E PASTAS 9.1 O QUE SÃO ARQUIVOS E PASTAS? 9. ARQUIVOS E PASTAS 9.1 O QUE SÃO ARQUIVOS E PASTAS? Um arquivo é muito parecido com um documento digitado que você poderia encontrar na mesa de alguém ou em um arquivo convencional. É um item que contém

Leia mais

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira e Daniela Claro Requisitos do ambiente Seguem abaixo os requisitos do ambiente.

Leia mais

PAINEL DE CONTROLE LANDS AGÊNCIA WEB. Assim que digitar este endereço e apertar enter, você será redirecionado para esta página:

PAINEL DE CONTROLE LANDS AGÊNCIA WEB. Assim que digitar este endereço e apertar enter, você será redirecionado para esta página: PAINEL DE CONTROLE LANDS AGÊNCIA WEB O Painel de controle da Lands Agência Web é uma ferramente simples e que facilita a vida do cliente na hora de gerenciar o conteúdo do seu site/blog. Aqui vamos aprender

Leia mais

MANUAL. Certificado de Origem Digital PERFIL PRODUTOR. Versão

MANUAL. Certificado de Origem Digital PERFIL PRODUTOR. Versão MANUAL Certificado de Origem Digital PERFIL PRODUTOR Versão 2.2.15 Sumário 1. INICIALIZANDO NO SISTEMA... 2 2. ACESSANDO O SISTEMA... 3 3. MENSAGEM ENCAMINHADA PELO SISTEMA.... 4 4. CADASTRANDO SUAS MERCADORIAS...

Leia mais

SUBIR LISTAS DE S

SUBIR LISTAS DE  S SUBIR LISTAS DE E-MAILS SÉRIE MANUAIS DA FERRAMENTA ALL IN MAIL INTRODUÇÃO Para realizar seus envios pela All In Mail é necessário que você possua sua lista de contatos cadastrada em nosso sistema. Para

Leia mais

Questionário de revisão para AV1 de Informática Aplicada Valor 1,0 ponto - Deverá ser entregue no dia da prova.

Questionário de revisão para AV1 de Informática Aplicada Valor 1,0 ponto - Deverá ser entregue no dia da prova. Questionário de revisão para AV1 de Informática Aplicada Valor 1,0 ponto - Deverá ser entregue no dia da prova. 1) Observe os seguintes procedimentos para copiar um arquivo de uma pasta para outra pasta

Leia mais

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo Versão 2.18 1 Sumário 1 Instalação do AFV...3 2 Configurações do AFV...4 3 Recebendo as tabelas...6 4 Consultando clientes...6 5 Consultando

Leia mais

MANUAL. Localizador: Página: MN 016 SGI-INFRA- . Informação)

MANUAL. Localizador: Página: MN 016 SGI-INFRA- . Informação) 1/24 1. Objetivo Este documento tem por objetivo indicar e informar o conjunto de ações para o procedimento de uso do novo correio eletrônico do CEFET-MG. O novo sistema de correio eletrônico tem uma interface

Leia mais

PROCEDIMENTO OPERACIONAL PADRÃO

PROCEDIMENTO OPERACIONAL PADRÃO PROCEDIMENTOS INICIAIS PROCEDIMENTO OPERACIONAL PADRÃO 01 de 12 1. Abra o software CellSens Dimension. O ícone do software está localizado na área de trabalho. OBSERVAÇÃO: Caso seja necessário trabalhar

Leia mais

SISGRAD para docentes

SISGRAD para docentes SISGRAD para docentes 1) Como acessar o sistema? Utilize os navegadores Firefox ou Google Chrome, porque podem ocorrer erros com o uso do Internet Explorer. Acesse: http://sistemas.feg.unesp.br Se for

Leia mais

ALFACONT 2 Sistema de Contabilidade Versão Eleusmário Mariano Rabelo. Acesso ao Sistema

ALFACONT 2 Sistema de Contabilidade Versão Eleusmário Mariano Rabelo. Acesso ao Sistema ALFACONT 2 Sistema de Contabilidade Versão 2.0 2016 Eleusmário Mariano Rabelo O Alfa-Cont é um sistema contábil multi-usuário e multi-empresa para escritórios de contabilidade, contadores e empresas, com

Leia mais

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico Sistema Gerenciador de Conteúdo Dinâmico No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema Dinâmico de websites

Leia mais

SISTEMA ADM ERP - MANUAL DO USUÁRIO. Conceitos Básicos

SISTEMA ADM ERP - MANUAL DO USUÁRIO. Conceitos Básicos SISTEMA ADM ERP - MANUAL DO USUÁRIO Conceitos Básicos Sumário Introdução... 3 Acessando o sistema e fazendo Login... 3 Elementos do Sistema... 5 Abas/Guias... 5 Barra de Ferramentas... 5 Cabeçalhos de

Leia mais

Universidade de São Paulo

Universidade de São Paulo Manual para usuários do site Este manual foi especialmente desenvolvido para os administradores de conteúdo de cada departamento, que terá uma pessoa responsável pelas atualizações das informações departamentais

Leia mais

Bem-vindo ao Manual de Navegação do Portal do Fornecedor Vale.

Bem-vindo ao Manual de Navegação do Portal do Fornecedor Vale. Bem-vindo ao Manual de Navegação do Portal do Fornecedor Vale. Treinamento para o Perfil Administrador Fornecedor Desenvolvido por Vale e Accenture I 2016 1. Introdução ao Perfil Administrador 2. Configuração

Leia mais

Conhecendo e editando o seu perfil

Conhecendo e editando o seu perfil Neste tutorial, você vai conhecer e aprender a editar o seu perfil na Plataforma Moodle/Cederj. Vamos lá! 1- Usando o Blog 2 2- Meus arquivos privados 6 3- Inserindo Repositórios 9 4- Modificando o perfil

Leia mais

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS Visual Studio+SQL Server Express LocalDB ANTONIO LUIS OBJETIVO Mostrar o processo de criação de um banco de dados usando SQL Server Express LocalDB. Versão do SQL Server voltada pra desenvolvedores, e

Leia mais

Como criar o seu Servidor Metatrader5 na Nuvem (cloud) da Amazon

Como criar o seu Servidor Metatrader5 na Nuvem (cloud) da Amazon Como criar o seu Servidor Metatrader5 na Nuvem (cloud) da Amazon 1. Comece abrindo o seu browser na página da Amazon Web Services https://aws.amazon.com/pt/ 2. Na página de abertura, clique no botão Crie

Leia mais

Manual do Portal da UFPE para Editores de Conteúdo Manual Publicadores de Conteúdo no Portal

Manual do Portal da UFPE para Editores de Conteúdo Manual Publicadores de Conteúdo no Portal Manual Publicadores de Conteúdo no Portal Página 1 / 24 1. Login... 3 1. Fazendo login:... 3 2. Alterando dados pessoais:... 3 3. Alterando imagem de perfil:... 4 4. Alterando senha:... 5 5. Recuperando

Leia mais

SQL Server Integration Services

SQL Server Integration Services SQL Server Integration Services Criando e executando um pacote no SSIS 1) No menu Iniciar aponte para todos os programa, selecione SQL Server 2008, e selecione SQL Server Business Intelligence Development

Leia mais

Manual Coleção Interativa Papel Professor Versão 2.5.3

Manual Coleção Interativa Papel Professor Versão 2.5.3 Manual Coleção Interativa Papel Professor / 33 Manual Coleção Interativa Papel Professor Versão 2.5.3 Manual Coleção Interativa Papel Professor 2/ 33 Manual Coleção Interativa ACESSAR A COLEÇÃO INTERATIVA...

Leia mais

Manual do Usuário Brother Meter Read Tool

Manual do Usuário Brother Meter Read Tool Manual do Usuário Brother Meter Read Tool BRA-POR Versão 0 Direitos autorais Copyright 2017 Brother Industries, Ltd. Todos os direitos reservados. As informações incluídas neste documento estão sujeitas

Leia mais

b. Inserir espaço entre parágrafos layout da pagina setinhe caixa paragrafo Recuo Esq e Dir = zero espaçamento antes = 0, depois = 10

b. Inserir espaço entre parágrafos layout da pagina setinhe caixa paragrafo Recuo Esq e Dir = zero espaçamento antes = 0, depois = 10 I Escrevendo e formatando o Livro Escreva seu livro no WORD normal. Deixa a formatação para o final. Não tenha medo, escreva. Todos podem escrever e não interessa se o livro vende ou não depois, escrevendo

Leia mais

PDV - Controle de Mesas

PDV - Controle de Mesas PDV - Controle de Mesas Objetivo: Cadastrar no Sistema as mesas que serão utilizadas posteriormente no PDV para o controle de mesas. Realizar a abertura, Reserva; Fechamento; Troca de mesas; Mapa de mesas.

Leia mais

Criando site. Tutorial Webnode

Criando site. Tutorial Webnode Criando site Tutorial Webnode 1 Registrando Acesse o endereço: http://www.webnode.com.br/ e preencha os dados solicitados e clique em Registre-se e crie seu site. NOME DO SITE: artecsuz-nomedaescola 2

Leia mais

Portal Educacional Professor On line

Portal Educacional Professor On line 1. ACESSO AO SISTEMA O acesso ao sistema pode ser realizado pelos seguintes sites: http://www.iplc.g12.br/ http://www.franciscanasalcantarinas.org.br/ INFORME NOME DO USUÁRIO. INFORME A SUA SENHA DE ACESSO.

Leia mais

MANUAL DO PREPARA UPDATE VERSÃO

MANUAL DO PREPARA UPDATE VERSÃO ÍNDICE 1. PREPARAUpdateGP... 2 1.1. Instalação do PREPARAUpdateGP... 2 1.2. Execução o PREPARAUpdateGP... 4 1.3. Utilizando o PREPARAUpdateGP... 5 1.4. Nova Versão... 8 1.4.1. Área Informativa de Autenticação...

Leia mais

MANUAL. Localizador: SGI-INFRA-

MANUAL. Localizador: SGI-INFRA- 1/25 Infraestrutura de 1. Objetivo Este documento tem por objetivo indicar e informar o conjunto de ações para o procedimento de uso do novo correio eletrônico do CEFET-MG. O novo sistema de correio eletrônico

Leia mais

Bem-vindo ao tópico sobre valores definidos pelo usuário.

Bem-vindo ao tópico sobre valores definidos pelo usuário. Bem-vindo ao tópico sobre valores definidos pelo usuário. 1 Após a conclusão deste tópico, você estará apto a adicionar valores definidos pelo usuário a campos de formulário para automatizar a entrada

Leia mais

Noções básicas do SAP Business One Tópico: Cadastro e documentos

Noções básicas do SAP Business One Tópico: Cadastro e documentos Fundamentos Soluções Unidade: Noções básicas do SAP Business One Tópico: Cadastro e documentos Ao concluir este exercício, você estará apto a: Visualizar o cadastro de parceiros de negócios Criar um esboço

Leia mais

Tutorial de Administração de sites do Portal C3

Tutorial de Administração de sites do Portal C3 Tutorial de Administração de sites do Portal C3 Carlos Magno da Rosa Graduando Sistemas de Informação Estagiário Centro de Ciências Computacionais Sumário Sumário... 2 1-Apresentação Geral... 3 3-Componentes

Leia mais

TICs IVINHEMA-MS

TICs IVINHEMA-MS SECRETARIA DE EDUCAÇÃO DO ESTADO DE MATO GROSSO DO SUL NUCLEO DE TECNOLOGIAS DE NOVA ANDRADINA-MS TECNOLOGIA NA EDUCAÇÃO: ENSINANDO E APRENDENDO COM AS TICS- 2010 CRIANDO SUA WIKISPACES Autor: Profº. Carlos

Leia mais

Módulo 03. Trabalhando com listas, imagens e tabelas

Módulo 03. Trabalhando com listas, imagens e tabelas Módulo 03 Trabalhando com listas, imagens e tabelas Apresentação do módulo 03 Objetivos do módulo Boas vindas ao terceiro módulo do curso Primeiros Passos no Word. Neste módulo vamos saber como utilizar

Leia mais

Instalação Serviço de Acompanhamento de Projeto (PCSIS007) Sistema de Gestão da Qualidade

Instalação Serviço de Acompanhamento de Projeto (PCSIS007) Sistema de Gestão da Qualidade Página 1 de 37 Instalação Serviço de Acompanhamento de Projeto Página 2 de 37 ÍNDICE Atividades...3 1. Instalação...3 1.1. Instalação do framework4...3 1.2. Instalação do serviço de acompanhamento de projetos

Leia mais

Inserindo Quebra de Página

Inserindo Quebra de Página Inserindo Quebra de Página Quando estamos digitando um texto ou elaborando um documento, podemos por algum motivo, querer que estes terminem em um determinado ponto da página (antes do seu final) e começar

Leia mais

1 Instalar navegador Google Chrome através deste link https://www.google.com/chrome?hl=pt-br (clique)

1 Instalar navegador Google Chrome através deste link https://www.google.com/chrome?hl=pt-br (clique) DIRETORIA DE ENSINO DA REGIÃO DE SÃO VICENTE Núcleo Pedagógico Formação continuada de professores coordenadores TUTORIAL PARA USO DE RECURSOS TECNOLÓGICOS APRENDIDOS NOS DOIS PRIMEIROS ENCONTROS PARA BAIXAR

Leia mais

Tutorial para atualização de notícias/blog

Tutorial para atualização de notícias/blog Tutorial para atualização de notícias/blog Adicionando um novo artigo Após fazer login como administrador, vá até a página do blog. Na página principal do seu blog, você pode clicar nas seguintes opções:

Leia mais

Execute o instalador atiecli5 clicando duas vezes sobre o mesmo e será apresentada a tela inicial:

Execute o instalador atiecli5 clicando duas vezes sobre o mesmo e será apresentada a tela inicial: CSV Central Sorológica de Vitória 18/08/2009 1.0 1 de 36 1 Instalando o Emulador de Terminais Accuterm IE Faça a instalação do Plugin. Para baixar o Plugin clique no botão lado esquerdo do site http://www.csves.com.br.

Leia mais

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira, Fabrício Alves e Daniela Claro Requisitos do ambiente Seguem abaixo os

Leia mais

Soluções Integradas em Sistemas e Monitoramento. Manual do Administrativo do Cliente

Soluções Integradas em Sistemas e Monitoramento. Manual do Administrativo do Cliente Soluções Integradas em Sistemas e Monitoramento Manual do Administrativo do Cliente Índice 1. INTRODUÇÃO AO ADMINISTRATIVO DO CLIENTE...03 2. MEUS DADOS...03 2.1. Alterar os Dados...04 2.2. Alterar Login

Leia mais

Para abrir um documento deve utilizar uma das abordagens seguintes.

Para abrir um documento deve utilizar uma das abordagens seguintes. RESUMO O software Excel apresenta as melhores condições para se elaborar as ferramentas estratégicas de importância inigualável para o Planejamento das Estruturas, que proporcionam inclusive extrema versatilidade

Leia mais

Configuração do Gmail para administradores

Configuração do Gmail para administradores Configuração do Gmail para administradores Neste guia 1. Ativar recursos no Admin Console 2. Importar e-mails antigos 3. Usar os marcadores e a pesquisa 4. Adicionar sua assinatura 5. Usar o Gmail com

Leia mais

Na seqüência, será aberta uma página de login de acesso ao ambiente de gerenciamento do portal, conforme ilustrado na figura 01, abaixo: Figura 01

Na seqüência, será aberta uma página de login de acesso ao ambiente de gerenciamento do portal, conforme ilustrado na figura 01, abaixo: Figura 01 Tutorial Versão1.0 O Manual Tutorial do Apae em Rede pretende orientá-los no gerenciamento de conteúdos do portal. Para darmos início a essa orientação, é preciso acessá-lo. Para tanto, basta digitar intranet.apaebrasil.org.br

Leia mais

MANUAL DO SISTEMA FLEXISS PARA ACESSO DE ENTIDADES

MANUAL DO SISTEMA FLEXISS PARA ACESSO DE ENTIDADES MANUAL DO SISTEMA FLEXISS PARA ACESSO DE ENTIDADES VERSÃO ONLINE versão: 3.2.303 [22/07/2016] M A N U A L D O S I S T E M A F L E X I S S P A R A A C E S S O D E E N T I D A D E S Página 1 SUMÁRIO 1. INTRODUÇÃO...

Leia mais

O que é e como funciona o VBA no excel?

O que é e como funciona o VBA no excel? Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série O Excel já é por si só uma ferramenta poderosa de elaboração de planilhas simples e sofisticadas, capazes de oferecer uma infinidade

Leia mais

Criando Mensagens - Editor Drag and Drop

Criando Mensagens - Editor Drag and Drop Criando Mensagens - Editor Drag and Drop AKNA TREINAMENTOS AKTR01002000401 1/17 Sumário Criando Mensagens Editor Drag and Drop O que é?... 3 Pra que serve?... 3 Criando a mensagem... 3 Componentes... 5

Leia mais

MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO

MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO CAMPUS MATÃO MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO AUTOR: COORDENADORIA DE TECNOLOGIA DA INFORMAÇÃO CAMPUS MATÃO MATÃO 2016 SUMÁRIO

Leia mais

GUIA RÁPIDO. MDIForms. Sintel Informática Ltda. Rua Vergueiro, nº º andar Vila Mariana, São Paulo - SP CEP:

GUIA RÁPIDO. MDIForms. Sintel Informática Ltda. Rua Vergueiro, nº º andar Vila Mariana, São Paulo - SP CEP: GUIA RÁPIDO MDIForms Sintel Informática Ltda. Rua Vergueiro, nº 2016-4º andar Vila Mariana, São Paulo - SP CEP: 04102-000 www.sintel.com.br Índice 1. Objetivo...3 2. Exibição dos dados...3 2.1. Seleção

Leia mais

Versão 8.3A-01. Versão Final da Apostila de Novidades

Versão 8.3A-01. Versão Final da Apostila de Novidades Versão 8.3A-01 Versão Final da Apostila de Novidades Saiba que este documento não poderá ser reproduzido, seja por meio eletrônico ou mecânico, sem a permissão expressa por escrito da Domínio Sistemas

Leia mais