CONECTIVIDADE

Pode ser complicado e pouco prático tentar manter seus dados em um arquivo de modelo LINGO.

Na maioria casos, os dados do seu modelo residirão externamente em arquivos de texto, planilhas e bancos de dados.

Também uma solução gerada pelo LINGO é de pouca utilidade se você não pode exportá-lo para outros aplicativos.

Por estas razões, LINGO tem muitos métodos para ajudá-lo a mover as informações para dentro e para fora do aplicativo.

O foco principal é ilustrar como mover dados para dentro e para fora do LINGO através do uso de:

  1. Com arquivos ASCII baseados em texto,  
  2. Com planilhas, veremos como usar planilhas.
  3. Com bancos de dados,  para manter os dados do seu modelo.
  4. Interface com outras aplicações

1. Incluindo arquivos externos com @FILE

A função de interface @FILE no LINGO permite que você inclua dados de arquivos de texto externos em qualquer lugar em seu modelo. Isso é particularmente útil para incorporar dados armazenados em arquivos de texto em seus conjuntos e seções de dados.

A sintaxe da função @FILE é: @FILE (‘nome do arquivo’) onde nome do arquivo é o nome do arquivo do qual incluir o texto. Quando esta função é encontrada em um modelo, LINGO continuará a tirar o texto deste arquivo até encontrar a marca de fim de arquivo ou uma marca de fim de registro LINGO.

Para referências @FILE subsequentes no mesmo modelo que usa o
mesmo nome de arquivo, o LINGO retoma a entrada do arquivo no ponto em que foi interrompido.

 Aninhamento de Chamadas de função @FILE (incorporar um @FILE em um arquivo que é chamado por @FILE) não são permitidas.

Usando @FILE em um modelo de transporte, como exemplo, usaremos o modelo de transporte Wireless Widgets:

Observe que os dados aparecem em dois lugares no modelo. Primeiro, existem as listas de depósitos e fornecedores na seção de conjuntos. Em segundo lugar, há dados sobre capacidade, demanda e custos de envio na seção de dados.

Para isolar completamente os dados de nosso modelo, gostaríamos de movê-los para um arquivo de texto externo e modificar o modelo para que ele extraia os dados do arquivo de texto usando a função @FILE. A seguinte versão modificada do modelo tem todos os dados removidos. As alterações são representadas em negrito:

Ver mais detalhe no capitulo 8 do LINGO User’s Manual.

2. Interface com a planilha usando @OLE

 

@OLE é uma função de interface para mover dados para frente e para trás do Excel usando transferências baseadas em OLE.

As transferências OLE são transferências diretas de memória e não fazem uso de arquivos intermediários.

Ao usar @OLE para exportações, o LINGO carrega o Excel, diz ao Excel para carregar a planilha desejada e envia intervalos de dados contendo valores de solução para a planilha.

@OLE pode exportar intervalos unidimensionais e bidimensionais (intervalos retangulares que ficam em uma única planilha no Excel), mas não pode exportar intervalos descontínuos ou tridimensionais (intervalos que abrangem mais de uma planilha no Excel).

Para exportar soluções com @OLE, você faz chamadas para @OLE na seção de dados do seu modelo. Estas instruções de exportação @OLE são executadas cada vez que seu modelo é resolvido.

Ver mais detalhe no capitulo 9 do LINGO User’s Manual.

3. Interface com Banco de Dados @ODBC

 

As planilhas são boas no gerenciamento de pequenas a moderadas quantidades de dados. Uma vez que seus modelos começam a lidar com grandes quantidades de dados, os sistemas de gerenciamento de banco de dados (DBMSs) são, sem dúvida, a ferramenta de escolha. Além disso, em muitas situações de modelagem de negócios, você descobrirá que a maioria, senão todos, os dados estão contidos em um ou mais bancos de dados.

Por essas razões, o LINGO oferece suporte a links para qualquer DBMS que tenha um driver ODBC (Open DataBase Connectivity) (efetivamente todos os DBMSs populares).

ODBC define uma interface padronizada para DBMSs.  Dada esta interface padronizada, o LINGO pode acessar qualquer banco de dados que suporte ODBC.

LINGO tem uma função de interface para acessar bancos de dados. O nome desta função é @ODBC.

A função @ODBC é usada para importar e exportar dados para qualquer fonte de dados ODBC.

@ODBC está atualmente disponível apenas nas versões do LINGO para Windows.

Ver mais detalhe no capitulo 10  do LINGO User’s Manual.

3. Interface com outras aplicações @USER

 

Embora o LINGO tenha uma interface interativa conveniente e uma grande biblioteca de funções que facilitam a configuração e a solução de modelos, pode haver momentos em que você gostaria de agrupar a funcionalidade do LINGO em seus próprios aplicativos ou chamar funções de dentro do seu LINGO modelos que foram escritos em uma linguagem de programação externa.

O LINGO usa o padrão Dynamic Link Library (DLL) no Windows para fornecer a você um “gancho” para acessar a funcionalidade do LINGO de dentro de seus próprios aplicativos personalizados. Isso dá a você a capacidade de construir front-ends específicos de aplicativos para o LINGO que permitem que usuários ingênuos insiram dados e visualizem soluções de uma forma simples e familiar, sem ter que se preocupar com os detalhes da modelagem LINGO.

Seu aplicativo lida com os detalhes de condução do LINGO em segundo plano, invisível para o usuário.

O LINGO também permite fornecer funções personalizadas no formato DLL que você pode chamar de qualquer modelo com a função @USER.
Na seção seguinte, The LINGO Dynamic Link Library, documentamos como chamar a DLL LINGO para adicionar a funcionalidade do LINGO aos seus próprios aplicativos.

Em seguida, na seção Funções definidas pelo usuário, mostraremos como construir uma função em uma linguagem de programação externa e chamá-la a partir de um modelo LINGO com a função @USER.

A biblioteca de links dinâmicos LINGO
As versões do LINGO para Windows incluem uma DLL que pode ser chamada. A capacidade de chamar uma DLL é um recurso padrão de todos os ambientes de desenvolvimento do Windows (por exemplo, Visual Basic, Delphi e Visual C ++).

A DLL LINGO é fornecida em configurações de 32 bits ou 64 bits e, portanto, será executada em todas as versões atuais do Windows (Win32 e Win64). A interface para a DLL LINGO é relativamente simples e oferece a capacidade de executar um script de comando LINGO de dentro de seu aplicativo.

Dado que você pode acessar todos os principais recursos do LINGO a partir de um script de comando, a interface LINGO DLL é muito poderosa. No entanto, você precisará se familiarizar com a linguagem de comando do LINGO para construir scripts de comando úteis.

Para obter mais detalhes sobre os comandos disponíveis na linguagem de comando, consulte Comandos da linha de comando.

Para obter um exemplo de arquivo de script, consulte Um exemplo de script de comando.

Quando o LINGO é instalado, vários exemplos de como chamar a DLL também são instalados.

Esses exemplos podem ser encontrados na pasta Amostras de programação abaixo da pasta principal LINGO.

Você encontrará exemplos para cada um dos seguintes ambientes de desenvolvimento:

  • Visual C/C++
  •  Visual Basic
  •  Excel
  •  FORTRAN
  • ASP .NET
  •  C# .NET
  •  VB .NET
  •  Delphi
  • Java

Usuários de outros ambientes de desenvolvimento também estarão interessados nestes exemplos de programação.

Muitas das ideias apresentadas são transportadas para outros ambientes de desenvolvimento.

Staff-Scheduling Example Using the LINGO DLL

Para ilustrar a interface com a DLL LINGO, criaremos exemplos usando as linguagens de programação Visual C ++ e Visual Basic. Construiremos uma caixa de diálogo semelhante à seguinte:

O usuário insere os requisitos de equipe nas células da coluna Necessidades e pressiona o botão Solve.

O aplicativo então extrai os requisitos de definição de equipe da caixa de diálogo, passa-os junto com um modelo para a DLL LINGO para solução e coloca os resultados de volta na caixa de diálogo para exibição.

Especificamente, ele mostra o número de funcionários que devem começar em cada dia na coluna Início, o número de funcionários em serviço na coluna em serviço e o número total de funcionários necessários na célula Total.

Como exemplo, aqui está como a caixa de diálogo aparecerá após uma execução de amostra:

Ver mais detalhe no capitulo 11  do LINGO User’s Manual.