Mostrando postagens com marcador TD. Mostrar todas as postagens
Mostrando postagens com marcador TD. Mostrar todas as postagens

sexta-feira, 9 de abril de 2021

 Olá pessoal,

Informo que estou fazendo umas aulas em vídeo de Team Developer 7 e disponibilizando no meu canal no Youtube

Convido a visitarem lá e aguardo os comentários e perguntas de vocês.

https://www.youtube.com/watch?v=svMIFQ0Ode0



Download do Livro de Team Developer 

 

Abraço!

quinta-feira, 23 de julho de 2015

Ferramenta SQLCmdWriter

 

Estou compartilhando uma ferramenta que fiz para ajudar na escrita de comandos SQL (Select, Insert, Update e Delete) principalmente quando a tabela possuir muitas colunas. Basta escolher a tabela e as colunas que deseja usar que o programa gera os comandos. A ideia é evitar que o desenvolvedor perca tempo escrevendo e procurando bug de digitação em comandos SQL imensos.

Numa visão resumida, use-o assim:

Login

Por enquanto o aplicativo só está funcionando com Oracle. Para usar com outro SGBD é preciso fazer algumas alterações na aplicação.

SCW-login

Se você deseja salvar as informações de login, marque o checkbox apropriado nesta janela. E se não quiser que a senha seja salva marque o outro checkbox. Aviso …. a senha não é criptografada. Portando…. pense bem se pode expor assim sua senha de banco.

Janela principal

É nesta janela onde as coisas acontecem, onde você pode configurar como seus comandos serão montados. Primeiramente escolha a tabela que deseja trabalhar. Algumas colunas serão meramente informativas. Mas duas delas são importantes e interferem na geração dos comandos. As colunas Select e Where são checks e quando selecionadas indicam que a coluna da linha correspondente será incluída na geração dos comandos. Quando a célula da coluna Select estiver marcada a coluna correspondente à linha será utilizada para manipulação dos dados, ou seja, será usada nos comandos Select, Insert e Update. Quando a célula da coluna Where estiver selecionada, a coluna correspondente à linha será utilizada nos filtros de dados dos comandos Select, Update e Delete.

SCW-janelaPrincipal

As colunas “Utilizar no INTO” e “Utilizar no Where” são preenchidas automaticamente pelo SQLCmdWriter com sugestões de nomes das variáveis, datafields e colunas. São sugestões que serão usadas nos comandos montados. Eu me refiro a estas colunas como sendo o local onde se especifica os nomes dos objetos da aplicação.

Os nomes dos objetos da aplicação variam de acordo com a seleção que estiver feita na faixa de opções. Se você quiser usar variáveis como objetos da aplicação usados nos Where dos comandos, deixe selecionado o botão “usar como variáveis” no grupo Filtragem da faixa de opções. Se quiser que os objetos da aplicação sejam nomeados como data fields, deixe selecionado o botão “usar como Data Fields”. Da mesma forma caso queira usar as colunas da table window.

Siga o mesmo padrão para os objetos da aplicação usados na manipulação dos dados selecionando os botões da faixa de opções Manipulação dos dados.

Há um menu de contexto escondido nas colunas Select e Where para ajudar na seleção de múltiplas linhas. Para acioná-lo efetue um clique duplo nessas colunas e experimente.

SCW-menuContexto

Você pode eventualmente escrever o nome dos objetos da aplicação da forma como desejar.

Quando quiser gerar os comandos, clique no botão Gerar comandos. Os comandos serão mostrados em uma janela que permite que sejam editados e copiados para o seu aplicativo.

SCW-janelaComandos

A idéia deste aplicativo é ajudar na montagem de comandos SQL para manipulação de uma unica tabela. Quanto mais colunas a tabela tiver, maior seja a ajuda.

 

Estou estudando a possibilidade de numa próxima versão fazer com que o SQLCmdWriter escreva no código fonte as colunas, variáveis e data fields caso não existam. Mas vai depender de tempo e se a comunidade vai achar essa ferramenta útil.

Divirtam-se.

Link para o download do SQLCmdWriter no OneDrive.

quarta-feira, 13 de maio de 2015

Lançamento do Team Developer 6.3

Foi lançado o Team Developer 6.3 e a Computer Machine fez um ótimo material para os interessados em conhecer os principais pontos de destaque dessa versão. Tomo a liberdade de reproduzir aqui neste post esta documentação feita pela Computer Machine.

GUPTA TECHNOLOGIES
Lançamento do Team Developer 6.3!

No ínicio de Abril a Gupta Technologies lançou a versão 6.3 do Team Developer, trazendo ainda mais recursos para os desenvolvedores.

Abaixo seguem algumas das evoluções e para visualizar ainda melhor as novidades, acesse nosso vídeo no YouTube e faça o Download da nova versão.

Agora conseguimos criar os Menus RibbonBar ainda mais poderosos, tendo total controle dos objetos internos

  • Novo Componente RibbonBar Galery
  • Incluir ou Excluir Itens (Tabs, Botões, CheckBox, Combos e etc)
  • Exibir ou Não o Menu Completo
  • Carregar um Item através de Query
  • Definir Imagens, visibilidade ou itens habilitados

Algumas novidades e melhorias para os desenvolvedores:

  • Construtor e Destrutor para as Classes
  • Suporte a Imagens JPG e PNG
  • SalMail agora possibilita Cópia Oculta
  • Maior controle da ToolBar do objeto Rich Text
  • Botão Close e Refresh para o objeto TabBar
  • Melhorias na Criação de Tasks e novo Bookmarks
  • Cores para Constantes e Includes

Mais evoluções para as Grids

  • Sumarizadores para colunas Agrupadas
  • Métodos para retornar Valor e a Coluna Sumarizada
  • Justificar coluna sumarizada
  • Novas propriedades para células do tipo Picture
  • Importar dados de arquivos XML, CSV, Text e Excel

Nova ferramenta Report Designer para erar relatórios HTML ou PDF para o usuário final.

Possibilidade de colorir datas e recuperar quais são as datas selecionadas (permite selecionar multiplas datas)

 

Assista o vídeo para conhecer melhor o Team Developer 6.3

Conheça nossos Produtos, Serviços e Treinamentos

Para saber mais sobre os produtos da Gupta Technologies e serviços oferecidos pela da Computer Machine, acesse: http://www.computermachine.com.br

quarta-feira, 21 de julho de 2010

TD6.0 - Novidades sobre o suporte a WPF.

Como já foi citado aqui neste blog em artigo especial sobre o TD6.0, falei dos tipos de builds e do suporte a WPF e que o Team Developer 6 terá como opção ao gerar o build das aplicações, o padrão WPF. Isso por si só já é muito bom pois poderemos tornar nossas aplicações TD6.0 visualmente ricas.

A novidade anunciada pela Unify hoje é que além disso, teremos a possibilidade de utilizar componentes WPF de terceiros em nossas aplicações Team Developer 6.0.

Isso abre um leque praticamente absurdo de opções, de recursos que poderemos incorporar aos nossos aplicativos gerados com o Team Developer 6 pois a biblioteca de controles WPF disponíveis na web é imensa.

Todos os métodos, eventos e atributos do Controle WPF estarão disponíveis para uso aos desenvolvedores no TD6.0.

Para que tenham uma real idéia do que se trata ... sugiro a visitação aos links abaixo:
XCEED - Professional Themes for WPF
Component One

The Code Project - Windows Presentation Fundation

DotNetBar For WPF

É bom ir se acostumando (e preparando seus usuários) pois, esta será a aparência das aplicações geradas no Team Developer 6.0 for .NET que será lançado em breve.

domingo, 18 de julho de 2010

Serialização de objetos - Parte 2

Segunda parte do artigo sobre serialização de objetos UDV em arquivos XML.
Neste artigo concluo a idéia que queria passar sobre este assunto com um exemplo de aplicação de manutenção usando objetos de negócios salvos através deste recurso. Mais detalhes sobre a serialização são mostrados.

Aviso: Para leitura direto no monitor, sugiro que seja lido em tela cheia (clique em fullscreen ). Salvar em PDF ou imprimir também estão disponíveis.

Artigo - UDVSerialize - Parte 2

domingo, 4 de julho de 2010

Serialização de objetos - Parte 1

Artigo sobre Serialização de objetos usando o Team Developer.
Este artigo é a parte inicial, ainda escreverei outro mais profundo e interessante, porém, aqui está a parte principal desta tecnologia.

Artigo - UDVSerialize - Parte 1

quarta-feira, 30 de junho de 2010

Evento: Team Developer 6.0: New Tree Control

Hoje temos evento na Unify.
Estará sendo exposto o novo controle Tree Control presente no Team Developer 6.0

O evento necessita um breve registro e após isso há um redirecionamento para a transmissão ao vivo do apresentador ... mostrando slides e na prática o uso da ferramenta.

Tree control é o objeto mostrado abaixo, em dois tipos de execução: Windows e Browser.




















O Link para acesso do evento é
 https://unify.webex.com/unify/onstage/g.php?t=a&d=339442511

Até lá !
Lairton N de Almeida Jr.

sábado, 1 de maio de 2010

Resumo do evento Unify DevCon 2010 em São Paulo - Brasil.

kay eu sei que já faz muitos dias que o evento aconteceu e esse tópico já deveria ter sido publicado, mas devido a diversos projetos que estou envolvido ainda não havia encontrado tempo suficiente para escrever e a cabeça focada nisso. Então aqui vai um resumo sobre o que aconteceu em São Paulo, no dia 15 de abril, no Unify DevCon 2010.

Evento 5a DevCon Unify 2010 - SaoPaulo

segunda-feira, 31 de agosto de 2009

Problemas com relatório não encontrado

Normalmente colocamos os qrps e imagens na mesma pasta do executável para que, quando o aplicativo precisar usar esses arquivos, eles sejam encontrados facilmente por estarem na mesma pasta do executável. Fazemos isso devido a um comportamento do Windows que podemos denominar de Current Directory, ou Diretório Atual. Quando executamos um aplicativo, Current Directory aponta para a pasta em que o executável está, pois o Windows, por default, configura a propriedade “iniciar em” do atalho, para apontar para a mesma pasta onde o executável está. Para ver isso clique com o botão direito em qualquer atalho no seu Windows.

É graças a esse comportamento do Windows que encontramos os qrps e imagens quando estão na mesma pasta do executável. Mesmo que dentro das aplicações nós não informamos o path, apenas o nome do arquivo.

Porém, a execução de algumas ações podem fazer com que Current Directory seja modificado em run-time sem que percebamos isso. Por exemplo, qualquer aplicação que permitir que o usuário escolha uma pasta para salvar um arquivo gerado pela aplicação. Um exemplo muito prático disso é uma aplicação que salve algum arquivo txt ou pdf e abra a caixa de diálogo para o usuário escolher onde ele deseja salvar o arquivo gerado. Após escolher a pasta e salvar o arquivo, Current Directory passa a apontar para o local escolhido pelo usuário. Devido a isso, caso a aplicação necessite de algum qrp, ela passa a não encontrar mais nenhum qrp, imagem ou outro arquivo que esteja na pasta do executável. Alguns clientes implementaram uma rotina que verifica a existência do qrp e a própria SalReport*** informa que o qrp não foi encontrado. Porém, o qrp encontra-se no diretório do executável. Todo o problema é “resolvido” saindo do sistema e entrando novamente.

Para resolver de fato, sem que seja necessário fechar e entrar novamente o sistema, recomendo que coloquemos em nossas aplicações uma linha de código que determina o valor que desejarmos para Current Directory.

Call SalFileSetCurrentDirectory( sNewDirectory )

Minha sugestão é utilizarmos essa linha de código antes de fazer qualquer chamada a SalReportView(), SalReportPrint(), SalReportTableView() ou SalReportTableCreate() . Porém, sNewDirectory precisa conter o caminho correto do local onde o executável está localizado. (pois é lá que estão os qrps). Esta informação é uma das informações presentes numa variável global do SQLWindows chamada strArgArray. Como esta variável possui mais informações do que precisamos, precisamos excluir dela apenas o caminho e então setar CurrentDirectory corretamente. Para determinarmos o valor de Current Directory para o local onde o executável que está sendo executado está, devemos fazer o seguinte:



Dessa forma este problema não acontecerá novamente.

um abraço
Lairton N de Almeida Jr.

sexta-feira, 28 de agosto de 2009

Menu ou RibbonBar ?

Um dos recursos novos do TD 5.1 e que continua firme e forte no TD 5.2 é a nova forma de mostrar os menus dos aplicativos. A Ribbon Bar é aquela forma nova introduzida aos usuários Windows através do MS Office 2007.

Como uma imagem vale mais que mil palavras, vou direto ao assunto:

Abaixo você pode ver uma estrutura de outline normal, com a definição de um menu típico de aplicativo. Um MDI com diversos pop-up menus e menu items.





Esta estrutura irá gerar um menu bem comum aos usuários de aplicativos feitos com o SQLWindows, porém, a partir da versão 5.1 esta história muda. Os menus podem ser mostrados como RibbonBar, conforme imagens abaixo:





O ideal é que seja feito no processo de migração uma análise de como você deseja que seus usuários visualizem o menu dos aplicativos, já que agora uma área maior da janela passará a ser utilizada. Você terá que buscar ícones (se já não usa) e estudar seriamente a possibilidade de retirar a barra de ferramentas da janela onde o RibbonBar ira aparecer (para manter-se no padrão de aplicações que usam este recurso). Explorar o uso de Windows Menu e modernizar o visual dos menus da sua aplicação.

As duas formas de visualização estão disponiveis. Você pode manter os menus como eles aparecem hoje, se desejar. Ou pode modernizar os menus das suas aplicações tornando-as similares ao Office2007, imagino que os usuários irão adorar a novidade.

Já ia me esquecendo um detalhe, para informar ao SQLWindows que é para mostrar os menus como Ribbon Bar, o esforço de programação necessário é o seguinte:

On SAM_AppStartup
Set bMenuBarAsRibbonBar = TRUE

É isso mesmo, você não terá que modificar nada no outline, onde seus menus são definidos. Imagino que não dará muito trabalho migrar este recurso não é mesmo !

:)

um abraço,
Lairton N de Almeida Jr.

sábado, 25 de julho de 2009

Dicas de Programação

Prosseguindo com as dicas ...

11- Construa (ou modifique) seus menus através de uma interface amigável e de fácil utilização. Em modo de Design coloque o foco no objeto top level que você deseja configurar o menu, clique com o botão direito do mouse e acione o menu chamado Menu Editor. Na versão 5.2 você terá um incentivo a mais para utilizar o Menu Editor, através dele é possível adicionar imagem (ícone ou bitmap) a um item de menu, que, a propósito, no TD5.2 poderá ser mostrado também como Ribbon Bar.

12- Procure não utilizar as funções SqlImmediate () e SqlExists () em laços (while e loop) pois estas funções utilizam um handle sql interno de forma padrão, ou seja, não otimizada. Vindo a ser responsáveis pela maioria dos problemas de performance em sistemas.

13- Antes de imprimir seu programa fonte, configure as opções de impressão no menu File/Page Settings. Certifique-se de que selecionou o radio button Selection Only, caso contrário todo o seu outline será impresso.

14- Cuidado ao utilizar a função SalPostMsg () - a sua utilização exagerada pode fazer o aplicativo "sentar", ou seja, ficar muito lento.

15- Quando estiver em modo Design e quiser configurar o Grid basta acionar o menu Tools / Preferences e selecionar a guia Presentation. Lá você poderá configurar se o Grid estará ativo ou não além de especificar sua altura e largura.

16- Para pegar o handle de um objeto que não possua handle, como background text e group box, utilize a função SalGetFirstChild (hWndForm, TYPE_BackgroundText) que retornará o handle do primeiro background encontrado na sua tela. Utilize a função SalGetNextChild para obter o próximo background e para saber que encontrou o objeto correto utilize SalGetWindowText. Lembre-se de setar bStaticAsWindow = TRUE no App_Startup da sua aplicação.

17- Sempre que você for alterar um componente COM previamente registrado lembre-se de desregistrá-lo do seu servidor. É muito simples, basta acionar o menu Project Un-register Server.

18- Utilize a função GetUserDefaultLangID( ), definida na biblioteca kernel32.dll, para identificar o idioma default do Windows em que o aplicativo está sendo executado. Assim você pode facilmente identificar o idioma e carregar o seu aplicativo devidamente "traduzido" para o idioma nativo. Consulte o capítulo 13 do livro Programando com o CTD2000 para maiores detalhes e exemplos.

19- Lembre-se que o comando de busca do SQLWindows, menu Edit/Find, baseia-se na parte do outline que está atualmente carregada na janela Detail, ou seja, na janela mostrada do lado direito do mdi principal do SQLWindows. Por exemplo: Se você procura por um determinado datafield mas a janela Detail do SQLWindows esta mostrando o conteúdo da seção Internal Funcions, o SQLWindows não encontrará o objeto.

terça-feira, 7 de julho de 2009

Como começar?

Como fazer um bom início de publicações num blog de tecnologia que buscará focar suas postagens em problemas, soluções e dicas envolvendo a ferramenta Team Developer?

Talvez, eu pudesse começar escrevendo sobre o nome do produto e toda confusão que hoje existe devido ao próprio nome não ser bem definido na visão dos seus usuários. O que parece inadmissível em termos de marketing acontece com o Team Developer, pois, seus próprios usuários são os primeiros a ter dúvidas sobre como é hoje o nome da ferramenta. Gupta SQLWindows? SQLWindows 32? Centura? Centura SQLWindows? Team Developer? TD? Unify ?

Poderia utilizar como primeiro artigo algo que falasse sobre a situação do produto hoje, sobre como está o suporte a ActiveX. Não sei se seria bom iniciar falando sobre seu suporte a WebServices ou talvez fosse melhor iniciar falando sobre como pode ser usado o XML em nossas aplicações. Talvez já iniciar falando sobre os novos controles visuais do produto, o date picker, grid window, e sobre o fantástico controle RichText! Ou talvez seria melhor já iniciar explicando como funciona o novo controle TabChild e suas características que diferem do QuickTab. Meu assunto preferido no aspecto GUI seria escrever sobre Themes, porém, nossos usuários adoraram poder eles mesmo arrastarem suas barras de ferramentas para onde bem desejam. Mas não acho que seria bom o suficiente para uma abertura de postagem num blog.

Ao meu ver Ribbon Bar seria muito mais útil pois é um recurso que praticamente já está pronto em todas as aplicações em produção hoje, (inclusive a sua!) bastando adicionar uma única linha de código para que toda a sua aplicação já tenha o visual de barras de menu presentes nas ferramentas do MS Office 2007. Este sim seria um ótimo assunto pra iniciar devido a seu impacto positivo na modernização das aplicações dos usuários. Mas iniciar o blog com um artigo que no total teria uma linha de código ... não, não me parece boa idéia.

Talvez a publicação inicial pudesse tomar outro sentido, poderia tentar explicar o porque de versão atual estar no SP6 (que já foi chamado de PTF) mas aí vou ter que falar que uma das versões mais estáveis, veloz e mais usadas no Brasil seja a versão 1.5 também avançou em termos de PTF até o PTF 6. Isso seria talvez uma feliz coinciência!

Bem, são tantos assuntos que dariam um ótimo primeiro post que fiquei na dúvida e acabei não escrevendo sobre nenhum deles e sobre todos ao mesmo tempo. Uma coisa é certa, foi possível perceber que há muito pano pra manga e muita coisa pra ser falada, muita coisa para ser mostrada e muito a ser desmitificado.

É justamente isso que pretendo fazer neste espaço, conversar sobre essa tecnologia e mostrar como utilizar o Team Developer e seus recursos avançados sempre tentando focar nos principais recursos da ferramenta e nos questionamentos feitos pelos clientes e visitantes.


Um abraço,
Lairton N. de Almeida Jr.