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

Nova função para automatizar ainda mais os relatórios

09/06/2021 em Centro de Informações

Atenção, nota técnica para desenvolvedores.
Já tínhamos a função que executava um relatório em suas regras locais com a seguinte sintaxe:
Procedure ExecReport(NomeRelat,VistaTab, Filtro,MensFiltro,Printer:String;Destino:integer).
Pois bem, criamos uma versão avançada dessa rotina com o objetivo de viabilizar a inclusão em rotinas longas, por exemplo, na geração de faturas para inúmeros destinatários.
A sintaxe da nova função é:.
Procedure ExecReportAdv(NomeRelat,VistaTab,Filtro,MensFiltro, PrinterArq:String;Destino,CodLayout:integer).
Note que há alguns parâmetros novos, PrinterArq passa a fornecer o nome da impressora destino OU o nome do arquivo destino, isso em função do valor do parâmetro "Destino" (1 - tela, 2 - Impressora, 3 - Envio por email e 4 - Exportação em arquivo) ser 2 ou 4.
O parâmetro CodLayout é a versão visual que será aplicada, se ele for enviado como 0 (zero), a janela de seleção de layouts poderá aparecer.
Pela extensão do arquivo, no caso da chamada no Destino 4, o Aics saberá em qual formato gerar os dados.
Para facilitar, as extensões previstas são: PDF, XLS, TXT, CSV, HTM e TXT.
Basta atualizar o Aics e incluir esse novo recurso em suas regras locais.

Captura de imagens por scanner

22/03/2021 em Centro de Informações

Essa nota destina-se à audiência técnica.
Uma das opções de integração do Aics com dispositivos é a captura de imagens usando interface Twain.
A sintaxe do comando anterior ainda existe e é bem simples, basta executar a função Twain, por exemplo:.
MinhaImagem:=Twain; // lê uma imagem.
Essa sintaxe abre a tela de captura, entretanto, na sua automação local, pode ser que a tela não seja necessária.
Para essa situação, foi criada uma variante dessa função, bem parecida, bastará chamar TwainAuto que a imagem já será captutada, sem tela de configuração, como no exemplo acima, ficaria simplesmente:.
MinhaImagem:=TwainAuto; // lê uma imagem sem abertura de tela de configuração.
Em ambas as funções o retorno é o nome do arquivo de imagem (no caminho TMP), o correto é utilizá-lo (enviar para o servidor de imagens, inserir no seu site ou o que desejar) e apagar esse arquivo após o uso.
Basta atualizar o Aics.

Uma nova gama de funções para o ambiente do AICS

23/12/2020 em Centro de Informações

Novidades no ambiente do usuário devem facilitar o uso e o desenvolvimento de novos recursos.
O recurso de botões com funções livres criadas nas regras locais é amplamente aplicado, facilita e organiza funções especiais.
Nesse nova expansão, estamos permitindo uma sequência de botões no modo de impressão (ficará também logo acima dos controle de relatórios) e nos próprios relatórios.
Portanto, passamos a ter mais 2 locais especializados para instalar as funções dos usuários.
Esse recurso está disponível para as funções anteriores, após atualizar a tabela de scripts, bastará indicar em qual local você deseja que o script seja instalado.
Abaixo, informações para a audiência técnica.
Visando dar maior flexibilidade às funções instaladas no painel de impressão, criamos 2 novas para serem aplicadas em suas rotinas, a declaração é muito simples, são:.
function GetSQLPrintFilter:string, que irá retornar uma expressão SQL contendo o filtro atual da tela e:.
function GetTxtPrintFilter:string, que irá retornar a explicação textual do filtro aplicado.
Que poderão facilitar exportações, filtros e o que mais desejar em suas regras locais.
Basta atualizar o AICS.

Processamento de PDFs com campos a preencher

14/10/2020 em Centro de Informações

Nota para audiência técnica.
Imagine que você precisa formatar um documento com um visual totalmente diferenciado. Nem sempre os recursos de edição de relatórios ou geração de páginas em HTM resolvem essas situações.
No formato PDF, que é bem genérico e visa apresentação de documentos, os recursos gráficos são bem conhecidos.
Uma das opções que permitem personalizar um arquivo PDF é o preenchimento de formulários, isto é, campos são marcados como preenchíveis.
Supondo que exista um documento criado no layout desejado e com essa opção de campos preenchíveis, quando os campos forem textuais, criamos uma possibilidade de fixar e dinamizá-los automaticamente pelo Aics. Em seguida, poderá tomar outros caminhos, como enviar o PDF por email.
A sintaxe da função é:.
Function FlatenPDF(Origem,Destino:String):boolean.
Sendo Origem o PDF que contém os elementos de formulário e Destino o PDF final desejado com os campos preenchidos e já fixos (sem o recurso de edição). Ambos devem conter o caminho completo.
Durante o processamento, o Aics chamará uma função que deverá suprir os conteúdos dos campos definidos no PDF, cuja sintaxe é:
Function AICS_PDFFieldValue(Campo,Valor:String):String.
Sendo que Campo será o nome definido pelo criador do PDF, Valor irá repetir a mesma informação, a sua função deverá retornar o texto que irá preencher o arquivo PDF.
Após isso, o PDF estará gravado e poderá seguir caminho em sua regra de negócios.
Basta atualizar o Aics para a nova função.

Revisão da rotina de obtenção de coordenadas GPS pelo endereço

07/09/2020 em Centro de Informações

As coordenadas GPS estão presentes nos cadastros de empresas, pessoas e locais.
Além disso, pelas rotinas e eventos no Centro de Informações, você pode obter uma coordenada GPS de um endereço pela função:.
AddressToGPS(Logradouro, Endereco, Num, Cidade, Estado, Pais: String): String.
Nessa atualização do Aics, essa rotina foi revisada e atualizada. Diversos ajustes a suas chamadas foram feitos visando melhorar a conversão.
Como ela é usada nas telas e pela rotina em sua regra de negócios, basta atualizar o Aics e o ServAICS para melhorar sua precisão.
Obs.: Essa rotina não usa os serviços do Google e não gera nenhum risco de rastreamento pelos seus serviços.

Obtendo o SQL definido pelo usuário função TableSQL

24/08/2020 em Centro de Informações

Nota para audiência técnica.
A função TableSQL retorna o comando SQL definido no cursor informado. Nessa atualização, se o nome informado não for de um cursor do ambiente, porém, for de uma Vista definida no Centro de Informações, essa função já irá retornar o comando SQL pronto para uso.
Com isso, será possível criar regras nas quais o detalhe de implementação fique no banco de dados, sem a necessidade de alterar sua rotina a cada mudança (que seja possível na expressão SQL, é claro).
Basta atualizar o Aics.

Função para envio ao financeiro em suas regras

30/07/2020 em Centro de Informações

Descritivo para audiência técnica.
Quando houver uma regra do lado do servidor que precise processar o financeiro de um pedido da mesma forma que ocorre pelo AICS, agora a sua rotina poderá executar a seguinte função:.
Function GeraFinanceiroCOM(TabPedidos,TabPedprod, NomePedidos:String):boolean.
Onde, TabPedidos é o cursor com o pedido, TabPedprod com os itens, NomePedidos pode ser "pedidos" ou "pedos", a rotina pode gerar financeiros do Comercial ou Assistência.
Basta atualizar o ServAICS para esse uso, não válida para o Aics diretamente.

Função que facilita tratar arquivos CSV expandida

17/07/2018 em Centro de Informações

Nota para audiência técnica no Centro de Informações.
Arquivos CSV são arquivos com informações separadas por ";".
O próprio Excel aceita importar esse formato e o apresenta em planilha facilmente. Entretanto, um arquivo CSV é, basicamente, um arquivo texto formatado.
Existem algumas opções que podem gerar o arquivo separado por vírgulas ",". Isto é, o usuário pode gerar o arquivo de diversas formas. Desse problema é o que trata essa revisão da função.
Na primeira linha, é declarado como os dados são apresentados. Nas demais linhas, são geradas as informações (os dados, propriamente ditos).
Para facilitar a leitura de arquivos CSV, criamos uma função que extrai a informação de acordo com o título. Por exemplo:.
Se o arquivo fosse:
Nome;Cidade;UF << 1 linha.
Joao;Sao Paulo;SP << 2 linha em diante com dados.
Criamos uma função com a sintaxe:.
Function ExtractCSV(Titulo, Linha, Coluna:String):String.
Nesse exemplo, o resultado da chamada abaixo seria "SP":.
Mostra(ExtractCSV('Nome;Cidade;UF','Joao;Sao Paulo;SP','UF'));.
Claro que todos os dados da chamada poderiam estar em variáveis que viessem da leitura do arquivo CSV.
Nessa atualização, em função dos separadores presentes na chamada do Titulo, será escolhido, já na prioridade adequada: ";", em seguida "," e, por final, "|".
Isto é, o arquivo poderia ser:.
Nome,Cidade,UF << 1 linha.
Joao,Sao Paulo,SP << 2 linha em diante com dados.
Ou, ainda:.
Nome|Cidade|UF << 1 linha.
Joao|Sao Paulo|SP << 2 linha em diante com dados.
Basta atualizar o Aics e passar a utilizar a nova função em suas regras!

Maior facilidade em filtrar dados

23/05/2019 em Centro de Informações

O AICS possui diversos filtros, opções negativas, listas múltiplas etc. Nos filtros textuais, pode-se usar "*" como coringa em qualquer posição do texto.
Nesta atualização, melhoramos o filtro textual em diversos objetos. Agora, será possível filtrar diversas opções no mesmo campo. Por exemplo, se quiser uma lista de nomes que sejam João ou Maria, bastará filtrar por: joao,maria.
A vírgula será traduzida por um OU inclusive nas telas criadas nas regras de negócio locais.
Sem o uso da vírgula, nada se altera.
Basta atualizar o Aics.

Editor com sintaxe destacada adicionado

10/04/2019 em Centro de Informações

Nota técnica para usuários avançados.
Sendo o AICS baseado em servidores SQL, a montagem de comandos nessa sintaxe é muito comum, tanto pelo Centro de Informações, quanto em comandos pontuais pelo acesso ao servidor.
Nessa atualização do AICS, adicionamos um editor sensível à sintaxe SQL. Com isso, o texto ficará mais claro e será mais simples a criação de estruturas mais complexas. Ainda, o editor conta com balanceamento de parênteses, isto é, ele mostrará visualmente qual é o fechamento ou abertura associados bastando posicionar o cursor em um deles.
Esse recurso de balanceamento foi também adicionado ao próprio Editor do AICS.