Ferramenta para desenvolvimento de aplicações comerciais baseada em ambiente RAD

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

Download "Ferramenta para desenvolvimento de aplicações comerciais baseada em ambiente RAD"

Transcrição

1 FACULDADE DE INFORMÁTICA DE PRESIDENTE PRUDENTE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Ferramenta para desenvolvimento de aplicações comerciais baseada em ambiente RAD EDUARDO AUGUSTO BOTELHO Presidente Prudente SP 2006

2 FACULDADE DE INFORMÁTICA DE PRESIDENTE PRUDENTE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Ferramenta para desenvolvimento de aplicações comerciais baseada em ambiente RAD EDUARDO AUGUSTO BOTELHO Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Computação como requisito parcial para a sua conclusão. Orientadores: MSc. Francisco Assis da Silva MSc. Leandro Luiz de Almeida Presidente Prudente SP 2006

3 0004 Botelho, Eduardo Augusto. Ferramenta para desenvolvimento de aplicações comerciais baseada em ambiente RAD / Eduardo Augusto Botelho. Presidente Prudente : Unoeste, f : Il Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) Universidade do Oeste Paulista UNOESTE: Presidente Prudente SP, Bibliografia 1. Ferramenta para geração de código-fonte. I. Autor. II. Título.

4 DEDICATÓRIA Dedico este trabalho a minha mãe Eloísa e meu pai Carlos, que nunca mediram esforços e estiveram sempre presente em todos os momentos de sua realização. A minha irmã Angela, pelo carinho, confiança e seu exemplo de perseverança, e ao meu irmão Maikel por seu apoio e ajuda. A minha família que, em todos os momentos de realização desta pesquisa, esteve presente.

5 AGRADECIMENTOS Ao professor orientador, MSc. Francisco Assis da Silva que, na rigidez de seus ensinamentos e orientação, fez aprimorar tanto meus conhecimentos técnicos como pessoais. Ao professor orientador, MSc. Leandro Luiz de Almeida por seu apoio e dedicação a orientação deste trabalho.

6 [...] Só sei que nada sei [...] Sócrates

7 RESUMO Analizando-se aplicações comerciais desenvolvidas no ambiente Borland Delphi 5 ao nível de código-fonte verificou-se que há uma grande repetição em operações simples de cadastros, movimentações e relatórios. Com a identificação destas redundâncias, verificou-se a possibilidade de se desenvolver uma ferramenta que gere automaticamente as partes semelhantes dos módulos de uma aplicação comercial e possibilite ao usuário realizar ajustes de telas que cada módulo necessite. O público alvo desta ferramenta são programadores experientes ou até mesmo usuários com conhecimento básico em informática, mas que tenham conhecimento do domínio de problema da aplicação a ser desenvolvida. O objetivo desta ferramenta é aumentar a produtividade para os programadores experientes por meio da aceleração do processo de produção das partes repetitivas da aplicação comercial, além de propiciar aos usuários com conhecimentos limitados a construção de pequenas aplicações comerciais em um ambiente de certa forma complexo como o Borland Delphi 5. Desta forma idealizou-se o desenvolvimento de uma ferramenta baseada em ambiente RAD (Rapid Application Development) que possibilita o desenvolvimento de aplicações comercias no Borland Deplhi 5. Esta ferramenta deve permitir que por meio de uma interface gráfica o usuário monte as telas de cadastros, movimentações e relatórios. Com as telas montadas a ferramenta construirá um projeto para o Borland Deplhi 5 com todo o código-fonte necessário ao funcionamento da aplicação desenvolvida. A ferramenta também tem como função gerar o banco de dados para a aplicação em questão, tendo o Interbase como banco disponível. Palavras-Chave: Desenvolvimento de Aplicações Comerciais. Geração de códigofonte. Banco de Dados. Deplhi.

8 ABSTRACT Analyzing the commercial applications source-code developed in the Delphi 5 environment, it was verified that a great repetition exists in simple operations of forms and reports. With the identification of these redundancies, it was verified the possibility of developing a tool to generate the similar parts of the commercial application modules automatically and make possible the user to make adjustments of screens that each module needs. The public of this tool are senior s programmers or even users with basic knowledge in informatics, but that have knowledge of the application problem domain to be developed. The objective of this tool is to increase the productivity for the senior s programmers through the acceleration of the repetitive parts production process of the commercial application, besides propitiating the users with limited knowledge the construction of small commercial applications in a complex environment like Borland Delphi 5. This way, it was idealized the development of a tool based in RAD environment (Rapid Application Development) that makes possible the commercial applications development in Borland Delphi 5. This tool should to allow through a graphic interface the user to construct the screens of forms and reports. With the screens constructed, the tool will build a project in Borland Delphi 5 with the whole necessary source-code to the working of the developed application. The tool also has as function to generate the database Interbase for the generated application. Key-Words: Commercial Applications Development. Source-code generation. Database. Delphi.

9 LISTA DE FIGURAS FIGURA 1 TELAS DO VISUAL KIT FIGURA 2 EXEMPLO DE XML FIGURA 3 PASTAS INCLUDE E LIB DO INTERBASE FIGURA 4 MENU PROJECT DO C++ BUILDER FIGURA 5 TELA DE CONFIGURAÇÃO DE PROJETO DO C++ BUILDER FIGURA 6 TELA DE INSERÇÃO DE DIRETÓRIOS FIGURA 7 EXEMPLO DE CHAMADA DA API ISC_DSQL_EXECUTE_IMMEDIATE FIGURA 8 ESTRUTURAS DE DADOS PRÉ-DEFINIDAS DO INTERBASE FIGURA 9 EXEMPLO DE CHAMADA DA ISC_DETACH_DATABASE FIGURA 10 API COM OS PARÂMETROS FIGURA 11 PROGRAMA EXEMPLO DE GERAÇÃO DE BANCO DE DADOS EM TEMPO DE EXECUÇÃO FIGURA 12 ARQUIVO DO BANCO DE DADOS INTERBASE (NOME_DO_BANCO.GDB) GERADO COM SUCESSO FIGURA 13 CRIAÇÃO DO ARQUIVO NOME_DO_BANCO.GDB REALIZADO COM SUCESSO FIGURA 14 ERRO NA CRIAÇÃO DO ARQUIVO NOME_DO_BANCO.GDB FIGURA 15 EXEMPLO DO MÉTODO DE SERIALIZAÇÃO BINÁRIA FIGURA 16 MÉTODO DE SERIALIZAÇÃO VIA XML FIGURA 17 EXEMPLO DE CRIAÇÃO DE OBJETO FIGURA 18 EXEMPLO DE CHAMADA DO MÉTODO DE SERIALIZAÇÃO DA FORMA BINÁRIA FIGURA 19 EXEMPLO DE CHAMADA DO MÉTODO DE SERIALIZAÇÃO PARA XML FIGURA 20 EXEMPLO DE SERIALIZAÇÃO PELA CLASSE OBJETO FIGURA 21 EXEMPLO DA ESTRUTURA XML DE PARÂMETROS DE UMA QUERY FIGURA 22 EXEMPLO DE UMA DECLARAÇÃO DE UM CAMPO DE UMA MEMORYDATA..40 FIGURA 23 LINHA DE CÓDIGO EXEMPLIFICANDO A PASSAGEM DE PARÂMETROS DE UMA MEMORYDATA PARA UMA QUERY FIGURA 24 OBJETO TMENUITEM NO FORMATO DE STRING FIGURA 25 EXEMPLO DE DECLARAÇÃO DE UM OBJETO TMAINMENU FIGURA 26 EXEMPLO DE UMA DECLARAÇÃO DE UM EVENTO ONCLICK FIGURA 27 SEQÜÊNCIA DE UNITS FIGURA 28 LINHA DE CÓDIGO DE VINCULO ENTRE AQUIVO E UNIT FIGURA 29 LINHA DE CÓDIGO DE INSTANCIAÇÃO DE FORM FIGURA 30 DIAGRAMA DE COLABORAÇÃO DA LISTA GENERALIZADA DA FERRAMENTA.47 FIGURA 31 DIAGRAMA DE CLASSES DA CLASSE OBJETO FIGURA 32 DIAGRAMA DE CLASSES DA CLASSE LISTA_PROJETO FIGURA 33 DIAGRAMA DE CLASSES DA CLASSE BANCODEDADOS FIGURA 34 DIAGRAMA DE CLASSES DAS CLASSES TMEUOBJETOINICIOLISTA E TMEUOBJETOLISTA FIGURA 35 DIAGRAMA DE CLASSES DA CLASSE CONF_BANCO_DE_DADOS FIGURA 36 ESTRUTURA DA CLASSE OBJETO FIGURA 37 EXEMPLO DE XML DE UM OBJETO TEDIT DA VCL FIGURA 38 ESTRUTURA DA CLASSE LISTA_PROJETO

10 FIGURA 39 ESTRUTURA DA CLASSE TMEUOBJETOLISTA FIGURA 40 ESTRUTURA DA CLASSE TMEUOBJETOINICIOLISTA FIGURA 41 ESTRUTURA DE CLASSE CONF_BANCO_DE_DADOS FIGURA 42 CÓDIGO DE INCIALIZAÇÃO DO CONTRUTOR DA CLASSE CONF_BANCO_DE_DADOS FIGURA 43 CÓDIGO DE VERIFICAÇÃO DE TIPOS FIGURA 44 EXEMPLO DE UMA LINHA DE CÓDIGO DE DEFINIÇÃO DE UM CAMPO FIGURA 45 EXEMPLO DE SQL PARA ALTERAÇÃO DE TABELAS FIGURA 46 ESTRUTURA DA CLASSE BANCODEDADOS FIGURA 47 TELA PRINCIPAL DA FERRAMENTA FIGURA 48 TELA DE ENTRADA DE DADOS FIGURA 49 EXEMPLO ILUSTRATIVO DO BOTÃO SALVAR TELA FIGURA 50 JANELA PARA SALVAR TELA DE CADASTRO FIGURA 51 EXEMPLO ILUSTRATIVO DO BOTÃO SALVAR PROJETO FIGURA 52 JANELA PARA SALVAR O PROJETO FIGURA 53 GERENCIADOR DE TELAS FIGURA 54 CADASTRO1 COM O CAMPO CÓDIGO FIGURA 55 MENU POPUP DE OPÇÕES PARA SE CONFIGURAR UM LABEL FIGURA 56 TELA DE CONFIGURAÇÃO DAS PROPRIEDADES DE UM OBJETO, NESTE CASO DE UM LABEL FIGURA 57 TELA DO CADASTRO1 COMPLETO FIGURA 58 MENU POPUP DE CONFIGURAÇÃO DE UM CAMPO FIGURA 59 TELA DE CONFIGURAÇÃO DE UM CAMPO EM RELAÇÃO A PROPRIEDADES DO BANCO DE DADOS FIGURA 60 TELA ILUSTRATIVA DAS CONFIGURAÇÃO DO BANCO PARA O CAMPO QUANTIDADE FIGURA 61 TELA ILUSTRATIVA DAS CONFIGURAÇÕES DO BANCO PARA O CAMPO NOME FIGURA 62 CADASTRO2 COMPLETO FIGURA 63 CONFIGURAÇÃO DA TELA COMO SENDO UMA MOVIMENTAÇÃO FIGURA 64 ETAPA 1 DA MOVIMENTAÇÃO FIGURA 65 ETAPA 2 DA MOVIMENTAÇÃO FIGURA 66 MOVIMENTAÇÃO AO FINAL DA ETAPA FIGURA 67 ETAPA 3 DA MOVIMENTAÇÃO FIGURA 68 MOVIMENTAÇÃO AO FINAL DA ETAPA FIGURA 69 TELA DE ESCOLHA DO CAMPO DE CONSULTA FIGURA 70 TELA INICIAL DA APLICAÇÃO GERADA FIGURA 71 CADASTRO1 DA APLICAÇÃO GERADA FIGURA 72 CADASTRO2 DA APLICAÇÃO GERADA FIGURA 73 MOVIMENTAÇÃO DA APLICAÇÃO GERADA FIGURA 74 CONSULTA DO CADASTRO FIGURA 75 CONSULTA DO CADASTRO FIGURA 76 CONSULTA DA MOVIMENTAÇÃO

11 SUMÁRIO 1 INTRODUÇÃO Objetivos, Justificativas e Motivações do Projeto Trabalho Correlato A Estrutura desta monografia Conceitos Básicos Orientação a Objetos no C++ Builder XML RTTI Persistência Aplicações geradoras de aplicações Utilização em C GERAÇÃO DO BANCO DE DADOS INTERBASE EM TEMPO DE EXECUÇÃO Pré-Requisitos de Instalação e Configuração APIs Especificação das Estruturas Envolvidas Modo de Inicialição das Estruturas Modo de Execução da API Exemplo de Execução SERIALIZAÇÃO DE OBJETOS NO C++ BUILDER Requisito Iniciais para a Serialização de Objetos Eternity Instalação do Framework Configurando o Projeto Habilitando os Objetos para serem Serializados Instanciando Objetos via o Framework Executando a Serialização Serialização no Builder Modo de Utilização GERAÇÃO DE PROGRAMAS Marcações Cadastro DFM Consulta DFM Movimentação DFM Consulta PAS Cadastro PAS Movimentação PAS Principal DFM Principal PAS Projeto DPR A FERRAMENTA Estrutura de Dados Classes Objeto Classe lista_projeto... 55

12 6.1.3 Classe TMeuObjetoLista Classe TmeuObjetoInicioLista Classe conf_banco_de_dados Classe BancoDeDados UM ESTUDO DE CASO CONCLUSÕES REFERÊNCIAS BIBLIOGRÁFICAS

13 11 1 INTRODUÇÃO 1.1 Objetivos, Justificativas e Motivações do Projeto Grande parte dos sistemas desenvolvidos com a IDE Delphi apresentam redundâncias no seu código-fonte. Esta redundância aparece no desenvolvimento de cadastros e movimentações semelhantes, porém com funções distintas. Este projeto tem como proposta desenvolver uma ferramenta para automatizar este processo repetitivo, para isto a ferramenta constitui de uma IDE onde o usuário irá montar as telas e informar as regras de negócio da aplicação. A ferramenta tem por objetivo possibilitar o desenvolvimento de cadastros e movimentações básicas. 1.2 Trabalho Correlato O software Visual Kit 5 é um gerador de sistemas especialmente desenhado para o usuário leigo em programação. Para a operação dos sistema são dispostas 6 telas no formato de wizard para a configuração de projeto desenvolvimento e desenvolvimento da tela (cadastro por exemplo). A Figura 1 mostra as telas do Visual Kit 5.

14 12 FIGURA 1 Telas do Visual Kit A Estrutura desta monografia Após este capítulo introdutório, a presente monografia esta organizada conforme a estrutura que segue. No capítulo 2, são elucidados os aspectos relevantes aos conceitos básicos que servem de suporte para o texto deste trabalho. Um primeiro enfoque é dado à orientação a objeto. Após, são apresentados os conceitos e características do XML assim como do sistema RTTI. No capítulo 3, são descritos os aspectos referentes a geração de banco de dados Interbase em tempo de execução, sendo que estes aspectos são abordados por meio de exemplos de código-fonte e por meio de um aplicativoexemplo. No capítulo 4, são descritos os aspectos referentes a serialização de objetos. A abordagem se dá primeiramente à serialização por meio de um framework e em seguida é abordada a serialização nativa do Borland C++ Builder. No capítulo 5, são tratados os aspectos referentes a geração de código em tempo de execução. No capítulo 6, é demonstado o funcionamento da ferramenta resultante deste trabalho.

15 13 No capítulo 7, é abordado um exemplo de caso apresentando o funcionamento da ferramenta descrita neste trabalho (capítulo 6). No capítulo 8, são apresentadas as conclusões obtidas com este trabalho. No capítulo 9, são apresentadas as referências bibliográficas utilizadas neste trabalho.

16 14 2 CONCEITOS BÁSICOS 2.1 Orientação a Objetos no C++ Builder 5 Com a programação orientada a objetos busca-se representar os objetos do mundo real por meio de estruturas chamadas de classes. de variáveis de classe. que eles podem fazer. objetos. Estas classes possuem métodos e variáveis, as quais são chamadas Os métodos representam as funcionalidades dos objetos, ou seja, o As variáveis são responsáveis por representar as características dos De acordo com H. M. Deitel (2006, p. 8), orientação a objetos é: Um esquema de empacotamento que nos ajuda a criar unidades significativas de software. Estas podem ser grandes e fortemente focalizadas em áreas particulares de aplicativos. Há objeto data, cheque, pagamento, fatura, áudio, vídeo, arquivo, elevador e muito mais. A programação orientada a objeto se popularizou devido ao facilitar o reaproveitamento de código. Este reaproveitamento é necessário diante dos grandes desafios que se apresentam para os programadores (produzir cada vez mais rápido e melhor). Antes desta tecnologia era comum o programador ter de reinventar a roda, ou seja, ter de refazer a mesma rotina para várias aplicações diferentes.

17 XML De acordo com estudos realizados por Ramalho (2004, p. V),XML é: XML e a abreviatura de extencible Markup Language. Esta linguagem não pertence a nenhuma empresa, foi desenvolvida por um grupo de pessoas independentes de acordo com experiências anteriores como o SGML (Standard Generalized Markup Language) ou o HTML (HyperText Markup Language). Em termos mais formais, pode-se definir o XML como uma linguagem de anotação descritiva extensível, tendo, portanto, todas as características que tornam desejáveis este tipo de linguagem: independência relativamente às plataformas de software e de hardware utilizadas, longevidade, baixos custos de manutenção, facilidade na reutilização. O XML representa o formato ideal para a representação de informação estruturada (por exemplo, a que existe numa base de dados) ou semiestruturada (por exemplo, o texto de um livro). Um documento XML para além de texto contém algumas marcas especiais, chamadas anotações ou etiquetas, que normalmente identificam componentes estruturais do documento. tags: Na Figura 2, pode-se verificar um exemplo de XML com algumas <?xml version="1.0"?> <!-- eternity persistence framework --> <!-- Nicola Santi > <archive version="4.0" sub="beta1"> <MinhaString>Teste</MinhaString> <MeuInteiro>100</MeuInteiro> <MeuFloat>10.3</MeuFloat> </archive> FIGURA 2 Exemplo de XML.

18 RTTI RTTI (Real Time Type Indentification) possui muitas aplicações, porém possui maior importância em aplicações que utilizam persistência e ferramentas que são geradoras de aplicações. RTTI é um mecanismo presente no C++ utilizado para se identificar qual o tipo do objeto. Palavras reservadas adicionais: typeid dynamic_cast static_cast const_cast 2.4 Persistência O principal problema na persistência aparece quando deseja-se fazê- -la para uma lista de objetos. Para se salvar objetos um meio persistente é necessário saber o tipo do objeto. O tipo do objeto é imprescindível para que no processo de recuperação este seja alocado como objeto correto. Uma forma de se saber o tipo do objeto é utilizar o sistema RTTI standard disponibilizado pela linguagem de programação C Aplicações geradoras de aplicações Este modelo de aplicação possui basicamente o mesmo problema que a apresentada na persistência, porém há também o problema de manipulação de objetos diversos pela aplicação sendo que estes tendem a ser manipulados na forma mais genérica possível. Tendo a utilização de objetos genéricos é necessário que se possua um modo de saber que objeto esta sendo manipulado para a realização de operações específicas com o objeto.

19 Utilização em C++ O C++ dispõe do operador typeid() para disponibilizar informações de tipo. Os argumentos de tipo podem ser um ponteiro para um objeto ou um nome de um tipo. Esta função retorna uma referência para o objeto type_info o qual contém algumas informações sobre o tipo do objeto. O objeto type_info possui alguns métodos mostrados a seguir: const char *name() retorna o tipo do objeto no formato de string bool before(const tyoe_info &) para ordenação operador ==() e operador!=() para realizar comparações entre objetos type_info. Estas informações não ajudam a resolver problemas de relação entre objetos. Aplicações diversas possuem problemas diversos sendo que nem todos podem ser resolvidos com o objeto type_info. A classe type_info pode ser usada como chave em um mapa para armazenar mais detalhes sobre o tipo dos objetos. Com este caminho, aplicações podem definir e usar seus próprios sistemas RTTI possibilitando uma grande flexibilidade para solucionar problemas. O problema esta em definir a estrutura dos registros RTTI e construir o mapa com estas informações e este processo não é trivial e muitos códigos têm de ser escritos para toda aplicação que irá utilizar este sistema.

20 18 3 GERAÇÃO DO BANCO DE DADOS INTERBASE EM TEMPO DE EXECUÇÃO Este capítulo tem por objetivo demonstrar como gerar um banco de dados Interbase em tempo de execução. Para explicar como realizar este processo será utilizado um aplicativo exemplo desenvolvido em C++ Builder sendo que por meio deste exemplo será demonstrado também como inicializar todas as estruturas de dados necessária, como se utilizar as APIs (Application Programming Interface) necessárias assim como configurar o C++ Builder para o correto funcionamento do exemplo e execução da geração do Banco de Dados. A motivação para este capítulo ser escrito foi devido ao fato de ser necessário que o banco de dados fosse criado em tempo de execução. Para isto foram pesquisados meios de se realizar este processo de geração de banco de dados e verificou-se que é necessária a utilização das APIs do banco de dados utilizado (o Interbase). 3.1 Pré-Requisitos de Instalação e Configuração Para a correta execução das funcionalidades que serão descritas a seguir são necessárias algumas configurações de projeto do C++ Builder assim como do computador no qual o exemplo será desenvolvido. Inicialmente deve-se instalar o banco de dados Interbase, no exemplo utilizou-se a versão 6.X. Uma vez que o banco de dados for instalado, pode-se verificar no pasta onde este foi instalado as pastas include e lib. No exemplo será utilizado o caminho c:\arquivos de Programas\InterBase Corp\InterBase com sendo o caminho de instalação do Intebase. Na Figura 3 pode-se verificar as duas pastas include e lib na pasta de instalação do InterBase.

21 19 FIGURA 3 Pastas include e lib do Interbase. As duas pastas (include e lib) devem ser incluídas na configuração de projeto do C++ Builder, isto deve ser realizado da seguinte forma: Na Figura 4, pode-se verificar o menu Project do C++ Builder com o campo Options selecionado. FIGURA 4 Menu Project do C++ Builder. Uma vez no menu Project do C++ Builder deve-se escolher a opção Options, a qual aparece selecionada na Figura 4. A Figura 5 mostra a tela de configuração de projeto do C++ Builder.

22 20 FIGURA 5 Tela de configuração de projeto do C++ Builder. Na tela de configuração de opções de projeto deve-se escolher a palheta Diretórios/Condicionais. Uma vez a palheta Diretórios/Condicionais selecionada deve-se efetuar um click no botão com a sentença... da opção Include path. A Figura 6 mostra a tela de inserção de diretórios da opção Incude path.

23 21 FIGURA 6 Tela de inserção de diretórios. Na tela de inserção de diretórios deve-se incluir o endereço da pasta include do diretório de instalação do banco de dados, no exemplo este é c:\arquivos de Programas\InterBase Corp\InterBase\include. Uma vez que esta operação tenha sido completada, deve-se realizar a operação de include no código-fonte do programa-exemplo do arquivo ibase.h, no exemplo esta operação foi realizada por meio do comando #include ibase.h. A lib necessária ao funcionamento das APIs do banco de dados Interbase não esta no formato que o Borland C++ Builder reconhece, para isso deve-se converter os arquivos GDS32_MS.lib e IB_UTIL_MS.lib para o formato que o C++ Builder reconheça, estes arquivos estão na pasta lib de instalação do banco de dados, no exemplo c:\arquivos de Programas\InterBase Corp\InterBase\lib. Para solucionar este problema deve-se utilizar o utilitário COFF20MF do C++ Builder da seguinte forma:

24 22 COFF2OMF [nome do arquivo original] [novo arquivo] lib:ms COFF2OMF GDS32_MS.LIB GDS32.LIB lib:ms Por fim, deve-se colocar os arquivos resultantes na pasta do exemplo que esta sendo desenvolvido, não necessitando assim qualquer configuração de projeto do C++ Builder. 3.2 APIs API é um conjunto de rotinas e padrões estabelecidos por uma aplicação para a utilização de suas funcionalidades por uma outra aplicação. No Interbase todas as operações podem ser realizadas por meio das suas APIs. Para a execução da criação do banco de dados foi identificado a necessidade apenas de uma API, denominada de isc_dsql_execute_immediate. A Figura 7 exemplifica a chamada da API que foi utilizada na ferramenta. 01 isc_db_handle handle; 02 isc_tr_handle tr1; 03 ISC_STATUS status_vector[20]; 04 handle = 0L; 05 tr1 = 0L; 06 isc_dsql_execute_immediate(status_vector,&handle,&tr1,0, Edit1->Text.c_str(),1,NULL); 07 for(int i=0;i<20;i++) 08 { 09 StringGrid1->Cells[1][i+1]=status_vector[i]; 10 } FIGURA 7 Exemplo de chamada da API isc_dsql_execute_immediate. Para o funcionamento desta API é necessária a utilização de estruturas de dados pré-definidas pelo Interbase, estas são mostradas na Figura typedef void ISC_FAR *isc_db_handle; 02 typedef void ISC_FAR *isc_tr_handle; 03 ISC_STATUS status_vector[20]; FIGURA 8 Estruturas de dados pré-definidas do Interbase.

25 23 Todas estas estruturas são passadas por parâmetro para a API isc_dsql_execute_immediate. 3.3 Especificação das Estruturas Envolvidas A tabela 1 mostra as estruturas de dados utilizadas na seção 3.2 (Figura 7) para geração do Banco de Dados em tempo de execução, assim como a descrição e o tipo de cada uma delas. TABELA 1 Estruturas para a Geração de Banco de Dados InterBase. Parâmetro Tipo Descrição status_vector ISC_STATUS* Ponteiro para o vetor de erros db_handle Isc_db_handle* Ponteiro para o cabeçalho do banco de dados, o valor nulo para esta estrutura é 0L, para caso não exista um banco de dados (como no caso de se criar um) ou deve ser inicializada pela API isc_attach_database() trasn_handle Isc_tr_handle* Ponteiro para o cabeçalho de transação do banco de dados, o valor nulo para esta estrutura é 0L, a API de inicialização desta estrutura é a isc_start_transaction() length unigned short Nos programas em C deve ser inicializado como 0. Indica o tamanho do DSQL em bytes. statement char* DSQL a ser executada dialect unsigned short Indica a versão do dialeto SQL que esta sendo utilizado no DSQL, deve ser inicializado como 1 xsqlda XSQLDA* Ponteiro opcional

26 Modo de Inicialição das Estruturas de dados. Na Figura 9, pode-se verificar o código de inicialização das estruturas 01 AnsiString s; 02 isc_db_handle handle; 03 isc_tr_handle tr1; 04 ISC_STATUS status_vector[20]; 05 s = "create Database \"dados.gdb\""; 06 handle = 0L; 07 tr1 = 0L; 08 isc_detach_database(status_vector,&handle); FIGURA 9 Exemplo de chamada da isc_detach_database. O isc_db_handle (linha 06 da Figura 9) deve ser inicializado como 0L, apenas para a função de criar banco de dados, para todas as outras funções este deve ser inicializado com a API isc_attach_database(), a qual vincula um banco de dados a referida estrutura, esta API não foi utilizada no exemplo uma vez que para a geração do banco de dados em tempo de execução não deve-se inicializar o isc_db_handle. O isc_tr_handle (linha 07 da Figura 9) deve ser inicializado como 0L, devido a não existir um bando de dados não será possível criar um transação. Esta estrutura deve ser utilizada quando deseja-se criar transações para um devido banco de dados, sendo assim necessário a sua inicialização via a API isc_start_transaction(), esta API não foi utilizada no exemplo uma vez que para a geração do banco de dados em tempo de execução não é necessária a criação de transações. O ISC_STATUS (vetor de erros), não é necessário ser inicializado, mas pode ser inicializado sem nenhum prejuízo ao funcionamento da API isc_dsql_execute_immediate. Antes da execução da API isc_dsql_execute_immediate, deve-se definir o SQL a ser executado. O SQL é composto pelo comando create

27 25 database, o nome do banco de dados, uma \ de delimitação, o nome do arquivo do banco de dados com a extensão.gdb\ precedida de uma \ entre aspas, pode ser passado também o usuário default e a senha do mesmo, porém para o funcionamento os campos user e password não são obrigatórios. 3.5 Modo de Execução da API Para a execução da API isc_dsql_execute_immediate() (Figura 10 linha 06) deve-se passar os parâmetros necessário para o seu funcionamento como pode ser verificado na Figura isc_dsql_execute_immediate(status_vector,&handle,&tr1,0, Edit1->Text.c_str(),1,NULL); FIGURA 10 API com os parâmetros. Para verificar se houve sucesso na operação deve-se verificar o vetor de erros (status_vector), se o primeiro campo conter o valor 1 e o segundo o valor 0, a operação foi executada com sucesso, caso o primeiro campo esteja com 1 e o segundo campo com um valor diferente de 0, um erro ocorreu. O segundo campo indicará qual o número do erro, o qual é padronizado pelo Interbase. 3.6 Exemplo de Execução Este exemplo ilustra como é realizada a criação do banco de dados em tempo de execução, o banco de dados que será criado será o nome_do_banco.gdb. Inicialmente pode-se verificar na interface do programa exemplo (Figura 11) uma entrada de dados onde coloca-se o SQL create database c:\t\nome_do_banco.gdb USER SYSDBA PASSWORD masterkey a ser executado, uma matriz onde está exposto o vetor de erros ISC_STATUS e por fim pode-se verificar o botão de execução, como mostra a Figura 11.

28 26 FIGURA 11 Programa Exemplo de Geração de Banco de Dados em Tempo de Execução. Na entrada de dados SQL pode-se verificar o comando create database o qual é o comando correspondente para a criação do banco de dados, com pode-se verificar na Figura 11. Ainda na entrada de dados SQL (Figura 11) pode-se verificar o endereço do arquivo a ser criado entre aspas e com a extensão.gdb. Os comandos USER e PASSWORD não são obrigatórios, mas recomenda-se que se os utilize, como pode-se identificar na Figura 11. Para a execução do programa exemplo deve-se efetuar um click no botão Criar Banco de Dados, a rotina de criação do banco de dados será executada e no endereço especificado poderá ser encontrado o arquivo do banco de dados gerado, como pode ser visto na Figura 12. A Figura 12 mostra o arquivo gerado pelo exemplo. FIGURA 12 Arquivo do Banco de Dados Interbase (NOME_DO_BANCO.GDB) gerado com sucesso.

29 27 Caso a operação tenha sido realizada com sucesso pode-se verificar que o primeiro endereço do vetor de erros estará com o valor 1 e o segundo com o valor 0, como está exemplificado na Figura 13. FIGURA 13 Criação do arquivo NOME_DO_BANCO.GDB realizado com sucesso. Na Figura 14 pode-se verificar que ocorreu um erro, uma vez que o primeiro campo esta com valor 1 e o segundo com um valor diferente de 0, o valor representado no segundo campo é o número do erro padronizado pelo Interbase. FIGURA 14 Erro na criação do arquivo NOME_DO_BANCO.GDB.

30 28 4 SERIALIZAÇÃO DE OBJETOS NO C++ BUILDER 5.0 A serialização de objeto é um processo fundamental para o funcionamento da ferramenta descrita e desenvolvida nesta monografia uma vez que será por meio deste processo que esta irá salvar os projetos dos usuários em disco. Este processo tem por finalidade representar os objetos instanciados na memória em uma outra forma a qual possa ser transmitida pela rede ou salva em qualquer tipo de mídia. O processo de serialização é utilizado por ferramentas para enviar objetos por uma rede (usando sockets), ou também para salvar objetos em disco como será o caso desta ferramenta. 4.1 Requisito Iniciais para a Serialização de Objetos Para realizar a serialização verificou-se duas formas de se realizá-la, uma delas para os objetos criados especificamente para a ferramenta, ou seja, os objeto de controle e outra para os objetos que fazem parte da VCL 1 do C++ Builder, ou seja, os objetos visuais da ferramenta. 4.2 Eternity Eternity é um pequeno framework 2 compatível com as bibliotecas Standard do C++. Este framework é responsável pelo processo de serialização de objetos, ou seja, ele transforma os objetos em uma seqüência de bits e realiza a persistência dos mesmos. 1 Visual Component Library. 2 Conjunto de classes com objetivo de reutilização, provendo um guia para uma solução de arquitetura em um domínio específico de software. Se diferencia de uma simples biblioteca, pois a biblioteca se concentra apenas em oferecer implementação de funcionalidades, sem definir a reutilização de uma solução de arquitetura.

31 29 O processo de serialização pode ser realizado de duas formas distintas: uma na qual os objetos são transformados em uma seqüência de bits e esta é persistida em disco. Esta forma é chamada de serialização binária. A outra forma é via XML onde os objeto são salvos em um formato XML e este é persistido no disco. Na ferramenta será utilizado o processo de serialização via XML. O framework Eternity pode ser encontrado em < Instalação do Framework Para se instalar o framework é necessário que se tenha o arquivo de instalação do framework Eternety. Uma vez com o arquivo do framework, deve-se descompactá-lo em qualquer diretório. Após a descompactação poderá ser verificado que o diretório conterá três sub-diretórios, sendo estes: src (contém os arquivos-fonte), include (contém os includes necessários às aplicações que utilizarão o framework) e examples (onde pode-se encontrar alguns exemplos de utilização do framework) Configurando o Projeto A configuração do projeto ocorre da mesma forma como foi explicado na seção 3.1, com a diferença de que na tela de diretórios inclua o endereço do diretório include do framework. Após a realização desta etapa deve-se realizar o include do arquivo eternity.hpp, para que assim a aplicação esteja apta a utilizar o framework. #include "include/eternity.hpp"

32 Habilitando os Objetos para serem Serializados A serialização via o framework necessita que todos os objetos que serão serializados possuam um método definido pelo framework denominado de void serialize(eternity::bin_archive &stream); no caso do processo de serialização binária e void xml_serialize( eternity::xml_archive &xml); no caso de serialização via XML. Deve-se reescrever métodos apresentados anteriormente para poderem ser utilizados. Para a forma via arquivo binário deve-se passar para o stream a seqüência de variáveis do objeto e deve-se recuperar estes na mesma ordem, como no exemplo da Figura void TMeuObjeto::serialize(eternity::bin_archive &stream) 02 { 03 if (stream.is_loading()) 04 { int TamString=0; 05 stream >> this->meuinteiro; 06 stream >> this->meufloat; 07 stream >> TamString; char *aux=null; 10 aux =(char *)malloc(sizeof(char)*(tamstring+1)); 11 int i=0; 12 while(i<tamstring) 13 { 14 stream >> *(aux+i); 15 i++; 16 } 17 *(aux+i)='\0'; 18 MinhaString = aux; 19 free(aux); 20 } 21 else 22 { 23 stream << this->meuinteiro; 24 stream << this->meufloat; 25 stream << this->minhastring.length(); 26 char *aux; FIGURA 15 Exemplo do Método de serialização binária.

33 31 27 aux = this->minhastring.c_str(); 28 int final=minhastring.length(); 29 int inicio=0; 30 while(inicio!=final) 31 { 32 stream << *(aux+inicio); 33 inicio++; 34 } 35 free(aux); 36 } 37 } FIGURA 15 Exemplo do Método de serialização binária (continuação). No exemplo da Figura 15 pode-se verificar que as variáveis são passadas em uma seqüência e são recuperadas na mesma seqüência que foram passada, este processo pode ser verificado nas linhas de 05 à 19 para o processo de recuperação e nas linhas de 23 à 34 para o processo de persistência. No caso de se serializar uma string deve-se serializar caractere a caractere da string, como pode-se verificar nas linhas 09 à 18 para a recuperação e 26 à 34 para a persistência. O stream.is_loading() (linha 03) indica qual processo esta sendo realizado, o de persistência ou o de recuperação, sendo sua utilização explicada à frente. Para a forma de serialização via XML o processo muda como podese verificar na Figura void TMeuObjeto2::xml_serialize( eternity::xml_archive &xml) 02 { 03 if (xml.is_loading()) 04 { 05 std::string s; 06 xml.read("minhastring",s,0); 07 this->minhastring=s.c_str(), 08 xml.read("meuinteiro",this->meuinteiro,0); 09 xml.read("meufloat", this->meufloat,0); 10 } 11 else 12 { FIGURA 16 Método de serialização via XML.

34 32 13 std::string s; 14 s.append(minhastring.c_str()); 15 xml.write("minhastring",s); 16 xml.write("meuinteiro",this->meuinteiro); 17 xml.write("meufloat",this->meufloat); 18 } 19 } FIGURA 16 Método de serialização via XML (continuação). Pode-se verificar no exemplo da Figura 16 que a seqüência na qual as variáveis são persistidas não precisa ser necessariamente a mesma na qual estas vão ser recuperadas. Os métodos xml.read (linhas 06, 08 e 09) e xml.write (linhas 15, 16 e 17) são respectivamente os métodos de leitura e persistência, para os quais deve-se passar as variáveis a serem recuperadas ou persistidas, pode-se verificar tanto no método de leitura como no método de persistência que existem dois parâmetros sendo passados, onde um é uma string, esta será o rótulo de marcação para essa variável no XML resultante. Pode-se verificar que o rótulo de uma variável não deve ser modificado, uma vez que caso isso ocorra o valor que será atribuído a esta estará errado Instanciando Objetos via o Framework Para que o framework possa ser utilizado no processo de instanciação do objeto não deve ser realizado pelo comando new mas sim por uma seqüência de outros comandos. Primeiramente deve-se configurar os templates do framework para o objeto em questão, a diretiva AFactory indica que o objeto esta sendo instanciado na memória. No exemplo passa-se o objeto TMeuObjeto para o framework. Pode-se verificar na Figura 17 que a criação de um ponteiro do tipo do objeto em questão (TMeuObjeto) ao invés de se instanciar o objeto por

35 33 intermédio do comando new, foi utilizado o comando create passando o nome da classe do objeto e o ponteiro que irá apontar para o objeto a ser instanciado. 01 eternity::factory<tmeuobjeto> AFactory; 02 eternity::create("tmeuobjeto",&iniciolista); 03 TMeuObjeto *Objeto = NULL; FIGURA 17 Exemplo de criação de objeto. Todo este processo é necessário devido a este framework visar a portabilidade do que foi gerado e por este motivo verificou-se que diferentes plataformas representam o nome das classes de diferentes formas, ou seja, o Borland C++ Builder representa o nome das suas classes diferentemente do Microsoft Visual C++ e assim por diante. Por sua vez para solucionar este problema o framework representa o nome da classe separadamente, evitando assim diferenças nas formas de representação dos nomes das classes. Para poder realizar isso foi desenvolvido o método create, para o qual é passado por parâmetro o nome da classe que o framework irá utilizar e o ponteiro do objeto a ser serializado Executando a Serialização A serialização propriamente dita ocorre com a chamada do método de serialização que foi incluído no objeto TMeuObjeto podendo ser este: MeuObjeto1->serialize(fa); para a serialização binária e MeuObjeto2- >xml_serialize(xml); para a serialização via XML Pode-se verificar que há um parâmetro que é passado a estes métodos, este parâmetro é o arquivo onde será persistido o objeto podendo ser este do tipo eternity::xml_archive xml; para a serialização via XML ou eternity::file_archive fa; para a serialização binária.

36 34 Para ilustrar o processo completo, dois segmentos do código representados pelas Figuras 18 e 19 demonstram a realização da chamada da serialização. 01 { 02 try 03 { 04 // your code that use eternity 05 eternity::file_archive fa; 06 fa.open(earquivo->text.c_str(),eternity::archive::store); 07 MeuObjeto1->serialize(fa); 08 fa.close(); 09 free(meuobjeto1); 10 MeuObjeto1=NULL; 11 } 12 catch (eternity::exception e) 13 {}; 15 } FIGURA 18 Exemplo de chamada do método de serialização da forma binária. 01 { 02 eternity::xml_archive xml; 03 xml.open(earquivoxml->text.c_str(), eternity::archive::store); 04 MeuObjeto2->xml_serialize(xml); 05 xml.close(); 06 free(meuobjeto2); 07 MeuObjeto2=NULL; 08 } FIGURA 19 Exemplo de chamada do método de serialização para XML. 4.3 Serialização no Builder O C++ Builder disponibiliza métodos para a serialização de objetos, porém segundo os testes realizados verificou-se que objetos definidos para a ferramenta esta serialização não funciona Modo de Utilização A utilização dos métodos de serialização de objetos não é trivial, por este motivo foi desenvolvido um objeto que encapsula todos os processos de serialização. Objeto.h. Para se utilizar o objeto é necessário que se um include no arquivo

37 35 a classe objeto. Na Figura 20 pode-se verificar um exemplo de serialização utilizando 01 { 02 o = new Objeto(); 03 TEdit* L = new TEdit(this); 04 L->Parent = this; 05 L->Top=100; 06 L->Color=clBlue; 07 o->objetoparastring(l); 08 delete L; 09 o->stringparaobjeto(panel1); 10 TEdit* K; 11 K =(TEdit*) o->getobjeto(); 12 // K->Parent=this; 13 Memo1->Text = o->getstring(); 14 o->setnome("edit10"); 15 Memo2->Text = o->getstring(); 16 } FIGURA 20 Exemplo de Serialização pela classe Objeto. Neste exemplo pode-se verificar que foi criado e instanciado um objeto do tipo Objeto (linha 02). Foi criado e instanciado como exemplo um objeto TEdit (linha 03) o qual faz parte da VCL, algumas propriedades foram inicializadas para a ilustração do processo de serialização (linhas 04 a 06). Por fim, chama-se o método ObjetoParaString (linha 07) passando o objeto a ser serializado por parâmetro, no exemplo o objeto que foi serializado foi destruído logo em seguida (linha 08). Com isso termina-se o processo de serialização, ou seja, persistência do objeto. A recuperação de um objeto serializado é feito de forma similar. Para se recuperar o objeto deve-se passar à função StringParaObjeto (linha 09) o pai do objeto, ou seja, o objeto que controlará o objeto em questão, no caso um objeto TPanel.

38 36 A recuperação ocorre por meio do método GetObjeto(); (linha 11) o qual tem por retorno void* sendo necessário um cast para se atribuir a um ponteiro o objeto em questão. Caso deseje-se retornar um objeto serializado em disco no formato de string este será retornado via o método GetString(); (linha 13).

39 37 5 GERAÇÃO DE PROGRAMAS A ferramenta descrita nesta monografia tem como uma de suas funções a geração de programas. Para realizar a geração de programas a ferramenta deve gerar o código-fonte para estes. O código-fonte gerado pela ferramenta se baseia em modelos pré-definidos com marcações. As marcações tem por finalidade definir as posições no código-fonte modelo onde a ferramenta deverá inserir o código gerado. As marcações se diferem devido a cada uma indicar uma substituição específica, cada uma será substituída por um código diferente. 5.1 Marcações Cadastro DFM $N Destinado a ser substituído pelo nome de um Form 3. $M Destinado a ser substituído pelos campos de um MemoryData 4, sendo que estes campos são referentes a cada objeto presente na tela. $Q Destinado a ser substituído pelo XML referente as Querys 5 DataSources 6. e 3 São objetos que representam as telas de aplicativos. 4 Objetos destinados a representar tabelas em memória. 5 Objeto destinado a encapsular o acesso e alterações a tabelas de uma banco de dados. 6 Objeto destinado a prover um caminho entre um provedor de dados e um modificador de dados.

40 Consulta DFM $N Destinado a ser substituído pelo nome de um Form. $O Destinado a ser substituído pelo nome do campo que foi selecionado pelo usuário no momento de geração de uma consulta Movimentação DFM $N Destinado a ser substituído pelo nome de um Form. $M Destinado a ser substituído por uma MemoryData com os campos já configurados. Os campos são referentes a cada objeto presente na tela. $Q Na movimentação permanece em aberto. $L Destinado a ser substituído por um valor inteiro referente à posição Left de um objeto TDBGrid 7. $T Destinado a ser substituído por um valor inteiro referente à posição Top de um objeto TDBGrid. 7 Objeto destinado a representar uma matriz visual a partir de um provedor de dados.

41 39 $V $K Destinado a ser substituído pela cláusula where 8 necessária ao SQL dos objeto TQuery. Deve ser substituído pelos parâmetros de uma query. A Figura 21 demonstra a estrutura de como deve ser montado o XML para os parâmetros. 01 ParamData = < 02 item 03 DataType = tipo 04 Name = 'Pnome_do_objeto' 05 ParamType = ptunknown" 06 end 07 > FIGURA 21 Exemplo da estrutura XML de parâmetros de uma Query. Para se colocar mais de um parâmetro deve-se repetir das linhas 02 a 06 modificando-se o tipo e o nome_do_objeto. O tipo é descrito pela Figura 43. $G Destinado a ser substituído pelo nome de um objeto TDBGrid Consulta PAS $N Destinado a ser substituído pelo nome de um Form. 8 Cláusula condicional do SQL.

42 40 $O Destinado a ser substituído pelo nome do campo que foi selecionado pelo usuário no momento de geração de uma consulta Cadastro PAS $A,$N Destinado a ser substituído pelo nome de um Form. $< Destinado a ser substituído pela declaração dos objeto colocados na tela pelo usuário. Deve ser composto de nome_do_objeto:tipo_do_objeto;. $Q Deverá ser substituído caso se tenha colocado um ou mais objetos do tipo TDBLookupComboBox 9 na tela. Será substituído pela declaração dos objetos TQuery e TDataSource utilizados pelos objetos TDBLookupComboBox. $F Deve ser substituído pela declaração dos campos do objeto MemoryData. A Figura 22 demonstra o modelo de como deve ser construída a declaração dos campos da MemoryData. c_nome_do_objeto:tipo_do_campo; FIGURA 22 Exemplo de uma declaração de um campo de uma MemoryData. 9 Objeto visual destinado a representar uma lista de dados providos de um provedor de dados. Tem como principal característica a utilização de uma lista drop_down para exibir os dados providos do provedor de dados.

43 41 A Figura 43 do capítulo 6 demonstra como deve ser substituído o tipo_do_campo. $K Destinado a ser substituído pela declaração das procedures 10 referentes aos métodos onclick 11 do botão de chamada da consulta. Deve ser composto de um procedure nome_do_objetoonclick (Sender: TObject);. $E Destinado a ser substituído pelo nome do objeto configurado como chave primária. $V Destinado a ser substituído pelo código do método onclick do botão de chamada de uma consulta Movimentação PAS $A,$N Destinado a ser substituído pelo nome de um Form. $< Destinado a ser substituído pela declaração dos objeto colocados em uma tela pelo usuário. Deve ser composto de nome_do_objeto:tipo_do_objeto;. 10 Sub-rotina, função. 11 Evento capturado quando se pressiona um botão do mouse sobre um objeto visual.

44 42 $Q Deverá ser substituído caso se tenha colocado um ou mais objeto do tipo TDBLookupComboBox em uma tela. Será substituído pela declaração dos objetos TQuery e TDataSource utilizados pelos objetos TDBLookupComboBox. $F Deve ser substituído pela declaração dos campos de um objeto MemoryData. A Figura 22 demonstra o modelo de como deve ser construída a declaração dos campos da MemoryData. A Figura 43 (capítulo 6, subseção 6.1.4) demonstra como deve ser substituído o tipo_do_campo. $K Destinado a ser substituído pela declaração das procedures referentes aos métodos onclick do botão de chamada de uma consulta. Deve ser composto de procedure nome_do_objetoonclick (Sender: TObject);. $L Destinado a ser substituído pela declaração das procedures referentes aos métodos onexit 12 dos objetos colocados em uma tela pelo usuário. Deve ser composto de procedure nome_do_objetoonexit (Sender: TObject);. 12 Evento capturado ao se retirar o foco de um objeto visual.

45 43 $E Destinado a ser substituído pelo nome do objeto configurado como chave primária. $J Deve ser substituído pelas passagens de parâmetros da query QDados2. A Figura 23 mostra o modelo de como deve ser montada a linha de substituição. $V $D QDados2.ParamByName('Pnome_do_objeto').value :=MDPrincipal['nome_do_objeto']; FIGURA 23 Linha de código exemplificando a passagem de parâmetros de uma MemoryData para uma Query. A linha demonstrada pela Figura 23 deve ser repetida para cada objeto que seja chave primária 13 ou secundária 14 alternado-se o nome_do_objeto. Destinado a ser substituído pelo código do método onclick do botão de chamada de uma consulta. Destinado a ser substituído pelo código do método onexit dos objeto colocados em uma tela pelo usuário. 13 Campo escolhido por um projetista do banco de dados como tendo significado principal para a identificação de entidades dentro de um conjunto de entidades. 14 É um atributo ou conjunto de atributos cujos valores aparecem necessariamente na chave primária de uma outra tabela.

46 Principal DFM $C Destinado a ser substituído pelo itens de um menu. A Figura 24 mostra o modelo de como os itens devem ser construídos. object nome_item: TMenuItem Caption = 'caption_que_aparecera_na_tela' end FIGURA 24 Objeto TmenuItem no formato de string. Para se colocar mais de um item, deve-se repetir a estrutura mostrada na Figura Principal PAS $M Deve ser substituído pela declaração dos objetos item menu A Figura 25 demonstra o modelo de como deve ser construída a declaração dos objetos item menu. 15. Nome_do_form: TMainMenu; FIGURA 25 Exemplo de declaração de um objeto TMainMenu. Para se declarar mais de um objeto deste tipo deve-se apenas repetir a estrutura mostrada pela Figura 26 alterando o nome do Form. $A Destinado a ser substituído pela declaração de eventos onclick dos itens de menu. 15 Objeto visual destinado a representar itens de um dado menu.

47 45 A Figura 26 mostra o modelo de como esta declaração deve ser realizada. procedure nome_do_formclick(sender: TObject); FIGURA 26 Exemplo de uma declaração de um evento onclick. $C Destinado a ser substituído pelo código de métodos onclick dos itens de menu. $N Destinado a ser substituído pelas chamadas de units referentes aos outros Forms que compõem o projeto. A Figura 27 demonstra como deve ser realizada a construção da seqüência de units. unit nome_da_unit,... ; FIGURA 27 Seqüência de units Projeto DPR $N $A Destinado a ser substituído pela linha de código destinada a criar o vínculo entre nomes de units e arquivos que as contém. Deve ser construída como mostra a Figura 28 nome_da_unit in 'arquivo.pas' {nome_do_form};. FIGURA 28 Linha de código de vinculo entre aquivo e unit. O nome de unit deve ser o mesmos do arquivo.pas, caso não seja, o Delphi não conseguirá abrir os Forms. Destinado a ser substituído pela instanciação dos Forms na inicialização da aplicação.

48 46 A Figura 29 demonstra como deve ser a linha de código referente a instanciação de Forms. Application.CreateForm(tipo_do_form, nome_do_form); FIGURA 29 Linha de código de instanciação de Form.

49 47 6 A FERRAMENTA Neste capítulo serão descritas as estruturas de dados criada para a construção da ferramenta. 6.1 Estrutura de Dados A estrutura de dados utilizada na ferramenta é uma lista generalizada de objetos. A Figura 30 representa a um diagrama de colaboraçao de como a lista generalizada da ferramenta é estruturada. FIGURA 30 Diagrama de colaboração da lista generalizada 16 da ferramenta. Representa a estrutura da classe Objeto. 16 Uma lista generalizada é aquela que pode ter como elemento ou um átomo ou uma outra lista (sub-lista).

50 48 FIGURA 31 Diagrama de classes da classe Objeto. A Figura 32 representa a estrutura da classe lista_proje o. t FIGURA 32 Diagrama de classes da classe lista_projeto.

51 49 A Figura 33 representa a estrutura da classe BancoDeDados. FIGURA 33 Diagrama de classes da classe BancoDeDados. A Figura 34 representa a estrutura das classes TMeuObjetoInicioLista e TMeuObjetoLista. IdentificadorNivel : int IdentificadorObjeto : int IdentificadorPai : int IdentificadorNivelPai : int Proximo : TMeuObjetoLista ProximoNivel : TMeuObjetoLIsta objeto : void* conf _banco : *conf _banco TMeuObjetoLista retidentif icadornivel() : int retidentif icadorobjet o() : int retidentif icadorpai() : int retidentif icadornivelpai() : int retobjeto() : void* setidentificadornivel() : void setidentif icadorobjeto(identif icadorobjeto : int) : void setidentif icadorpai(identificadorpai : int) : void setidentificadornivelpai(identificadornivelpai : int) : void setobjeto(objetos : AnsiString, Owner : TComponent*) : int setobjeto(objeto : void*, nome : AnsiString) : int InsereProximoNivel(Identif icadorobjeto : int) : int InsereProximo(IdentificadorObjeto : int) : int setproximonivel(proximonivel : TMeuObjetoLista) : int setproximo(proximo : TMeuObjetoLista) : int retproximonivel() : TMeuObjetoLista retproximo() : TMeuObjetoLista SerializaObjeto() : AnsiString xml_serializa(xml : xml_archive, tipo : bool) : void ~TMeuObjetoLista() SerializaObjetoSemEnd(tipo : bool) : AnsiString setconfbanco(conf : *conf _banco_de_dados) : void retconfbanco() : *conf _banco_de_dados SetListsFields(obj : void*, conf : conf _banco_de_dados*, paiinicial : TComponent*, DSI : TDataSource*) : void Classe destinada a controlar a lista assim como a serialização dos objeto e a sua recuperação Eternity 1..1 possui 0..n TamanhoLista : int Lista : TMeuObjetoLista paiinicial : TComponent Indentif icadormaximoobjetos : int Trigger : AnsiString Tipo : char QInicial : TQuery* DSInicial : TDataSource* TMeuObjetoInicioLista rettrigger() : AnsiString settrigger(c : AnsiString) : void setparents(x : int) : void nullparents() : void retindentif icadormaximoobjetos() : int retprimeiro() : TMeuObjetoLIsta retobjeto(identificadornivel : int, IdentificadorObjeto : int) : TMeuObjetoLista BuscaPai(IdentificadorNivel : int, IdentificadorPai : int) : TMeuObjetoLista BuscaObjeto(Objeto : void*) : TMeuObjetoLista BuscaObjeto_Grid() : TMeuObjetoLista* deletar(identificadornivel : int, IdentificadorObjeto : int, cascata : bool) : bool insere(identificadornivel : int, IdentificadorPai : int) : int insere(identificadornivel : int, IndentificadorPai : int, idobjeto : int) : int setapaiinicial(paiinicial : TComponent*) : void setiniciais(dsi : TDataSource*, QI : TQuery*) : void xml_serialize(xml : eternity::xml_archive, pos : int) : void ret_nomefomr(xml : xml_archive) : AnsiString settabordemobjeto() : void gera_dfm(arq : FILE*) : void insere(identificadornivel : int, IdentificadorPai : int, idobjeto : int) : int gera_dfm(arq : *FILE) : void gera_dfm_mov(arq : FILE*) : void gera_pas(arq : *FILE) : void gera_dfm_qds(arq : FILE*, Nome : AnsiString) : void gera_pas_qds(arq : FILE*) : void buscaconf banco(nome : AnsiString) : *conf _banco_de_dados criatabela(nome : AnsiString, q : TQuery*) : AnsiString setdadosbancotabelas(dados : *lista_projeto) : void conf iguramd(origem : *TRxMemoryData) : void conf iguracampos(origem : *TStrings) : void deletatudo() : void deletatudo(obj : void*) : void conf DadosBanco(projeto : lista_projeto*) : void busca_chave_primaria() : TMeuObjetoLIsta* MD_Fields_PAS() : AnsiString busca_chave_secundaria() : TMeuObjetoLista* busca_tabela_origem() : AnsiString busca_tabela_destino() : AnsiString ADD_Itens_Grid() : AnsiString ADD_Colunas_Grid() : AnsiString ADD_Itens_K() : AnsiString ADD_Itens_J() : AnsiString ADD_Itens_V() : AnsiString ADD_Itens_E() : AnsiString ADD_Itens_D() : AnsiString ADD_Itens_Trig() : AnsiString busca_se_string(nome : AnsiString) : bool FIGURA 34 Diagrama de classes das classes TMeuObjetoInicioLista e TMeuObjetoLista. A Figura 35 representa a estrutura da classe conf_banco_de_dados.

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS Manual de Instalação Tempro Software StavTISS Sumário 1. INTRODUÇÃO... 2 2. REQUISITOS DO SISTEMA... 3 3. INSTALAÇÃO... 4 4.

Leia mais

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...

Leia mais

Anexo III Funcionamento detalhado do Sistema Montador de Autoria

Anexo III Funcionamento detalhado do Sistema Montador de Autoria 1 Sumário Anexo III Funcionamento detalhado do Sistema Montador de Autoria Anexo III Funcionamento detalhado do Sistema Montador de Autoria... 1 1 Sumário... 1 2 Lista de Figuras... 5 3 A Janela principal...

Leia mais

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Manual do Publicador Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Sumário Painel de Administração... 3 1 - Inserção de post... 5 2 Publicação de post com notícia na área headline (galeria de

Leia mais

GUIA INTEGRA SERVICES E STATUS MONITOR

GUIA INTEGRA SERVICES E STATUS MONITOR GUIA INTEGRA SERVICES E STATUS MONITOR 1 - Integra Services Atenção: o Integra Services está disponível a partir da versão 2.0 do software Urano Integra. O Integra Services é um aplicativo que faz parte

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.neteye.com.br NetEye Guia de Instalação www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Inserindo Dados no Banco de Dados Paradox.

Inserindo Dados no Banco de Dados Paradox. Inserindo Dados no Banco de Dados Paradox. - Construção do Banco de Dados: Para podermos inserir algo em um banco precisaremos de um Banco de Dados, para isto iremos montar um utilizando o Programa Database

Leia mais

FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos

FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos Manual do Usuário Presidente Prudente, outubro de 2010 Índice 1. Introdução e Instruções

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Auxiliar de instalação (Português Brasileiro) Primeiros passos

Auxiliar de instalação (Português Brasileiro) Primeiros passos Primeiros passos Auxiliar de instalação (Português Brasileiro) Agradecemos que você tenha optado por nosso produto e esperamos que esteja sempre satisfeito(a) com seu novo software da G DATA. Caso algo

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS FORMULÁRIOS COM ABAS Trabalhar com abas (ou guias) é um recurso

Leia mais

Data Transformation Services (DTS) por Anderson Ferreira Souza

Data Transformation Services (DTS) por Anderson Ferreira Souza Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo

Leia mais

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO] Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

Leia mais

Índice: Nitgen do Brasil www.nitgen.com.br

Índice: Nitgen do Brasil www.nitgen.com.br Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc. http://about.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc. http://about. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Compatibilidade Principais características

Leia mais

PROJECT 1 Delphi Project (Extensão. DPR)

PROJECT 1 Delphi Project (Extensão. DPR) CAPÍTULO2 1. A ESTRUTURA DE UM APLICATIVO Quando iniciamos uma aplicação em Delphi ele interpreta que iremos desenvolver um projeto. Este gerencia um conjunto de recursos como Forms, Units, objetos, funções

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima.

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima. Upload e Download de Arquivos Considerações gerais. As aplicações Web 2 tem como uma de suas características principais, o fato de permitirem aos usuários, que eles mesmo criem conteúdo, sem depender de

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

Este tutorial está publicado originalmente em http://www.baboo.com.br/absolutenm/anmviewer.asp?a=30405&z=300

Este tutorial está publicado originalmente em http://www.baboo.com.br/absolutenm/anmviewer.asp?a=30405&z=300 WinRAR: Conheça este excelente compactador de arquivos Introdução: É fato que a Internet está mais rápida com a popularização da banda larga, mas os compactadores de arquivos ainda apresentam muita utilidade

Leia mais

Totvs RMI - Gerador de Relatórios

Totvs RMI - Gerador de Relatórios 27/11/2012 2 Sumário 1 Visão Geral da Solução... 3 Pré-requisitos... 3 2 Como Utilizar esta Solução... 10 Configurações Necessárias... 10 Passo a Passo... 10 Dicas de Produtividade... 11 3 1 Visão Geral

Leia mais

O Software Face Match

O Software Face Match Apêndice A O Software Face Match A.1 - Desenvolvimento do software para a extração de características de imagens de faces humanas: Face Match. Para dar suporte à proposta do trabalho de mestrado iniciou-se

Leia mais

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT Power Point Básico Santa Maria, julho de 2006 O Power Point é um aplicativo do Microsoft Office direcionado à criação de apresentações.

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Delphi 7 Aula 01 Área do Triângulo

Delphi 7 Aula 01 Área do Triângulo Delphi 7 Aula 01 Área do Triângulo Prof. Gilbert Azevedo da Silva I. Objetivos Conhecer o Ambiente Integrado de Desenvolvimento (IDE) do Delphi 7, Desenvolver a primeira aplicação no Delphi 7, Aprender

Leia mais

O Primeiro Programa em Visual Studio.net

O Primeiro Programa em Visual Studio.net O Primeiro Programa em Visual Studio.net Já examinamos o primeiro programa escrito em C que servirá de ponto de partida para todos os demais exemplos e exercícios do curso. Agora, aprenderemos como utilizar

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

Leia mais

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software 2 Introdução Este manual foi elaborado para administradores, para entendimento do funcionamento do produto e administração

Leia mais

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 TUTORIAL Servo-motor Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Santa Cruz do Sul, outubro de 2015.

Santa Cruz do Sul, outubro de 2015. MANUAL DO USUÁRIO Santa Cruz do Sul, outubro de 2015. Adilson Ben da Costa & Ederson Luis Posselt Programa de Pós-graduação em Sistemas e Processos Industriais, Universidade de Santa Cruz do Sul (UNISC),

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7)

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7) SafeSign Standard 3.0.77 (Para MAC OS 10.7) 2/23 Sumário 1 Introdução... 3 2 Pré-Requisitos Para Instalação... 3 3 Ambientes Homologados... 4 4 Hardware Homologado... 4 5 Instruções de Instalação... 5

Leia mais

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furbbr Resumo. Este artigo apresenta a especificação

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET I Sumário 1. Objetivo do Documento... 1 2. Início... 1 3. Cadastro de Pessoa Física... 3 3.1. Preenchimentos Obrigatórios.... 4 3.2. Acesso aos Campos

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes Atualização do Banco de Dados Atualização e organização dos arquivos existentes Rotina responsável pelo rastreamento de possíveis arquivos não indexados, danificados ou inexistentes. Este processo poderá

Leia mais

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador. 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

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL DEPARTAMENTO DE COMPUTAÇÃO E ESTATÍSTICA DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS LÍCIO SÉRGIO FERRAZ DE BRITO MARCELO AUGUSTO SANTOS TURINE

Leia mais

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais Operações de Caixa Versão 2.0 Manual destinado à implantadores, técnicos do suporte e usuários finais Sumário Introdução... 3 Suprimento... 3 Sangria... 4 Abertura de Caixa... 6 Fechamento de Caixa...

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Manual de Atualização Versão 3.6.4.

Manual de Atualização Versão 3.6.4. Manual de Atualização Versão 3.6.4. Sumário 1. AVISO... 1 2. INTRODUÇÃO... 2 3. PREPARAÇÃO PARA ATUALIZAÇÃO... 3 4. ATUALIZANDO GVCOLLEGE E BASE DE DADOS... 7 5. HABILITANDO NOVAS VERSÕES DO SISTEMA....

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E SISTEMA DE INFORMAÇÕES PARA O ENSINO (*) Módulo: Produção Institucional Guia de

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo Manual de utilização do sistema OTRS (Atendimento) Cliente Externo 1 LISTA DE ILUSTRAÇÕES FIGURA 1 - TELA DE LOGIN... 5 FIGURA 2 - TELA INICIAL... 6 FIGURA 3 PREFERÊNCIAS DO USUÁRIO... 6 FIGURA 4 NOVO

Leia mais

Manual de operação. BS Ponto Versão 5.1

Manual de operação. BS Ponto Versão 5.1 Manual de operação BS Ponto Versão 5.1 conteúdo 1. Instalação do sistema Instalando o BS Ponto Configurando o BS Ponto 2. Cadastrando usuários Cadastro do usuário Master Alterando a senha Master Cadastro

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Guia de Novas Funcionalidades Urano Integra 2.3 Data: 15/04/2015

Leia mais

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova. 3.5 Páginas: Ao clicar em Páginas, são exibidas todas as páginas criadas para o Blog. No nosso exemplo já existirá uma página com o Título Página de Exemplo, criada quando o WorPress foi instalado. Ao

Leia mais

Nota de Aula: Utilização da IDE Code::Blocks

Nota de Aula: Utilização da IDE Code::Blocks INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO CAMPUS SÃO LUÍS MONTE CASTELO DEPARTAMENTO ACADÊMICO DE INFORMÁTICA SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROFESSOR:

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV 8VDQGRSDUkPHWURV O envio de parâmetros para um relatório é uma das funções mais úteis do Report Manager, com eles você pode: Permitir que o usuário final altere palavras ou sentenças de um relatório; Atribuir

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Manual de Instalação do Agente Citsmart

Manual de Instalação do Agente Citsmart 16/08/2013 Manual de Instalação do Agente Citsmart Fornece orientações necessárias para efetuar a instalação do Agente Citsmart. Versão 1.9 21/11/2014 Visão Resumida Data Criação 21/11/2014 Versão Documento

Leia mais

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos Publicado em 22/08/2010 por claudioboaventura Na primeira parte do artigo instalação sobre o excelente

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Veja abaixo um exemplo de como os dados são mostrados quando usamos o Objeto DataGridView O controle DataGridView é um dos objetos utilizados para exibir dados de tabelas de um banco de dados. Ele está disponível na guia de objetos Data na janela de objetos do vb.net. Será

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

ROTEIRO DE INSTALAÇÃO TEF DISCADO Módulo American Express

ROTEIRO DE INSTALAÇÃO TEF DISCADO Módulo American Express ROTEIRO DE INSTALAÇÃO TEF DISCADO Módulo American Express Versão 2.0 07/2003 1 I Instalação do Gerenciador Padrão O procedimento aqui descrito somente precisa ser executado se o Gerenciador Padrão ainda

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Ajuda On-line - Sistema de Portaria. Versão 4.8.J Versão 4.8.J Sumário PORT - Módulo de Apoio Portaria 3 1 Manual... de Processos - Portaria 4 Fluxo - Portaria... 5 2 Configurações... 6 Unidades... de Internação 6 Setores Administrativos... 9 Configuração...

Leia mais

MANUAL DE NAVEGAÇÃO DO MILLENNIUM BUSINESS

MANUAL DE NAVEGAÇÃO DO MILLENNIUM BUSINESS MANUAL DE NAVEGAÇÃO DO MILLENNIUM BUSINESS 1 Conteúdo Apresentação... 3 1 Página Principal do Sistema... 4 2 Telas de busca... 8 3 Teclas de Navegação... 11 4 Tela de Menu de Relatório... 12 5 Telas de

Leia mais

Curva ABC. Tecinco Informática Ltda. Av. Brasil, 5256 3º Andar Centro Cascavel PR www.tecinco.com.br

Curva ABC. Tecinco Informática Ltda. Av. Brasil, 5256 3º Andar Centro Cascavel PR www.tecinco.com.br Curva ABC Tecinco Informática Ltda. Av. Brasil, 5256 3º Andar Centro Cascavel PR www.tecinco.com.br Sumário Introdução... 3 Utilização no sistema TCar-Win... 3 Configuração da curva ABC... 4 Configuração

Leia mais

Gerencie a sala de espera e garanta a satisfação dos pacientes

Gerencie a sala de espera e garanta a satisfação dos pacientes Centralx Clinic O ciclo de trabalho completo em um só sistema. Para ambientes de alta produtividade, do agendamento à consulta, do faturamento ao rateio entre prestadores de serviço, o Centralx Clinic

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais