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.
As ferramentas do BF AICS irão gerar um log dos erros de SQL em scripts de usuários. O objetivo disso é auxiliar o desenvolvedor de rotinas do AICS na melhoria da qualidade do seu próprio trabalho interno.
Nova opção válida para tabelas tipo detalhe (tabelas conectadas a outras tabelas através
de link entre colunas com uma tabela pai dada):
- Copia dados anteriores ao inserir detalhe
Isto significa que novas linhas adicionadas durante uma edição mestre-detalhe irão copiar
os dados da linha anterior. Isto é muito útil ser ligado quando as inserções forem variações
da linha anterior. Se a tabela detalhe estiver vazia, os campos de valores iniciais ainda
continuam a valer.
Ainda, se este campo estiver com valor diferente deste novo, o processamento dos novos
dados ainda se dá pelos valores iniciais da definição.
O envio de arquivos por FTP, agora, pode ser feito numa única linha de
comando nos scripts do NF AICS. A função CopyFile foi expandida, podendo
agora, com a sintaxe:
function CopyFile(Org, Dest: string): Boolean
Copiar arquivos entre unidades locais e de rede e, agora, também enviar
por FTP. Para isso, o destino deve ser indicado com a seguinte sintaxe,
por exemplo:
CopyFile('c:\meutexto.doc', 'ftp://login:senha@meusite.com/pasta1/pasta2/nomefinal.doc');
Isto pode ser colocado tanto no lado do cliente quanto no lado do servidor. Os
usos deste recurso são muitos, por exemplo, podendo integrar envio de imagens
com o site de e-commerce (veja mais das funções que convertem imagens e
podem gerar miniaturas automaticamente) ou copiar arquivos para backup etc.
Limitado à sua necessidade e imaginação!
Texto considerado avançado, despreze-o se julgar improcedente.
Existe uma função callback (chamada pelo AICS para alterar seu comportamente básico)
que permite alterar livremente a expressão de filtragem. Este recurso estava presente
apenas nos filtros associados a telas de pesquisa. Entretanto, em tabelas em modo
planilha (quando o visual é de um painel de filtros e os dados em grid), esta função não
estava sendo ativada.
Com esta padronização, tanto os filtros de pesquisas quanto os filtros das telas do
usuário em modo planilha poderão ser personalizados. A sintaxe é a mesma:
Function ExpressionUserFilter(Coluna, Tabela, Valor:String):String;
Cujos parâmetros são:
>> Coluna -> Nome da coluna que está sendo filtrada, pode conter o nome da tabela
>>Tabela -> Nome da tabela sendo filtrada (normalmente, a mesma da tela principal)
>> Valor -> Valor que foi indicado pelo operador
Como resultado, deve-se retornar a expressão SQL que irá compor o filtro Where,
sabendo-se que este texto será adicionado assim:
... and (
O BF AICS está com uma nova e fantástica função para "escrever" ou assinar
suas imagens. Sem nenhuma restrição, esta função pode aplicar este recurso
até mesmo sobre imagens previamente convertidas pela função ConverteImagem.
Relembrando a declaração desta função (revisada recentemente para aceitar os
novos formatos JPEG):
Function ConverteImagem(Origem, Destino, Formato:String;var LargDest, AltDest:longint):boolean
Sendo que os parâmetros são autoexplicativos e já conhecidos.
A nova função que está disponível tanto para o AICS versão Windows quanto para
o servidor Web do AICS é:
function ApplyImageSignature(ImageFile,Text,Font,Style,RGBColor,VAlign,HAlign:string; FontSize,Threshold:longint;Replicate:boolean):boolean
Os seus parâmetros são:
>> ImageFile -> É o caminho para o arquivo da imagem que será alterada (faça backup antes se julgar necessário)
>> Text -> Texto que será aplicado sobre a imagem
>> Font -> Fonte a ser utilizada (se a função for executada no servidor, não esqueça de verificar se a fonte existe pelo painel de controle)
>> Style -> Estilo, adicionando B e/ou I aplica a fonte em Bold e/ou Italic
>> RGBColor -> Texto que pode representar a cor do texto em RGB. Envie os caracteres no formato # para evitar dúvidas.
Se este texto for vazio, o padrão é escrever em modo linha d'água
>> VAlign -> Alinhamento vertical (Letra T, C ou B)
>> HAlign -> Alinhamento horizontal (Letra L, C ou R)
>> FontSize -> Corpo do texto, se deixado em branco, a rotina encontrará o maior corpo na largura da imagem
>> Threshold -> Limiar (de 0 a 100) para rebaixar a imagem quando a cor estiver ausente
>> Replicate -> Pode ser True ou False indicando que o texto será replicado. Entretanto, se for True, apenas
cores ausentes serão aceitas
Esta função escreve e troca a imagem indicada. Após isso, ela pode ser reamostrada, copiada e usada
diretamente nos sites ou mensagens eletrônicas.
Nas atividades de comunicação atuais, a ferramenta de email é uma forte aliada na redução
de custos e agilidade. O BF AICS já oferece imensas metodologias e opções de comunicação
automatizadas ou não para este fim.
Para dar ainda mais poder de comunicação aos usuários do sistema, a BF publicou a seguinte
função ExtractEMailAll, cuja sintaxe é:
Function ExtractEMailAll(Origem:String):String
Isto é, passando um texto como argumento, ela retornará todas as contas de e-mail presentes
neste texto já separadas uma por linha. Com este recurso, pode-se inspecionar logs de mensagens,
páginas Web e mensagens trocadas com clientes e fornecedores.
Quando uma tabela é criada no Centro de Informações e esta tabela é "conhecida",
o AICS baixa on-line a estrutura da tabela e as suas colunas.
Alteramos esta rotina para que ela peça do novo site Shop.AICS estes dados e eles
são exibidos na mesma hora que ocorre a gravação. Além disso, independe do dado
estar ou não gravado como arquivo, ele será obtido diretamente do banco de dados.
As telas baseadas no Centro de Informações que foram master-detail apresentam uma otimização somente visível em conexões abaixo de 512k (0,5M).
Basicamente, generalizamos a chamada à rotina TABLELOCATE:
Function TableLocate(Tabela,Coluna,Conteudo:string):boolean
Com:
Coluna -> Aceita lista de colunas separadas por ;
Conteudo -> Aceita lista de conteúdos separados por , (Atenção! Colunas por ; e conteúdo por ,!)
Isto segue o padrão de pesquisas do método Locate dos objetos TDataset.
O próprio locate dos DataSets dos scripts apresentam os mesmos parâmetros, com um adicional com o tipo de pesquisa.
Publicamos a seguinte função:
Function SolicitarCompra(Cod_res, Unidade, Descricao, Utilizacao, NetCod, Responsavel, Processo:String; ICMS, IPI, Quantidade, CodGrupo, NrInt:Double; DataUtilizacao: TDateTime): double
O retorno dela será o nr do processo, equivalente à coluna Ct_NUMPROC da tabela COMPCOT