GDMenus

Standard
Tive a oportunidade de testar uma excelente ferramenta para geração de menus. Esta ferramenta se chama GDMenus e foi desenvolvida pela Camila Moreira. No sistema existem duas opções de menus: Admin 1, cujo o menu fica na lateral esquerda e pode ser escondido, para ganhar mais espaço na tela e Admin 3 que um menu horizontal. A ferramenta é muito produtiva, possibilitando com poucos passos a geração do menu, porém como não faz parte de ferramenta nativa Scriptcase é necessário um pequeno ajuste que no próprio passo a passo da geração é explicado e faz com que as aplicações se adaptem ao menu escolhido. Sugiro que quem estiver procurando uma ferramenta produtiva para gerar menus para sistemas em Scriptcase faça um teste.
O link do site do sistema segue abaixo, onde é possível fazer um teste por um período limitado, ao acessar o sistema existe um fórum no qual os usuários podem tirar dúvidas e a própria criadora da ferramenta também participa ajudando os usuários.
Além da ferramenta de geração de menus, os usuários que assinam algum dos planos disponíveis tem acesso aplicações desenvolvidas pela Camila, com tutoriais de como podem usar e integrar aos seus sistemas.

Uso do Merge SQL Server

Standard

Segue abaixo uma dica do meu amigo Jord Johnsons, sobre o uso do recurso MERGE do SQL server, ele fez um exemplo bem didático para que fosse simples de entender e ver na prática funcionando, eu acrescentei os comentários explicativos ao lado dos comandos para facilitar a compreensão deste interessante recurso:

/*
UTILIZANDO O RECURSO DE MERGE COM O T-SQL
*/
-- Criando as tabelas temporárias
CREATE TABLE ##TBL_A
(
ID INT,
DESCRICAO VARCHAR(100)
)
GO
CREATE TABLE ##TBL_B
(
ID INT,
DESCRICAO VARCHAR(100)
)
--------------------------------------
-- Populando as tabelas
INSERT INTO ##TBL_A VALUES
(1,'TESTE1'),
(2,'TESTE2'),
(3,'TESTE3'),
(4,'TESTE4'),
(5,'TESTE5')
GO
INSERT INTO ##TBL_B VALUES
(1,'TESTE1'),
(2,'TESTE'),
(8,'TESTE8')
GO
--------------------------------------
-- Selecionando os dados no MERGE
SELECT * FROM ##TBL_A
SELECT * FROM ##TBL_B

Resultado da tabela A:
ID DESCRICAO
———– —————————————————————————————————-
1 TESTE1
2 TESTE2
3 TESTE3
4 TESTE4
5 TESTE5

Resultado da tabela B:
ID DESCRICAO
———– —————————————————————————————————-
1 TESTE1
2 TESTE
8 TESTE8


--------------------------------------
-- Realizando o MERGE
MERGE ##TBL_B AS TARGET -- Tabela de destino
USING ##TBL_A AS SOURCE -- Tabela de origem
ON TARGET.ID = SOURCE.ID -- Condição para considerar o registro como igual
WHEN MATCHED AND TARGET.DESCRICAO <> SOURCE.DESCRICAO -- Quando a descrição do destino for diferente da origem
THEN UPDATE SET TARGET.DESCRICAO = SOURCE.DESCRICAO -- Faça o update no destino com o valor da origem
WHEN NOT MATCHED BY TARGET THEN -- Quando não encontrar o registro no destino
INSERT (ID,DESCRICAO) VALUES(SOURCE.ID,SOURCE.DESCRICAO) -- faça o insert no destino com os valores da origem
WHEN NOT MATCHED BY SOURCE THEN -- Quando existir no destino mas não existir na origem
DELETE -- delete do destino
OUTPUT $action; -- Exiba no resultado as ações realizadas pelo macth
--------------------------------------
-- Consulta das tabelas após o merge
SELECT * FROM ##TBL_A
SELECT * FROM ##TBL_B

Resultado da Tabela A:
ID DESCRICAO
———– —————————————————————————————————-
1 TESTE1
2 TESTE2
3 TESTE3
4 TESTE4
5 TESTE5
Resultado da Tabela B:
ID DESCRICAO
———– —————————————————————————————————-
1 TESTE1
2 TESTE2
3 TESTE3
4 TESTE4
5 TESTE5


--------------------------------------
-- Dropando as tabelas temporárias
DROP TABLE ##TBL_A
DROP TABLE ##TBL_B

Tabelas do scriptcase

Standard

Na versão 8.1 o ScriptCase faz uso de tabelas para armazenar os dados das aplicações desenvolvidas:

sc_tbprj Tabela de Grupos
sc_tbusu Tabela de Usuários
sc_tbati Tabela de Status dos Usuários
sc_tbapl Tabela de Aplicações
sc_tbcmp Tabela de Campos
sc_tblog Tabela de esquemas de log
sc_tblog_apl Tabela de Backup de Aplicações
sc_tblog_cmp Tabela de Backup de Campos
sc_tbrep Tabela de Dicionário de Dados
sc_tbrep_tables Tabela de Dicionário de Dados (Tabelas)
sc_tbrep_fields Tabela de Dicionário de Dados (Campos)
sc_tbconex Tabela de Conexoes
sc_tbsess Tabela de sessão
sc_tbversao Tabela de Versao do Projeto
sc_tbevt Tabela de Eventos
sc_tblog_evt Tabela de Backup de Eventos
sc_tbtrans Tabela de Transacoes
sc_tbtodo Tabela de lista de tarefas
sc_tbmsg Tabela de mensagens entre usuários

Barra de progresso no scriptcase

Standard

Pare este exemplo eu usei a tabela order_details da base de dados do projeto samples(um dos projetos de exemplo disponíveis no próprio scriptcase)

1) Crie a biblioteca pública com o código no link abaixo:


ProgressBar


2) Crie uma aplicação do tipo blank com o código abaixo e marque para usar a biblioteca que você criou no passo 1 para usar nesta aplicação

 

PHP Code:
// Barra de progresso $prb = new ProgressBar(400, 30); // create new ProgressBar (width:300px,height:30px)

$prb->left = 400; // position from left
$prb->top = 120; // position from top
$prb->addLabel('text','txt1');
$prb->setLabelFont('txt1','20');
$prb->setLabelPosition('txt1','405','122','300','20');
$prb->setBarColor('#00FF7F');
$prb->setBarDirection('right');
$prb->show(); // show the ProgressBar
$sql="SELECT * FROM order_details UNION SELECT * FROM order_details UNION SELECT * FROM order_details UNION SELECT * FROM order_details UNION SELECT * FROM order_details"; sc_lookup(dataset,$sql);

$contador= count({dataset});
$prb->max = $contador;
for($b=0;$b<$contador;$b++) {
   
   $nome = {dataset[$b][0]};
   $cpf = {dataset[$b][1]};
   $id = {dataset[$b][2]};
   $prb->moveStep($b);
   $prb->setLabelValue('txt1','Processando: '.$b.'/'.$contador);
   flush();
   ob_flush();}
$prb->setLabelValue('txt1','Concluido!');  

View atualizável SQL SERVER

Standard

Segue abaixo um exemplo de views atualizáveis, onde é apresentada a criação da mesma, alteração de estrutura e manipulação de dados de uma tabela através desta view, este exemplo foi criado pelo meu amigo Jord, achei o exemplo muito interessante e didático.

–CRIANDO O BANCO DE DADOS DE TESTE
CREATE DATABASE DB_TESTE
GO
–SETANDO O CONTEXTO PARA DB_TESTE
USE DB_TESTE
GO
–CRIANDO A TABELA TESTE
CREATE TABLE TESTE (OBS VARCHAR(10));
GO
—————————————
–CRIANDO A VIEW A PARTIR DA CONSULTA NA TABELA TESTE
CREATE VIEW VW_TESTE
AS
SELECT * FROM TESTE;
GO
—————————————
–CONSULTANDO A VIEW PARA VER QUE NÃO HÁ REGISTRO
SELECT * FROM VW_TESTE;
–INSERINDO O REGISTRO ATRAVES DA VIEW
INSERT INTO VW_TESTE VALUES(‘TESTE’);
—————————————
–CONSULTANDO A VIEW PARA VER O REGISTRO INSERIDO
SELECT * FROM VW_TESTE;
–UPDATE PELA VIEW
UPDATE VW_TESTE SET OBS = ‘ABCDEF’;
–CONSULTANDO A VIEW PARA VER O REGISTRO MODIFICADO
SELECT * FROM VW_TESTE;
—————————————
–DELETANDO PELA VIEW
DELETE FROM VW_TESTE;
–CONSULTANDO A VIEW PARA VER QUE O REGISTRO FOI APAGADO
SELECT * FROM VW_TESTE;
GO
—————————————
–ADICIONANDO NO CAMPO NA TABELA TESTE
ALTER TABLE TESTE ADD DATA DATETIME DEFAULT GETDATE();
GO
–DANDO O REFRESH NA VIEW PARA QUE A MESMA SEJA ATUALIZADA COM O NOVO CAMPO
EXEC SP_REFRESHVIEW VW_TESTE;
GO
–CONSULTANDO A VIEW PARA VER QUE O NOVO CAMPO ADICIONADO NA TABELA JÁ APARECE NA VIEW
SELECT * FROM VW_TESTE;
GO
—————————————
–SETANDO O CONTEXTO PARA O BANCO MASTER
USE MASTER;
GO
–DROPANDO O BANCO DE DADOS DB_TESTE
DROP DATABASE DB_TESTE;
GO

Verificar o valor do identity atual de uma tabela no SQL SERVER

Standard
Tomando como exemplo uma tabela chamada tbl_clientes
1) Abaixo segue o comando para descobrir o valor do identity atual desta tabela
DBCC CHECKIDENT (‘tbl_clientes’, NORESEED);
2) Abaixo segue a mensagem de retorno informando qual o valor do identity atual, no caso do nosso exemplo é o 14.
Checking identity information: current identity value ’14’, current column value ’14’.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.