POR QUE ESCOLHER A BYTE FACTORY?

Além de oferecer 100% de ferramentas e serviços personalizados, nossa equipe tem o foco na alavancagem do seu negócio, informando e auxiliando sua expansão.

CONTATO
  • End.: Av. Jose de Souza Campos, Nº 1.815, cj 1.202
    Campinas-SP CEP 13025-320
  • Tel: +55 19 3795-4460 / 4461 / 4462 / 4463
  • Email: atendimento@bf.net.br

Estilos aplicados aos elementos dos formulários

01/11/2008 em CENTRO DE INFORMAÇÕES

A tabela utilizada nos módulos editoriais do AICS que define os atributos gráficos dos textos é denominada ESTILOS. Esta tabela não era padrão do AICS porque estava vinculada unicamente a estes módulos.
Para permitir a personalização visual das entradas dos dados (isto é, que os atributos textuais possam ser controlados nos formulários do AICS), adicionamos um link entre as colunas das tabelas do sistema e o estilo.
É como se pudéssemos formatar cada entrada de dados dos formulários do AICS de acordo com as características gráficas desejadas. Este novo atributo encontra-se no Centro de Informações, aba Opções de Apresentação.
Basta selecionar o nome do estilo (que está numa lista à direita) que a tela criada automaticamente já se abrirá com o campo formatado seguindo estas diretrizes.
Este novo recurso vale para entradas de dados e para entradas de dados tipo RTF. Ainda não foi aplicado aos formulários pela Internet, mas o será se os usuários assim o desejarem.

Regras de negócio generalizadas

01/11/2008 em CENTRO DE INFORMAÇÕES

Um valioso recurso na implementação de acessos remotos por setores! As regras de negócio ficam armazenadas nos eventos associados às tabelas ou colunas. Entretanto, para fins de simplificações ou mesmo de segurança, é comum e usual criar vistas para acessar os dados de forma indireta.
Por exemplo, podemos criar uma vista sobre o cadastro na qual ela restrinja a visibilidade dos dados a partir do login ativo. Perfeitamente simples isso, bastando aplicar :LOGIN em alguma parte da expressão de seleção.
Entretanto, quando isso ocorre, as regras ficavam na tabela original, isto é, as regras deveriam ser copiadas ou adaptadas à nova estrutura.
Mas, e se a nova estrutura for realmente apenas uma vista? Pois bem, a versão mais recente do AICS, caso não haja NENHUMA REGRA NA VISTA, aplicará as regras da tabela pai sobre ela. De tal forma que as chamadas aos cursores devem seguir a nova regra com o uso do nome DEFAULT, para que o cursor aceite ser dinâmico.
Caso haja alguma dúvida sobre isso, consulte o suporte técnico da BF, mas reiteramos que este novo recurso simplifica extremamente o projeto deste tipo de projeto, além de potencializá-lo ao mesmo tempo.

Um novo conceito de nomes genéricos

01/11/2008 em CENTRO DE INFORMAÇÕES

Toda vez que uma tabela é referenciada nas rotinas do usuário, a chave de acesso é o nome do cursor definido ou o nome da tabela ou vista principal. Estes nomes precisam estar definidos nas instruções de execução de SQLs e de edição e leitura de dados.
Agora, podemos utilizar um nome fixo desta chave como DEFAULT.
Por exemplo:
Mostra('O valor do preço é ' + AsString('PEDIDOS','TOTAL'));
No exemplo, acima, definimos o nome genérico e o comando seria:
Mostra('O valor do preço é ' + AsString('DEFAULT','TOTAL'));
Sendo que esta chave assumirá o nome do cursor principal das telas do AICS e do ServAICS. Quando este nome for executado dentro de rotinas do sistema, ele retornará SYSTEM (que para fins de dados, não tem nenhum signifcado, apenas em vistas e tabelas diretas).

Novos códigos de barras

01/11/2008 em CENTRO DE INFORMAÇÕES

A rotina que gera códigos de barras em relatórios em geral foi revisada.
Sua sintaxe é (para recordar):
Procedure PaintBarCode(Elemento,Mensagem:string;Tipo,Largura,Altura,Aspecto:integer);
Onde o Tipo pode receber os números:
0 -> Code2_5_interleaved <-- Ex.: Barra de boletos de cobrança 1 -> Code2_5_industrial, 2 -> Code2_5_matrix, 3 -> Code39, 4 -> Code39Extended, 5 -> Code128A, 6 -> Code128B, 7 -> Code128C, 8 -> Code93, 9 -> Code93Extended, 10 -> CodeMSI, 11 -> CodePostNet, 12 -> CodeCodabar, 13 -> CodeEAN8, 14 -> CodeEAN13, 15 -> CodeUPC_A, 16 -> CodeUPC_E0, 17 -> CodeUPC_E1, 18 -> CodeUPC_Supp2, { UPC 2 digit supplemental }
19 -> CodeUPC_Supp5, { UPC 5 digit supplemental }
20 -> CodeEAN128A, 21 -> CodeEAN128B, 22 -> CodeEAN128C Este procedimento pode ser aplicado a qualquer elemento gráficos de relatórios.

Campos calculados dinamicamente por rotinas callback

01/11/2008 em CENTRO DE INFORMAÇÕES

Dentro do Centro de Informações, temos uma definição da Expressão que uma dada coluna possa seguir. Esta expressão pode ser um cálculo utilizando os dados de outras colunas e pode apresentar funções.
Logo, é um caso de uma coluna que pode receber um valor e este valor ser gravado na base (se for uma coluna física). Entretanto, criamos uma regra na qual esta rotina executa uma determinada rotina ao invés de fazer o cálculo da expressão internamente.
Por exemplo, uma tabela tem uma coluna denominada VALOR.
A função para calculá-la deve ser declarada assim (pode ser no Evento Entrar da tabela mesmo):
Function AICS_Evaluate_VALOR(Parametro:Integer):boolean;
Se a função retornar falso, o cálculo pela expressão do cadastro nem será feito, isto é, esta função pode ajustar normalmente o valor da coluna VALOR utilizando quaisquer regras que desejar.

Vetor de datas alterado!

01/11/2008 em CENTRO DE INFORMAÇÕES

A tabela de vetores de datas (TABVETDATE) foi alterada com a criação de 3 novas colunas (objetivo único de melhoria da performance em operações de JOINs):
CODPRINC, CODSEC e NETCOD.
Sendo que estas colunas receberão, automaticamente, os valores de acordo com a chave primária da tabela conectada. Por exemplo, se a tabela CONECTADA for ANUNCIO, ela receberá o código do anúncio em CODPRINC e o local em NETCOD. O calendário interno e todas as atualizações já estão preparadas para este novo recurso.
Qualquer estrutura que apresente colunas do tipo "Vetor de datas" tem a única restrição, devido a esta alteração, de que a chave primária não poderá ter mais do que 3 colunas, incluindo o NETCOD, em sua composição. Que, com certeza, não será empecilho na utilização deste novo recurso.

Função para gerar nrs aleatórios

12/12/2007 em CENTRO DE INFORMAÇÕES

Em suas regras de negócios, às vezes, uma certa quantidade necessita de variações. Muitas vezes criamos as variações sobre a data e hora do equipamento. Mas, quando precisamos gerar N valores variáveis muito rapidamente, este recurso fica obsoleto.
Publicamos a função Random com a sintaxe:
Function Random:double Sendo que o retorno dela é um número aleatório entre 0 e 1. Se precisar de qualquer outra faixa, basta multplicar este resultado pela faixa desejada.

Melhor dos mundos com ADO e DBX ao mesmo tempo

12/12/2007 em CENTRO DE INFORMAÇÕES

O AICS é apresentando em dois tipos de compilações: AICS.EXE para bancos de dados conectáveis por ADO e AicsX.EXE para bancos de dados conectáveis por dbExpress. Quando o AicsX é utilizado, os objetos de bancos de dados "ADO" são mapeados nos objetos de bancos de dados do dbExpress. Isto permite que todas as rotinas, internas e externas, feitas dentro do AICS ou fora dele sejam transparentes a isso.
Entretanto, o ADO original tem algumas facilidades nativas à própria interface. Por exemplo, fácil conexão a diversas outras estruturas, como MDB e mesmo planilhas em Excel.
Quando o AicsX é utilizado, os objetos ADO ficavam inacessíveis.
Nesta atualização do sistema, a BF está publicando 3 novas classes extremamente úteis, que são: RTADOConnection, RTADOQuery e RTADoTable. Estas classes são as classes "reais" do ADO, tanto no AICS baseado em ADO quanto no AICS baseado em dbExpress.
Isto é, se existirem scripts feitos utiizando estas classes com prefixo R, estes objetos sempre serão mapeados nos objetos ADO originais. Muito útil em rotinas de integrações etc.

Importante substituição de tabela em memória

11/12/2007 em CENTRO DE INFORMAÇÕES

A máquina de informações do AICS está sempre publicando novos objetos visando dar ao usuário o maior conjunto de ferramentas de informação.
Recentemente, o núcleo do AICS trocou o objeto da tabela em memória. A classe TRxMemoryData passou a TJvMemoryData.
Caso uma versão nova cause um erro nesta classe, basta substituí-la em seus scritps. Esta classe é muito pouco utilizada e o efeito nem deve ser percebido pelos projetos em andamento.

Envio de comandos sem processamento

10/12/2007 em CENTRO DE INFORMAÇÕES

O AICS permite se conectar a N bases de dados ao mesmo tempo, podendo integrar os dados destas fontes de informações num único local. Os usos vão desde B.I. a à importações/exportações automáticas, processamentos de mensagens em batch etc No envio de comandos ao servidor, quando for escolhida uma conexão que não a padrão, o AICS não incluirá comandos de ausência de lock automaticamente, permitindo executar comandos sem restrições.

Leia, por favor

Nosso website utiliza cookies para facilitar a navegação. Ao continuar o acesso, você aceita essa política automaticamente.