TArScriptFrame é a classe de interação entre Argow e scripts.

O Argow tambem disponbibiliza:

TArScriptFrame

A cada execução de script é instanciada uma classe TArScriptFrame que pode ser acessada pela variável sf.

TArScriptFrame= class
public
  property ActiveCell: TArCell read // Célula ativa ou nil
  property inDebug: boolean read/write // Verdadeiro quando em modo depuração
  property inDesign: boolean read // Verdadeiro quando em modo design
  property inBatch: boolean read // Verdadeiro quando em modo batch ou autônomo
  property Context: TArActionContext read // Contexto do script
  property KeyAction: TArActionKey read // Tecla de ativação
  property MenuID: string read // Identificador do menu, dicAppMenu.itemID
  property UserConfigFile: string read // Nome do arquivo de configuração do usuário
  property UserConfigSave: boolean read // Se pode ou não salvar configurações do usuário
  property MonitorLog: boolean read/write // Enquanto T, mantem um log das mensagems do Monitor
  property MonitorFile: boolean read/write // Nome do arquivo para salvar o log
  procedure MonitorLogSave( const cFileName: string ): boolean // Salva o arquivo de Log e o limpa
  property ModuleName: string read // Nome do módulo
  property SolutionName: string read // Nome da solução
  procedure ExceptionDo( const cMsg: string ) // Gera um error com mensagem
  property ExceptionCode: integer read // Código do último erro, se houver
  property ExceptionMsg: string read // Mensagem do último erro, se houver
  property User: TArUserInterface read // Informação do usuário
  property License: TArLicenseInterface read // Informação do usuário
  property gVars: TArScriptGlobalVars read/write // Variáveis globais
  property window: TArWindow read // Acesso à janela ativa
  property report: TArReport read // Manipulação de relatório
  property eMail: TArSendEMail read // Gerenciamento de e-mail
  property shell: TArShellInterface read // Acesso ao Windows
  property ar: TArArgowInterface read // Acesso à janela principla de Argow
  property db: TArDataBaseInterface read // Acesso ao banco de dados
  property sv: TArStringVariant read // Funcões string e variant
  property math: TArMath read // rotinas de verificação
  property AbortRequested: boolean read/write // Quando atribuído true o processo é cancelado
      //(quando for uma função boolean é recomendado retornar false, em lugar de solicitar o cancelamento)

end

TArUserInterface

Esta classe da acesso aos dados do usuário logado.

TArUserInterface= class
public
  property name: string read // Nome do usuário, araUser.User_Name
  property fullName: string read // Nome completo do usuário, araUser.User_Real_Name
  property eMail: string read // e-mail do usuário, araUser.User_Email
  property ip: string read // Lista de IP ativos no computador araUserInfo.User_ID
      //(atualizado junto com os metadados).

  property id: integer read // Identificação do usuário, araUser.User_ID
  property profile: string read // Perfil ao qual o usuário pertence, araProfile.Prof_Name
  property profileID: integer read // Identificação do perfil, araUser.Prof_ID
  property isAdmin: boolean read // Verdadeiro quando o usuário é Admin e isPower
      //(ver dicConfig variável ADMIN_USER)

  property isPower: boolean read // Verdadeiro quando o usuário é Power, araUserInfo.User_is_Power
  property sessionId: string read // string de um GUID que identifica a sessão em execução.
  property auditMode: boolean read // Verdadeiro quando o usuário esta sendo Auditado
      //(ver araUser.Audit_Mode)

end

TArLicenseInterface

Esta classe da acesso aos dados da Licença ativa.

TArLicenseInterface= class
public
  property licenseTo: string read // Nome do cliente
  property module: string read // Nome do Módulo da licença
  property edition: TArEdition read // edição:
    //( areExpress, areBusiness, areAcademic, areProfessional, areEnterprise )
  property upToVersion: integer read // Versão do Argow permitida pela licença
  property validUntil: TDateTime read // Data de validade
  property hasInterProc: boolean read // Se a licença permite interProc
  property clientName: string read // Nome do cliente, quando OEM (areEnterprise)
  property clientId: string read // ID do cliente, quando OEM (areEnterprise)
end

TArDataBaseInterface

Esta classe da acesso ao banco de dados.

TArDataBaseInterface= class
public
  property ActiveDataSet: TArScriptDataSet read // Data set ativo ou nil
  property UserDataSet: TArScriptDataSet read // Data set para o usuário manipular
  property Server: string read // Valor de 'Data Source'
  property Catalog: string read // Valor de 'Initial Catalog'
  property Provider: TArDataBaseProvider read // Provedor de dados
    // TArDataBaseProvider= (ardbpUnknown, ardbpMSSql, ardbpOracle, ardbpInterbase, ardbpODBC)
  property ConnectionString: wideString read // Disponível se CONNECTION_STR_ON_SCRIPT for T em dicConfig
  function newDataSet(): TArScriptDataSet; // Retorna dataset. Não destruir (free)
  function now: TDateTime // Data e hora do servidor (quando disponível, se não = shell.now)
    Notar que a precisão é de +/- centésimos de segundos em relação ao servidor.
    //>--- Controle de Transação de Dados no Banco
  function BeginTran: boolean; // Retorna T, quando o Banco oferece transação e uma é iniciada
  function inTran: boolean;
  function commitTran;
  function RollBackTran;
    //>--- Recuperação de dados
  function valueFromSql( const cSql: string ): variant; // Retorna a célula A1
  function tryValueFromSql( const cSql: string; const vDefault: variant ): variant;
    // Se for Null ou houver erro na execução, retorna vDefault

  function rowFromSql( const cSql: string ): TVariantArray; // Retorna a primeira linha [0..Length(v)-1]
  function columnFromSql( const cSql: string ): TVariantArray; // Retorna a primeira coluna [0..Length(v)-1]
  function stringsFromSql( const cSql: string ): string; // Retorna a primeira coluna em
    // de todas as linhas separadas por ; e entre "

  property sqlLocal: boolean read/write // as funções acima, de recuperação de
    // dados, usam cursor local ou no servidor (default quando no DB Local)

  function execSP( const cStoredProcedure: string; const vParams: array of variant ): variant;
    // retorna RETURN_VALUE
  function execSql( const cSql: string ): boolean // Retorna T se executado sem erros
    //>--- Metadados
  function getResource( const cName, cStyle: string ): TMemoryStream // Retorna DicResource.resourceData
    // Procura pelo estilo indicado, logo pelo atual e, finalmente, por nil.
    // Se não encontrado, retorna NULL.
  function getConfigValue( const cVarName: string ): variant
  function setConfigValue( const cVarName, cVarValue, cVarDescription: string ): boolean
   // Retorna ou atribue a coluna VARNAME de dicConfig. Primero procura para o módulo ativo,
   // se não achar, procura para ALL, se não achar: getConfigValue retorna NULL;
   // já setConfigValue insere uma linha para o módulo ativo

    //>--- Interação
  function display( const cTitle, cStatement, cFilter, cIcon: string;
   const bDetails, bModal: boolean ): variant;
   // Retorna a chave primária da linha selecionada do 'conjunto de dados' criado com
   // cStatement e filtrada por cFilter
   // (que pode ser interativo); ou false, se nada for selecionado.
   // A janela, que pode ser modal (bModal) terá o título cTitle e ícone cIcon (armazenado como recurso),
   // e, eventualmente, na parte inferior serão mostrados os detalhes (bDetails), como na janela PAD
end

TArScriptDataSet

Esta classe da acesso aos dados tabulares.

TArScriptDataSet= class
public
  function open( const cCommand: string; const bLocal: boolean ): boolean;
    // abre o 'conjunto de dados' resultado do comando cCommand e
    // traz o resultado ao computador local se bLocal for verdadeiro

  function openTable( const cTableName: string; const iMaxRec: integer;
    const cWhere: string ): boolean;
    // abre a tabela com o determinado número de registros (0=todos)
    // susando o filtro cWhere

  function bof: boolean; // Verdadeiro quando o primeiro registro é atingido
  function eof: boolean; // Verdadeiro quando o último registro é atingido
  function seek( const cFieldNames: string; const values: array of const ): boolean;
     // equivalente a dataset.locate( cFieldNames, _ToVariant( values ), [ loCaseInsensitive ] );
  procedure refresh( const bCurrent: boolean); // Atualiza a tabela ou o registro corrente
  procedure first; // Ativa a primeiraseguinte linha
  procedure last; // Ativa a linha última
  procedure next; // Ativa a seguinte linha
  procedure prior; // Ativa a linha anterior
  procedure close; // Fecha o conjunto de dados
  procedure edit; // Habilita a edição da linha ativa
  procedure append; // Adiciona um registro vazio
  procedure post; // Envia as alterações ao banco
  procedure cancel; // Descarta as alterações
  procedure recordCount: integer read // -1 ou número de registros
  procedure keyValue: variant read/write // Valor da chave primária da linha corrente
  property isEditing: boolean read // Verdadeiro quando está editando, válido até depois do post
  property isInserting: boolean read // Verdadeiro quando está inserindo, válido até depois do post
  property isAppending: boolean read // Verdadeiro quando está inserindo, válido até depois do post
  property tableName: string read // Nome da tabela aberta
  property caption: string read // Alias da tabela aberta
  property dataSet: TDataSet read // Acesso ao dataset do Delphi
  property active: boolean read // Verdadeiro quando ativo
  property master: TArScriptDataSet read // dataset mestre, quando este dataset for detalhe
  property details[ const cName: string ]: TArScriptDataSet read // datasets detalhes
  property context: TArActionContext read // Contexto do dataset
  property uiFilter: TArScriptUiFilter read // Acesso ao filtro Interativo
  property row[ const cColumnName: string ]: TArField read/write // Acesso a linha ativa
  property oldValues[ const cColumnName: string ]: Variant read // Acesso aos
    // valores anteriores a edição (válidos até no evento aPost)

  property values[ const cColumnName: string ]: Variant read/write default
    // Acesso aos valores durante edição e inserção
  property changed[ const cColumnName: string ]: Boolean read // Verdadeiro quando
    // a valor da coluna mudou

  property refreshRequested: TArDataSetRefreshType read/write
    // Tipo de refresh a ser efetuado ao terminar o processo
  property isProtected: boolean read/write // ver dicTable.isProtected
  property useMetadata: boolean read/write // Os metadados da tabela e colunas são ignorados
   // Restrição/Acesso Leve:
  property allowEdit: boolean read/write // Permissão de edição
  property allowInsert: boolean read/write // Permissão de inserção
  property allowDelete: boolean read/write // Permissão de remoção
  property allowPrint: boolean read/write // Permissão de impressão
  property allowMulti: boolean read/write // Permissão de edição de múltiplas linhas
end

TArField

Esta classe extende a classe padrão TField.

TArField= class( TField )
public
  property allowEdit: boolean read/write // Permissão de escrita, quando edição
  property allowInsert: boolean read/write // Permissão de escrita, quando em inserção
  property hidden: boolean read/write // Oculta/mostra a coluna
  property isBlob: boolean read // Publica TField.isBlob que é uma class function
end

TArCell

Esta classe da acesso ás propriedades visuais da célula ativa (tem valor somente no evento onPaint)

TArCell= class
public
  property fieldName: string read // Nome do campo (coluna) ativa
  property backColor: TColor read/write // Cor de fundo
  property fontColor: TColor read/write // Cor da fonte
  property alignment: TAlignment read/write // Alinhamento (taLeftJustify, taCenter, taRightJustify)
  property text: string read/write // Texto a mostrar
  property values[ const cName: string ]: Variant read // Valores das colunas da linha ativa
  property value: variant read // Valor da célula
  property section: TArDisplaySection read // Seção da célula ativa
  property rowIndex: integer read // Indice da linha ativa (quando em planilha e LoadAllRecords)
  property selected: boolean read // Verdadeiro quando selecionada
  property focused: boolean read // Verdadeiro quando com foco
  property forGrid: boolean read // Verdadeiro quando as propriedades foram para a planilha
end

TArScriptGlobalVars

Esta classe da acesso ás variáveis globais.

TArScriptGlobalVars= class
public
  function getFromUser( const cTitle, cGroup, cIcon: string ): boolean;
      // Abre janela (com ícone armazenado em recurso) para o usuário informar os dados
  procedure saveLocal; // Salva os valores das variáveis no arquivo do usuário
  procedure saveGlobal; // Salva os valores das variáveis no arquivo do global
  procedure deleteAll(); // Apaga todas as variáveis
  procedure deleteGroup( const cGroup: string ); // Apaga o grupo de variáveis
  procedure deleteVar( const cFullNameOrGroup, cVarName: string ); // Apaga a variável
  procedure clearGroup( const cGroup: string ); // Limpa o contéudo das variáveis
    do grupo (value:= Unassigned)

  procedure clearVar( const cFullNameOrGroup, cVarName: string ); // Limpa o contéudo da variável
  function existsVar( const cFullNameOrGroup, cVarName: string ): boolean; // T se a variável existe
  property vars[ const cFullNameOrGroup, cVarName: string ]: TArScriptGlobalVar read/write default
    // acessa as variáveis
  property values[ const cFullNameOrGroup, cVarName: string ]: variant read/write // acessa os valores
  property v[ const cFullName: string ]: variant read/write // "grupo.nome"
end

TArScriptGlobalVar

Esta classe da acesso às variáveis globais individualmente

TArScriptGlobalVar= class
public
  property value: variant read/write // Valor
  property size: integer read/write // Quando for string, tamanho máximo
  property order: int read/write // Ordem na janela de entrada (0, 1,...)
  property list: string read/write // Lista de opções:
    // (separadas por ; e entre " se o item conter espaço)

  property index: int read/write // Indice na lista (-1, 0, 1,...)
  property script: string read/write // Função a executar
    // Recebe o valor da variável como variant, e retorna o novo valor
  property caption: string read/write // Rótulo na janela de entrada
  property displayMask: string read/write // ver dicfield.displayMask
  property editMask: string read/write // ver dicfield.editMask
  property required: boolean read/write // Obrigatório informar na janela de entrada
  property readOnly: boolean read/write // Valor não modificável
end

TArScriptUiFilter

Esta classe da acesso às variáveis do filtro Interativo

TArScriptUiFilter= class
public
  property raw: string read/write // Conteúdo de dicAppMenu.TableFilter
  property where: string read // O resultado que será aplicado ao Where
  property fields[ fieldName: string ]: TArScriptUiFilterField read default;// Coleção dos campos
  property count: integer read // Quantidade de campos
  property loadAllRecords: boolean read/write // Carregar os todos os registros
  property loaded: boolean read // Verdadeiro quando aplicou o resultado (Where está pronto)
end

TArScriptUiFilterField

Esta classe da acesso aos campos do filtro Interativo

TArScriptUiFilterField= class
public
  property left: TArScriptUiFilterFieldData read // Campo "esquerdo" (ou superior na janela)
  property right: TArScriptUiFilterFieldData read // Campo direito (ou inferior na janela)
  property fieldName: string read // Nome da coluna
  property dataType: TFieldType read // Tipo de dado
  property allowRange: boolean read/write // Verdadeiro quando é permitido intervalo
end

TArScriptUiFilterFieldData

Esta classe da acesso ao um "lado" de um campo do filtro Interativo

TArScriptUiFilterField= class
public
  procedure clear // Limpa o valor
  property value: variant read/write // Valor
  property operator: TArUiFilterOperator read/write // Operador
end

TArUiFilterOperator= (
        arfoNone, arfoEqual, arfoDifferent, arfoLessThan, arfoLessThanOrEqual,
        arfoGreaterThan, arfoGreaterThanOrEqual, arfoNull, arfoNotNull,
        arfoStartsWith, arfoContains, arfoEndsWith );

TArWindow

Esta classe da acesso à janela ativa.

TArWindow= class
public
  function postMessage( msg, wparam, lparam: Longint ): boolean; // Envia uma mensagem
  property closeRequested: boolean read/write // Solicita que a janela seja fechada
  property cardActive: boolean read // Verdadeiro quando a ficha está ativa (em uma janela PAD)
  property gridActive: boolean read // Verdadeiro quando a planilha está ativa (em uma janela PAD)
  property activeFieldName: string read/write // Nome completo (Tabela.Coluna) da coluna ativa do grid
    // que exibe a tabela
Tabela.
  property selectedKeys: TStringList read // Chaves primárias (PK) das linhas selecionadas
    // na planilha ativa da janela PAD ou Commander. Dispoível se
    // dicTable.LoadAllRecords = 'T'. Se não sf.window.selectedKeys.count = 0.

end

TArReport

Esta classe da acesso ao relatório.

TArReport= class
public
  function open( cDeviceName: string;
         // impressora: printer, tela: screen, edição: design ou arquivo: pdf
     cReportName: string; // Nome do relatório (ItemName)
     iFolder: integer; // ID da pasta ou -1 (FolderID)
     cFileName: string; // Nome do arquivo resultado
     cScriptName: string; // Script a executar onOpen (ver ar.execute por exemplos)
   ): boolean
  property values[ const cFieldName: string; const index: integer ]: variant read/write default
    // Valores dos filtros; index: [0..n] (se for list: itens separados por vírgula ou um por index)
  property filter[ const cFieldName: string ]: boolean read/write // Set T, filtra
    // se não mostra todas as linhas

  property showFilterDialog: boolean read/write // Verdadeiro, mostra a janela de filtros
  property showPrinterDialog: boolean read/write // Verdadeiro, mostra a janela da impressora
  property fileName: string read/write // Nome do arquivo
end

TArMath

TArMath= class
public
  function cnpj( const cValue: string ): boolean; // Valida CNPJ (true se for vazio)
  function cpf( const cValue: string ): boolean; // Valida CPF (true se for vazio)
  function crc( const cStr: string ): cardinal; // crc 32
  function hash( const cStr: string ): string; // Hash SHA 256
end

TArStringVariant

TArStringVariant= class
public
  function replace( const cString, cSearch, cReplace: string;
      const qQuote: char; const bMatchWord: boolean ): string;
      // Sustitue as ocorrências de cSearch por cReplace em cString
      // Somente em texto fora das aspas qQuote (se for #1, ignorar aspas; #0, usar " ou '),
      // Somente quando cSearch não termina em letra, número ou '_' (bMatchWord)
  function extenso( const xValor: double ): string; // O valor em extenso
  function hasText( const cText: string; const v: variant): boolean; // Retorna true se v conter o texto
  function quote( const v: variant; const qQuote: char ): string; // Retorna v como texto entre aspas simples
  function asString( const v: variant ): string; // Retorna v como um string. Se for Boolean, T ou F.
      // se for vazia, nula ou desconhecida, nada ('').
  function isEmpty( const v: variant ): boolean; // <-  trim( toString( v ) ) = ''
  function isTrue( const v: variant ): boolean; // Verdadeiro se v for T/t/1
  function isNullDef( const v, vDefault: variant): variant; //Se v for empty ou null, retorna vDefault;
      // se não for, retorna v
  function isNull( const v: variant ): boolean; // Retorna true se v for empty ou null
  procedure clear( var v: variant ); // = varClear
  function encodeHtml( const cStr: string ): string; // Códifica >, <, " e &
  function toStr( const ms: TStream ): ansiString; // Converte o Stream em uma string ansi
end

TArSendEMail

Esta classe da acesso API MAPI do Windows para enviar e-mail.

TArSendEMail= class
public
  function send( const cToEmail, cToName, cSubject, cBody, cFileName: string ): boolean
  procedure addFile( const cFileName: string );
  procedure addTo( const cEmail, cName: string; const bCopy, bBlind: boolean );
  procedure clear;
  property result: integer read // Código de resultado da função send (Ver windows.MapiSendMail)
  property fileCount: integer read // Quantidade de arquivos anexados
  property fromName: string read/write // Quem envia, default sf.UserName
  property fromEMail: string read/write // Email de quem envia, default sf.UserEmail
  property receiptRequested: boolean read/write // Solicita confirmação de leitura
  property openDialog: boolean read/write // Verdadeiro, abre a janela de e-mail
end

TArShellInterface

Esta classe da acesso ao Windows.

TArShellInterface= class
public
  function deleteFile( const cFileName: string; const bToRecycle: boolean ): boolean;
      // windows.deleteFile ou windows.SHFileOperation
  function deleteFiles( const cPath, cFileSpec: string; const bToRecycle: boolean ): integer;
      // Exclui os arquivos que correspondem ao padrão cFileSpec na pasta cPath
  function listFiles( const cPath, cFileSpec: string; ): TStringList;
      // Lista de nomes dos arquivos da pasta cPath com padrão cFileSpec
  function copyFile( const cFileName, cNewFile: string;
      const bFailIfExists, bWithProgress: boolean ): boolean;
      // windows.copyFileEx ou windows.SHFileOperation
  function moveFile( const cFileName, cNewName: string;
      const bFailIfExists, bWithProgress: boolean ): boolean;
      // windows.moveFileEx ou windows.SHFileOperation
      // Se cNewName termina com \, é usado o mesmo nome.
  function parseFilename( const cFullName: string;
      var cDrive, cFolder, cName, cExt: string ): string;
      // retorna nome.ext
  function renameFile( const cFileName, cNewName: string ): boolean;
      // windows.moveFile
  function crcFile( const cFileName: string ): cardinal;
      // CRC32 do arquivo (compatível com PKZIP)
  function moduleVersion( const cFileName: string ): array of variant;
      // Versão do módulo (dll, exe) v[0].v[1].v[2].v[3] (v[0] == null se erro)
  function filePermission( const cFileName: string; cosnt bCanWrite, bOpenExlusive: boolean ): boolean;
      // Confere se o usuário pode abrir o arquivo com os atributos especificados
  function fileExists( const cFileName: string ): boolean;
  function folderExists( const cFolderName: sting; const bCreateIfNot: boolean ): boolean;
  function tempFile( const cPath, cPrefix: string; const iUnique: integer ): string;
      // windows.GetTempFileName
  function tempFolder: string;
  function errorToStr( const iError: cardinal ): string;
  function call( const cLibraryName, cFunctionName: string; var cParam: string;
      const unLoad: boolean ): integer;
      // Disponível com InterProc habilitado. Veja também ar.call
      // Chama a função cFunctionName da DLL. Se '' e unLoad=T, descarga o módulo.
      // pParam (o texto de um TStringList, ou param separados por #13#10)
      // pode ser modificada, mas não deve aumentar o tamanho.

      // Protótipo: function( pParam: pWideChar; var iSize: integer ): integer; stdcall;
  function execute( const cOperation, cFile, cParameters, cPath: string;
      const bModal: boolean ): cardinal;
      // Disponível com InterProc habilitado.
      // Usar cOperation = 'run' para programas console sem janela (ver windows.CreateProcess)
      // Outros valores (como 'open', 'print', 'explore') (ver windows.shellExecuteEx)
  function keyIsPressed( const iVK_KEY: integer ): boolean;
  procedure beep;
  procedure sayError( const cMessage, cTitle: string ); //| Mensagens usando a janela do windows
  procedure sayInfo( const cMessage, cTitle: string ); // | Use \n
  procedure sayWarn( const cMessage, cTitle: string ); // | para iniciar una linha
  function sayQuestion( const cMessage, cTitle: string ): boolean;
  function say( const cMessage, cTitle: string;
      const iFlags:[sayBtn Or sayIcon]longint):[sayId]integer;
      { Flags:
        sayBtnOk, sayBtnOkCancel, sayBtnYesNo, sayBtnYesNoCancel, sayBtnRetryCancel, sayBtnAbortRetryIgnore
        sayIconError, sayIconWarn, sayIconQuestion, sayIconInfo
        sayIdOk, sayIdYes, sayIdNo, sayIdCancel, sayIdAbort, sayIdRetry, sayIdIgnore
        MB_DEFBUTTON1 = $00000000; MB_DEFBUTTON2 = $00000100; MB_DEFBUTTON3 = $00000200;

  function newGUID: string; // retorna um novo GUID como string
  function millisecOfToday: cardinal; // retorna quantidade de milisegunds transcurridos no dia
  function now: TDateTime read // Data e hora do pc (ver db.now)
  function idleMillisec: cardinal; // retorna quantidade de milisegunds desde últito evento de entrada
  property clipboard: string read/write; // acesso ao clipboard como string
  property exitCode: integer read/write
// ExitCode da Aplicação
  property lastError: cardinal read/write
// acesso ao windows LastError
  property lastExitCode: cardinal read // ExitCode, quando execute for modal
  property userName: string read // nome do usuário logado no Windows
  property pcName: string read // nome do computador
  property isRemoteSession: boolean read // Verdadeiro quando em uma sessão remota
  property decimalSeparator: char read // caractere separador decimal
  property dateSeparator: char read // caractere separador de data
  property paramCount: integer read // quantidade de parâmetros na linha de comando
  property param[ vNameOrIndex: string|integer ]: variant read // retorna o parâmetro index de execução
        do Argow ou, a parte value de: -<name>:<value>. Se não existir, retorna Null.
end

TArArgowInterface

Esta classe da acesso a janela principla de Argow.

TArArgowInterface= class
public
  property status: string read/write // Texto da barra de status
  property version: string read // Versão do SF, Maior.Menor, nas ferramentas (como Studio): Maior.?
  property hasInterProc: boolean read // Verdadeiro quando a licença habilitar InterProc
  property exeFolder: string read // pasta do executável (termina com \)
  property exeName: string read // nome do executável
  property exeVersion: array of variant read // versão do executável (v[0].v[1].v[2].v[3])
  property style: string read/write // Estabelece o estilo usado na interface (dicResource.Style)
  property tip: string read/write // Texto a ser mostrado no rodapê (quando registrado)
      // (ver tambem TODAYS_TIP)
      // sf.ar.tip:= 'Argow ' + sf.ar.version + ' Catálogo: ' + sf.db.Server + '.' + sf.db.Catalog;
  function doMenu( const cItem: string ): boolean; // Abre o item de menu, ver menuEnabled
  property menuEnabled[ const cItem: string ]: boolean read/write // Retorna ou atribui
      // o estado do item de menu
      // cItem puede ser a PK do menu (dicAppMenu) ou o nome do menu (dicAppMenu.MENUNAME)
      // ou um dos itens de menu internos (ver araMenuAccess)
      // Ver ver dicConfig ALLOW_SCRIPT_TO_DISABLE_MENU.
  property progress: word read/write // Posição da barra de progresso
  property maxProgress: word read/write // Máximo da barra de progresso (padrão 100)
  procedure stepProgress; // Incrementa em um a barra de progresso
  procedure doEvents; // Desabilita a janela e processa as mensagens, reativar com sf.ar.status=''
  procedure sendToMonitor(const cProcess, cContext, cValue: string); // Envia os dados ao Monitor
  procedure refreshTables( const cTablesName: string ); // Atualiza a lista
      // (separada por ,) de tabelas (e suas dictable.views) abertas
  function updateMetadata( const cTableName: string ): boolean; // Atualiza a tabela
      // do dicionário ('' = todas)
  function sendMessage( cosnt msg, wparam, lparam: Longint ): boolean; // Envia a mensagem
      // a janela principal
  function displayText( const cText, cTitle, cIcon, cExt: string; const bModal: boolean ): boolean;
      // Abre janela, com Título e ícone (armazenado como recurso) modal ou não,
      // para exibir o texto no formato cExt:
      //    htm, rtf, txt, ini, sql, xml, pas, frm ou src (código fonte html)
  function displayResource( const cName, cStyle, cTitle, cIcon: string; const bModal: boolean ): boolean;
      // Abre janela, com Título e ícone (armazenado como recurso) modal ou não,
      // para exibir o recurso de dicRecurso de nome e estilo indicado
  function call( const cLibraryName, cFunctionName: string; var cParam: string;
      const unLoad: boolean ): integer;
      // Disponível com InterProc habilitado. Veja também shell.call
      // Chama a função cFunctionName da DLL cLibraryName. Se o nome da função for branco ('') e
      // unLoad true, a DLL é finalizada.
      // pParam pode ser modificada, mas não pode aumentar o tamanho.
      // Protótipo: function( const sf: TArDllFrame; pParam: pChar; var iSize: integer ): integer; stdcall;
      // A unit arDllAPi.pas da suporte a criação das DLL que podem usar os componentes Delphi Star
      // Antes de Argow terminar, procura a função argow_end(): integer; stdcall; e, se existir e chamada
  function send( const cExeName, cProcName: string; const iCommand: word;
      const buffer: string ): integer;
      // Disponível com InterProc habilitado. Veja também shell.execute
      // Requer o assembly dotNet argow.interproc.dll
      // Abre o programa cExeName e estabelece um canal duplo de comunicação com o processo cProcName.
      //   Assim é possível enviar comandos com textos ou buffers definidos pelo programador.
      //   iCommand = 0: descontecta;
      //   iCommand em [1..125] o buffer é enviado como um texto Unicode é recibido
      //       como um string dotNet (argow.interproc.ArMessageType.user).
      //   iCommand em [126..150] o buffer é enviado e recebido como byte[] (ArMessageType.btye).
      // Após aberto, Argow fica a escuta para, por exemplo, executar scripts.
  function execute( const cScript: string ): integer;
      // Executa o script scriptName[.function][(<param1>,<param2><param3>...)].
      //   Onde scriptName está em dicScript e, opcionalmente, contém a função ou procedure function.
      //   Para permitir chamadas recursivas, veja ALLOW_RECURSIVE_SCRIPT.

      //   Os parâmetros, opcionais, são separados por virgulas:
      //     exemplo.teste( 1728, 891.9, "string", 2015/12/12, true, NULL )
      //       integer: números e -
      //       float: números, - e ponto [.]
      //       string: entre aspas ["] ou [']
      //       guid: entre chaves [{ }], o valor é validado, mas tratado como string (ver stringToGuid)
      //       date: yyyy/mm/dd hh:nn:ss.zzz (pode especificar partes das horas)
      //       bool: true/false
      //       Null: NULL
end

Enumerados Argow

TArActionContext

Contexto no qual o script esta sendo executado.

TArActionContext=(
  aracUnkown,
  aracMenu,
  aracMaster,
  aracDetail,
  aracLookup,
  aracTreeMaster,
  aracWhere,
  aracFilter,
  aracProcess,
  aracShowSelect,
  aracScript,
  aracAppStart,
  aracAppEnd,
  aracHtml,
  aracReport,
  aracDll,
  aracInterProc
)

TArActionKey

Tecla que disparou o evento.

TArActionKey=(
  arakNone,
  arakConstrain,
  arakFieldEvent,
  arakCalculated,
  arakExport,
  arakWizard,
  arakView,
  arakOpen,
  arakPrint,
  arakEdit,
  arakInsert,
  arakDelete,
  arakPost,
  arakOnScroll,
  arakOnFilter,
  arakOnView
)

TArDataSetRefreshType

Tipo de refresh a efetuar no dataset ativo após execução do script.

TArDataSetRefreshType=(
  arrtNone,
  arrtCurrent,
  arrtSelected,
  arrtRequery
)

TArDisplaySection

Tipo de seção que a célula pertence.

TArDisplaySection=(
  ardsCardCategory,
  ardsCardCaption,
  ardsCardValue,
  ardsGridHeader,
  ardsGridBody,
  ardsGridFooterMain,
  ardsGridFooterGroup
)