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.
Atenção! Esta nota pode ser considerada altamente técnica pela
maioria dos usuários.
Objetivo
Permitir que o cliente final, dentro do Centro de Informações, ative ou
desative as colunas obrigatórias do sistema. Já existe o conceito de
adicionar colunas obrigatórias, é necessário o conceito agora de desativação.
Detalhamento da Alteração
A fim de não causar instabilidade nas regras de negócio atuais dos
clientes, criamos uma função Callback com a seguinte sintaxe:
Function AICS_FORCEOK(NomeTab:String):Boolean
NomeTab será o nome da tabela definida no navegador. Esta função
será chamada apenas quando estiver em modo de edição (ou
inserção) e a verificação de OK for falsa como padrão.
Portanto, esta função só precisa ser definida e implementada se
houver alguma necessidade, dentro da regra de negócios, de
validar uma gravação que não seria validada normalmente pelas
regras usuais do sistema.
Esta função vale para qualquer tela do AICS, mesmo as nativas
e definidas pelo usuário.
O AICS, quando usado como ferramenta de desenvolvimento,
possui características exclusivas de gestão das informações,
mantendo registro das alterações nas rotinas e permitindo
retorno, como todas as demais informações do sistema.
Nesta atualização, adicionamos um histórico obrigatório das
alterações efetuadas visando padronizar suas alterações. Este
histórico foi adicionado a uma aba histórico que acompanha
o código da rotina. Isto é, em caso de retorno, o histórico
também acompanhará e será mantido em fase com a rotina.
O texto do histórico irá datar automaticamente o comentário
e solicitará o nome real do responsável, quando em uso o
login SUPERVISOR.
Para cada aplicação, o usuário poderá atualizar notas de
novos recursos internos para os demais usuários internos
do sistema.
Esta nota é destinada aos desenvolvedores do BF AICS.
O BF AICS possui um conjunto de controles que permite máxima
fidelidade no envio dos dados ao servidor. Por exemplo, o evento
Gravar pode retornar falso e a gravação não ser efetuada enquanto
tais e tais condições não forem satisfeitas.
Quando o desenvolvedor cria formulários com os objetos TDBNavigator,
o evento BeforeAction, na verdade, não interrompe o processamento.
Entretanto, ao atribuir tal evento em suas rotinas, se for executado o
comando Abort (sintaxe: Procedure Abort;) neste momento, o BF AICS
irá interromper o processamento e o comando será descontinuado.
Este procedimento Abort pode não executar nenhum efeito se executado
dentro de outros eventos, atenção a isso. Se, em seus desenvolvimentos,
for encontrado algum caso em que esta metodologia seja aplicável e não
esteja implementada, basta avisar a BF para sua inclusão.
Esta nota é focada para desenvolvedores sobre o BF AICS.
Sabemos que os objetos nativos e mesmo outros podem ser utilizados
livremente no BF AICS, incluindo os descritores de formulários do
tipo DFM.
O objeto de formulário mais comum é o TForm, porém, este objeto
não possui a integração que o BF AICS apresenta em sua interface.
Para ajudar a melhorar os seus desenvolvimentos, a BF criou o objeto
TFormScript, que pode ser utilizado no lugar do TForm e terá as
seguintes vantagens:
1. Menu Janela e Explorar integrado aos demais módulos do sistema
2. O enter irá funcionar como TAB da mesma forma que as demais
telas do BF AICS
3. Apresenta o menu Ajuda, quando em login Supervisor, com as
opções Depuração e Visualizar Script Associado para rastreamento de
execuções.
Isto permitiu um comportamento extremamente uniforme mesmo
dos desenvolvimentos feitos completamente livres pelos programadores.
Migrações de sistemas legados nunca foram tão simples quanto agora.
Esta nota pode ser considerada altamente técnica para a maioria dos
usuários do sistema.
No Centro de Informações do AICS, publicamos os seguintes
objetos: TStringField e TFloatField.
Com estes objetos, pode-se criar campos dinamicamente nos
cursores de dados nativos. Ainda, publicamos a função interna
do AICS que permite fixar os campos ao cursor e, após isso,
criar outros objetos de campos livremente, como campos que
sejam calculados a tempo de exibição.
A função publicada foi:
Procedure PermDataSetFields(Cursor:DelphiTDataSet)
Execute-a passando um cursor (mesmo fechado) como parâmetro,
mas que já tenha a expressão SQL associada. Ele será aberto e seus
campos fixados ao objeto para aceitar adição de campos calculados
em seguida. Tudo isso numa única linha de comando.
Um dos recursos mais interessantes do Centro de Informações
do AICS é a criação automática de telas. Nesta criação, como padrão,
o sistema define uma largura dos campos que seja de acordo com
a barra de botões. Este comportamente, entretanto, pode não gerar
o melhor aproveitamento de monitores de alta resolução.
Nesta atualização do sistema, adicionamos na aba Opções do Centro
de informações, a nova opção Máxima largura. Como padrão, fica
desligada e o sistema se comporta da maneira anterior. Ainda, como
a opção se ativa apenas se ligada, as implementações anteriores não
sofrem modificações.
Esta atualização pode ser considerada técnica demais por alguns
leitores.
Na versão mais recente do sistema, visando as regras de negócios
dos clientes, a BF publicou o objeto WebBrowser. Isto significa que
será possível adicionar navegação em endereços de internet (URLs)
a quaisquer telas do Aics nativos ou criadas pelos clientes localmente.
Para utilizar este novo componente, basta declará-lo, criá-lo num dado
elemento pai e executar a ação "Navigate". Por exemplo:
MeuBrowser := TWebBrowser.Create(Self);
MeuBrowser.parent:=PanelPrincipal;
MeuBrowser.navigate('http://www.aics.com.br');
Muitas vezes, a movimentação de materiais por rotinas dos usuários
não necessitam de mensagens (que requerem até intervenção do usuário).
Por exemplo, em importações, isso acaba sendo anti-produtivo. Para
facilitar estes casos, a versão mais recente do sistema irá eliminar as
mensagens se uma variável global for ativada:
SetVariable('AICS_NOMESSAGE_IO','1');
Com isso, pode-se ligar ou desligar as mensagens relacionadas aos
comandos de movimentação de materiais de acordo com sua realidade.
É apenas um recurso cadastral que não estava disponível. No Centro
de Informações, controle e conteúdo, existe a possibilidade de associar
uma determinada colunas a uma determinada estrutura hirárquica.
Todas as estruturas podem ser associadas, por exemplo, comercial,
contábil, financeira, de materiais, classificações profissionais etc.
Entretanto, a estrutura de imagens, que dá acesso á pesquisa de imagens
pelo servidor, estava ausente. Adicionamos a opção IMG à lista.
Ativando-a, um botão de pesquisa será criado ao lado do campo na
tela permitindo navegar pelas imagens do servidor de conteúdo.
Lembrando que os conteúdos atuais podem ser imagens, documentos
e arquivos eletrônicos em geral.
A rotina que pode ser inserida em scripts do usuário para
assinar digitalmente documentos PDF foi alterada. Agora,
pode-se passar o motivo da assinatura (o motivo aparece
quando a mesma é exibida pelo Adobe Reader, por exemplo).
A nova sintaxe ficou:
Function PDFSign( FileToSign, Reason, CertFile, Password:String) :boolean
Por favor, caso alguma rotina tenha sido implementada na
sintaxe anterior, favor apenas adicionar uma string vazia no
segundo parâmetro, isso manterá o comportamento anterior.