editorial - the club · um editor de pl/sql com ajudas “on-line” permitem ... nova página com...

32

Upload: dokhuong

Post on 13-Nov-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito
Page 2: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito
Page 3: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

3

THE CLUBAv. Profº Celso Ferreira da Silva, 190

Jd. Europa - Avaré - SP - CEP 18.707-150Informações: (14) 3732-3689

Suporte: (14) 3733-1588 - Fax: (14) 3732-0987

Internethttp://www.theclub.com.br

Cadastro: [email protected]: [email protected]

Informações: [email protected]

DúvidasCorrespondência ou fax com dúvidas devem

ser enviados ao - THE CLUB, indicando"Suporte".

OpiniãoSe você quer dar a sua opinião sobre o clube

em geral, mande a sua correspondência para aseção "Tire sua dúvida".

ReproduçãoA utilização, reprodução, apropriação,

armazenamento em banco de dados, sobqualquer forma ou meio, de textos, fotos e

outras criações intelectuais em cada publicaçãoda revista “The Club Megazine” são

terminantemente proibidos sem autorizaçãoescrita dos titulares dos direitos autorais.

Impressão e acabamento:GRAFILAR

Tel.: (14) 3841-2587 - Fax: (14) 3841-3346Rua Cel. Amando Simôes, 779

Cep 18.650-000 - São Manuel - SPTiragem: 5.000 exemplares

Copyright The Club Megazine 2005

Diretor - PresidenteCelso Jefferson M. Paganelli

Diretor TécnicoMauro Sant’Anna

ColaboradoresMarcelo Nogueira, Mário Bohm, Victory

Fernandes, Emerson Facunte

EDITORIAL

Editorial

Editorial .................................................................................. 03Utilizando VS .NET com “DATA PROVIDER” ORACLE... ...... 04A inteligência de negócios na busca da vantagemcompetitiva ............................................................................. 06CSS é seu amigo:Não tenha medo de usar Cascading Style Sheets ................. 11Implementando caixas de diálogo em aplicações ASP.NET .. 13Desenvolvendo a primeira aplicação Web comtecnologia .Net ........................................................................ 16Componentes para Reuso um mercado em potencial .......... 20Mensagem: Personalizando as caixas de mensagensem sua aplicação ................................................................... 25Perguntas & Respostas ......................................................... 29

Delphi é marca registrada da Borland International,as demais marcas citadas são registradas

pelos seus respectivos proprietários.

Olá amigos,

Trazemos até você mais uma edição da The Club Megazine, e começamospor lembrar que o The Club está passando por uma série de melhorias e maisuma vez contamos com a sua colaboração. Respondendo nossa pesquisa, alémde você ajudar-nos a melhorar a qualidade dos produtos e serviços oferecidospelo The Club, você ainda irá concorrer a 3 ASSINATURAS ANUAIS do suportetécnico, participe! A pesquisa pode ser respondida diretamente em nosso site:http://www.theclub.com.br/PesquisaTheClub/login_pesquisa.aspx.

Enquanto isso, aproveite os artigos que preparamos para você, onde nossoscolaboradores Marcelo Nogueira, Mário Bohm, Emerson Facunte e VictoryFernandes estão abordando assuntos bem variados que poderão ser de grandeutilidade no seu dia-a-dia.

Nossos consultores Alessandro Ferreira e Claudinei Rodrigues, atendendosolicitações de vários associados do The Club, trazem um artigo sobre apersonalização de caixas de mensagens em aplicações VCL e aplicaçõesASP.NET. E, para finalizar nossa consagrada sessão Perguntas e Respostas.

Gostaria de lembrar, caso tenha sugestão de algum tema que gostaria dever publicado em nossa revista, fique a vontade para enviar suas críticas,dúvidas e sugestões.

Forte abraço e sucesso à todos,

Page 4: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

4

Utilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET com“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...

Oracle

Parte 1 – Baixando o Oracle ODPNETEncaramos o Visual Studio (.NET) como a melhor

ferramenta para desenvolvimento existente hoje no mercado e amelhor opção para os próximos 3 anos pelo menos, pelas razõesque já expusemos no mês passado...

No entanto, os “data providers” de conexão com Oracle quesão disponibilizados pela Microsoft tem sérias limitações para usoprofissional. Evidente que a Microsoft privilegia a conexão comSQL Server, por razões óbvias. Mas o que defendemos sempre emnossas matérias é que “o melhor dos mundos” é utilizar VS .NETacessando Oracle.

O desafio é encontrar a melhor maneira de fazê-lo...

Para construir aplicações profissionais com VS .NETacessando Oracle, o melhor caminho é utilizar “data provider” daOracle (Oracle ODP NET). A Oracle entende que a força do VS.NET é grande e está dando enorme apoio à sua utilização, atépor uma questão estratégica. Disponibilizar um “data provider”,que vem evoluindo rapidamente e merecendo muita atenção daequipe de tecnologia, é uma prova disso.

Então fique tranqüilo. A Oracle vai investir pesado em umatecnologia evoluída para acesso à seu banco de dados emambiente .NET.

Neste mês, vamos discutir como conseguir um “dataprovider” Oracle e nas próximas matérias vamos mostrar asvantagens em utilizá-lo.

Primeiro, acesse a área de tecnologias da Oracle,http://www.oracle.com/technology/tech/dotnet/index.htm

Utilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET comUtilizando VS .NET com“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...“DATA PROVIDER” ORACLE...

por Mário Camilo Bohm

Lá você vai encontrar, entre outras, duas ferramentasespecialmente importantes.

NOTA 1 – ORACLE DEVELOPER TOOLS FOR .NETO Oracle Developer Tools for Visual Studio .NET destina-se

ao ambiente de desenvolvimento e, além da conexão com o banco(o Oracle Developer Tools for .Net já inclui o Oracle Data Providerfor .NET), oferece diversas ferramentas para o dia-a-dia dodesenvolvedor, trazendo para dentro do Visual Studio todo o poderdo Oracle.

Mas, importante, só funciona em máquinas com o VisualStudio instalado!

Uma ferramenta gráfica demodelagem permite que vocêconstrua “queryes” de maneiravisual, facilitando a vida dequem não tem muita prática emconstruir instruções SQL,através de “wizards”.

Um editor de PL/SQL comajudas “on-line” permitemescrever instruções facilmente,mesmo para quem teve pouco ounenhum contato com Oracle.

Page 5: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

5

Oracle

Um browser (Oracle Explorer) permite visualizar dados econteúdos de tabelas de forma simplificada, sem que você tenhaque deixar o Visual Studio para isso, além de permitir a execuçãode comandos DDL (insert, delete e update) e “testar” a execuçãode “store procedures”.

E é tudo que você precisa instalar no seu servidor deaplicações para conexão com Oracle à partir do framework.

A partir dessa página, clique no link desejado e será abertanova página com instruções para download. A Oracle ofereceinclusive muita documentação e “estudos de caso” para vocêconhecer melhor essas ferramentas.

E o mais importante: qualquer um pode baixar. O máximoque será exigido em alguns casos é que você se cadastre. Mastudo sem nenhum custo.

Com essas ferramentas você vai poder se conectar a qualquerbanco com versão superior à 8.1.7.4.x. Daí para cima, qualquerversão do Oracle fica acessível.

Mas prepare o seu link. Em qualquer dos casos, estamosfalando em cerca de 180 MB!

Notas importantes para instalaçãoComo ninguém lê instruções de instalação, vai uma dica

importante:

Se você já tiver um Oracle Home na sua máquina (egeralmente vai ter quando instalar o Oracle Developer Tools for.NET) para versões 8 ou 9 do Oracle, não instale nenhumadessas ferramentas no mesmo Oracle Home que você já tem namáquina.

Instale em um novo Oracle Home. E quando for definir umnovo “host name” (um novo serviço Oracle), voce deve declará-loigualmente nos dois diretórios de Oracle Home, para ter todas asfuncionalidades de acesso.

No endereço:http://www.oracle.com/technology/docs/tech/windows/odpnet/

index.html você tem acesso a muita documentação à respeitodessas ferramentas.

De qualquer forma, no próximo mês estaremos detalhando oprocesso de instalação e as principais funcionalidades dessasferramentas.

Até lá !

Simplesmente fantástico !!!

NOTA 2 – ORACLE DATA PROVIDER FOR .NETO Oracle Data Provider for .NET oferece acesso otimizado à

bases de dados Oracle a partir do framework .NET. Pode serutilizado tanto em C# quanto em Visual Basic e oferece elevadodesempenho.

É a ferramenta necessária para você distribuir suasaplicações, e seu uso é livre.

Sobre o autorMário Camilo BohmBohm Soluções [email protected] - www.bohm.com.br

Page 6: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

6

A inteligência de negócios naA inteligência de negócios naA inteligência de negócios naA inteligência de negócios naA inteligência de negócios nabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitiva

Delphi

Resumo - A globalização e a conseqüente abertura demercados ensejaram uma nova necessidade nos negócios, a demonitorar o ambiente de atuação através da coleta e análise dasinformações, visando a diminuição de riscos na tomada dedecisão e buscando a vantagem competitiva para a empresa.Neste cenário faz-se necessária à transformação de informaçõesisoladas em conhecimento e, assim, surge a Inteligência deNegócios, que é um Sistema que viabiliza este processo detransformação.

Palavras-chave - Inteligência de Negócios, VantagemCompetitiva, Business Intelligence.

IntroduçãoCom a globalização da economia, as empresas se deparam

com um cenário de competitividade internacional. Custosmenores, lançamento de novos produtos e serviços em prazoscada vez mais apertados, inovações tecnológicas, são apenasalgumas das exigências que as empresas devem satisfazer paramanterem-se vivas no mercado.

Desde que surgiram os primeiros gerenciadores de banco dedados, observou-se que as empresas saíram em disparadafazendo sistemas de controle para seus departamentos. Issodesencadeou uma verdadeira desordem dentro da própriaempresa, algo que gerou grandes desencontros de dados. Váriosrelatórios que teoricamente deveriam ter o mesmo resultadoacabavam gerando informações desencontradas, o que obrigavaos diretores a seguirem sua intuição e experiência, em vez deterem informações exatas sobre o seu próprio negócio. Depois quetantas empresas esforçaram-se para compilar dados nos seussistemas de gestão ou de relacionamento com clientes, utilizandoa Tecnologia da Informação, é indispensável o seuaproveitamento de forma inteligente.

A Administração de dados está rotulada como Business

Intelligence (BI), (Inteligência dos Negócios), porém o propósito eas características continuam as mesmas. Obter informaçõesrapidamente e de forma estruturada, ajudará as empresas a sairna frente.

A Tecnologia da Informação tem-se apresentado comofundamental na remodelagem das organizações para esta novaera. Através de investimentos em sistemas de informação ecomunicações as empresas estão obtendo vantagenscompetitivas. Os gerentes e diretores, poderão ter as informaçõesrapidamente, e também terão mais tempo para melhoraremtodos os seus processos e analisarem mais os seus dados, quedepois de armazenados num Data Warehouse (DW), deixarão deserem dados, e passarão a ser valiosas informações. Atravésdisso, a Tecnologia da Informação passa a exercer o seu grandepapel, que é o de fornecer informações de qualidade, deixando deser um amontoado de dados. Conhecimento do negócio na era dacompetição global e as comunicações on line, passou a ser vistocom outro enfoque. Este novo enfoque é chamado de Inteligênciade Negócios.

RelevânciaEste trabalho tem por objetivo mostrar a importância da

implementação da Inteligência de Negócios na obtenção devantagem competitiva para as organizações com a utilização daTecnologia da Informação, através da análise e extração dasinformações, que possibilitam suporte à tomada de decisão nosnegócios alinhados à estratégia.

A necessidade de monitorar permanentemente seu ambientede atuação, mediante coleta, análise e validação de informaçõessobre concorrentes, clientes, parceiros, fornecedores e demaisatores, visando à diminuição de riscos na tomada de decisão, apartir do desenvolvimento de uma base de conhecimento sobre onegócio. O que as empresas modernas realmente precisam sãoformas de gerenciar as freqüentes mudanças pelas quais tem

A inteligência de negócios naA inteligência de negócios naA inteligência de negócios naA inteligência de negócios naA inteligência de negócios nabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitivabusca da vantagem competitiva

por Marcelo Nogueira

Page 7: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

7

Delphi

passado.

A Contribuição da TIAtualmente as empresas necessitam cada vez mais de

informações rápidas e precisas. A tecnologia passa a ser umaferramenta importante, pois através dela um sistema podem sercapaz de interpretar sinais, informações e verifica os impactosque estes sinais podem causar nas suas estratégias. O termoTecnologia da Informação firmou-se a partir da década de 80,substituindo as expressões informática e processamento dedados, anteriormente de uso disseminado.

Chiavenato [1], afirma que a tecnologia é “um conjunto deconhecimentos, técnicas, ferramentas e atividades utilizadaspara transformar os insumos organizados em saídas ouresultados”.

O autor define que Tecnologia da Informação são “processos,práticas ou sistemas que facilitam o processamento e transportede dados e informações”.

Segundo Laurindo [6], o conceito de Tecnologia daInformação (TI) “é mais abrangente do que os de processamentode dados, sistemas de informação, engenharia de software,informática ou o conjunto de hardware e software, pois envolveaspectos humanos, administrativos e organizacionais”.

Conforme Keen [4], o termo Tecnologia da Informação“abrange conceitos que não são claros e que estão em constantemudança no que se refere a computadores, telecomunicações,ferramentas de acesso e recursos de informação multimídia”.

Rezende [8] conceitua a Tecnologia da Informação como“recursos tecnológicos e computacionais para geração e uso dainformação. Esse conceito enquadra-se na visão de gestão daTecnologia da Informação e do conhecimento”.

Cruz [2] Tecnologia da Informação pode ser “todo e qualquerdispositivo que possa tratar dados e ou informações”.

A Tecnologia da Informação evoluiu de uma orientaçãotradicional de suporte administrativo para um papel estratégicodentro da organização. Ela não só sustenta as estratégias denegócio existentes, mas também permite que se viabilizem novasestratégias empresariais. O papel da Tecnologia da Informaçãocomo arma estratégica competitiva tem sido discutido eenfatizado, principalmente pelas novas possibilidades de negóciosque ela proporciona.

Dessa forma, pode-se afirmar que nenhuma aplicação deTecnologia da Informação, considerada isoladamente, por mais

sofisticada que seja, pode manter uma vantagem competitiva.Está só pode ser obtida pela capacidade da empresa em explorar aTecnologia da Informação de forma contínua.

DadosStair [10] ressalta que “dados são os fatos em sua forma

primária, como por exemplo, o nome de um empregado e onúmero de horas trabalhadas em uma semana, números depeças em estoque, ou pedidos de venda”.

Laudon, Kenneth; Laudon, Jane [5] enfatiza que “dadospodem ser considerados os fatos brutos, o fluxo infinito de coisasque estão acontecendo agora e que aconteceram no passado”.

O’Brien [7], “dados são fatos ou observações crus,normalmente sobre fenômenos físicos ou transações de negócios.Mais especificamente, os dados são medidas objetivas dosatributos (as características) de entidades (como pessoas,lugares, coisas e eventos)”.

Qualidade dos DadosStair [10] afirma que “os dados representam as coisas do

mundo real. Os dados – apenas fatos primários – têm pouco valoralém de si mesmo. O tipo de informação criada depende darelação definida entre os dados existentes. Adicionar dados novosou diferentes significa que as relações podem ser redefinidas, enovas informações podem ser criadas”.

LAUDON, K..; LAUDON, J. P. [5] enfatiza “a qualidade dosdados pode ser melhorada de várias maneiras. Os dados podemser editados quando são introduzidos em um sistema, de modoque os dados evidentemente inválidos sejam rejeitados”.

Serra [9] afirma que “para que a função de Administração deDados seja efetiva, padrões e política a respeito dos dados, suadefinição e uso devem ser adotados e/ou definidos. Esses padrõesao mesmo tempo que devem ser rigorosos, abrangentes, tambémdevem ser flexíveis a mudanças, para poder viabilizar areutilização, estabilidade e efetiva comunicação do significado dosdados além de permitir a sua escalabilidade. Devem-se usarferramentas, como dicionário de dados e repositórios paragerenciar os dados. Dados bem definidos, íntegros no seusignificado, consistentes, confiáveis, seguros e compartilhadosfazem com que cada novo sistema defina apenas os dados que sãodo seu escopo e compartilhe os demais dados com outros sistemaspresentes na organização”.

InformaçãoLAUDON, K..; LAUDON, J. P. [5] define informação como “o

conjunto de dados aos quais seres humanos deram forma para

Page 8: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

8

Delphi

torná-los significativos e úteis.”

O’Brien [7] aborda informação como “dados que foramconvertidos em um contexto significativo e útil para usuáriosfinais específicos. Dessa forma, os dados normalmente sãosubmetidos a um processo de valor adicionado (que chamamosprocessamento de dados ou processamento de informação) emque sua forma é agregada, manipulada e organizada. Seuconteúdo é analisado e avaliado e colocada em um contextoadequado a um usuário humano. Portanto, você deve encarar ainformação como dados processados colocados em um contextoque lhes confere valor para usuários finais específicos”.

Inteligência de NegóciosA inteligência nos negócios é a monitoração permanente do

ambiente de atuação através da coleta de dados e análise dasinformações, visando a diminuição dos riscos na tomada dedecisão buscando uma vantagem competitiva para a empresa,isto é feito através de uma base de conhecimento sobre o negócioque um Sistema de Inteligência propicia.

Na visão de Wanderley [11], “inteligência é o resultado de umprocesso que começa com a coleta de dados.

Esses dados são organizados e transformados em informação,que, depois de analisada e contextualizada, transforma-se eminteligência. Esta, por sua vez, aplicada a processos de decisãogera vantagens competitivas para a organização como émostrado na figura 1”.

Figura 1 - Cadeia do processo de inteligência

As características do sistema de Inteligência de Negócioscomo:

· Extrair e interagir dados de múltiplas fontes;· Fazer uso da experiência;· Analisar dados contextualizados;· Trabalhar com hipóteses;· Procurar relação de causa e efeito;· Transformar os registros obtidos em informação útil para o

conhecimento empresarial.

Segundo Serra [9], no fluxo real da inteligência competitiva,podemos ressaltar três pontos básicos:

· A informação precisa ser pesquisada e coletada;· O processo de inteligência competitiva precisa ser

permanente;· O quadro de referência competitiva evolui no tempo e,

precisa ser avaliado historicamente.Segundo Wanderley [11], “uma das funções da Inteligência

nos Negócios é tornar o processo decisório mais robusto e preciso,seja ele do nível estratégico, tático ou operacional”.

Sistema de Inteligência de NegóciosAdotando um Sistema de Inteligência nos Negócios que,

através das informações armazenadas no banco de dados próprio,pudesse nortear os gestores, mais seguramente, paraacompanhar as mudanças e monitorar o ambiente, observandoos sinais fortes e fracos que este emite, visando transformarsinais em conhecimento de forma a agregar valor na tomada dedecisão.

Para Wanderley [11], um processo formal de inteligência denegócios pode propiciar à empresa o seguinte:

· Antecipar mudanças no mercado;· Antecipar ações dos competidores;· Descobrir novos ou potenciais competidores;· Aprender com os sucessos e as falhas dos outros;· Conhecer melhor as empresas que possam vir a ser

adquiridas ou parceiras;· Conhecer sobre novas tecnologias, produtos ou processos

que tenham impacto no seu negócio;· Conhecer sobre política, legislação, ou mudanças

regulamentais que possam afetar o seu negócio;· Entrar em novos negócios;· Rever suas próprias práticas de negócio;· Auxiliar na implementação de novas ferramentas

gerenciais.· De acordo com Wanderley [11] algumas das razões pelas

quais as empresas necessitam de um Sistema de Inteligência deNegócios são:

· O ritmo dos negócios está crescendo rapidamente;· O crescimento do volume de informações;· O aumento de novos concorrentes na arena global;· Os antigos concorrentes estão se tornando mais agressivos;· A velocidade e a força com as quais as mudanças políticas

afetam as empresas;· A velocidade das mudanças tecnológicas.

Um sistema genérico de inteligência de negócios devecontemplar as dimensões tecnológica, econômica, mercadológica,política e social.

A figura 2 representa esquematicamente a abrangência doambiente competitivo a ser monitorado por um Sistema deInteligência de Negócios.

Page 9: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

9

Delphi

Figura 2 - Abrangência do ambiente competitivo a ser monitorado por um Sistema de Inteligência de Negócios.

O principal objetivo de um Sistema de Inteligência deNegócios é aprender sobre o ambiente competitivo externo,visando o conhecimento do posicionamento competitivo daempresa, o que impulsionará mudanças internas e facilitarádecisões estratégicas na Companhia.

Para isso, é necessário que o sistema de IN estejaestreitamente ligado com as questões estratégicas. As questõesestratégicas, portanto, atuam como estrutura de base para osistema de IN.

Ciclo da Inteligência de NegóciosPara Wanderley [11], “a maioria dos autores definem o

processo de IN, mostrado no ciclo da figura 4, compreendendo asseguintes etapas: planejamento, coleta, processamento earmazenamento da informação, análise e validação dainformação, disseminação e utilização da informação estratégicae avaliação do processo”.

Herring [3] sugere uma representação do sistema incluindoestas etapas, que pode ser visualizada na figura 3.

Figura 3 - Ciclo de Inteligência de Negócios

Fatores Críticos de Sucesso e Redes de InteligênciaDe acordo com Wanderley [1], identificadas as necessidades

de informação, a partir dos fatores críticos de sucesso, de seudesdobramento e das entrevistas realizadas, elabora-se o projetodo Sistema de IN, com o respectivo Plano de Implantação, quedeve conter basicamente:

· Objetivos e escopo do sistema;· Seleção de fontes de informação;· Seleção de métodos e ferramentas;· Definição das necessidades de infra-estrutura;· Definição da estratégia e plano de implantação;· Proposta de orçamento e de alocação de recursos humanos.

Em seguida, a autora, enfoca alguns aspectos que deverãoser levados em conta, nas principais etapas do projeto.

Nos últimos dez anos, a tendência das empresas tem sidodescentralizar os processos de planejamento estratégico, trazendoestas atividades para dentro das unidades de negócios, parapermitir que o planejamento e a implementação fiquem situadosno mesmo lugar.

Essa configuração torna a organização mais sensível àsmudanças do mercado e permite respostas mais rápidas àsoportunidades e ameaças.

As vantagens de situar o processo de IN nas unidades denegócios, a exemplo do planejamento estratégico, é facilitar aentrada dos produtos do IN no próprio planejamento estratégicodiretamente onde este deve ser implementado, além da facilidadede envolver mais pessoas na atividade de IN.

Isso permite a construção e expansão mais rápida das redesinternas, informações melhores e mais rápidas, por meio doscontatos diretos e da relação mais próxima entre os gerentes egrupos de IN.

Essencialmente, em um processo descentralizado de IN, sãoestabelecidos muitos nós [pontos de conexão] de inteligência emdiferentes partes da empresa.

Eles são multifuncionais, não somente servindo a elesmesmos, mas também servindo para facilitar o fluxo deinformação entre os nós, beneficiando a empresa como um todo.

Muitas das grandes companhias que hoje estãodesenvolvendo processos de IN estão optando por uma estruturaem rede altamente descentralizada.

Elas reconhecem que o conhecimento competitivo deve

Page 10: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

10

Delphi

sobreviver, independentemente das mudanças de pessoal,estruturas organizacionais ou sistemas.

Ferramentas Utilizadas no Processo deInteligência de Negócios

São ferramentas de Business Intelligence:· Balanced Scorecard;· Database Marketing, CRM;· EIS, OLAP;· Data Mart, Data Warehouse e Data Mining.

Vantagem Competitiva e EstratégiaZaccarelli [12] define vantagem competitiva como: “uma

expressão que remete a aspectos positivos – tendo um oposto bemclaro, a desvantagem competitiva.

As vantagens competitivas tornaram-se a base dopensamento estratégico moderno sendo extremamenteimportante entender a racionalidade das vantagens competitivas,seu valor e seu uso.

Existem vários tipos de vantagens competitivas, cada qualcom uma natureza peculiar, o que os torna muito diferentesentre si, apesar de todos levarem à mesma conseqüência - osucesso da empresa”.

ConclusãoDurante o século XX, aconteceram profundas mudanças nas

formas de organização do trabalho e administração dos negócios.Essas mudanças estão se tornando cada vez mais velozes, emconseqüência dos enormes avanços na tecnologia e nacomunicação.

A informação, como um dos principais fatores desse cenáriode mudanças, tem sido vastamente estudada nas organizações.Novos conceitos estão sendo implementados, objetivando agregarvalor às informações disponíveis e desenvolver bases deconhecimento nas organizações.

Acredita-se que os conceitos e métodos de Inteligência deNegócios apresentados constituem mais um degrau nessaescalada, mais um avanço para impulsionar essas mudanças.

Referências Bibliográficas[1] CHIAVENATO, Idalberto Introdução à Teoria Geral da

Administração. 6. ed. Rio de Janeiro: Editora Campus Ltda,2000.

[2] CRUZ, Tadeu. Sistemas de Informação Gerenciais:

tecnologia de informação e a empresa do Século XXI. São Paulo:Editora Atlas, 1998.

[3] Hering, J. P. Producing CTI that meets managementneeds and spectation SCIP – Competitive Tecnology InteligenceSymposiun. Boston, 1997.

[4] KEEN, Peter G. W. Guia Gerencial para Tecnologia daInformação: conceitos essenciais e terminologia para empresas egerentes. Rio de Janeiro: Editora Campus, 1996.

[5] LAUDON, Kenneth C.; LAUDON, Jane Price. Sistemasde Informação. 4. ed. Rio de Janeiro: Editora LTC, 1999.

[6] LAURINDO, Fernando José Barbin. Tecnologia daInformação. São Paulo: Editora Futura, 2002.

[7] O’BRIEN, James A. Sistemas de Informações e asDecisões Gerenciais na Era da Internet. 9. ed. São Paulo: EditoraSaraiva, 2002.

[8] REZENDE, Denis Alcides; ABREU, Aline França de.Tecnologia da Informação Aplicada a Sistemas de InformaçãoEmpresariais: o papel estratégico da informação e dos sistemasde informação nas empresas. 2. ed. São Paulo: Editora Atlas,2001.

[9] SERRA, Laércio. A essência do Business Intelligence. SãoPaulo: Ed. Berkeley, 2002.

[10] STAIR, Ralph M. Princípios de Sistemas de Informação:uma abordagem gerencial. 2.ed. Rio de Janeiro: 1998.

[11] ZACCARELLI, Sérgio B. Estratégia e Sucesso nasEmpresas. São Paulo: Editora Saraiva, 2000.

[12] WANDERLEY, Ana Valéria Medeiros. Um instrumentode macropolítica de informação. Concepção de um sistema deInteligência de negócios para gestão de investimento deengenharia, Brasília: 1999.

Sobre o autorMarcelo Nogueira é Mestre em Engenharia deProdução com ênfase em Gestão da Informação,bacharel em Análise de Sistemas, ProfessorUniversitário, Instrutor e Desenvolvedor Delphi desde1995, Membro fundador do DUG-BR. e-mail:[email protected]

Page 11: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

11

CSS é seu amigoCSS é seu amigoCSS é seu amigoCSS é seu amigoCSS é seu amigoNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style Sheets

CSS

Aqui está uma questão para os desenvolvedores de aplicaçõesWeb: Você ajusta as mesmas configurações diversas vezes? Porexemplo, você já ajustou a fonte e a cor da fonte mais de uma vezem uma aplicação, colocando as mesmas especificações cada vez?Se você respondeu “sim” para qualquer uma destas questões,talvez você seja um candidato para o cascading style sheets,conhecido como CSS.

O CSS já está por aí há muito tempo, mas sentimos que énecessário adicionarmos ele em nossa revista porque, mesmo hojeem dia, as pessoas têm medo de utilizar esta tecnologia.

Parece que muitas pessoas ainda insistem em escrever elasmesmas muitos blocos de código de novo e de novo, ou clicam nosmesmos controles do Visual Studio.NET ou Delphi .NET eajustam exatamente as mesmas coisas várias vezes, como se oCSS fosse algum tipo de vodu. Não há absolutamente nada deerrado com isso; no entanto, se você quiser fazer uma grandemudança de estilo em sua aplicação, isto fará a manutenção serextremamente dolorosa.

No momento há duas versões separadas do CSS existentes:CSS1 e CSS2. Todos os estilos do CSS1 funcionam e são válidosnos estilos do CSS2; no entanto, o CSS2 adiciona a capacidadepara o projetista atingir dispositivos diferentes (como impressorase handheld). Além do mais, de acordo com o W3C, o CSS2suporta posicionamento de conteúdo, download de fontes, layoutsde tabelas, internacionalização, e muitas outras característicasapropriadas para o desenvolvimento UI. Para o propósito desteartigo, discutiremos o básico do CSS1, porque muitosdesenvolvedores estão usando o IE como seu browser e o IE nãosuporta totalmente o CSS2, já que, de acordo com a Microsoft, aimplementação corrente do CSS2 é “defeituosa”. Finalmente, oCSS3 está em desenvolvimento no momento, então será excitantever se isto ganha a atenção da Microsoft e a aprovação do W3C.Então, utilizando o CSS1, discutiremos a estrutura do CSS,estilos inline vs. external, classes CSS, precedência, e herança.

A estrutura do CSSAprender CSS é particularmente um processo fácil.

Realmente tudo o que precisamos fazer é conhecer o HTMLbásico e alguma terminologia usada pela maioria dosprocessadores de texto, como fonte, forecolor, H1, etc. Asdeclarações de regras de um CSS consistem de um seletor e umadeclaração:

selector{property:value;}

O seletor é o nome da tag HTML, id, ou classe do elementopara o qual você quer definir as regras. Você pode colocarmúltiplas declarações dentro de cada seletor. Por exemplo, se vocêestá trabalhando com o corpo inteiro de uma página e você querlidar com a fonte:

body{ font-size: 8pt; color: blue; font-family: Sans-Serif;}

Você não está limitado a lidar somente com a fonte; você

também pode modificar rapidamente o background, listas, e comoos elementos são posicionados. Há muito poder aqui.

Estilos Inline vs. Estilos ExternalAs regras de estilo que temos usado podem simplesmente

serem colocadas na seção <HEAD> de seu site Web. Isto não énecessariamente uma prática ruim, dependendo do cenário. Noentanto, isto ajuda a conhecermos outros locais para usarmosestilos. Um lugar para guardar estilos é à direita das própriastags HTML. Por exemplo, em uma declaração de parágrafo ouuma tag div, uma declaração de estilo pode parecer como algoassim:

<div style=”FONT-WEIGHT: bold; COLOR: gray;FONT-FAMILY: Arial; TEXT-DECORATION:underline”>

Esta declaração fará com que todo o texto dentro desta tag

seja negrito, cinza, Arial e sublinhado. Uma coisa que precisamosfazer menção é o fato de que os estilos ficam entre aspas quandodeclarados inline.

A segunda, e provavelmente a maneira mais comum, deutilizar os estilos é declará-los em um arquivo externo. Istooferece muito poder porque agora você pode afetar um grandenúmero de páginas criando um estilo em um único arquivo esimplesmente fazendo referência a este arquivo.

Um estilo externo é um arquivo de texto e usa normalmentepor convenção o .css para designar este arquivo como de estilo.Após criar o estilo usando a sintaxe selector/declaração e salvá-lono arquivo meuestilo.css, você precisa ligar este estilo em cadapágina Web que você queira herdar este estilo. Para fazer isso,

CSS é seu amigoCSS é seu amigoCSS é seu amigoCSS é seu amigoCSS é seu amigoNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style SheetsNão tenha medo de usar Cascading Style Sheets

Page 12: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

12

CSS

você pode usar a tag LINK:

<LINK href=”meuestilo.css” type=”text/css” rel=”stylesheet”>

A segunda maneira de referenciar um estilo à página é usar

o @import. Falando de uma forma geral, o uso para isto não éuma página de referência, mas a criação de um estilogeneralizado e herdando-o para outro estilo. Por exemplo:

Global.cssbody{ font-size: 8pt; color: blue; font-family: Sans-Serif; } Local.css@import url(“/Global.css”);h1{color:red;}

Classes CSSAs classes CSS permitem que você crie um estilo e aplique-o

separadamente para elementos diferentes das classes herdadas.Para usar as classes CSS, simplesmente dê a qualquer elementoque vai herdar esta classe o atributo class seguido pelo nome daclasse. Por exemplo, talvez você tenha um grupo de labels comuma classe chamada validator:

<label class=”validator”>Some Text</label><label class=”validator”>Some Other Text</label>

Estes validators podem ser vermelhos ao invés de preto dos

demais labels. O CSS dará a você um único lugar para declará-los como vermelhos fazendo uso das classes CSS. Para declarar aclasse no CSS, simplesmente declare o nome precedido de umponto e tenha certeza de ser o mesmo, pois as classes são case-sensitive. Para fazer o texto de nosso validator vermelho, nossaclasse se parecerá com algo assim:

.validator { color: Red; }

O Cascade no CSSAgora você já conhece o básico do CSS. Você pode criar um

estilo inline, importá-lo, ou mesmo criá-lo externamente. Aquestão real é: “Qual a preferência?” A ordem de preferênciacomeça com o autor do estilo, seguido pelo usuário do estilo, e, porúltimo, o estilo do browser padrão. Quando um usuário desliga oestilo, ele essencialmente muda a ordem de preferência. Alémdisto, alguns browsers habilitam o usuário a ter seu próprio estiloespecífico, e que este tenha preferência e sobrescreva o estilo doautor da página Web.

Agora sabemos que, como autor de páginas Web, seu estiloterá preferência (na maioria dos cenários). No entanto, você

talvez tenha definido estilos em locais separados, então quepreferência eles terão? Estilos persistentes ou aqueles embutidosou inline tem a mais alta prioridade sobre qualquer outro estilo.O estilo externo tem a segunda prioridade, seguido por qualquerestilo alternativo que talvez esteja sendo selecionado pelo usuário.Mantenha em mente que se um estilo alternativo é selecionado, oestilo preferido é desligado, no entanto, o estilo persistentepermanece.

A próxima ordem de preferência lida com as regrasconflitantes; novamente, perguntamos: quem tem a preferência?Se você tem múltiplos estilos definidos e quer que um estilo emparticular tenha preferência, não importa em qual estilo estejalocalizado, simplesmente marque o estilo com “!important”:

H1{font-family: Arial !important;}

Além disso, o estilo mais específico é o que tem maior peso.

Então, um estilo apontando para uma classe terá mais peso queum estilo genérico. Finalmente, o estilo que é listado por ultimoterá preferência, o qual aludirá por qual sempre terá apreferência.

HerançaSeguindo as regras que aprendemos sobre preferência, o

estilo mais específico é o que tem maior peso. Considere esteexemplo:

< body> <p>... <b>...</b> < div>...</div> </p></body>

A tag body será o pai deste relacionamento, a tag paragraph

será a filha do body, e a tag div será a filha do paragraph. Se atag body é definida para ter o estilo de texto em azul, então todosos filhos dentro da tag body herdarão o texto azul. No entanto, sea tag paragraph tem um estilo de texto vermelho, então todos osfilhos irão herdar o texto vermelho. Finalmente se a tag div tem otexto sublinhado, então tudo na tag div terá o texto sublinhado.

ConclusãoEste artigo dificilmente arranha a superfície do CSS.

Algumas da idéias que discutimos podem ser escritas de formamuito mais detalhada. Para mais informações sobre o CSS,acesse a página do W3C (http://www.w3.org/Style/CSS/); eles têmtudo o que você precisa e quer saber sobre este assunto.

Concluindo, nós falamos sobre a estrutura de um estilo CSS,estilos inline vs. external, classes CSS, preferência e herança.Para todos aqueles que pensam que o CSS é vodu, recomendofortemente que você faça uma tentativa; acredito que você logoperceberá o poder que isto pode lhe oferecer.

Page 13: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

13

Implementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NET

Delphi

As solicitações de suporte sobre o desenvolvimento deaplicações com interface web vêm aumentando dia a dia. Muitosde nossos usuários estão sentindo dificuldade no desenvolvimentoneste ambiente. Nada mais natural, pois o desenvolvimento nesteambiente é uma novidade para muita gente. Todos nósestávamos acostumados com as facilidades da interface deformulários do Windows e no desenvolvimento web isto estáficando um pouco mais trabalhoso, pois estamos tendo que nosfamiliarizar com este novo ambiente.

Quando nós construímos uma aplicação asp.net, nós estamoscriando um aplicação que irá rodar no servidor, ou seja todos osprocessamentos serão feitos no servidor e não no cliente. Istosignifica que quando um usuário digita alguma coisa numcomponente TextBox que está localizado em um WebForm, umpostback deve ocorrer para que aquela informação sejaprocessada.

Normalmente quando se constrói uma aplicação asp.net oprogramador deve ter em mente que ele deve escrever um códigoque execute o menor numero de postbacks possível. Isto iráreduzir drasticamente tráfico de informações na rede.

Vamos analisar um problema comum em aplicações web.Imagine a seguinte situação:

Você tem um componente TextBox e um componente Buttonem seu WebForm. O usuário digita alguma coisa neste TextBox eclica no componente Button. Como em qualquer botão em umaaplicação web, um postback será gerado, você processa ainformação e verifica que a informação não é o que você estavaesperando. Assim, você resolve dar um aviso ao usuário que ainformação digitada é inválida. Existem várias formas demostrar ao usuário que esta informação está inválida. Vocêpoderia fazer como eu já fiz um dia que era colocar umcomponente Label com a cor em vermelho e deixar a propriedadeVisible para False e mostrar este componente Label na horaoportuna. Mas isso é o tipo de coisa que fazemos quando estamosnos adaptando à nova realidade e temos consciência que não é amelhor forma de se trabalhar.

Mas nós podemos fazer algo mais profissional, como porexemplo, chamar um ShowMessage como fazíamos em aplicaçõescom interface Windows.

Numa interface web isto infelizmente não é tão simplesassim. Os programadores são forçados a recorrer a scripts que

rodem no lado cliente.Eu encontrei um componente freeware que poderá nos

ajudar muito neste sentido. Quem até hoje não utiliza ou nãoutilizou um componente freeware que já tenha lhe ajudado muitono desenvolvimento? Em aplicações web isto não vai serdiferente. O nome deste componente que eu encontrei é oMonoDialogs e você pode obter maiores informações sobre ele nosite do fabricante. O endereço é http://www.mono-software.com.

No final desta matéria você encontrará o link para downloaddo nosso exemplo e também do componente.

Este novo componente irá lhe dar o caminho mais fácil paraexecutar as caixas de diálogo como ShowMessage, MessageDlg eInputBox em aplicações ASP.NET. Depois que baixar o arquivovocê deverá executar o arquivo MonoSoftware.Web.Dialogs.msi. Estearquivo irá instalar o componente no seu computador, no meucaso que utilizo o Windows XP em português o componente foiinstalado no diretório C:\Arquivos de programas\MonoLtd\MonoSoftware.Web.Dialogs.

Agora vamos montar um exemplo utilizando este nossocomponente.

Chame o seu Delphi 2005. Vá até o menu do Delphi 2005 eclique em File | ASP.NET Web Application – Delphi for .NET,como está sendo mostrado na figura 1.

Implementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoImplementando caixas de diálogoem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NETem aplicações ASP.NET

Por Claudinei Rodrigues – [email protected]

Figura 1: Mostra como selecionar o tipo de projeto.

Page 14: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

14

Delphi

Na próxima tela você irá configurar o Internet InformationServer (IIS) para que possamos rodar o nosso exemplo. Veja afigura 2:

Agora vá até o Tool Palette e inclua um componente ListBox edois componentes Button no seu WebForm.

Figura 3: Tool Palette

Feito isto você terá uma tela semelhante a que está sendomostrada na figura 4.

Agora como nós estamos trabalhando com componentes deterceiros será necessário que adicionemos uma referência a eleem nosso projeto. Isto é muito simples de se fazer. Vá até o menudo Delphi e clique em View | Project Manager ou pressione asteclas Ctrl+Alt+F11. Feito isto você deve clicar com o botão direitodo mouse sobre o item References e depois clicar em AddReference... como mostrado na figura 5.

Na próxima tela você deve procurar pelo Assembly NameMonoSoftware.Web.Dialogs e depois clicar no botão Add Reference edepois no botão OK como está sendo mostrada na figura 6.

Figura 4: Tela do WinForm com os componentes.

Figura 2: Configurando o IIS

Figura 5:Tela do Project Manager

Figura 6: Adicionando a referencia.

De volta ao Project Manager clique com o botão direito domouse sobre o item MonoSoftware.Web.Dialogs.DLL e depoisclique no item Copy Local como mostrado na figura 7.

Fazendo isto esta DLL será copiada juntamente com a DLLdo seu projeto

Page 15: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

15

Delphi

Agora vamos trabalhar como código fonte. Vá até o códigofonte e logo abaixo do itemimplementation inclua aseguinte linha:

var Item: string; ResItem :TMsgDlgResult;

Vá até o evento Load doWebForm1 e inclua a linhaabaixo:

procedureTWebForm1.Page_Load(sender:System.Object;e: System.EventArgs);begin { TODO: Put usercode to initialize thepage here Aqui nós vamos incluir algumas linhas nocomponente ListBox } if not Page.IsPostBack then begin ListBox1.Items.Add(‘Linha 1’); ListBox1.Items.Add(‘Linha 2’); ListBox1.Items.Add(‘Linha 3’); end;//Aqui nós inicializamos a variável Item Item := Dialogs.InputBox(BT_Incluir,’THE CLUB’,’Texto a ser adicionado’,’Valor’);//Aqui nós inicializamos a variável ResItem ResItem := Dialogs.MessageDlg(BT_Excluir,‘Você tem certeza que quer remover o itemselecionado ? ‘+ #13#10 + ‘Selecione [All]para remover todos os itens!’,‘Removendoitem’, TDlgType.mtConfirmation,TMsgDlgBtn.mbAll or TMsgDlgBtn.mbYes orTMsgDlgBtn.mbCancel, False);end;

Agora vá até ao primeiro componente Button e altere apropriedade ID para BT_Incluir e a propriedade Text para Incluire no segundo componente Button, altere a propriedade ID paraBT_Excluir e a propriedade Text para Excluir.

Voltando ao BT_Incluir vá até a propriedade Click e veja aseguir como deve ficar este evento:

procedure TWebForm1.Button1_Click

(sender: System.Object; e: System.EventArgs);begin // Aqui é onde o item é adicionado ListBox1.Items.Add(Item);end;

Agora vá até o segundo componente Button que é oBT_Excluir e veja como deve ficar o evento Click:

procedure TWebForm1.BT_Excluir_Click(sender:System.Object; e: System.EventArgs);begin//Aqui é a rotina onde são excluidos os itens if ResItem = TmsgDlgResult.mrAll then begin ListBox1.Items.Clear; end else begin if ListBox1.SelectedIndex > 0 then ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) else Dialogs.ShowMessage(Page, ‘Nenhuma

informação foi selecionada’,‘A operaçãofalhou’, TDlgType.mtWarning,300);

end;end;

Para finalizarmos o projeto você deve ir até o diretório onde foiinstalado o seu componente. Lá você vai encontrar o diretório..\MonoResources\Dialogs. Dentro deste diretório existe oarquivo MonoDialogPage.aspx. Você deve copiar este arquivopara o mesmo diretório da sua aplicação. Agora copie todo oconteúdo do diretório \MonoResources para o diretório raiz ondeestá configurado o IIS, por exemplo ...\inetpub\wwwroot. Agoravá até o diretório .. \CSS Skins e copie o arquivo MonoDialogs.csspara o diretório da sua aplicação.

Pronto, basta rodar a sua aplicação.

ConclusãoEspero que este matéria possa lhe auxiliar no seu dia a dia.

Se você conhece algum componente Freeware como este, enviepara nós. Vamos compartilhar estas informações com todos osnossos associados. Até a próxima...

Download em: http://www.theclub.com.br/revista/download/CxDialog0905.zip

Figura 7:Configurando a DLL

Sobre o autorClaudinei Rodrigues,Consultor Técnico do The [email protected]

Page 16: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

16

Desenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .Net

Delphi

Salve Delphianos!

Sei que poucos estão se aventurando pelo mundo .Net, sejapela falta de tempo, oportunidade, ou até mesmo uma certadesconfiança da tecnologia.

Posso afirmar que a tecnologia é uma das mais robustas queconheci, e também muito fácil de aprender.

Neste artigo iremos desenvolver nossa primeira aplicaçãoWeb utilizando as seguintes tecnologias:

- Delphi 2005- linguagem C#- ASP.Net

Passos

1 – Criando uma nova aplicação C# do tipoASP.Net

2 – Configurar a conexão e objetos demanipulação de dados

3 – Configuração e utilização do DataGrid4 – DataBind no objeto DataGrid5 – Execução da aplicação

Vamos lá!

Passo 1/5 - Criando uma nova aplicação C# dotipo ASP.Net

Vamos criar uma nova aplicação C# do tipoASP.Net, por meio das opções File > New > C# Projects >ASP.Net WebApplication como ilustra a figura 1.

Em seguida selecione o tipo do servidor Web (IIS,Cassini, ou qualquer outro que esteja configuradopara executar aplicações ASP.Net), dê um nome àaplicação, como ilustra a figura 2.

Desenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoDesenvolvendo a primeira aplicaçãoWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .NetWeb com tecnologia .Net

por Emerson Facunte

Se você utilizar o IIs, certifique-se que ele esteja executandonormalmente aplicações ASP.Net. Em caso negativo, configure oIIs executando o seguinte comando no prompt :

C:\<windir>\Microsoft .NET\Framework\v1.1.4322\aspnet_regiis.exe -iOnde <windir> = diretório Windows.

Caso o IIs não esteja instalado em seu computador, você têmalgumas opções:

1 – Instalar o IIs através do Painel de Controle > AdicionarComponentes/Programas Windows > Selecione IIs (seránecessário o CD de instalação do Windows 2000 ou XP –dependendo da sua versão)

2 – Utilizar o Cassini, disponível com código fonte no diretóriode exemplos do Delphi. Basta compilar o projeto (Cassini) econfigurar o diretório de execução.

Figura 2 – Nome da Aplicação

Page 17: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

17

Delphi

Figura 1 – Selecionando Aplicação C# - ASP.Net Web Application

3 – Utilizar outro servidor de aplicações, como o APACHE.

Passo 2/5 – Configurar a conexão e objetos de manipulaçãode dados

Neste ponto iremos configurar os objetos de manipulação dedados.

Insira um objeto do tipo BDP DataAdapter (seção BorlandData Provider), em seguida clique com o botão direito do mouseno objeto e selecione a opção Configura Data Adapter.

Na caixa de diálogo (figura 3), selecione uma nova conexão(Command > Connection > New Connection...).

Abrirá uma nova caixa de diálogo (figura 4) para configurara conexão. Caso você ainda não tenha nenhum banco de dadosconfigurado, clique no botão ADD para adicionar uma novaconfiguração de banco de dados, selecione a opção desejada(exemplo Firebird), dê um nome e clique em OK.

Exemplo de configuração Firebird:

Connection

Database Localhost:C:\Program Files\Firebird\Firebird_1_5\examples\EMPLOYEE.FDb

Password Masterkey

UserName SYSDBA

Connection Options

Login Prompt False

Teste sua conexão clicando no botão Test. Se estiver tudo ok,basta confirmar a configuração.

Após a configuração da conexão, selecione a tabela para

realização do testes, marque as opções (Select, Insert, Update,Delete e Optimize) como ilustra a figura 5.

Clique no botão Generate SQL.

Após as configurações realizadas, selecione a opção NewDataSet na pasta DataSet, como ilustra a figura 6.

Pronto, já criamos nossos objetos de conexão e manipulaçãode dados (BdpConnection, BdpDataAdapter e BdpDataSet).

Figura 3 – Selecionando nova conexão no BDP Adapter

Figura 4 – Configurando nova conexão

Page 18: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

18

Delphi

Figura 5 – Gerando instruções SQL

Figura 6 – Gerando o DataSet

Passo 3/5 – Configurar o DataGrid

Neste ponto iremos configurar o objeto DataGrid utilizando

como referência os nossos objetos de manipulação dedados.

Insira um objeto do tipo DataGrid (seçãoWebControls) e configure a propriedade DataSourceapontando para DataSet1.

Agora vamos melhorar o visual do DataGrid.Selecione a opção Auto Format no rodapé do ObjectInspector, e na caixa de diálogo (figura 7)faça a suaopção .

Passo 4/5 – DataBind no DataGrid

Amigos, precisamos vincular os dados epreencher nosso DataGrid.

No Object Inspector, selecione o objeto WebForm einsira o código que segue no evento Load,

dataGrid1.DataBind();

Passo 5/5 – Executando a aplicação

Ok. Agora basta executar nossa primeiraaplicação ASP.Net com banco de dados.

Aperte F9 para executar a aplicação com aopção Debug ou CTRL-SHIFT-F9 para executar semo Debug.

A figura 8 ilustra nossa aplicação sendoexecutada.

Figura 7 – Melhorando o visual do DataGrid

Page 19: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

19

Delphi

Nos próximos artigos vamos trabalharcom os dados utilizando outros tipos decontroles.

Forte abraço e até lá!

Sobre o autorEmerson Facunte é Consultor de

Tecnologia com diversos livrospublicados, especialista emdesenvolvimento de aplicações e-business utilizando a ferramentaDelphi, baseado em webSnap,dataSnap, BizSnap e ISAPI/ApacheModules.

[email protected]

Figura 8 – Aplicação em Execução.

Page 20: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

20

Componentes para ReusoComponentes para ReusoComponentes para ReusoComponentes para ReusoComponentes para ReusoUm mercado em potencialUm mercado em potencialUm mercado em potencialUm mercado em potencialUm mercado em potencial

Delphi

Este artigo tem por objetivo descrever a experiência de 03(três) anos da empresa TKS Software na comercialização decomponentes de software baseados em reuso voltados para omercado brasileiro de desenvolvedores. Identificação depossibilidades, geração dos componentes e sua documentação,interface com clientes, venda via Internet, parcerias e suportepós-venda são alguns dos itens a serem abordados tendo em vistaos produtos atualmente comercializados pela empresa.

Espera-se com este artigo trazer ao conhecimento dosleitores, novas possibilidades e modalidades de negócios,apresentando a estrutura necessária à comercialização decomponentes via Internet e comprovando que este tipo deabordagem constitui um mercado em potencial para as softwarehouses.

Reuso, teoria e aplicação.A idéia de reuso no desenvolvimento de software foi

primeiramente apresentada por M.D. Mcllroy em 1969 [1], e podeser definido como o uso posterior e repetido de um artefato. Reusoé comumente divido em 2 atividades principais: “para reuso” e“com reuso”. “Para reuso” significa desenvolver novoscomponentes reutilizáveis, “com reuso” significa desenvolvernovos produtos que utilizem componentes “para reuso”. [2]

O foco deste artigo são os aspectos envolvidos na identificaçãode novas possibilidades, criação e comercialização decomponentes “para reuso”, de forma a apresentar às softwareshouses este mercado amplo e ainda pouco explorado dedesenvolvimento de software. A análise e os resultadosapresentados neste artigo dizem respeito aos seguintescomponentes “para reuso” listados a seguir:

Sintegra32dll(http://www.igara.com.br/produto.php?cod_produto=3)

Biblioteca desenvolvida para facilitar e agilizar o processo deimplementação e adaptação do seu software à legislação doSintegra – Sistema Integrado de Informações sobre Operações Interestaduaiscom Mercadorias.

P03_Unit(http://www.igara.com.br/produto.php?cod_produto=45)Unit desenvolvida em Delphi para tratamento de protocolo de

dados P03 utilizado pelas balanças Toledo na comunicação entre asbalanças e o computador.

Simulador_P03(http://www.igara.com.br/produto.php?cod_produto=48)O simulador de balanças Toledo, possibilita realizar os testes

de implementação do software para comunicação com balançasToledo, sem que para isso seja necessário ter a balança disponívelem laboratório, bastando que o simulador esteja sendo executadoem um outro computador conectado pela porta serial.

ZPL2_Unit(http://www.igara.com.br/produto.php?cod_produto=46)Implementa a geração do código fonte dos principais

comandos da linguagem ZPL2 para impressão de código de barrasem impressoras industriais Zebra, incluindo dentre outrasfuncionalidades impressão de textos, códigos de barras, linhas ecaixas.

EPL2_Unit(http://www.igara.com.br/produto.php?cod_produto=47)Implementa a geração do código fonte dos principais

comandos da linguagem EPL2 para impressão de código de barrasem impressoras industriais Zebra, incluindo dentre outrasfuncionalidades impressão de textos, códigos de barras, linhas ecaixas.

Componentes para ReusoComponentes para ReusoComponentes para ReusoComponentes para ReusoComponentes para ReusoUm mercado em potencialUm mercado em potencialUm mercado em potencialUm mercado em potencialUm mercado em potencial

por Victory Fernandes

Page 21: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

21

Delphi

Antes da criação propriamente dita de tais componentes, deveser feita a identificação das possibilidades, de forma a garantirque o produto é viável comercialmente. Após definir-se pelolançamento de um dado componente, deve-se executar asatividades de criação do mesmo, tendo em vista o reuso. Uma vezcriados o componente e todos seus demais artefatos como demos,manuais de uso de FAQ (Frequentily Asked Questions), o mesmoprecisa ser divulgado na comunidade de desenvolvedores atravésde parcerias, e finalmente comercializado via Internet.

As etapas descritas acima são muito semelhantes aosconceitos de desenvolvimento de software “para reuso” descritoem Figura 01 [2], [3] e [4] e dividas em:

1. Coletar requisitos de potenciais usuários2. Analisar requisitos e domínio de aplicação3. Selecionar e priorizar requisitos4. Desenvolver e documentar a solução selecionada a partir

dos requisitos

Figura 01 – Esquema de atividades envolvendo reuso [2]

Identificação de PossibilidadesO sucesso na criação de componentes reutilizáveis tendo em

vista sua comercialização está em muito baseada na identificaçãodas possibilidades e novas oportunidades que se apresentamdurante o processo de ciclo de vida de um aplicativo.

Durante o andamento de um projeto, é muito freqüente sedeparar com módulos e implementações comuns a um grandenúmero de empresas e desenvolvedores. Ou seja, módulos quemuitas empresas terão que desenvolver caso desejemimplementar as mesmas funcionalidades que você acaba deagregar ao seu produto.

Então, se você acaba de desenvolver algo, que pode ser deinteresse de diversas outras empresas, porque não comercializarestes módulos? Porque não gerar subprodutos do projeto

principal, que comercializados individualmente,representarão uma renda extra para suaempresa? Porque não?

É importante estar atento a estasoportunidades tanto para poder verificar se jáexiste alguma solução disponível no mercado queatenda às necessidades da empresa e que possaser incorporada ao projeto de forma a reduzir oseu custo final, quanto para avaliar a viabilidadeda criação e comercialização de novoscomponentes baseados nas funcionalidadesimplementadas.

Tipicamente, utilizamos como principaiscritérios de viabilidade na escolha de novasoportunidades, a complexidade, abrangência edisponibilidade da solução caso a mesma venha aser implementada.

A complexidade diz respeito à quão difícilseria para um outro desenvolvedor implementara mesma solução, quanto tempo ele economizariaao adquirir o produto pronto e não ter queimplementar a solução do zero. O produto criadoapesar de ser de difícil implementação deve ser defácil uso, de forma a torná-lo extremamenteatrativo ao seu usuário final.

A abrangência diz respeito ao provávelnúmero de usuários interessados na solução.Tipicamente a escolha dá-se por produtos de

5. Testar a solução6. Unir solução e documentação7. Dar suporte aos usuários

Page 22: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

22

Delphi

abrangência nacional ou internacional. Quanto maior o provávelnúmero de usuários interessados na solução, melhor será oretorno financeiro da mesma.

Alguns dos produtos citados poderiam ter abrangênciainternacional, por exemplo, a ZPL2_Unit, no entanto aabrangência internacional acarreta alguns fatorescomplicadores, como a tradução de toda documentação e aremessa de valores do exterior (o que pode ser bastantecomplicado tendo em vista todas as barreiras comerciais impostaspelo governo brasileiro).

A disponibilidade diz respeito à existência ou não de produtossimilares no mercado. Quanto menor o número de soluçõessimilares disponíveis no mercado melhor.

A combinação destes fatores irá determinar o retornofinanceiro do componente criado, bem como também irá definir opreço do produto para o cliente final.

Outro fator decisivo na composição dos preços de venda doscomponentes criados é a sua forma de comercialização (com ousem envio de códigos fontes). Tipicamente temos optado porcomercializar nossos produtos sempre com códigos fontes, uma

vez que isto representa um fator de segurança a empresa queadquire o seu produto.

Ao adquirir produtos “para reuso” as empresas sempre sepreocupam em o quanto seus sistemas ficaram dependente doseu módulo. Neste caso pesam fatores como: Será que seuproduto estará sempre atualizado? Será que o produto é seguro?E se o produto não funcionar ou tiver um bug, será que você vaifazer as correções necessárias e devidas?

Sendo assim, optamos por sempre trabalhar com acomercialização dos códigos fontes, ou seja, mesmo nos casos ondevendemos o produto “fechado”, como é o caso das dlls,disponibilizamos também para os nossos clientes a opção deaquisição dos fontes. É claro que produtos comercializados comcódigos fontes terão um preço mais elevado!

A Tabela 01 apresenta uma análise dos produtos citadosanteriormente quanto aos parâmetros de complexidade,abrangência e disponibilidade.

Divulgação dos ProdutosA parceira com canais de venda conhecidos foi a forma de

Tabela 01 – Análise de critérios dos produtos comercializados

Componente Complexidade Abrangência Disponibilidade

Sintegra32dll Alta (Mais de 50 funçõesnum total de 2500 linhasde código)

Alta (LegislaçãoNacional e obrigatóriado varejo à indústria)

Baixa (Até 2 anos após seu lançamento nãohavia produtos semelhantes no mercado,atualmente as soluções de mercado não são tãomaduras quanto)

P03_Unit Alta (Envolve tratamentode protocolo de dadosserial específico semsuporte do fabricante)

Média (Nacional, porémvoltado para o mercadoindustrial)

Média (Fabricante comercializa ferramentasemelhante, porém cara e pouco flexível)

Simulador_P03 Alta (Envolve tratamentode protocolo de dadosserial específico semsuporte do fabricante)

Média (Nacional, porémvoltado para o mercadoindustrial)

Baixa (Nem mesmo o fabricante tem tal soluçãodisponível)

ZPL2_Unit Baixa (A implementaçãoem si é extremamentesimples, porém há muitasfunções a seremimplementadas)

Média (Nacional, porémvoltado para o mercadoindustrial)

Média (A impressora não precisanecessariamente receber script ZPL2. Podefuncionar como uma impressora gráfica comumno Windows, porém nesse modo é mais lenta)

EPL2_Unit Baixa (A implementaçãoem si é extremamentesimples, porém há muitasfunções a seremimplementadas)

Média (Nacional, porémvoltado para o mercadocomercial/administrativo)

Média (A impressora não precisanecessariamente receber script ZPL2. Podefuncionar como uma impressora gráfica comumno Windows, porém nesse modo é mais lenta)

Page 23: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

23

Delphi

divulgação dos produtos adotada. Através da política decomissionamento das revendas, comissionamos os parceiros em20% do valor vendido. Firmou-se parceria com diversos sites erevistas do setor para publicação de artigos técnicos e bannerssobre os produtos a exemplo da Figura 02.

Figura 02 – Exemplo de divulgação de produtos através de parceiro comissionado

A publicação de artigos técnicos sobre os produtos tem semostrado a forma mais eficiente de divulgação, uma vez que osartigos descrevem todo o processo geral de uso e implantação datecnologia abordada, apresentando informações úteis aoprogramador como dúvidas mais freqüentes etc. Além de abordara tecnologia de forma geral, todos os artigos propõem que comoforma de facilitar e agilizar o uso da tecnologia seja utilizado umdos produtos citados. São então apresentadas todas as vantagensdo uso produto, mapeando as funcionalidades do mesmo comtodas as dificuldades da tecnologia.

A empresa publicou até agora um total de 25 artigos técnicos,relacionados aos produtos citados anteriormente, nos principaismeios de comunicação do setor.

Venda e Suporte Pós-Venda via InternetTodo o processo de venda dos produtos é efetuado via Internet.

Tipicamente as vendas são efetuadas após resposta de 1 ou 2 e-mails de contato a respeito de maiores informações sobre osprodutos, enviados pelos interessados na compra.

É muito importante o produto ter um site claro, cominformações completas sobre o mesmo e de navegação muitosimples a exemplo da Figura 03. São disponibilizadas para downloade teste gratuito, versões de demonstração de todos os produtoscomercializados, de forma que os interessados podem testar todasas funcionalidades dos mesmos e decidir pela compra.

Todo o processo de compra deve ser descrito no site em etapas.Optamos por trabalhar com depósito em conta corrente, masdisponibilizar outras formas de pagamento como boleto bancárioe cartão de crédito também é aconselhável.

Os valores são então depositados pelo cliente na conta daempresa conforme tabela de preços disponível no site no endereço:http://www.igara.com.br/produto.php?cod_produto=3

Figura 03 – Exemplo de site de produto

Após receber e-mail de confirmação e depósito enviadoatravés de formulário específico, ver Figura 04, o setor financeiroda empresa verifica a veracidade do depósito através do extratoonline disponível no site do banco e libera o envio do e-mail para ocliente contendo o produto em anexo e toda a sua documentação.

Figura 04 – Formulário de confirmação de depósito

A forma como todo processo é executado possibilita umbaixíssimo custo de operação. Pode-se ressaltar como custo direto,a hospedagem e manutenção do website, o custo (tempo) de

Page 24: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

24

Delphi

confecção dos componentes e da documentação e o custo homem-hora para atender aos questionamentos dos clientes einteressados.

Todos as respostas elaboradas aos questionamentos recebidos,após serem retornadas por e-mail, são armazenadas em umabase de dados de FAQ (Frequently Asked Questions) paraincrementar a lista disponível no site.

O resultado de toda essa coleta de dúvidas é apresentado on-line como um link na página do produto, conforme mostra aFigura 05.

ConclusõesTipicamente a venda de produtos “para reuso” pela Internet

tem se mostrado uma receita de valor incerto, que gira em tornode uma média histórica, mas que não pode ser precisada.

Os valores das vendas superaram e muito as expectativas daempresa e já começam a ser significativos quando comparadosaos valores de faturamento dos demais setores “convencionais” daempresa ou da empresa como um todo. Sendo assim acomercialização de componentes “para reuso” tem se mostradoum mercado com grande potencial.

Atualmente a idéia de comercialização de componentes “parareuso” se consolidou como uma boa prática no ambiente daempresa se tornando um conceito adotado por todos, de forma

Figura 05 – FAQ (Frequently Asked Questions) - Lista de perguntas e respostas sobre os produtos.

que as novas possibilidades são constantemente identificadas econsideradas para o lançamento de novos produtos.

A empresa está bastante satisfeita com o resultado do projeto.Tendo em vista os resultados obtidos durante os 6 primeirosmeses do ano de 2005, a empresa espera dobrar seu faturamentono ano de 2005, atribuindo o sucesso do projeto ao engajamentode sua equipe de parceiros colaboradores.

Referências[1] Mcllroy, M.D. “Mass Produced” Software Components in:

P. Naur and B. Randell, Editors: Proceedings of the 1968 NATOConference on Software Engineering, Brussels; NATO ScientificAffairs Division; 1969.

[2] Kucza, Timo. Improving Knowledge Management inSoftware Reuse Process; 2001

[3] Lim, W.C. Managing Software Reuse, A comprehensiveGuide to Stategically Reengineering the Organization forReusable Components; Prentice Hall; 1998

[4] Karlsson, E-A. Software Reuse: Holistic Approach.Chichester: John Wiley & Sons; 1995.

Sobre o autorVictory Fernandes é Mestrando em Redes de Computadores edesenvolvedor sócio da TKS Software - Soluções deAutomação Softwares [email protected] - www.sintregrafacil.com.br.

Page 25: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

25

Mensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasde mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicação

Delphi

IntroduçãoEste artigo poderia resumir-se em apenas uma dica, contudo,

resolvi incrementá-lo um pouco mais e explicar como pode sersimples personalizar as caixas de mensagens em sua aplicaçãoutilizando o MessageDLG padrão que acompanha o Delphi, sem anecessidade de alterar units como exemplo, a consts.pas paratradução de mensagens apresentadas ao usuários.

Primeiro desafioNosso primeiro desafio será encontrar um evento a fim de

interceptar o momento que um MessageDLG é chamado, pois,após a sua chamada não teremos como efetuar nenhumaalteração, visto ser um formulário modal. Bom, será bem fácilpassarmos por este primeiro desafio, bastando para isso lançarmão do objeto TScreen no qual encontramos um evento globalchamado OnActiveFormChange.

O evento OnActiveFormChange ocorre imediatamentequando um novo formulário é chamado e constitui-se em umlocal ideal para efetuarmos tratamentos genéricos quando umnovo formulário for chamado, seja ele uma caixa de mensagem(MessageDLG) ou um formulário qualquer de nossa aplicação.

Vamos começar nossa implementação e para isso, crie umnovo projeto (VCL Win32, caso esteja utilizando Delphi 2005),salve como AltMsgDlg e a unit como unAltMsgDlg. Feito isso, váà sessão private e declare o código como está na listagem 1.

type TForm1 = class(TForm) Private procedure OnActiveFormChange(Sender:TObject); { Private declarations } Public { Public declarations } end;

Listagem 1 – Declaração do evento OnActiveControlChange.

Mensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasMensagem: Personalizando as caixasde mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicaçãode mensagens em sua aplicação

Alessandro Ferreira, [email protected]

Feito isso, tecle a combinação CTRL+SHIFT+C (na IDE doDelphi) que automaticamente teremos esta procedure declaradaabaixo da sessão implementation, conforme demonstra a listagem 2.

implementation

{$R *.dfm}

procedure TForm1.OnActiveFormChange(Sender:TObject);begin //end;

Listagem 2 – Procedure referente evento OnActiveFormChange.

Até este ponto, temos apenas um procedimento declarado quenão irá ter nenhuma finalidade se não for ligado ao objetoTScreen e este será nosso próximo passo, para isso, acesse oevento OnCreate do formulário e adicione o código apresentadona listagem 3.

procedure TForm1.FormCreate(Sender: TObject);begin { Liga o evento que irá tratar as

mensagens } Screen.OnActiveFormChange :=OnActiveFormChange;end;

procedure TForm1.FormClose(Sender: TObject;var Action: TCloseAction);begin { desliga o evento ao sair da aplicação } Screen.OnActiveFormChange := nil;end;

Listagem 3 – Eventos OnCreate e OnClose do Form.

Page 26: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

26

Delphi

No evento OnCreate ligamos o evento à nossa procedure e noevento OnClose desligamos, pois do contrário teremos umaexceção ao finalizar a aplicação.

Chamando as MensagensNeste ponto, iremos adicionar quatro componentes Button

em nossa aplicação, conforme demonstra a figura 1.

Figura 1 – Chamada das mensagens.

E cada botão irá efetuar a chamada do MessageDLG, porém,com parâmetros diferentes, ou seja, confirmação, aviso, erro einformação. Assim sendo, programe o evento OnClick de cadabotão conforme sugere a listagem 4.

procedure TForm1.Button1Click(Sender:TObject);begin // Mensagem de confirma. MessageDlg(‘The Club, o maior clube deprogramadores do Brasil’, mtConfirmation,[mbYes, mbNo], 0);end;

procedure TForm1.Button2Click(Sender:TObject);begin // Mensagem de aviso. MessageDlg(‘The Club, o maior clube deprogramadores do Brasil’, mtWarning, [mbOK],0);end;

procedure TForm1.Button3Click(Sender:TObject);begin

// Mensagem de erro. MessageDlg(‘The Club, o maior clube deprogramadores do Brasil’, mtError, [mbOK],0);end;

procedure TForm1.Button4Click(Sender:TObject);begin // Mensagem de informação. MessageDlg(‘The Club, o maior clube deprogramadores do Brasil’, mtInformation,[mbOK], 0);end;

Listagem 4 – Evento OnClick dos botões.

Neste momento, se executarmos a aplicação e clicarmos nobotão ‘Confirma’, teremos a exibição de uma caixa de mensagempadrão conforme apresenta a figura 2.

Figura 2 – Caixa de mensagem padrão

Observe que o Caption do formulário e dos botões aparecemem inglês, o que não soa muito profissional aos olhos do usuáriofinal, concorda?!

Obs. Existem outros artifícios que podem ser utilizados paratradução destas caixas de mensagens, como exemplo, alterar oarquivo CONSTS.PAS disponível na pasta source do Delphi,porém, esta abordagem não permite alteração na cor, tipo etamanho da fonte, alteração da imagem, etc, e por isto nãoiremos utilizá-la.

Personalizando a Caixa de MensagemAgora iremos concluir a codificação da procedure

OnActiveFormChange adicionando nela a programaçãonecessária para tratar o formulário de mensagem (MessageDLG)e todos os componentes existentes no mesmo.

A listagem 5 apresenta o código completo desta procedure,acompanhe:

Page 27: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

27

Delphi

procedure TForm1.OnActiveFormChange(Sender: TObject);var i: Integer;

begin { Verifica se o form é uma caixa

de mensagem.} if Screen.ActiveForm.ClassName =

‘TMessageForm’ then with Screen.ActiveForm do

begin { Percorre os componentes do

form de mensagem.} for i := 0 to ComponentCount - 1 do begin { trata o texto da mensagem.} if Components[i] is TLabel then with TLabel(Components[i]) do begin Font.Style := [fsBold]; Font.Color := clBlue; Font.Name := ‘Tahoma’; Font.Size := 8; end; { trata os botões.} if Components[i] is TButton then with TButton(Components[i]) do begin if Caption = ‘&Yes’ then Caption := ‘&Sim’ else if Caption = ‘&No’ then Caption := ‘&Não’; end; { Trata a imagem.} if Components[i] is TImage then with TImage(Components[i]) do begin if Caption = ‘Confirm’ then begin Picture.LoadFromFile(‘.\inte.bmp’); Transparent := true; end; if Caption = ‘Warning’ then begin Picture.LoadFromFile(‘.\excla.bmp’); Transparent := true; end; if Caption = ‘Error’ then

begin Picture.LoadFromFile(‘.\erro.bmp’); Transparent := true; end; if Caption = ‘Information’ then begin Picture.LoadFromFile(‘.\info.bmp’); Transparent := true; end; end; end; { Altera o Caption do form de mensagem.} if Caption = ‘Confirm’ then Caption := ‘Confirmar’ else if Caption = ‘Warning’ then Caption := ‘Atenção’ else if Caption = ‘Error’ then Caption := ‘Erro’ else if Caption = ‘Information’ then Caption := ‘Informação’; { Alterar a cor do form.} Color := clInfoBk;

end;

end;

Listagem 5 – OnActiveFormChange completo.

Vou abordar alguns pontos importantes apresentadosanteriormente na listagem 5.

Como mencionei no início deste artigo, o eventoOnActiveFormChange é disparado quando qualquer novoformulário é chamado na aplicação, dessa forma devemos nospreocupar em verificar se este novo formulário é uma caixa demensagem, pois, queremos aplicar a personalização apenasnestes formulários, e esta é nossa primeira verificação no eventoOnActiveFormChange onde através do objeto TScreenverificamos a classe do novo formulário e caso seja‘TMessageForm’ iremos efetuar um laço for percorrendo dessaforma todos os componentes existentes dentro da caixa demensagem.

Observe que a lógica será a mesma para cada tipo de objeto,ou seja, verifica-se a classe, faz-se um typecast para o tipo do objetoe podemos acessar suas propriedades e métodos de forma bemsimples.

* TypeCast: Conversão de tipos em object pascal, ou seja, no

Page 28: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

28

Delphi

exemplo citado, convertemos um objeto TComponent para umobjeto TLabel, afim de poder acessar propriedades, métodos eeventos de um TLabel, repetindo o mesmo processo paraTButton, TImage, etc...

Vale lembrar que para acessarmos propriedades, eventos emétodos do formulário, não necessitamos efetuar nenhum typecastvisto que o acesso é feito diretamente através do objeto TScreen(Screen.ActiveForm.QualquerPropriedade).

Neste exemplo, estamos também alterando a imagem que éexibida na caixa de mensagem, por isso torna-se necessárioverificar qual o tipo da caixa de mensagem acionada parapodermos atribuir a imagem correta e uma forma para efetuaresta verificação é utilizar o caption do próprio formulário, poissegue sempre o padrão: Confirm, Warning, Error e Information,lembrando que o mesmo vale para o tratamento que iremos fazerpara traduzir o caption, ou seja, se o caption chegar como‘Confirm’ iremos substituí-lo por ‘Confirmar’.

Obs. As imagens utilizadas nas caixas de mensagem porpadrão tem o tamanho de 32x32 pixels.

Neste exemplo, trocamos a imagem dos quatro tipos de caixade mensagem, as quais estão disponíveis para download noendereço ao final deste artigo.

Resultado FinalEstando tudo nos conformes, vamos rodar e ver o resultado

de nossa personalização, veja as figuras 3, 4, 5 e 6.

ConclusãoDemonstrei neste artigo uma abordagem simples e que

permite ao desenvolvedor Delphi personalizar as caixas demensagens, dando um toque todo especial a elas.

Deixo aqui o convite para que enviem sugestões de artigosque você gostaria que estivéssemos abordando na The ClubMegazine, tornando-a cada vez mais a sua cara.

Forte abraço, sucesso à todos,

DownloadO projeto de exemplo apresentando neste artigo encontra-se

disponível para download em:http://www.theclub.com.br/revista/download/

MessageDlgPersonalizado.zip

Figura 5

Figura 6

Figura 3

Figura 4

Sobre o autorAlessandro Ferreira,Consultor Técnico do The [email protected]

PESQUISA : Respondendo nossa pesquisa, além de você ajudar-nos a melhorar a qualidade dos produtos e serviços oferecidospelo The Club, você ainda irá concorrer a 3 ASSINATURAS ANUAIS do suporte técnico, participe! A pesquisa pode ser respondidadiretamente em nosso site: http://www.theclub.com.br/PesquisaTheClub/login_pesquisa.aspx

Page 29: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

29

Perguntas & Respostas

Pergunta: Tenho vários TEdits em um Form e gostaria desaber como faço para quando clicar em um botão e o mesmopassar todos os edits para “Enabled := True” e com cor doWindows “Color := clWindows”, com apenas uma linha para cadaprocesso.

Resposta: Para fazer este tipo de trabalho você terá quemontar uma rotina como mostrada abaixo:

var i : integer;begin for i := 0 to ComponentCount -1 do begin if Components[i] is TEdit then begin TEdit(Components[i]).Enabled := True; TEdit(Components[i]).Color :=

clWindow; end; end;end;

Dúvida enviada por Ricardo, Sorocaba – SP

Pergunta: Gostaria de saber se vocês tem um exemplo decomo fazer em um Edit ou DBEdit (campo DateTime) um auto-incremento para Hora com spin?

Parecido com a troca de hora do sistema no Windows com amesma formatação.

Resposta: O que você pode fazer é o seguinte. Coloque umcomponente TEdit para alterar a hora, um para o minuto e outropara o segundo. Coloque para cada Edit um componenteUpDown que está na palheta Win32. No componente UpDown

tem uma propriedade chamada Associate. É através destapropriedade que você ligará ao componente Edit desejado.

Dúvidas enviada por Celso, São Paulo – SP

Pergunta: Como Acessar o Access pelo dbExpress.

Resposta: Você pode fazer este tipo de acesso utilizando umdriver ODBC juntamente com o DBExpress. Veja a seguir:

1 - Inclua o componente SQLConnection no form2 - Informe na propriedade ConnectionName um nome

qualquer, por exemplo MinhaConexao3 - Informe na propriedade DriverName um nome qualquer,

por exemplo MeuDriver4 - Informe na propriedade GetDriverFunc a string

getSQLDriverODBC5 - Informe na propriedade LibraryName o nome da DLL de

acesso, por exemplo dbexpodbc.dll. Copie esta DLL para o diretório c:\windows\system326 - Informe a string de conexão para o parametro Database

na propriedade Parameters

Para Access = “Driver={Microsoft Access Driver(*.mdb)};DBQ=..

\Data\Northwind.mdb;

Dúvida de João Roberto da Silva, São José do Rio Preto – SP.

Pergunta: Temos um sistema antigo em Paradox que estádando a seguinte mensagem ao emitir relatório: “LOCK FILEHAS GROWN TOO LARGE”.

Resposta: Este erro é específico de tabelas Paradox e pode ser

Page 30: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

30

Perguntas & Respostas

causado em qualquer BDE (16 ou 32 Bits) Para resolver o problema, tenha certeza que sua aplicação

está da seguinte forma:

Abaixo do diretório onde está o executável, crie três novosdiretórios: TABLES, PRIV, e REDE. Coloque todas as tabelaspara a aplicação no diretório de TABLES. Altere o diretórioprivado da sessão para o diretório de PRIV. Faça o seguinte noseu programa em Delphi

DELPHI: Session.PrivateDir :=ExtractFilePath(ParamStr(0)) + ‘ PRIV’;

Altere o diretório de rede da sessão para o diretório Rede. Faça

o seguinte:

DELPHI: Session.NetFileDir :=ExtractFilePath(ParamStr(0)) + ‘ REDE’;

Se o LOCAL SHARE for igual a True e você não está

compartilhando as tabelas ao mesmo tempo entre aplicaçõesdiferentes, mude o LOCAL SHARE para False. Estes passosresolverão o problema.

Dúvida enviada por José Ricardo dos Santos, São Paulo – SP

Pergunta: Gostaria de saber se tem como trocar a cor dealgumas linhas do CheckListBox.

Resposta: Existe uma forma simples de fazer este tipo detrabalho. Inclua alguns itens no seu CheckListBox, vá até apropriedade Style e altere para lbOwnerDrawVariable, agora váaté ao evento OnDrawItem e inclua o código abaixo:

CheckListBox1.Canvas.FillRect(Rect); if not (odFocused in State) then begin if CheckListBox1.Checked[index] then begin CheckListBox1.Canvas.Font.Color :=clRed; CheckListBox1.Canvas.Brush.Color :=clWhite; end else begin

CheckListBox1.Canvas.Font.Color :=clBlack;

CheckListBox1.Canvas.Brush.Color :=clWhite;

end; end; CheckListBox1.Canvas.TextOut(Rect.Left+2,Rect.Top,CheckListBox1.Items.Strings[Index]);

Dúvida enviada por Antonio Carlos, São Paulo – SP

Pergunta: Estou trabalhando com Delphi 7 e Firebird 1.5.Tenho alguns clientes com rede ponto a ponto sendo uns com SOwindows 98, XP e 2000 profissional.

Em alguns deles, o acesso ao banco está demorado e as vezesnão abre.

Preciso de uma solução para este problema, como asconfigurações básicas e avançadas, tanto no Delphi como nosmicros locais e servidores de dados para ser confrontados com asminhas configurações e acertar possíveis erros e/ou ajustes. OBS:O caminho do banco de dados está sendo passado por um arquivo.INI da seguinte forma: “\\nome do servidor\path”.

Resposta: A estrutura do path que você informou podeapresentar problemas, visto não ser o padrão utilizando peloInterbase/Firebird. Assim sendo, vou listar algumas dicas paraconexão com o banco de dados em rede:

1. Certifique-se de que a rede esteja trabalhando comprotocolo TCP/IP e que o servidor possua um endereço IP fixo, ouseja, não utilize IP dinâmico no servidor;

2. Certifique-se de que não exista nenhuma aplicação quepossa ‘barrar’ a conexão entre as estações e o servidor, como porexemplo, Firewall e Anti-Vírus. No caso do Firewall, existe umaconfiguração para liberar as portas TCP e UDP 3050 que é aporta utilizada pelo Interbase/Firebird. Maiores informaçõespoderão ser encontradas em nossa revista de Novembro/2004“Ajustes no Firewall do Windows XP Service Pack 2 para rodar oInterbase/Firebird”. Caso não possua a revista poderá acessar emnosso site, www.theclub.com.br.

3. A string de conexão, ou seja, o path do banco de dadosdeverá ser composto assim:

172.16.172.1:D:\PASTA\BANCO.FDB

Sendo:

Page 31: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito

31

Perguntas & Respostas

172.16.172.1 -> IP do servidorD:\PASTA -> Nome da pasta no servidorBANCO.FDB -> Nome do banco dentro da pasta no servidor

* Não utilize nomes de compartilhamento, e sim, o nome dapasta física que existe no servidor.

4. Estas configurações são aplicáveis à qualquer versão doWindows e estando dessa forma deverá funcionar semproblemas.

Dúvida enviada por Systema Informática Com. e ServiçoLtda, Olinda – PE

Pergunta: Como eu faço para criar um arquivo INI paraarmazenar os informações de conexão dbExpress/Firebird? NoInterbase eu clicava com o botão direito no componenteIBDataBaseINI e clicava na opção WriteIni, contudo, nodbExpress não tenho este componente.

Resposta: O dbExpress não possui nenhum componentesemelhante, contudo, você pode criar este arquivo através doNotePad (Bloco de Notas) ou qualquer outro editor. Para saber ‘oque’ terá que colocar no arquivo INI, abra o arquivodbxConnections.ini disponível na pasta C:\Arquivos deprogramas\Arquivos comuns\Borland Shared\DBExpress,localize sua conexão e crie um novo arquivo INI copiado areferida conexão, como exemplo:

[MINHA_CONEXAO]DriverName=InterbaseBlobSize=-1CommitRetain=FalseDatabase=192.168.0.1:C:\PASTA\ARQUIVO.GDBErrorResourceFile=LocaleCode=0000Password=masterkeyRoleName=RoleNameServerCharSet=SQLDialect=3Interbase TransIsolation=ReadCommitedUser_Name=sysdbaWaitOnLocks=True

A propriedade “LoadParamsOnConnect” deve estar “False”;

Importante: As propriedades abaixo devem estar preenchidas:

GetDriverFunc = getSQLDriverINTERBASE

LibraryName = dbexpint.dllVendorLib = GDS32.DLL

Após isso, para carregar os parâmetros e ativar osqlConnection utilize o método abaixo:

sqlConnection.LoadParamsFromIniFile(‘.\config.ini’);sqlConnection.Open;

Dúvida enviada por Infoque Informática Produtos ServiçosLtda, São Roque – SP

Pergunta: Estou precisando da seguinte ajuda, tenho duastabelas:

Preciso preencher um Dataset e posteriormente uma tabelaque por sua vez um DataGrid contendo os dados dos das duasTabelas assim:

Veja, da TabelaA quero o Nome e da TabelaB RazaoSocial, emuma única coluna em meu DataGrid. Como posso obter esteresultado?

Resposta: Você poderá utilizar uma instrução SQL quetraga o resultado pronto através de um UNION ALL:

Select idCliente, Nome, Endereco,Cidade From TabelaA

Union AllSelect idCliente, RazaoSocial, Endereco,

Cidade From TabelaA

Adicione esta instrução em um SQLDataAdapter e depois deo FILL para seu DataSet que seu DataGrid irá apresentar oresultado que está necessitando.

Dúvida de IGC do Brasil Informática Ltda, São Paulo – SP.

TabelaA TabelaB

idCliente idClienteNome RazaoSocialEndereço IECidade EndereçoObs Cidade

DataSetTodosClientes

idClienteNome_RazaoSocialEnderecoCidadeEstado

Page 32: EDITORIAL - The Club · Um editor de PL/SQL com ajudas “on-line” permitem ... nova página com instruções para download. A Oracle oferece ... Segundo Laurindo [6], o conceito