Está en la página 1de 219

SUMRIO

INTERPRETADOR
XBASE

....................................................................................... 5

Necessidades de Software ........................................................................................... 6 Necessidades de Hardware .......................................................................................... 6

PROGRAMAO ................................................................................................... 7
Estrutura Bsica de Programas .......................................................................................... 7 Operadores ................................................................................................................... 8 Funes e Procedures .................................................................................................. 8 Estruturas de Controle ................................................................................................... 9 Variveis ........................................................................................................................ 9 Tipos de Dados ............................................................................................................. 9 Macros ........................................................................................................................ 10 Arrays .......................................................................................................................... 10 Blocos de Cdigo ........................................................................................................ 10 Compilao pelo RDMAKE ......................................................................................... 11 Configurao no Menu ..................................................................................................... 12

DIFERENAS ENTRE RDMAKE DOS E WINDOWS .................................................... 13


Principais Diferenas ........................................................................................................ 13 Um novo modo de programar a interface ......................................................................... 14 Criando programas nicos ................................................................................................ 18 O que muda em relao a impresso ............................................................................... 27

FUNES PARA O INTERPRETADOR XBASE .............................................................. 29


AbreExcl ...................................................................................................................... 30 Activate Dialog ............................................................................................................ 31 Aleatorio ...................................................................................................................... 32 Avalimp ....................................................................................................................... 33 Aviso ............................................................................................................................ 35 AxCadastro ................................................................................................................. 36 @ n1,n2 BmpButton .................................................................................................... 37 @... Bitmap... Size ...................................................................................................... 38 @...To...Browse ........................................................................................................... 39 @...Button ................................................................................................................... 40 Cabec .......................................................................................................................... 41 CalcEst ........................................................................................................................ 43 CalcSaldo .................................................................................................................... 44 Capital ......................................................................................................................... 45 CGC ............................................................................................................................ 46 @...CheckBox...Var ..................................................................................................... 47 ChkFile ........................................................................................................................ 48 Close ........................................................................................................................... 50 CloseOpen .................................................................................................................. 51 ClosesFile .................................................................................................................... 52

@...ComboBox...Itens...Size ....................................................................................... 53 Comp3 ........................................................................................................................ 54 Condicao ..................................................................................................................... 55 ConfirmSX8 ................................................................................................................. 56 Contar ......................................................................................................................... 57 ConvMoeda ................................................................................................................. 58 Credito ......................................................................................................................... 59 CriaTrab ...................................................................................................................... 60 CriaVar ........................................................................................................................ 62 DataValida ................................................................................................................... 63 Debito .......................................................................................................................... 64 DeComp3 .................................................................................................................... 65 @...To...Dialog ............................................................................................................. 66 Digito11 ....................................................................................................................... 67 DrawAdv3D ................................................................................................................. 68 DrawAdvWindow ......................................................................................................... 69 EANDigito ................................................................................................................... 70 Entre ............................................................................................................................ 71 Estrut ........................................................................................................................... 72 Execute ....................................................................................................................... 74 ExistChav .................................................................................................................... 75 ExistCpo ...................................................................................................................... 77 ExistIni ......................................................................................................................... 79 Extenso ....................................................................................................................... 80 FinNatOrc .................................................................................................................... 81 FinNatPrv .................................................................................................................... 82 FinNatRea ................................................................................................................... 83 Formula ....................................................................................................................... 84 FuncaMoeda ............................................................................................................... 86 @... GET ..................................................................................................................... 87 GetAdvFval ................................................................................................................. 88 GetMV ......................................................................................................................... 90 GetSX8Num ................................................................................................................ 91 GravaOrcado ............................................................................................................... 93 Help ............................................................................................................................. 94 ImpCadast ................................................................................................................... 95 IncRegua ..................................................................................................................... 96 IncProc ........................................................................................................................ 97 IndRegua ..................................................................................................................... 98 LetterOrNum ............................................................................................................... 99 MarkBrowse .............................................................................................................. 100 MBrowse ................................................................................................................... 101 Media ........................................................................................................................ 102 MesExtenso ............................................................................................................... 103 Modelo2 .................................................................................................................... 104 Modelo3 .................................................................................................................... 108 MontaF3 ..................................................................................................................... 111 MovimCC .................................................................................................................. 112 Movimento ................................................................................................................. 113 MsGetVersion ............................................................................................................ 114

MsgBox ..................................................................................................................... 115 @..To...MultiLine ........................................................................................................ 116 NaoVazio ................................................................................................................... 117 Negativo .................................................................................................................... 118 Orcado ...................................................................................................................... 119 OrcadoCC ................................................................................................................. 120 OpenFile .................................................................................................................... 121 OurSpool ................................................................................................................... 122 Pergunte .................................................................................................................... 123 Periodo ...................................................................................................................... 124 Pertence .................................................................................................................... 125 PesqPict .................................................................................................................... 126 PesqPictQt ................................................................................................................ 127 Posicione ................................................................................................................... 128 Positivo ...................................................................................................................... 129 ProcRegua ................................................................................................................ 130 ProxReg .................................................................................................................... 131 @...Radio .................................................................................................................. 133 RecLock .................................................................................................................... 134 RecMoeda ................................................................................................................. 136 RestArea ................................................................................................................... 137 RetASC ..................................................................................................................... 138 RetIndex .................................................................................................................... 139 RollBackSX8 ............................................................................................................. 140 RptStatus .................................................................................................................. 141 Saldo ......................................................................................................................... 142 SaldoCC .................................................................................................................... 143 SaldoCusto ................................................................................................................ 144 SaldoSB2 .................................................................................................................. 145 SetDefault ................................................................................................................. 146 SetDlg ....................................................................................................................... 148 SetPrint ..................................................................................................................... 149 SetRegua .................................................................................................................. 151 SldBco ....................................................................................................................... 152 SldCliente .................................................................................................................. 153 SldFornece ................................................................................................................ 154 SldPagar ................................................................................................................... 155 SldReceber ............................................................................................................... 156 SomaContas ............................................................................................................. 157 SomaMovim .............................................................................................................. 158 Somar ....................................................................................................................... 159 SomaSaldo ............................................................................................................... 160 SumMovimCC ........................................................................................................... 161 Tabela ........................................................................................................................ 162 TamSX3 .................................................................................................................... 163 Texto .......................................................................................................................... 164 @ ...TO ..................................................................................................................... 165 TM ............................................................................................................................. 166 Variao .................................................................................................................... 168 Vazio ......................................................................................................................... 169

X3Picture ................................................................................................................... 170 XFilial ......................................................................................................................... 171 XMoeda ..................................................................................................................... 172 Funes para impresso de etiquetas padro ZPL e Allegro ...................................................................................................... 173 MSCBPRINTER ........................................................................................................ 174 MSCBBEGIN ............................................................................................................ 175 MSCBEND ................................................................................................................ 176 MSCBSAY ................................................................................................................. 177 MSCBSAYBAR ......................................................................................................... 178 MSCBSAYMEMO ..................................................................................................... 180 MSCBBOX ................................................................................................................ 181 MSCBLineH .............................................................................................................. 182 MSCBLineV .............................................................................................................. 183 MSCBLOADGRF ...................................................................................................... 184 MSCBGRAFIC .......................................................................................................... 185 MSCBWRITE ............................................................................................................ 186 Tipos de Fontes para Zebra: ..................................................................................... 187 Tipos de Fontes para Allegro: .................................................................................... 188

RDMAKE EM AMBIENTE SQL ............................................................................ 191 EXECUTANDO .................................................................................................. 193


Executando com Debug ................................................................................................. 193 Erros de Compilao ...................................................................................................... 198 Erros e aes a serem tomadas ............................................................................... 198

EXEMPLOS DE PROGRAMA ................................................................................. 200


Referncias e Abreviaturas ............................................................................................. 219

INTERPRETADOR XBASE
O interpretador de rotinas dinmicas tem o objetivo de permitir ao usurio do SIGA Advanced construir seus prprios programas, agreg-los ao menu dos mdulos e execut-los de uma forma transparente ao operador. De forma anloga, as rotinas escritas pelo usurio tambm podem fazer parte, por meio da funo ExecBlock, do Arquivo de Frmulas, das Planilhas, dos Gatilhos, das Validaes e Inicializaes no Dicionrio de Dados, dos campos de Dbito e Crdito, Histrico e Valor, do Arquivo de Lanamentos Padronizados e dos Pontos de Entrada, enfim, de todos os campos onde o SIGA aceita uma expresso que interpretada em tempo de execuo. O usurio ainda tem a possibilidade de utilizar os recursos de programao adotados pelo SIGA Advanced atravs do uso de um grande nmero de suas FUNES. O objetivo principal deste manual exatamente o de descrever e explicar o uso destas 180 Funes. Um programa ou rotina para ser interpretada pelo SIGA Advanced necessita cumprir duas fases: 1. Ser compilado pelo RDMAKE, utilitrio da MICROSIGA que gera os ponteiros de ligao de um programa .PRG, .PRW ou .PRX gerando o interpretvel ._IX ou ._IW; 2. Ser configurado no menu do mdulo com a # (cerquilha) precedendo o nome do programa, ou ser chamada via ExecBlock; A fase de interpretao do programa pelo SIGA Advanced j intrnseca a este e ser acionada sempre que encontrar um # na primeira posio do nome do programa no menu.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 5

Necessidades de Software
Para que o Programa seja compilado pelo RDMAKE necessrio que o ambiente que ir compilar o programa possua o ADVPL16 que encontra-se no CD da verso 4.06 do SIGA Advanced, j que o RDMAKE submete o programa (.PRG, .PRX ou .PRW) apreciao do ADVPL16 antes de proceder a gerao do interpretvel. Aps compilado pelo RDMAKE, no mais necessria a presena do ADVPL16 para a interpretao dentro do SIGA Advanced.

Necessidades de Hardware
O RDMAKE necessita de um mnimo de 450Kb de memria convencional para compilar um programa de 2048 linhas. Programas menores podero ser compilados com uma quantidade de memria menor, at o limite do ADVPL16, aproximadamente 370Kb. O equipamento mnimo um PC-XT de 640 Kb para a compilao. Quanto interpretao pelo SIGA Advanced, ficam vlidas as recomendaes para este produto.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 6

PROGRAMAO
Estrutura Bsica de Programas
Este manual de utilizao do RDMAKE no tem a pretenso de ensinar cdigo xBase, to somente pretende mostrar as diferenas entre a programao XBase e o que aceito pelo Interpretador de Programas do SIGA Advanced. Por estar extremamente prximo do padro de programao XBase, recomendamos que sejam consultadas literaturas prprias para o caso de aprendizagem da programao desta linguagem. A estrutura de um programa escrito para ser interpretado pelo SIGA Advanced aderem s normas do padro XBase, com as restries que sero mostradas por tpico. O programa deve ser escrito em um editor de textos da preferncia do usurio usando a seguinte estrutura bsica: Corpo do Programa Chamadas de Funes Internas Chamadas de Funes Advanced Comentrios Declarao de Funes no Programa

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 7

Operadores
So vlidos todos os operadores do padro XBase excetuando-se: Original
++var - - var var++ var - var+=n var-=n var*=n var/=n var%=n var**=n

Substituir por
- soma antes de executar - subtrai antes de executar - soma aps executar - subtrai aps executar - soma n a var - subtrai n de var - multiplica var por n - divide var por n - resto de var/n - Exponencia var a n var:=var+1 (antes do processo) var:=var-1 (antes do processo) var:=var+1 var:=var-1 var:=var+n var:=var-n var:=var*n var:=var/n var:=var%n var:=var**n

O operador de atribuio de igualdade deve obrigatoriamente ser := O operador de comparao deve obrigatoriamente ser == (duplo igual)

Funes e Procedures
As definies de funes para o Interpretador podem seguir as regras do padro XBase, entretanto para o RDMAKE/Interpretador Procedures ou Funes so to somente endereos de desvio do programa, razo que justifica as restries a seguir: No deve ser definido um nome de procedure ou function para a funo principal. O interpretador xBase considera o ponto de entrada do programa na linha 1 do programa de usurio; Diretivas (#include, #define, etc...) no so aceitas no programa interpretvel; Chamada de funes no permitem passagem de parmetros. As variveis de comunicao entre funes devem ser declaradas na funo chamadora; S podem ser definidas at 255 funes ou Procedures por programa; A declarao de variveis LOCAL ou PRIVATE gera um erro no compilador; Chamadas recursivas a funes podem provocar erro de estouro de pilha ou ter um resultado inesperado, portanto so proibidas.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 8

Estruturas de Controle
FOR...NEXT DO...WHILE EXIT e LOOP IF..ELSEIF..ELSE...END So estruturas aceitas sem quaisquer restries pelo Interpretador.

Variveis
Todas as variveis do interpretador so PRIVATE e tm o tempo de vida vlido por todo o programa, a partir de sua declarao. No so vlidas declaraes de variveis com STATIC, LOCAL, PRIVATE e PUBLIC. Um erro ser reportado pelo compilador nestes casos.

Tipos de Dados
Todos os tipos de dados do padro XBase so aceitos no Interpretador, sem restries. So estes: Array Caractere Bloco de Cdigo Numrico Data Lgico Memo NIL

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 9

Macros
So aceitas macros (&) dentro de programas interpretveis, entretanto macros muito complexas ou inseridas no meio de uma string precisam ser revistas. b := &a b:= var1&var2 &var:=Correta - vlida - precisa ser substituda por b:= &(var1+&var2) - vlida

Erros em macros s sero detectados em tempo de execuo.

Arrays
O comportamento dos arrays no Interpretador e no padro XBase so semelhantes, entretanto, na declarao destes arrays, o procedimento difere. Declaraes de arrays aceitas so: aArray := {} aArray := ARRAY(5,2) Declaraes no aceitas: DECLARE aArray[5] PRIVATE aArray[5][2]

Blocos de Cdigo
Blocos de cdigo sero avaliados perfeitamente pelo Interpretador.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 10

Compilao pelo RDMAKE


Para que um programa possa ser interpretado pelo SIGA Advanced, este necessita ser compilado pelo programa RDMAKE que ir mont-lo em um formato que permite uma grande velocidade de interpretao e reestrutur-lo de modo que as interaes e desvios de funes fiquem endereadas dentro deste mesmo programa. O produto final da compilao ser um arquivo com extenso ._IX (DOS), ._IW (WINDOWS) ou _IX (DOS e WINDOWS), estes arquivos no devem ser modificados pelo programador. Os procedimentos de compilao seguem os seguintes passos: Editar o programa em um editor de textos de preferncia do usurio; Submeter este programa compilao do RDMAKE pela chamada RDMAKE <nome do programa> -<diretiva> O RDMAKE ir gerar: sem diretiva: o arquivo interpretvel ._IX para verso DOS; com a diretiva -W: o arquivo interpretvel ._IW para verso Windows; com a diretiva -X: os arquivos interpretveis ._IX e ._IW para ambas verses. Os arquivos interpretveis so gerados no diretrio corrente. indicado que o diretrio corrente seja o mesmo do SIGA Advanced, j que o sistema chama o arquivo interpretvel a partir deste diretrio.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 11

Configurao no Menu
O programa compilado deve ser includo como uma opo no menu do mdulo desejado. Isto feito atravs da opo Menu do Mdulo Configurador. O SIGA Advanced saber que o programa interpretvel atravs do caractere # colocado antes do nome do programa. Isto limita o nome de programa interpretvel em sete posies.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 12

DIFERENAS ENTRE RDMAKE DOS E WINDOWS


O SIGA Advanced um sistema que possui verses para ambientes caracter, como o DOS, e ambientes grficos, como o Windows. Muitos clientes ainda utilizam verses em ambiente DOS, e tem uma grande quantidade de especficos desenvolvidos apenas para esse ambiente. A converso de todos estes programas de modo que fiquem compatveis com as verses do SIGA em ambiente Windows no realmente uma tarefa difcil. Porm, uma tima idia gastar algum tempo para criar todos os programas de modo que trabalhem perfeitamente em qualquer um destes ambientes, economizando assim esforos em uma possvel mudana de ambiente no futuro. Veja a seguir algumas das principais dvidas e dicas teis para esta tarefa.

Principais Diferenas
O Windows um ambiente grfico e formado por objetos. Isto significa que todas as informaes apresentadas na tela do microcomputador so apresentadas atravs de objetos, ou componentes. Um componente pode ser um boto, uma caixa de texto para a digitao de dados (o to famoso GET que existia no DOS) e at mesmo uma janela (tambm chamada de dilogo). Diferentemente do ambiente DOS, onde pode-se exibir informaes em qualquer lugar da tela e, em qualquer momento, no ambiente Windows todos os componentes devem pertencer a um componente denominado Componente Pai. Assim por exemplo, se voc precisa criar uma janela para que o usurio digite uma certa informao, esta janela pertencer janela da aplicao, ou seja, janela do SIGA. E da mesma forma, os botes, os GETs , e outros componentes pertencero ao dilogo criado. Desta forma, no existe a necessidade de salvar a rea de tela sobre a qual a janela ser exibida (e posteriormente restaur-la), ou no se precisa indicar que a janela dever ser exibida at que o usurio pressione a tecla ESC. A janela aparecer no momento em que for ativada, e com ela todos os seus componentes. E somente ser removida quando o usurio desejar fech-la ou alguma instruo do cdigo fizer o mesmo, levando consigo todos os componentes criados.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 13

Percebe-se facilmente que a grande diferena entre o ambiente DOS e o ambiente Windows a manuteno da interface com o usurio, sendo que o cdigo de processamento basicamente o mesmo.

Um novo modo de programar a interface


Apesar das diferenas basearem-se na interface, o novo paradigma de ambientes grficos exerce uma mudana na velha forma de programar. Ento, a lgica tradicional pode no ser mais a melhor opo na maioria dos programas, em relao a montagem da interface e no modo como o usurio ir acionar a execuo dos processos. Por exemplo, imagine o seguinte cdigo:

While .T. / / . . . Monta a janela para a interface com o usurio If LastKey( ) == 27 Exit Endif EndDo

Este cdigo demostra uma estrutura de fluxo em execuo infinita, que somente deixar de executar quando o usurio pressionar a tecla ESC.

/ / . . . Executa o processamento com as informaes recebidas...

No ambiente Windows, os dilogos criados permanecem na tela at que o usurio deseje fech-lo. Portanto, a mesma lgica seria algo como o demonstrado a seguir:
/ / . . . Cria o dilogo, com todos os seus componentes, para interface com o usurio / / . . . Ativa o dilogo criado / / . . . Executa o processamento com as informaes recebidas...

Neste caso, o processamento das informaes somente seria executado aps o usurio fechar o dilogo. Uma outra alternativa, que a mais usada, podem ser a incluso de dois botes, um indicando a confirmao e o outro indicando o cancelamento. Na verdade, o nico boto que executa alguma coisa realmente o boto de confirmao, pois o boto de cancelamento somente finaliza o dilogo e o processamento se encerra normalmente. Veja o exemplo:

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 14

/ / . . . Cria o dilogo com os componentes necessrios / / . . . Dentre estes componentes existem dois botes: / / . . . Boto 1 -> A ao a ser executada ao pressionamento deste boto , por exemplo, a / / . . . funo XPTO / / . . . Boto 2 -> A ao a ser executada ao pressionamento deste boto simplesmente o / / . . . fechamento do dilogo / / . . . Ativa o dilogo. O mesmo permanece na tela at o usurio fechar o dilogo, pressio/ / . . . nando o pequeno cone do X no alto da janela ou pressionando o boto Cancelar, que / / . . . executa o cdigo para o fechamento do dilogo. / / . . . Finaliza o programa. Caso o dilogo simplesmente seja fechado, o processamento / / . . . seguir nesta linha, e o programa ser finalizado sem que nada seja executado.

/ / *********** Funo XPTO ***************** / / . . . Declarao da funo XPTO. Esta funo apenas ser executada atravs do / / . . . pressionamento do boto Confirmar no dilogo do programa acima. / / . . . Executa o processamento com as informaes recebidas. / / . . . Finaliza a funo XPTO. Note que ao retornar da funo, o dilogo permanece aberto / / . . . e, aos olhos do usurio, o processamento continua. Isso realmente acontece, a no ser / / . . .que nesta mesma funo, antes de finalizar, seja executado o cdigo indicando para / / . . .fechar o dilogo aberto no programa acima.

Para ilustrar tudo o que foi descrito, nas prximas pginas voc ver exemplos de um programa que apresenta uma tela de interface com o usurio que indica a finalidade da rotina e permite-lhe cancelar ou confirmar o processamento. Esto demonstrados os cdigos para as duas verses separadamente, DOS e WINDOWS, portanto, se voc desejar test-los crie os programas com a extenso .PRG para a verso DOS e .PRW para a verso WINDOWS. Mais frente, demonstraremos como uni-los em um nico arquivo com extenso .PRX, utilizando assim apenas um programa para as duas verses.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 15

Verso DOS

// // // //

Salva o contedo da tela atual na varivel sTela.

sTela := SaveScreen(07,06,15,71)

// // // //

Desenha uma janela utilizando a funo padro do Microsiga.

DrawAdvWindow("Ateno!",07,08,13,71)

// // // //

Apresenta as mensagens ao usurio.

sOldCor := SetColor("B/BG") @ 09,10 Say "Este programa exige que os arquivos associados a ele estejam" @ 10,10 Say "em modo exclusivo. Certifique-se de que nenhum outro usurio" @ 11,10 Say " esteja usando o sistema neste momento. " SetColor(sOldCor)

// // // //

Esta a parte do programa que permanece em execuo at a confirmao ou o cancelamento pelo usurio. Para isso se utiliza da funo da Microsiga chamada MenuH.

While .T. NResp:=Menuh({"Ok","Cancela"},13,10,"b/w,w+/n,r/w","OC","",1) If nResp == 1

Endif

// // // //

Executa o processamento necessrio, pois o usurio confirmou.

// // // //
Exit EndDo Return

Indica a finalizao do Loop para finalizar o programa.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 16

Verso Windows

// // // // // // // // // // // // //

Monta o dilogo para a interface com o usurio utilizando os comandos padronizados da Microsiga. Obs.: Todos os comandos aqui usados encontram-se demostrados no programa chamado RDDEMO.PRW que acompanha todos os mdulos do sistema.

@ 0,0 TO 135,360 DIALOG oDlg TITLE "Ateno!"

A partir de agora, todos os objetos indicados pertencero ao dilogo acima. Note que voc pode declarar todos os tipos de objetos, exceto um novo dilogo. A linha abaixo define um BOX, ou seja, um quadro semelhante ao comando @ TO do DOS.

@ 01,02 TO 45,178

// // // //

As linhas abaixo demostram a exibio de mensagens na tela do usurio. O comando exatamente o mesmo utilizado no ambiente DOS.

@ 10,10 Say "Este programa exige que os arquivos associados a ele estejam" @ 20,10 Say "em modo exclusivo. Certifique-se de que nenhum outro usu rio" @ 30,10 Say " esteja usando o sistema neste momento. "

// // // // // // // //

A seguir, as linhas que demostram o uso de botes. Note a clusula ACTION, que indica que ao ser executada ao pressionamento do boto. O boto do tipo 1 (que o boto indicador de confirmao) executar a funo CONTINUA e o boto do tipo 2 executar o encerramento do dilogo. Note que neste momento estamos apenas definindo os objetos que aparecero no dilogo. Seu pressionamento e, conseqentemente, a execuo das aes somente sero possiveis no acionamento do dilogo.

@ 50,120 BMPBUTTON TYPE 1 ACTION Execute(Continua) @ 50,150 BMPBUTTON TYPE 2 ACTION Close(oDlg)

// // Aciona o dilogo centralizado na tela. Repare que existe uma varivel, chamada oDlg, // que contm o objeto. Ela apareceu pela primeira vez na declarao do dilogo (mais // acima) e atravs dela que poderemos manusear o objeto (no caso o dilogo). Por // exemplo, necessria a varivel para que a funo CLOSE finalize o dilogo. // // ACTIVATE DIALOG oDlg CENTERED // // // // Aqui finaliza a execuo do programa principal. O processamento somente chegar a este ponto quando o dilogo for fechado.

Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 17

Criando programas nicos


Do mesmo modo que os comandos mostrados para a criao de botes no exemplo para a verso Windows, a criao dos outros componentes muito simples. Muitas pessoas tm dvidas quanto ao acesso s informaes destes componentes, mas isto tambm no complicado. O comando GET na verso Windows idntico ao utilizado na verso DOS, exceto pelo fato de que a clusula PICTURE no pode ser abreviada e no existe a necessidade do comando READ para que as variveis sejam editadas. Lembre-se: todos os componentes pertencem ao dilogo e somente sero exibidos, e editados, quando o dilogo for acionado. Durante o processamento, que em nosso exemplo seria dentro da funo CONTINUA, voc pode acessar o contedo das variveis editadas no dilogo, ou as variveis referentes a qualquer outro componente criado pelos comandos padronizados do interpretador RDMAKE para Windows. Um exemplo completo destes comandos acompanha o sistema e chama-se RDDEMO.PRW (comentado no final do manual). um programa que pode ser executado atravs do menu de qualquer mdulo e utiliza-se de quase todos os comandos para o ambiente Windows. Com tudo isto compreendido, ainda resta uma dvida que atrapalha muitos programadores: como criar uma rotina nica, que funcione para ambos os ambientes? O prximo exemplo demonstra o uso dos GETs, de alguns outros comandos do ambiente Windows, e como criar o programa de modo que ele possa ser executado em ambos os ambientes. Para isso, ele se utiliza de diretivas do prcompilador. Diretivas do pr-compilador so comandos que so executados exatamente antes da execuo da prpria compilao do programa. As diretivas que podem ser utilizadas no RDMAKE so: DEFINE, IFDEF, IFNDEF e INCLUDE. A diretiva DEFINE utilizada para definir expresses constantes para o seu programa, a diretiva INCLUDE permite que voc inclua um arquivo texto com um agrupamento de outras diretivas no seu programa, e as diretivas IFDEF e IFNDEF so diretivas condicionais. As diretivas so sempre precedidas do caracter de cdigo ASC 35 (#) e devem ser sempre escritas com os caracteres em caixa alta (com todas as letras maisculas). Por exemplo, imagine que voc ir utilizar o valor de (PI) para executar clculos em seu programa. Ao invs de informar o valor 3,14 em todos os pontos onde ele ser utilizado, voc pode declarar um DEFINE e utilizar a expresso PI onde quiser que o clculo seja executado. Algo como no exemplo:
#DEFINE PI 3.14 nPerimetro := 2 * PI * nRaio

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 18

Definir expresses nestes casos muito melhor do que utilizar variveis. Porque antes da compilao, o pr-compilador analisa todo o programa e substitui a expresso PI pelo valor 3,14. Somente ento o programa realmente compilado. Deste modo, no h consumo de recursos durante a execuo do programa e a legibilidade do cdigo-fonte muito boa. E caso voc deseje manter um arquivo texto com todas as suas definies e outras diretivas, voc pode cri-lo com qualquer nome e inclui-lo no programa aonde as diretivas devem ser utilizadas:
// Contedo de DEFINIC.CH #DEFINE PI 3.14 // Contedo do Programa #INCLUDE DEFINIC.CH nPerimetro := 2 * PI * nRaio

O padro para estes arquivos de definies a extenso CH, e o nome do arquivo deve estar sempre entre aspas duplas quando for includo no seu programa. Mas a grande vantagem destas diretivas no se encontra somente no fato de se poder cri-las. Voc tambm pode verificar se elas j foram ou no definidas, atravs de diretivas condicionais. Isto muito til quando voc deseja, por exemplo, exibir uma mensagem na tela indicando um valor qualquer, pois voc ainda est em fase de desenvolvimento do programa, mas quando for disponibiliz-lo a um usurio, voc no desejar que o mesmo veja estas mensagens e no ser necessrio remov-las do cdigo. Suponha que voc crie a mensagem no seu cdigo como o seguinte:
// cdigo normal. . . #IFDEF LIGAAVISO Aviso(Debug,O valor da varivel cVar : +cVar,{Ok}) #ENDIF // continuao do cdigo. . .

Neste exemplo, voc nota que no existe a definio da expresso LIGAAVISO e muito menos uma incluso de um arquivo de definies. E como a diretiva condicional IFDEF verifica se a expresso LIGAAVISO est definida, a funo AVISO no ser executada. Na verdade, o que ocorre o seguinte: Antes de compilar, o pr-compilador analisa o programa. Ele verifica que a expresso LIGAAVISO no est definida e, portanto, o cdigo entre o #IFDEF e o #ENDIF no ser compilado, ou seja, o cdigo desta linha no entrar no arquivo interpretvel (com a extenso ._IX ou ._IW) e, conseqentemente, no ser executado. Para fazer com que esta expresso esteja definida, no necessrio cri-la no cdigo fonte ou em arquivos de incluso. Basta defini-la no momento da compilao, utilizando a seguinte sintaxe na linha de comando do RDMAKE:
MANUAL RDMAKE - SIGA ADVANCED 4.07 - 19

RXMAKE

NOMPROG

/DLIGAAVISO

Se na linha de comando voc utilizar: RDMAKE NOMPROG X / DLIGAAVISO, a definio no funcionar. Porque RDMAKE executa um arquivo de lote (RDMAKE.BAT) que chama o verdadeiro compilador RXMAKE.EXE mas no passa o parmetro adicional de definio para o mesmo. Portanto, voc pode habilitar ou desabilitar as mensagens do seu programa apenas mudando a maneira da compilao. Estas explicaes so necessrias para que voc compreenda como o RDMAKE trata os programas que sero executados em ambas as verses do SIGA. Estes tipos de programas (que devem utilizar a extenso PRX, como j comentado) devem verificar a definio da expresso WINDOWS. Quando a mesma existir, voc saber que se trata de uma seco de programa que ser executada na verso Windows do SIGA. Caso contrrio, o programa ser executado somente na verso DOS e no ser necessrio utilizar o parmetro /D da linha de comando. O que acontece que quando o programa tem a extenso .PRX e voc informa o parmetro X na linha de comando do RDMAKE, o cdigo-fonte compilado duas vezes. Uma para o ambiente DOS e outra para o ambiente WINDOWS. E na ltima compilao, que a compilao para o ambiente WINDOWS, ele mesmo cria a definio da expresso WINDOWS. Veja o seguinte exemplo:
#IFDEF WINDOWS // Estas linhas s existiro na verso Windows #ELSE // Estas linhas s existiro na verso DOS #ENDIF

Ento quando o compilador verifica o cdigo-fonte pela primeira vez a expresso WINDOWS no existe, e qualquer cdigo que esteja entre direticas condicionais que checam a existncia desta expresso simplesmente no sero compiladas. Na Segunda vez que o compilador verifica o cdigo-fonte ele prprio definir a expresso WINDOWS, e ento o cdigo que no ser compilado ser o cdigo da clusula #ELSE. Utilizando estes conceitos, os programas dos exemplos anteriores poderiam ser unificados da seguinte maneira:

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 20

// // // //

Declarao das variveis utilizadas pelo programa. := := := := := := := := := .T. Space(6) Space(3) Space(200) "S" 1 {"Sim ","Nao "} {} {Confirma,Redigita,Abandona}

lOk cDoc cSerie cMens cImpDup nImpDup aImpDup aSeries aOp

// // // //

Monta um ARRAY com as sries disponveis para o sistema.

dbSelectArea("SX5") dbSeek(xFilial("SX5")+"01") While !EOF() .And. SX5->X5_TABELA == "01" aAdd(aSeries,Substr(AllTrim(SX5->X5_CHAVE),1,3)) dbSkip() EndDo

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 21

While .T. @12,21 Say Space(29) Color "B/W" Valid

@07,34 Get cDoc Picture "@!" @07,49 Get cSerie Picture "@!" When MontaF3("01") MontaF3() @08,39 Get cMens Picture "@!@S27" @10,45 Get cImpDup Picture "!" Valid Pertence("SN") Rea

// // // // // //

Note o uso da funo OKPROC caso o usurio confirme o processamento. O cdigo da confirmao poderia ser colocado diretamente dentro do CASE no lugar da chamada da funo OKPROC, mas como no Windows iremos utilizar um boto, devemos criar uma funo para executar este processamento.

nResp := MenuH(aOP,12,21,"b/w,w+/n,r/w","CRA","",1) Do Case Case nResp == 1 // Confirma OkProc() If lOk Exit Else lOk := .T. Loop Endif Case nResp == 2 // Redigita Loop Case nResp == 3 // Abandona Exit EndCase EndDo

#ELSE

// // // // // // // // // // // // //

Aqui terminar o bloco do cdigo que ser considerado para o ambiente DOS. Como a seguir comear o bloco do ambiente WINDOWS (#ELSE), para a primeira compilao ele ser desconsiderado at aonde encontra-se o #ENDIF. Portanto, para o ambiente DOS o programa termina aqui. O processamento principal somente ser executado na confirmao pelo usurio (que acionar a funo OKPROC).

Incio do bloco que ser considerado na segunda etapa da compilao, a compilao para o ambiente WINDOWS. Os comentrios anteriores so vlidos. Portanto para a segunda etapa da compilao o programa comecar aqui (exceto quanto a declarao das variveis logo no incio).

@ 212,148 To 418,652 Dialog oDados Title Dados da Nota Fiscal" @ 001,001 To 100,250

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 22

// // // // // // // // // //

Agora inicia-se a parte do programa que identifica as diferenas entre os ambientes. Lembre-se que cada cdigo somente ser compilado em uma das etapas da compilao, dependendo da existncia ou no da definio WINDOWS.

Na primeira etapa da compilao, que o ambiente DOS, no estar definido a expresso WINDOWS, ento esta primeira parte do cdigo ser considerada. A parte do #ELSE, mais abaixo, ser descartada.

#IFNDEF WINDOWS

// // // //

Salva a rea da tela aonde sero exibidos os dados e monta a tela no padro DOS.

_sTela := SaveScreen(05,17,14,68) DrawAdvWindow("Dados da Nota Fiscal",05,19,12,68) @06,20 TO 11,67 Color "B/BG" @07,21 Say "Nota Fiscal:" Color "B/BG" @07,42 Say "Serie:" Color "B/BG" @08,21 Say "Mensagem da nota:" Color "B/BG" @10,21 Say "Imprimir as duplicatas?" Color "B/BG"

// // // // // //

Esta a estrutura de fluxo infinita que geralmente se usa para permitir ao usurio redigitar, por exemplo, no ambiente DOS. Assim os GETs sero executados at o usurio confirmar ou abandonar o processamento.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 23

// // // // // // //
@ @ @ @

O uso da funo OEMTOANSI serve para compatibilizar os caracteres ANSI (padro DOS) com o ambiente Windows, permitindo que alguns caracteres especiais sejam impressos (no caso do exemplo, o acento de srie). O comando COMBOBOX monta uma lista Drop-Down com as sries obtidas no incio do programa, e o comando RADIO diponibiliza as duas opes para escolha no padro do ambiente Windows. 009,007 009,149 024,006 080,008 Say Say Say Say OemToAnsi("Nota Fiscal:") OemToAnsi("Srie") OemToAnsi("Mensagem da Nota:") OemToAnsi("Imprimir duplicatas?")

@ 009,038 Get cDoc Picture "@!" Size 100,100 @ 033,007 Get cMens Picture "@!" Size 230,040 MEMO @ 009,168 ComboBox cSerie @ 080,060 Radio aImpDup Items aSeries Var nImpDup Size 50,50

@ 083,172 BmpButton Type 1 Action Execute(OkProc) @ 083,210 BmpButton Type 2 Action Close(oDados) Activate Dialog oDados Centered

// // // // // // //

Aqui termina o bloco considerado para o ambiente WINDOWS. O dilogo ser mantido na tela at que o usurio pressione o boto do tipo 2, que fechar o mesmo, ou pressione o boto do tipo 1, que executar a mesma rotina da confirmao do ambiente DOS. Aps o dilogo ser fechado, o processamento continuar aps o #ENDIF e o programa ser finalizado.

#ENDIF

// // // // // //

Aqui termina o programa principal. O processamento retornar para este ponto quando a funo OKPROC terminar seu processamento ou quando o usurio cancelar. No caso do ambiente DOS, isto ocorrer quando, por qualquer destes motivos, o loop infinito terminar, e no ambiente WINDOWS, ocorrer quando o dilogo for fechado.

Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 24

Figura 1 - Tela do programa de exemplo no ambiente DOS

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 25

Function OkProc

// // // // // //

Esta a funo OKPROC. a mesma que ser executada em ambas as verses, portanto encontrase fora dos blocos da checagem do ambiente (#IFNDEF - #ELSE - #ENDIF), e estar em qualquer um dos arquivos interpretveis gerados.

// A primeira tarefa que a funo executa uma checagem dos dados digitados. Tanto no ambiente // DOS como no ambiente WINDOWS, os valores estaro nas variveis informadas nos GETs. O // ambiente WINDOWS no tem o comando READ, mas as variveis so disponibilizadas para // edio a partir do momento em que o dilogo ativado at o usurio pressionar o boto de // confirmao. Note que at aqui, o dilogo da verso WINDOWS no foi fechado, de modo que // quando a funo detecta inconsistncias e retorna, o processamento retornar para o dilogo aberto, // e o usurio poder reeditar as variveis, cancelar ou confirmar novamente o processamento. No // caso do ambiente DOS, foi criada a varivel lOK que identificar, no programa principal, que o // loop infinito dever continuar, pois o processamento no foi concludo. // // If Empty(cDoc) .Or. Empty(cSerie) //
Aviso("Erro!","Voce deve informar o numero de um documento de nota fiscal e serie existente.",{"Ok"}) lOk := .F. Return Endif dbSelectArea("SF2") dbSetOrder(1) If !dbSeek(xFilial("SF2")+cDoc+cSerie) Aviso("Erro!","Nmero do documento/Srie no encontrado.",{"Ok"}) lOk := .F. Return Endif

// // // // // //

Aqui seria executado o processamento com a nota fiscal informada. Para verificar a escolha do usurio, por imprimir ou no as duplicatas, deve-se tratar os dois ambientes diferentemente. Porque no caso do ambiente DOS utilizou-se uma varivel em que o usurio digitava Sim ou No e no ambiente WINDOWS, utilizou-se o comando RADIO que altera uma varivel numrica, contendo o nmero da opo escolhida.

#IFNDEF WINDOWS If cImpDup == "S" // Executa o processamento para impressao das duplicatas. . . Endif #ELSE If nImpDup == 1 // Executa o processamento para impressao das duplicatas. . . Endif #ENDIF

// // // // // // // //

Aqui encontra-se o final da funo OKPROC, aonde o processamento j foi concludo. A varivel lOK, utilizada como Flag pelo cdigo para o ambiente DOS j continha desde o incio o valor verdadeiro (.T.), portanto no cdigo deste ambiente o processamento ser finalizado (vide o cdigo do incio do programa, na linha aps a chamada desta funo). Para o cdigo do ambiente WINDOWS, so nos resta fechar o dilogo. A condio a seguir faz esta verificao e o processamento retorna para o programa principal.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 26

Figura 2 - Tela do programa de exemplo no ambiente WINDOWS

O que muda em relao a impresso


Quanto a impresso, as mudanas tambm so pequenas mas necessrias. Apesar de no ambiente Windows existirem Drivers para as impressoras instaladas, o SIGA no se utiliza deles na maioria das vezes. Quando o usurio escolhe uma impressora qualquer da lista exibida na interface padro de relatrios (criada pela funo SETPRINT), o sistema imprime diretamente para a porta definida, mas se o usurio escolher nesta lista Default do Windows, o sistema ento imprimir atravs do driver do Windows. por esse motivo que ao imprimir em qualquer impressora que no seja o Default do Windows, o sistema requer que a impressora esteja local ou que uma porta esteja capturada para a impressora da rede. Tudo isto influi na inicializao da impressora. No ambiente DOS, bastava utilizar os comandos SET PRINTER TO e SET DEVICE TO para preparar a impresso, mas no ambiente WINDOWS deve-se ainda preparar a porta para a impresso, que ser desviada da impressora padro do sistema operacional. Como na maioria dos relatrios, utilizamos as funes padronizadas da MICROSIGA, como a SETPRINT e a SETDEFAULT; isto transparente para o programador. O sistema se encarrega dessas preparaes. Mas caso voc no se utilize destas funes, dever inicializar a porta desejada ou, ento, a impresso no ser possvel. Neste caso, utilize a funo INITPRINT, como no exemplo:

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 27

SET PRINTER TO LPT1 SET DEVICE TO SCREEN #IFDEF WINDOWS INITPRINT() #ENDIF

Note que a funo INITPRINT somente necessria para o cdigo do ambiente WINDOWS. Para finalizar o acesso porta, deve-se utilizar a funo MS_FLUSH. Esta funo realiza uma srie de tarefas e absolutamente necessria ao final do programa, pois caso no seja utilizada, ocorrero erros na prxima tentativa de impresso. Tambm utilizada no cdigo para ambiente DOS, portanto no deve estar entre diretivas condicionais. O que resta ento a forma como a impresso feita. Programadores tradicionais do padro xBASE esto acostumados a utilizar o comando SAY para a impresso. Porm, no ambiente WINDOWS existe um novo comando: PSAY. No ambiente WINDOWS, o comando SAY sempre direciona a sada para a tela, independente da ativao do comando SET DEVICE TO. Utiliza-se o comando PSAY para desviar a sada para a impressora. Isto deve-se ao fato de que neste ambiente, os dois dispositivos, tela e impressora, so tratados separadamente. Assim, voc no precisa retornar a sada para a tela, usando SET DEVICE TO SCREEN, durante uma impresso se desejar exibir informaes ao usurio. muito comum em programas nicos desenvolvidos para os dois ambientes que se crie todo o cdigo utilizando PSAY, porm includa a diretiva como no exemplo a seguir, que ir substituir este comando pelo padro do ambiente DOS (SAY) durante a pr-compilao para este ambiente. Tendo estes conceitos em mente, ficar bem mais fcil para o programador desenvolver programas RDMAKE para o ambiente WINDOWS ou compatibilizar os programas existentes. Na grande maioria das vezes, o trabalho envolvido na compatibilizao de programas existentes para o ambiente DOS deve-se lgica empregada ou a complexidade das telas criadas. E deve-se lembrar que alguns conceitos so extremamente diferentes entre os dois ambientes. No DOS, as coordenadas esto em caracteres, nas linhas por colunas, e no WINDOWS, as mesmas coordenadas se encontram em PIXELS (pontos grficos da tela do microcomputador). Isto dificultar o posicionamento dos dilogos e componentes, pois as alteraes podem influir pouco ou muito na aparncia final e portanto o programador deve executar um grande nmero de alteraes e testes no cdigofonte at que o resultado final seja o esperado. E o mais importante que devemos sempre procurar desenvolver aplicaes que j estejam preparadas para o ambiente WINDOWS (caso usemos ainda o ambiente DOS) ou desenvolv-las de modo que uma customizao futura seja facilitada.
MANUAL RDMAKE - SIGA ADVANCED 4.07 - 28

FUNES PARA O INTERPRETADOR XBASE


A seguir so apresentadas as funes SIGA Advanced para uso junto ao RDMAKE / Interpretador xBASE. Na linha seguinte ao nome de cada funo informado onde normalmente ela utilizada, a saber: Processamento: funes usadas em clculos, acesso a arquivos e tratamentos em geral; Impresso: funes usadas exclusivamente na gerao de Relatrios; Telas: funes usadas na gerao de telas, seja DOS ou Windows;

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 29

AbreExcl
Tipo: Processamento Fecha o arquivo e reabre exclusivo. Esta funo fecha o arquivo cujo alias est expresso em <cAlias> e o reabre em modo exclusivo para proceder operaes em que isto necessrio, como por exemplo, PACK. Entretanto, prefervel utilizar o depurador do sistema para proceder estas operaes. Se outra estao estiver usando o arquivo, o retorno ser .F..

Sintaxe
AbreExcl(cAlias)

Parmetros
cAlias Nome do Alias do Arquivo. Deve ter obrigatriamente sua estrutura definida no SX3.

Exemplo
// IF AbreExcl(SI2) Pack ENDIF AbreExcl( ) dbGoTop( )

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 30

Activate Dialog
Tipo: Tela Windows Ativa uma janela previamente definida na funo Dialog e executa os GETs, botes e outros objetos.

Sintaxe
ACTIVATE DIALOG cVar <CENTERED> [On Init cFuncInit] [Valid cFuncValid]

Parmetros
cVar Varivel utilizada na funo Dialog para definio da janela. cFuncInit Funo executada automaticamente na abertura do dilogo na tela (Opcional). cFuncValid Funo executada para validar o fechamento da janela de dilogo. Deve retornar um valor lgico (.T. ou .F.) (Opcional)

Comentrios
A clusula <CENTERED> opcional, se omitida assume as coordenadas definidas na criao da janela.

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

Ver tambm
Funo Dialog

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 31

Aleatorio
Tipo: Processamento Gera um nmero aleatrio de acordo com a semente passada. Esta funo retorna um nmero aleatrio menor ou igual ao primeiro parmetro informado, usando como semente o segundo parmetro. recomendado que esta semente seja sempre o ltimo nmero aleatrio gerado por esta funo.

Sintaxe
Aleatorio(nMax,nSeed)

Parmetros
nMax nSeed Nmero mximo para a gerao do nmero aleatrio Semente para a gerao do nmero aleatrio

Retorna
nRet Nmero aleatrio retornado

Exemplo
// Exemplo do uso da funo Aleatorio: nSeed := 0 For i := 1 to 100 nSeed := Aleatorio(100,nSeed) ? Str(i,3)+ numero aleatorio gerado: +Str(nSeed,3) Next i inkey(0) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 32

Avalimp
Tipo: Relatrios Configura a impressora atravs dos parmetros. Esta funo usada em relatrios especficos que no se utilizam da funo Cabec. Imprimindo o retorno desta funo na impressora, ela se encarregar de configurar a impressora de acordo com o arquivo de driver escolhido, e com as configuraes escolhidas pelo usurio definidas no array aReturn.

Sintaxe
AvalImp(nLimit)

Parmetros
nLimit Tamanho do relatrio em colunas. Pode ser 80, 132 ou 220 (respectivamente para relatrios de tamanho P,M e G).

Retorna
cControl String com caracteres de controle, dependente das configuraes escolhidas pelo usurio e do arquivo de driver especificado.

Exemplo
// Exemplo de uso da funo AvalImp: #IFNDEF WINDOWS #DEFINE PSAY SAY #ENDIF cCbTxt:= cCbCont:= nOrdem:= 0 nAlfa:= 0 nZ:= 0 nM:= 0 cTamanho:= G cLimite:= 220 cTitulo:= PADC(Nota Fiscal,74) cDesc1:= PADC(Este programa ir emitir a Nota Fiscal de Entrada/Sada,74) cDesc2:= cDesc3:= PADC(da Feeder Industrial Ltda.,74) cNatureza:=

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 33

aReturn:= {Especial, 1,Administrao, 1, 2, 2,,1} cNomeProg:= NFEEDER cPerg:= ENTSAI nLastKey:= 0 lContinua:= .T. nLi:= 0 wnrel:= NFEEDER nTamNf:=72 Pergunte(cPerg,.F.) cString:=SF2" wnrel:= SetPrint(cString,wnrel,cPerg,cTitulo,cDesc1,cDesc2,cDesc3,.T.) SetDefault(aReturn,cString) If nLastKey == 27 Return Endif #IFDEF WINDOWS RptStatus({|| Execute(Relato)}) Return #ENDIF Function Relato SetPrc(0,0) // Aqui est a chamada da funo AvalImp. Configura a // impressora de acordo com as definies em aReturn // escolhidas pelo usurio na funo SetPrint @ 00,00 PSAY AvalImp(220) dbSelectArea(SF2) dbSeek(xFilial()+mv_par01+mv_par03,.T.) // O programa segue normalmente... Return // Apenas Informativo // Pergunta no SX1

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 34

Aviso
Tipo: Tela DOS/Windows Monta uma janela exibindo o texto desejado e, opcionalmente, disponibilizando opes de escolha para o usurio.

Sintaxe
Aviso(cTitulo,cMensagem,aOpcoes)

Parmetros
cTitulo Titulo da janela. cMensagem Mensagem para ser exibida no interior da janela. O tamanho mximo de 90 caracteres. aOpcoes Array de caracteres com as opes para a montagem de menu (na verso DOS) ou dos botes (na verso Windows).

Retorna
nResp Retorno. Retorna o nmero da opo escolhida pelo usurio.

Exemplo
// Exemplo de uso da funo Aviso: While .T. GravaArq() // Funo qualquer (apenas p/exemplo) If !File(TESTE.TXT) aOp:= {Sim,Nao,Cancela} cTit:= Atencao! cMsg:= O arquivo TESTE.TXT nao foi gravado! cMsg:= cMsg + Tenta novamente? nOp:= Aviso(cTit,cMsg,aOp) If nOp == 1 // Sim Loop ElseIf nOp == 3 // Cancela Return Else // Nao ou <ESC> Exit Endif Endif Exit EndDo // Faz o processamento... Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 35

AxCadastro
Tipo: Processamento Gerao de modelo 1. Rotina para criao e manuteno de cadastros no padro do SIGA Advanced, contendo as opes padronizadas: PESQUISA, INCLUSO, ALTERAO, VISUALIZAO e EXCLUSO. Disponibiliza o Browse e todas as funes de cadastramento padro.

Sintaxe
AxCadastro(cAlias,cTitulo,cDel,cOk)

Parmetros
cAlias cTitulo cDel cOk Alias do arquivo. Deve obrigatoriamente ter sua estrutura definida no SX3. Ttulo da Janela. Funo para validar a excluso. Funo para validar a Incluso/Alterao.

Comentrios
Deve ser utilizada para editar arquivos especficos (Famlia SZ?), sendo semelhante aos cadastros de Clientes, Fornecedores e etc...

Exemplo
// Exemplo de uso de cadastro de arquivo especifico: AxCadastro(SZ1,Cadastro de Descontos,.T.",.T.) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 36

@ n1,n2 BmpButton
Tipo: Tela Windows Cria um boto de bitmap padro do SigaAdv Win.

Sintaxe
@ nLinha,nColuna BMPBUTTON TYPE nBotao ACTION cFuncao OBJECT oBtn

Parmetros
nLinha Nmero da linha superior nColuna Nmero da coluna superior nBotao Nmero do boto padronizado

cFuncao Funo que ser executada oBtn Objeto associado ao boto

Comentrios
Para executar funes definidas em um mesmo .PR? utilizar a funo Execute(Nome da funo) ou ExecBlock(Nome do Arquivo) para chamar outro .PR?.

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 37

@... Bitmap... Size


Tipo: Tela Windows Define a rea em que ser mostrado um BITMAP na janela.

Sintaxe
@ nLinha,nColuna BITMAP SIZE nAltura,nLargura FILE cArq

Parmetros
nLinha Nmero da Linha superior nColuna Nmero da Coluna superior nAltura Altura de apresentao do BITMAP

nLargura Largura de apresentao do BITMAP cArq Nome do arquivo BITMAP

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 38

@...To...Browse
Tipo: Tela Windows Ativa Browse padro SigaAdv Win.

Sintaxe
@ nLinha1,nColuna1 TO nLInha2,nColuna2 BROWSE cAlias <ENABLE> cCor

Parmetros
nLinha1 Nmero da linha superior nColuna1 Nmero da coluna superior nLinha2 Nmero da linha inferior

nColuna2 Nmero da coluna inferior cAlias cCor Alias do Arquivo (apenas arquivos com estrutura no SX3) Expresso que identifica a cor da marca do registro (opcional)

Exemplo
Marca Verde - Titulo em aberto Marca Vermelha - Titulo pago

Comentrios
A clusula <ENABLE> opcional, se for omitida no ser disponibilizada coluna que identifica situao do registro (Cor verde/vermelha).

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 39

@...Button
Tipo: Tela Windows Cria um boto com texto.

Sintaxe
@ nLinha,nColuna BUTTON cTexto SIZE nAltura,nLargura ACTION cFuno Object oBtn

Parmetros
nLinha nColuna cTexto nAltura nLargura cFuno Nmero da linha superior Nmero da coluna superior Texto que ser apresentado no boto. Deve incluir um _ antes da letra que utilizada como Hot Key. Ex.: ( _Salvar,Edi_Tar) Altura do boto Largura do boto Funo que ser executada

Object oBtn Objeto associado ao boto.

Comentrios
Para executar funes definidas em um mesmo .PR? utilizar a funo Execute(Nome da funo) ou ExecBlock(Nome do Arquivo) para chamar outro .PR?.

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 40

Cabec
Tipo: Impresso Esta funo imprime, na impressora selecionada, o cabealho padro dos relatrios do SIGA Advanced. Devolve o nmero da ltima linha impressa para que seja dada continuidade ao relatrio.

Sintaxe
Cabec(cTtulo, cTexto1, cTexto2, cProg, cLargura, cControle)

Parmetros
cTtulo cTexto1 cTexto2 cProg Ttulo do Relatrio Extenso da primeira linha do cabealho Extenso da segunda linha do cabealho Nome do Programa

cLargura Largura do relatrio (P/ M/ G) cControle Caractere de controle da impressora (numrico)

Retorna
nLinha Nmero da ltima linha impressa no cabealho

Exemplo
cTitulo := Relao dos Adiantamentos cCabec1 := Cdigo Item cCabec2 := - - - - - - - - ------ --cPrograma := ATRF090 cTamanho := P nCaracter := 15 Conta Contbil CCusto Projeto Data Valor ------------ ------ ------ ---- ---- ----------- ------ ------ ---- ----

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 41

: cRel:=SetPrint(cAlias, cPrograma , , @cTitulo, cDesc1, cDesc2, cDesc3 , .T., aOrd ) SetDefault(aReturn, cString) : nLinha:=Cabec(cTitulo, cCabec1, cCabec2, cPrograma, cTamanho, nCaracter) While !EOF() nLinha:=nLinha+1 @nLinha,1 Say SB1->B1_CODIGO

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 42

CalcEst
Tipo: Processamento e Planilha Devolve a quantidade e saldos do estoque de um produto/almoxarifado em uma determinada data. Esta funo utilizada para a obteno dos saldos iniciais em estoque na data em referncia.

Sintaxe
CalcEst(cProduto, cAlmox, dData)

Parmetros
cProduto Produto a ser pesquisado cAlmox dData Almoxarifado a pesquisar Data desejada

Retorna
aArray Array contendo: Elemento 1 Elemento 2 Elemento 3 Elemento 4 Elemento 5 Elemento 6 Elemento 7 Quantidade inicial em estoque na data Custo inicial na data na moeda 1 Custo inicial na data na moeda 2 Custo inicial na data na moeda 3 Custo inicial na data na moeda 4 Custo inicial na data na moeda 5 Quantidade inicial na segunda unidade de medida

Exemplos
aSaldos:=CalcEst(SB1->B1_COD,SB1->B1_LOCPAD, dDataBase) nQuant:=aSaldos[1]

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 43

CalcSaldo
Tipo: Processamento e Planilha Calcula o saldo atual de uma determinada conta contbil at um determinado perodo. A conta deve estar posicionada no arquivo SI1 ou SI7, de acordo com a moeda, antes da chamada desta funo.

Sintaxe
CalcSaldo(nPer,nMoeda,lSalAnt)

Parmetros
nPer nMoeda lSalAnt Perodo (1 a 17) que ser usado como limite para o clculo de saldo. Moeda para o clculo. Se no informada, assumida a moeda 1. Indica se deve (.T.) ou no (.F.) considerar o saldo inicial da conta. Se no informado, assumido verdadeiro (.T.).

Retorna
nSld Retorna o Saldo atual da conta na moeda desejada.

Exemplos
// Exemplo de uso da funo CALCSALDO: cConta := SA1->A1_CONTA dbSelectArea(SI1) dbSeek(xFilial(SI1)+cConta) ? Saldo atual da conta +cConta+: ? CalcSaldo(Periodo()) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 44

Capital
Tipo: Processamento Transforma as letras iniciais em Maisculas e as demais em Minsculas.

Sintaxe
Capital(cTexto)

Parmetros
cTexto Texto a ser convertido

Exemplo
cCapital:=Capital(TEXTO MAIUSCULO) // O retono ser Texto Maisculo

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 45

CGC
Tipo: Processamento Consiste o CGC digitado, tomando como base o algoritmo nacional para verificao do dgito de controle. Esta funo procede um clculo do dgito verificador do nmero do Cadastro Geral de Contribuintes do Ministrio da Fazenda. utilizado o dgito padro mdulo 11 para verificar se as duas ltimas posies da string passada, correspondem a dgitos verificadores vlidos. Calculando primeiro o dgito das 12 primeiras posies e agregando o dgito encontrado ao fim da string, calcula o dgito das 13 posies, obtendo o segundo dgito. Retorna uma expresso lgica verdadeira se as duas ltimas posies do CGC digitado coincidem com o calculado.

Sintaxe
CGC(ExpC1)

Parmetros
ExpC1 String de caracteres representando o nmero do C.G.C. sem pontos e traos separadores. Caso este argumento no seja passado para a funo, esta considerar o GET corrente.

Retorna
ExpL1 Expresso lgica .T. se o CGC vlido (dgito verificador confere) ou .F. se o dgito verificador no confere.

Exemplos
cCGC:= Space(14) : @10,16 GET cCGC Picture @R 99.999.999/9999-99 Valid CGC(cCGC)

A mscara do CGC deve vir com @R, para no inserir os pontos e a barra no CGC, o que impossibilita a validao.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 46

@...CheckBox...Var
Tipo: Tela Windows Cria uma caixa de verificao para definir entre Sim/No ou Falso/Verdadeiro.

Sintaxe
@ nLinha,nColuna CHECKBOX cDesc VAR lSeleo Object oCbx

Parmetros
nLinha Nmero da linha superior nColuna Nmero da coluna superior cDesc Descrio da caixa. Ex. Atualiza Estoque ?

lSeleo Varivel Lgica que identifica se a caixa foi ou no selecionada oCbx Objeto associado ao Checkbox

Retorno
A varivel <lSeleo> recebe .T. se for selecionada ou .F., se vazia.

Comentrios
Pode ser utilizada uma seqncia de CHECKBOX para determinar um conjunto de configuraes onde vrios itens podem ser marcados/desmarcados. Deve ser definida uma varivel <lSeleo> para cada CHECKBOX definida. Ex.: Atualiza Estoque - .T./.F. = Marcada/Desmarcada Gera Duplicata - .T./.F. = Marcada/Desmarcada Calcula IPI - .T./.F. = Marcada/Desmarcada

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 47

ChkFile
Tipo: Processamento Abre um arquivo do sistema, em modo exclusivo ou compartilhado, verificando a sua existncia bem como dos ndices, criando-os caso no existam. Esta funo retorna verdadeiro (.T.) se o arquivo j estiver aberto ou se o Alias no for informado. Sempre que desejar mudar o modo de acesso do arquivo (de : compartilhado para exclusivo ou vice-versa), feche-o antes de cham-la.

Sintaxe
ChkFile(cAlias,lExcl,newAlias)

Parmetros
cAlias lExcl Alias do arquivo a ser aberto. Se for informado verdadeiro (.T.), o arquivo ser aberto em modo exclusivo, caso contrrio, o arquivo ser aberto em modo compartilhado. Se este parmetro no for informado, ser assumido falso (.F.). Abre o arquivo com outro apelido.

newAlis

Retorna
lRet Retorna verdadeiro (.T.) caso tenha conseguido abrir o arquivo e falso (.F.) caso contrrio.

Exemplo
// Exemplo de uso da funo ChkFile: // Tenta abrir o arquivo de clientes como exclusivo: dbSelectArea(SA1) dbCloseArea() lOk := .T. While .T. IF !ChkFile(SA1,.T.) nResp := Alert(Outro usuario usando! Tenta de novo?,{Sim,Nao}) If nResp == 2 lOk := .F. Exit Endif

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 48

Endif EndDo If lOk // Faz o processamento com o arquivo... Endif // Finaliza If Select(SA1) dbCloseArea() Endif ChkFile(SA1,.F.) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 49

Close
Tipo: Tela Windows Desativa uma janela previamente definida e ativa.

Sintaxe
Close(cVar)

Parmetros
cVar Varivel criada durante o comando de definio da janela.

Exemplo
@ 75,158 BmpButton type 02 Action Close(oDlg)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 50

CloseOpen
Tipo: Processamento Funo usada para fechar e abrir uma lista de arquivos.

Sintaxe
CloseOpen(aFecha,aAbre)

Parmetros
aFecha aAbre Array com a lista dos Aliases a serem fechados. Array com a lista dos Aliases a serem abertos.

Retorna
lRet Retorna falso (.F.) se no conseguir abrir algum arquivo (Se o arquivo estiver em uso exclusivo, por exemplo). Caso contrrio, retorna verdadeiro (.T.).

Exemplo
// Exemplo de uso da funcao CloseOpen: aFecha := {SA1,SA2",SA3",SB1"} aAbre := {SG1,SH8"} If CloseOpen(aFecha,aAbre) .. Processamento Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 51

ClosesFile
Tipo: Processamento Esta funo fecha todos os arquivos, exceto os SXs, o SM2 e o SM4. Permite que se indique tambm outros arquivos que no devem ser fechados.

Sintaxe
ClosesFile(cAlias)

Parmetros
cAlias String com os Aliases dos arquivos que no devem ser fechados. Devem ser informados separados por barras (/)

Retorna
lRet Retorna Verdadeiro (.T.) se fechou os arquivos com sucesso. Retorna Falso (.F.), caso contrrio.

Exemplo
// Exemplo de uso da funcao CLOSESFILE: // Fecha todos os arquivos menos os cadastros: cEmp := SM0->M0_CODIGO ClosesFile(SA1/SA2/SA3/SA4/SA5/SA6/SA7/SA9/SAA/SAB/SAC) // Processamento. . . // Finalizacao dbCloseAll() OpenFile(cEmp) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 52

@...ComboBox...Itens...Size
Tipo: Tela Windows Esta funo semelhante a LISTBOX, mas pode ser utilizada em pequenos espaos, pois os itens s sero mostrados quando a caixa for seleciona.

Sintaxe
@ nLinha,nColuna COMBOBOX cCont ITENS aArray SIZE nAltura,nLargura Object oCbx

Parmetros
nLinha Nmero da linha superior nColuna Nmero da coluna superior cCont aArray nAltura Contedo caracter do item selecionado na Matriz [1] Array, Matriz [1] com os itens para seleo Altura para definir o tamanho da caixa

nLargura Largura para definir o tamanho da caixa oCbx Objeto relacionado ao boto

Retorno
O item selecionado pode ser obtido por <cCont>

Comentrios
Os itens da Matriz [1] devem ser tipo C caracter.

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 53

Comp3
Tipo: Processamento Compacta um valor numrico em uma string binria COMP-3. Esta funo utilizada para compactar a movimentao de Clientes e Fornecedores. A descompactao feita pela funo complementar DeComp3.

Sintaxe
Comp3(aArray)

Parmetros
aArray Array contendo os 25 campos compactados (o Saldo Inicial, os 12 Dbitos e 12 Crditos)

Retorna
ExpC1 Nome do Campo aglutinador da compactao.

Exemplos
aSaldos:=DeComp3(A1_MOVIMEN) nSaldo:=aSaldos[1] For j := 2 To 24 STEP 2 nSaldo := nSaldo - aSaldos [ j ] + aSaldos [ j + 1 ] Next j aSaldos[1]:=nSaldo AFILL(aSaldos,0,2,24) Reclock(SA1) REPLACE A1_MOVIMEN With Comp3(aSaldos)

Ver tambm
Funo DeComp3

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 54

Condicao
Tipo: Processamento Esta funo permite avaliar uma condio de pagamento, retornando um array multidimensional com informaes referentes ao valor e vencimento de cada parcela, de acordo com a condio de pagamento.

Sintaxe
Condicao(nValTot,cCond,nVIPI,dData,nVSol)

Parametros
nValTot cCond nVIPI dData Valor total a ser parcelado Cdigo da condio de pagamento Valor do IPI, destacado para condio que obrigue o pagamento do IPI na 1 parcela Data inicial para considerar

Retorna
aRet Array de retorno ( { {VALOR,VENCTO} , ... } )

Exemplo
// Exemplo de uso da funcao Condicao: nValTot := 2500 cCond aParc ? ? ? 2 Parcela: +Transform(aParc[2,1],@E 9,999,999.99") ? Return Vencto: +DTOC(aParc[2,2]) inkey(0) := 002 // Tipo 1, Duas vezes := Condicao(nValTot,cCond,,dDataBase) Vencto: +DTOC(aParc[1,2])

? 1 Parcela: +Transform(aParc[1,1],@E 9,999,999.99")

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 55

ConfirmSX8
Tipo: Processamento Permite a confirmao do nmero sugerido pelo Arquivo de Semforo, atravs da funo GETSX8NUM. Verifique a funo GETSX8NUM para maiores detalhes.

Sintaxe
ConfirmSx8()

Exemplo
cNumSC5:=GetSX8Num(SC5) Replace C5_NUM with cNumSC5 ConfirmSX8()

Verifique os exemplos descritos na funo GETSX8NUM.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 56

Contar
Tipo: Processamento Conta o nmero de registros de acordo com a condio determinada.

Sintaxe
Contar(cAlias, cCond)

Parmetros
cALias cCond Alias do arquivo Condio para a contagem

Exemplo
Contar(SC1,C1_DATPRF < dDataBase)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 57

ConvMoeda
Tipo: Processamento Converte o valor informado para a moeda selecionada.

Sintaxe
ConvMoeda(dData1,dData2,nValor,cMoeda)

Parmetros
dData1 dData2 nValor cMoeda Data de emisso Data de vencimento Valor a ser convertido Para qual moeda dever converter

Retorna
ExpN1 Valor convertido (devolvido pela funo)

Comentrios
Esta funo converte o valor definido por nValor para a moeda especificada em cMoeda na data dData. A data dData2 no utilizada. O valor nValor considerado em moeda 1.

Exemplos
nValor2 := ConvMoeda( D2_EMISSAO, , D2_TOTAL, cMoeda ) nValor1 := ConvMoeda( D1_DTDIGIT, , D1_TOTAL, cMoeda )

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 58

Credito
Tipo: Processamento Devolve o valor a crdito de uma determinada conta.

Sintaxe
Credito(cConta, nMs, nMoeda)

Parmetros
cConta nMs nMoeda Cdigo da Conta Ms do movimento desejado Moeda desejada para obteno do valor a crdito

Exemplo
Credito(11103,03,1)

Ver tambm
Funes Debito, Saldo e Movimento

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 59

CriaTrab
Tipo: Processamento Cria arquivo de trabalho.

Sintaxe
CriaTrab(aArray,lDbf)

Parmetros
aArray lDbf Array multidimensional contendo os campos a criar {Nome, Tipo, Tamanho, Decimal} Determina se o arquivo de trabalho deve ser criado ( .T.) ou no ( .F. )

Retorna
ExpC1 Nome do Arquivo gerado pela funo.

Comentrios
Esta funo retorna o nome de um arquivo de trabalho que ainda no exista. Caso lDbf = .T., a funo criar um arquivo DBF com este nome e a estrutura definida em aArray. Caso lDbf = .F., a funo no criar arquivo de nenhum tipo, apenas fornecer um nome vlido.

Exemplos
// Com lDbf = .F. cArq := CriaTrab(NIL, .F.) cIndice := C9_AGREG++IndexKey() Index on &cIndice To &cArq // Com lDbf = .T. aStru := {} AADD(aStru,{ MARK AADD(aStru,{ AGLUT AADD(aStru,{ NUMOP AADD(aStru,{ QUANT , C, 1, 0}) , C, 10, 0}) , C, 10, 0}) , N, 16, 4}) 8, 0})

AADD(aStru,{ PRODUTO, C, 15, 0}) AADD(aStru,{ ENTREGA, D,

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 60

AADD(aStru,{ ENTRAJU, D, AADD(aStru,{ ORDEM , N, AADD(aStru,{ GERADO , C, USE &cArqTrab ALIAS TRB NEW

8, 0}) 4, 0}) 1, 0})

cArqTrab := CriaTrab(aStru, .T.)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 61

CriaVar
Tipo: Processamento Esta funo cria uma varivel, retornando o valor do campo, de acordo com o dicionrio de dados. Avalia o inicializador padro e retorna o contedo de acordo com o tipo de dado definido no dicionrio.

Sintaxe
CriaVar(cCampo,lIniPad,cLado)

Parametros
cCampo lIniPad cLado Nome do campo Indica se considera (.T.) ou no (.F.) o inicializador Se a varivel for caracter, cLado pode ser: C - centralizado, L - esquerdo ou R - direito

Retorna
uRet Retorno (tipo de acordo com o dicionrio de dados, considerando inicializador padro)

Exemplo
// Exemplo do uso da funo CriaVar: cNumNota := CriaVar(F2_DOC) // Retorna o contedo do // inicializador padro, // se existir, ou espaos em branco Alert(cNumNota) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 62

DataValida
Tipo: Processamento Retorna uma data vlida que no seja sbado, domingo ou feriado, a partir de uma data qualquer informada. uma funo til para a gerao de vencimentos reais para ttulos, por exemplo.

Sintaxe
DataValida(dData)

Parametros
dData Data informada para validao.

Retorna
dDtVld Retorna a Data validada.

Exemplo
// Exemplo de uso da funcao DataValida: // Pode-se gravar o campo do vencimento real de um // titulo a partir do vencimento informado. dVencto := cTod() : Get dVencto Read dVencRea := DataValida(dVencto) Grava() // Funcao generica. // Um uso interessante, e a obtencao do numero de dias // uteis de determinado mes utilizando-se dessa funcao. // A logica e simples: nDUtil := 0 nMes nAno := 05 := 98

dDtIni := CTOD(01/+StrZero(nMes,2)+/+StrZero(nAno,2) dDtMov := dDtIni While Month(dDtIni) == Month(dDtMov) .And. Year(dDtIni) If DataValida(dDtMov) == dDtMov nDUtil := nDUtil + 1 Endif dDtMov := dDtMov + 1 EndDo == Year(dDtMov)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 63

Debito
Tipo: Processamento Devolve o valor a dbito de uma determinada conta.

Sintaxe
Debito(cConta, nMs, nMoeda)

Parmetros
cConta nMs nMoeda Cdigo da Conta Ms do movimento desejado Moeda desejada para obteno do valor a dbito

Exemplo
Debito(11103,03,1)

Ver tambm
Funes Credito, Saldo e Movimento

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 64

DeComp3
Tipo: Processamento Descompacta uma string binria COMP-3 em um array. Esta funo utilizada para descompactar a movimentao de Clientes e Fornecedores. A compactao feita pela funo complementar Comp3.

Sintaxe
DeComp3(cCampo)

Parmetros
cCampo Nome do Campo aglutinador da compactao.

Retorna
aArray Array contendo os 25 campos compactados.

Exemplo
aSaldos:= DeComp3(A1_MOVIMEN) nSaldo := aSaldos [ 1 ] For j:= 2 To 24 STEP 2 nSaldo:= nSaldo - aSaldos [ j ] + aSaldos [ j + 1 ] Next j aSaldos[1]:=nSaldo AFILL(aSaldos,0,2,24) Reclock(SA1) REPLACE A1_MOVIMEN With Comp3(aSaldos)

Ver tambm
Funo Comp3

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 65

@...To...Dialog
Tipo: Tela Windows Define uma nova janela na rea de trabalho.

Sintaxe
@ nLinha1,nColuna1 TO nLinha2,nColuna2 DIALOG cVar TITLE cTtulo

Parmetros
nLinha1 Nmero da linha superior nColuna1 Nmero da coluna superior nLinha2 Nmero da linha inferior

nColuna2 Nmero da coluna inferior cVar cTtulo Varivel que recebera as definies da nova janela Titulo da Janela

Comentrios
Deve ser utilizada sem conjunto com o comando ACTIVATE DIALOG.

Exemplo
Ver exemplo no programa RDDEMO apresentado no final deste Manual.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 66

Digito11
Tipo: Processamento Clculo de dgito verificador em mdulo 11.

Sintaxe
Digito11(cCalc,cDigito)

Parmetros
cCalc cDigito String para calcular o dgito Dgito de verificao

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Comentrios
Esta funo calcula o dgito de verificao de cCalc e o compara com cDigito, verificando a consistncia.

Exemplos
@ 9, 10 Get cCodigo; Valid Digito11( SubStr(cCodigo, 1, 5), Substr(cCodigo, 6, 1))

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 67

DrawAdv3D
Tipo: Tela DOS Desenha uma janela DOS em 3 dimenses.

Sintaxe
DrawAdv3D(cTitle, nLinha1, nColuna1, nLInha2, nColuna2, cCorFrente, cCorFundo, cStyle)

Parmetros
cTitle nLinha1 nColuna1 nLinha2 nColuna2 cCorFrente cCorFundo cStyle Ttulo da Janela Nmero da linha superior Nmero da coluna superior Nmero da linha inferior Nmero da coluna inferior Cor da letra Cor do fundo R (onde R = Raised - define a impresso de baixo relevo. O padro alto relevo)

Exemplo
// DrawAdv3D(Janela 3D,01,24,20,24,B+,N,R)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 68

DrawAdvWindow
Tipo: Tela DOS Desenha uma janela padro de acordo com a posio relativa passada como parmetro. Para verso DOS.

Sintaxe
DrawAdvWindow(cTitulo,nLinha1,nColuna1,nLInha2, nColuna2)

Parmetros
cTitulo nLinha1 Ttulo da janela Linha superior da janela

nColuna1 Coluna esquerda da janela nLinha2 Linha inferior da janela

nColuna2 Coluna direita da janela

Comentrios
Esta funo desenha uma janela com o ttulo cTitulo, com o canto superior esquerdo na posio nLinha1, nColuna1 e canto inferior direito na posio nLinha2, nColuna2.

Exemplos
DrawAdvWindow(Ttulos em Aberto,3,4,20,76)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 69

EANDigito
Tipo: Processamento Calcula o dgito de controle para o cdigo EAN usado em cdigos de barras.

Sintaxe
EanDigito(cCod)

Parmetros
cCod Cdigo de barras para o clculo do dgito. obrigatrio o tamanho de 12 dgitos.

Retorna
cEan Retorna o cdigo EAN de 13 dgitos, sendo que a ltima posio o dgito calculado.

Exemplo
// Exemplo de uso da funcao EANDIGITO: // Gatilho // Dom.: B1_CODBAR // CtaDom.: B1_CODBAR // Regra: Eandigito(PADL(AllTrim(M->B1_CODBAR),12,0")) // Ou usado em um programa rdmake: cCod := EanDigito(PADL(AllTrim(M->B1_CODBAR),12,0")) cDig := Substr(cCod,12,1) Alert(O digito calculado e: +cDig) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 70

Entre
Tipo: Processamento Verifica se o contedo do campo est entre o contedo de duas expresses (ExpX1 <= cCampo <= ExpX2). Se verdadeiro, retorna .T.. Usado normalmente em validaes de campos digitados.

Sintaxe
Entre(ExpX1,ExpX2,cCampo)

Parmetros
ExpX1 ExpX2 cCampo Expresso a comparar >= Expresso a comparar <= Nome do Campo

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Exemplos
: If Entre(A1,A9",cSerie) @ 5,10 Say Serie Ok Else @ 5,10 Say Serie Invalida Loop EndIf :

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 71

Estrut
Tipo: Processamento Funo para obteno da estrutura de um produto previamente cadastrada no SG1 atravs dos Mdulos SIGAEST ou SIGAPCP.

Sintaxe
Estrut(cProduto)

Parmetros
cProduto Cdigo do produto PAI da estrutura.

Retorna
aStru Retorna o array com a estrutura do produto na seguinte sintaxe: { {N , Cdigo , Comp. , Qtd. , TRT }, ... , ... }

Esta funo requer que seja declarada a varivel chamada nEstru contendo 0, para o seu correto funcionamento.

Exemplo
// Exemplo de uso da funcao Estrut: cPrd aStru nEstru While .T. @ 10,10 Say Codigo do Produto: @ 10,30 Get cPrd Picture @! Valid(!Empty(cPrd)) Read If LastKey() == 27 := Space(15) := {} := 0

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 72

Exit Endif If !ExistCpo(SB1,cPrd) Loop Endif i:= 0 aStru := Estrut(cPrd) // Obtem a estrutura nLin := 5 For i := 1 To Len(aStru) @nLin,00 Say Comp.: +aStru[i,3] @nLin,20 Say Quant.: +Str(aStru[i,4],15) nLin := nLin + 1 If nLin > 23 @24,00 Say Tecle <ENTER>... Inkey(0) nLin := 5 Endif Next i EndDo

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 73

Execute
Tipo: Processamento Executa uma Funo definida em um mesmo .Pr? nas clusulas <ACTION> ou <VALID>.

Sintaxe
Execute (cFuno)

Parmetro
cFuno Funo a ser executada.

Exemplo
@ 75,098 BmpButton type 01 action Execute(S500IMP)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 74

ExistChav
Tipo: Processamento Verifica se a chave j existe em determinado Alias. Funo para uso em validaes de campos-chave, para no permitir a duplicidade de registros.

Sintaxe
ExistChav(cAlias,cChave,nOrdem,cHelp)

Parametros
cAlias cChave nOrdem cHelp Alias do arquivo no qual a consistncia deve ser avaliada Chave para a pesquisa. Opcional. Se no for informada, o contedo ser automaticamente obtido do GET ativo Ordem do ndice para a pesquisa no Alias. Se no for especificado, ser assumida a primeira ordem Opcional chave de help. Se no for informada, o help ser o padro do sistema (JAGRAVADO)

Retorna
lRet Retorna Verdadeiro (.T.) se a chave no existir (o que significa que pode ser usada para incluir um novo registro). Caso contrrio, retorna Falso (.F.) e executa um help do sistema.

Exemplo
// Exemplo de uso da funcao ExistChav: // Pode-se utiliza-la em uma validacao de usuario, // definada atraves do Configurador: // Campo -> B1_COD // Validacao do Usuario -> ExistChav(SB1) // Ou em um Rdmake: While .T. cEsp := Space(15) @ 00,00 Say Cadastro de Especialidades @10,00 Say Espec.: Get cEsp Pict @! Read If LastKey() == 27 Exit Endif If ExistChav(SZ1,cEsp,1,ESPEXIST)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 75

Loop Endif Grava() // Rotina generica EndDo Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 76

ExistCpo
Tipo: Processamento Verifica se determinada chave existe no Alias especificado. Funo utilizada em processamentos onde o cdigo informado deve existir em determinado cadastro, na sua validao.

Sintaxe
ExistCpo(cAlias,cChave,nOrdem)

Parmetros
cAlias cChave nOrdem Alias do arquivo para a pesquisa Chave a ser pesquisada (opcional). Se no for informada, o contedo obtido automaticamente do GET em uso Nmero da ordem do ndice para Pesquisa (Opcional). Se no for informado, usa a ordem atual do Alias.

Retorna
lRet Retorna Verdadeiro (.T.) se a chave existir no Alias especificado, caso contrrio, retorna Falso (.F.) e executa um help padro do sistema (REGNOIS).

A ordem utilizada na pesquisa a atualmente selecionada. Se no for informado, usa a ordem atual do lias.

Exemplo
// Exemplo de uso da funcao ExistCpo: While .T. cProd := Space(15) @10,10 Get cProd Read If LastKey() == 27 Exit Endif If !ExistCpo(SB1,cProd)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 77

Loop Endif Grava() // Funcao generica. EndDo Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 78

ExistIni
Tipo: Processamento Verifica se o campo possui inicializador padro.

Sintaxe
ExistIni(cCampo)

Parmetros
cCampo Nome do campo para verificao.

Retorna
lEx Retorna Verdadeiro (.V.) se o campo possui inicializador padro, caso contrrio, retorna falso (.F.).

Exemplo
// Exemplo de uso da funcao ExistIni: // Se existir inicializador no campo B1_COD: If ExistIni(B1_COD) // Chama o inicializador: cCod := CriaVar(B1_COD) Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 79

Extenso
Tipo: Processamento Gera o extenso de um valor numrico. Esta funo retorna um valor, dinheiro ou quantidade, por extenso. Usada para a impresso de cheques, valor de duplicatas, etc.

Sintaxe
Extenso(nValor,lQtd,nMoeda)

Parametros
nValor lQtd Valor a ser gerado o extenso. Verdadeiro (.T.) indica que o valor representa uma quantidade. Falso (.F.) indica que o valor representa dinheiro. Se no for especificado, o default falso (.F.). - Qual moeda do sistema deve ser o extenso.

nMoeda

Retorna
cValor Retorna o valor por extenso.

Exemplo
// Exemplo de uso da funcao Extenso: nValor := SF2->F2_VALFAT // Gera o extenso do valor, formatando a variavel com // 200 caracteres preenchendo os espacos em branco com * cExtenso := PADR(Extenso(nValor),200,*) // Imprime o extenso em duas linhas (100 caracteres em cada): For nLi := 20 To 21 @nLi,10 Say Substr(cExtenso,(nLi-20)*100+1,100) Next nLi Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 80

FinNatOrc
Tipo: Processamentoe Planilha Retorna o valor orado da natureza.

Sintaxe
FinNatOrc(cNatureza,nMs,nMoeda)

Parmetros
cNatureza Natureza a ser pesquisada nMs Ms para clculo nMoeda Moeda de sada

Exemplo
FinNatOrc(R001,10,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 81

FinNatPrv
Tipo: Processamento e Planilha Retorna o valor previsto de cada natureza.

Sintaxe
FinatPrv(cNatureza,dData1,dData2,nMoeda)

Parmetros
cNatureza dData1 dData2 nMoeda Natureza a ser pesquisada Data Inicial para clculo Data Final de clculo Moeda de sada

Exemplo
FinNatPrv(R001,CtoD(01/01/98),dDataBase,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 82

FinNatRea
Tipo: Processamento e Planilha Retorna o valor realizado da Natureza.

Sintaxe
FinNatRea(cNatureza,dData1,dData2,nMoeda)

Parmetros
cNatureza Natureza a ser pesquisada dData1 dData2 nMoeda Data Inicial para clculo Data Final de clculo Moeda de sada

Exemplo
FinNatRea(R001,CtoD(01/01/98),dDataBase,1) aAdd(aL,++) aAdd(aL,|XXXXXXXX Relatorio de Teste aAdd(aL,++++) aAdd(aL,| CODIGO | DESCRICAO | PRECO |) aAdd(aL,++++) aAdd(aL,| XXXXXXX | XXXXXXXXXXXXXXXXXXXXXX | XXXXXX |) aAdd(aL,++++) nLim:= 80 // Relatorio de 80 colunas nLi:= 60 nPg:= 1 dbSelectArea(SB1) dbGoTop() While !EOF() If nLi > 55 nLi := 0 FmtLin({},aL[1],,,@nLi,.T.,nLim) FmtLin({dDataBase,nPg},aL[2],,,@nLi,.T.,nLim) FmtLin({},aL[3],,,@nLi,.T.,nLim) FmtLin({},aL[4],,,@nLi,.T.,nLim) FmtLin({},aL[5],,,@nLi,.T.,nLim) nPg := nPg + 1 Endif aDados := {} aAdd(aDados,Subs(B1_COD,1,7)) aAdd(aDados,Subs(B1_DESC,1,22)) Pagina: XXXXX|)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 83

Formula
Tipo: Processamento Interpreta uma frmula cadastrada. Esta funo interpreta uma frmula, previamente cadastrada no Arquivo SM4 atravs do Mdulo Configurador, e retorna o resultado com tipo de dado de acordo com a prpria frmula.

Sintaxe
Formula(cFormula)

Parmetros
cFormula Cdigo da frmula cadastrada no SM4.

Retorna
uRet Retorno, com tipo de dado de acordo com a frmula.

Exemplo
// Exemplo de uso da funcao formula: // Formula cadastrada no SM4: // Codigo: F01 // Regra : Sao Paulo, +StrZero(Day(dDataBase),2)+ // // de +MesExtenso(dDataBase)+ de + StrZero(Year(dDataBase),4)+.

// Ao imprimir esta linha em um programa, por exemplo, @ 00,00 Say Formula(F01) // o resultado impresso sera algo como: // Sao Paulo, 17 de dezembro de 1997.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 84

// Formula cadastrada no SM4: // Codigo: F02 // Regra : (GETMV(MV_JUROS)/100)+1 // Ao usar esta formula, pode-se dar um acrescimo em um // valor de acordo com a taxa de juros cadastrada no parametro MV_JUROS: nValor := nValor * Formula(F02)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 85

FuncaMoeda
Tipo: Processamento Retorna um array contendo o valor do titulo em at cinco (5) moedas.

Sintaxe
FuncaMoeda(dData,nValor,nMoeda)

Parmetros
dData nValor nMoeda Data utilizada como referncia Valor utilizado como referncia Moeda em que o valor se encontra

Retorna
aRet Array contendo o valor informado nas cinco moedas ( { nVal1,nVal2,nVal3,nVal4,nVal5 } )

Exemplo
// Exemplo do uso da funcao FuncAMoeda: nValTit nMoeda := SE1->E1_SALDO := SE1->E1_MOEDA

aValores := FuncaMoeda(dDataBase,nValTit,nMoeda) For i:=1 to 5 ? Valor do titulo na +Str(i,1)+ moeda: +; Transform(aValores[i],@E 9,999,999.99") Next i inkey(0) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 86

@... GET
Tipo: Tela DOS/Windows Executa um Get, diferenciado pela clusula <F3>.

Sintaxe
@ nLinha,nColuna GET cVar <PICTURE> cMscara <VALID> cFuno <F3> cConsulta

Parmetros
nLinha Nmero da Linha em que o Get ser posicionado nColuna Nmero da Coluna em que o Get ser posicionado cVar Varivel a ser editada

cMscara Define a mscara de edio (opcional) cFuno Funo que retorna valor lgico para validao da edio (opcional) cConsulta Definio (SXB) da consulta <F3> associada ao contedo de cVar

Comentrios
Os cdigos utilizados na clusula <F3> devem ser obtidos atravs do arquivo (SXB). No necessrio utilizar o comando READ aps a definio dos Gets.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 87

GetAdvFval
Tipo: Processamento Esta funo permite executar uma pesquisa em um arquivo, pela chave especificada e na ordem especificada, retornando o contedo de um ou mais campos.

Sintaxe
GetAdvFVal(cAlias,uCpo,uChave,nOrder,uDef)

Parmetros
cAlias uCpo uChave nOrder uDef Alias do arquivo. Nome de um campo ou array contendo os nomes dos campos desejados. Chave para a pesquisa. Ordem do indice para a pesquisa. Valor ou array default para ser retornado caso a chave no seja encontrada.

Retorna
uRet Retorna o contedo de um campo ou array com o contedo de vrios campos.

Exemplo
// Exemplo de uso da funcao GetAdvFVal: // Obtendo apenas de um campo: cChave := SD2->D2_COD+SD2->D2_LOCAL cDesc := GetAdvFVal(SB1,B1_DESC,cChave,1,SC6->C6_DESCRI)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 88

// Obtendo o conteudo de mais de um campo: cChave := SD2->D2_COD+SD2->D2_LOCAL aCpos := {B1_DESC,B1_PRV1",B1_UM} aDados := GetAdvFVal(SB1,aCpos,cChave,1,{SC6->C6_DESCRI,SC6->C6_PRCVEN,SC6->C6_UM})

refere-se aos Itens do Pedido de Venda) e, aps pesquisar no SB1 (Cadastro de Produtos), sugerir a quantidade vendida a partir de um campo especfico:
// Colunas... nPosCod := aScan(aHeader,{ |x| Upper(AllTrim(x[2])) == C6_PRODUTO }) nPosQtd := aScan(aHeader,{ |x| Upper(AllTrim(x[2])) == C6_QTDVEN })

// Obtm o cdigo do produto cCodigo := aCols[n,nPosCod] // Pesquisa dbSelectArea(SB1) dbSetOrder(1) dbSeek(xFilial(SB1)+cCod) // Altera a quantidade no grid aCols[n,nPosQtd] := SB1->B1_QTSUGER // Campo especfico com a quantidade padro __Return(SB1->B1_QTSUGER)

Para uma melhor compreenso, voc pode analisar os programas RDMOD2.PRX e/ou RDMOD3.PRX que acompanham o SIGA Advanced. Eles esto no diretrio principal do sistema (geralmente \SIGAADV\) e demonstram rotinas usadas para cadastros semelhantes ao Pedido de Vendas e que trabalham com os arrays mencionados.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 89

GetMV
Tipo: Processamento Recupera o contedo de parmetros originados em SX6.

Sintaxe
GetMV(cParam)

Parmetros
cParam Nome do parmetro a ser pesquisado no SX6

Retorna
ExpX1 Contedo do parmetro devolvido pela funo

Exemplos
cTabVista cColICMS := GETMV(MV_TABVIST) := GETMV(MV_COLICMS)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 90

GetSX8Num
Tipo: Processamento Fornece um nmero seqencial do Arquivo de Semforo (SX8??0.DBF). Esta funo retorna o prximo nmero, na seqncia e disponvel, para o cadastro no SIGA Advanced e mantm esta numerao para o usurio at o momento em que ele confirme ou abandone a operao. O Arquivo de Semforo usado para evitar a duplicidade de chaves em ambientes multiusurio. Esta funo trabalha juntamente com outras duas, chamadas CONFIRMSX8 e ROLLBACKSX8. Verifique os exemplos para maiores detalhes.

Sintaxe
GetSx8Num(cAlias,cCpoSx8)

Parmetros
cAlias Alias do Arquivo cCpoSx8 Nome do campo para aplicao do semforo

Exemplo
Para que o Cadastro de Clientes, por exemplo, carregue na incluso o prximo nmero disponvel automaticamente, pode-se utilizar a seguinte sintaxe no inicializador padro do campo A1_COD: GetSx8Num(SA1) Caso seja um arquivo especifico, utilize a sintaxe a seguir: GetSx8Num(SZ1,Z1_COD) Para uso em RdMakes, as sintaxes descritas acima tambm so vlidas, no devendo-se esquecer de que a funo GETSX8NUM trabalha junto com as funes CONFIRMSX8 e ROLLBACKSX8, que devem ser chamadas ao final do processamento (procedimento que feito automaticamente em um inicializador padro conforme a sintaxe explicada acima). Exemplo em Rdmake:
cCodNew := GetSx8Num(SZ1,Z1_COD) // Processamento...

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 91

// Confirmacao ConfirmSx8() // ou Cancelamento RollBackSx8() Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 92

GravaOrcado
Tipo: Processamento e Planilha Permite que um determinado valor calculado pela planilha seja gravado no Arquivo de Oramentos.

Sintaxe
GravaOrcado(cConta,nClula,nMs,nMoeda)

Parmetros
cConta nClula nMs nMoeda Conta Contbil a ser orada Nmero da clula onde o valor estar contido Ms a ser orado (se nulo, ser ms corrente) Moeda a ser orada (se nula, ser moeda nacional)

Exemplo
Para obter um valor referente conta 11102001, sendo que este dever ser orado na Contabilidade para o ms 07 e na moeda 1. Para tanto, cria-se a seguinte expresso: GravaOrcado(11102001,#022,7,1) Esta funo ir devolver o contedo <<< Orado >>>.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 93

Help
Tipo: Tela DOS/Windows Esta funo exibe a ajuda especificada para o campo e permite sua edio. Se for um help novo, escreve-se o texto em tempo de execuo.

Sintaxe
Help(cHelp,nLinha,cTtulo,cNil,cMensagem,nLinMen,nColMen)

Parmetros
cHelp nLinha cTtulo cNil Nome da Rotina chamadora do help (sempre branco) Nmero da linha da rotina chamadora (sempre 1) Ttulo do help Sempre NIL

cMensagem Mensagem adicional ao help nLinMen nColMen Nmero de linhas da Mensagem (relativa janela) Nmero de colunas da Mensagem (relativa janela)

Retorna
Nada

Exemplos
: If Empty(cArqs) dbSelectArea(cAlias) RecLock(cAlias,.F.) dbDelete() Else Help( ,1,NaoExclui,,cArqs,4,1) Endif

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 94

ImpCadast
Tipo: Impresso Imprime relatrio de cadastros padres do SIGA Advanced. Esta funo monta uma interface padro de relatrio, com parametrizaes de/at, e permite imprimir qualquer arquivo de cadastro definido no sistema.

Sintaxe
ImpCadast(cCab1,cCab2,cCab3,cNomePrg,cTam,nLim,cAlias)

Parmetros
cCab1 cCab2 cCab3 Primeira linha de cabealho Segunda linha de cabealho Terceira linha de cabealho

cNomePrg Nome do programa cTam nLim cAlias Tamanho do relatrio (P,M ou G) Limite do relatrio. Mxima coluna a ser impressa Alias do arquivo de cadastro a ser impresso

Exemplo
// Exemplo de uso da funcao Impcadast: // Imprime relatorio de cadastro de produtos: ImpCadast(Cabec1,Cabec2,Cabec3,PRG01",P,80,SB1") Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 95

IncRegua
Tipo: Impresso Incrementa rgua padro de processamento em relatrios.

Sintaxe
IncRegua()

Parmetros
Nil

Retorno
Nil

Exemplo
DbSelectArea(SA1) SetRegua(LastRec()) While ( ! Eof() ) @ Li, 001 PSAY SA1->A1_NOME DbSkip() IncRegua() End

Comentrio
Ver tambm SetRegua()

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 96

IncProc
Tipo: Tela DOS/Windows Incrementa rgua padro de processamento.

Sintaxe
IncProc()

Parmetros
Nil

Retorno
Nil

Exemplo
ProcRegua(1000) For i:= 1 to 1000 IncProc() Next Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 97

IndRegua
Tipo: Processamento Cria ndice de trabalho, podendo ser condicional.

Sintaxe
IndRegua(cAlias,cArqtrab,cChave,cPar,cFiltro,cTexto)

Parmetros
cAlias cArqtrab cChave cPar cFiltro cTexto Alias do arquivo. Nome do arquivo de trabalho retornado pela funo CriaTrab (.F.). Expresso utilizada na chave do novo ndice. Se for igual a D, cria um indice com a chave inversa, do maior valor para o menor. Expresso utilizada para filtro. Texto da rgua de processamento ( Selecionando registros ...).

Retorno
Nil

Exemplo
DbSelectArea(SC5) cFiltro cChave := C5_OK<>X := Dtos(C5_EMISSAO)+C5_VEND1

cIndSC51 := CriaTrab(Nil,.F.) IndRegua(SC5, cIndSC51, cChave, , cFiltro, Selecionando Pedidos...)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 98

LetterOrNum
Tipo: Processamento Verifica se determinado caracter uma letra ou um nmero.

Sintaxe
LetterOrNum(cChar)

Parmetros
cChar Caracter para verificao.

Retorna
lAlfa Retorna Verdadeiro (.V.) se o caracter informado for uma letra ou um nmero.

Exemplo
// Exemplo de uso da funcao LetterOrNum: cCh := Inkey(0) If LetterOrNum(cCh) ... Processamento Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 99

MarkBrowse
Tipo: Processamento Monta um browse padro do sistema, permitindo marcar e desmacar linhas.

Sintaxe
MarkBrowse(cAlias,cCampo,cCpo,aCampos,lMarc,cMarca,cCtrlM,lBotoes,cTopFun,cBotFun,aCoord)

Parmetros
cAlias cCampo cCpo lias do arquivo Campo que estabelece relao com a culuna de marca Campo que se estiver vazio muda a cor da linha

aCampos Array com os campos para montar o browse lMarc cMarca cCtrlM lBotoes Flag para inicializar marcado ou no Marca obtida com a funo Getmark Funo para ser executada no Alt_M Parmetro obsoleto

cTopFun Funo filtro para estabelecer o primeiro registro cTopFun Funo filtro para estabelecer o ltimo registro aCoord Array com as coordenadas da MarkBrowse.

Exemplo
cMarca := GetMark() cCadastro := Escolher Clientes aRotina := { { Pesquisar,AxPesqui,0,1}, ; {Visualizar,AxVisual,0,2}} MarkBrow(SA1,A1_OK,SA1->A1_OK,,,cMarca)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 100

MBrowse
Tipo: Processamento Monta um browse padro do sistema, conforme os parmetros.

Sintaxe
mBrowse(nLinha1, nColuna1, nLinha2, nColuna2, cAlias, aFixe, cCpo, nPar, cCor, n Opc)

Parmetros
nLinha1 Nmero da linha inicial nColuna1 Nmero da coluna inicial nLinha2 Nmero da linha final

nColuna2 Nmero da coluna final cAlias aFixe cCpo nPar cCor nOpc Alias do arquivo Array contendo os campos fixos (a serem mostrados em primeiro lugar no browse) Campo a ser tratado. Quando vazio, muda a cor da linha Parmetro obsoleto Funo que retorna um valor lgico, muda a cor da linha Define qual opo do aRotina que ser utilizada no double click

Exemplo
cCadastro := Cadastro de Orcamentos aRotina := {{Pesquisar,AxPesqui,0,1},; {Incluir,ExecBlock(DEMOA,.F.),0,3},; {Altera,ExecBlock(DEMOB),0,4},; {Excluir,ExecBlock(DEMOC,.F.),0,5}} MBrowse(6, 1, 22, 75, SA1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 101

Media
Tipo: Processamento Retorna a taxa mdia da moeda em um determinado ms/ano.

Sintaxe
Media(nMoeda,nMes,nAno)

Parmetros
nTaxa nMoeda nMes nAno Taxa mdia calculada. Moeda para clculo da taxa mdia. Ms para clculo da taxa mdia. Se no informado, assumido o ms da data base. Ano para clculo da taxa mdia. Se no informado, assumido o ano da data base.

Exemplo
// Exemplo de uso da funcao Media nTxMed := Media(1) nTaxa := nTxMed @ 00,00 Say Media do mes: +Transform(nTxMed,@E999.99") @ 00,01 Say Taxa calcul.: Get nTaxa Picture @E999.99 Read Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 102

MesExtenso
Tipo: Processamento Retorna o nome do ms por extenso.

Sintaxe
MesExtenso(nMes)

Parmetros
nMes Nmero do ms (1 a 12). Se nMes no for informado, assumido o ms da data base do sistema. Esta varivel tambm pode ser caracter (1 ou 2) ou do tipo data.

Retorna
cNome Nome do ms retornado por extenso.

Exemplo
// Exemplo do uso da funcao MesExtenso: ? Sao Paulo, +STRZERO(Day(dDataBase),2)+ de +; MesExtenso(dDataBase)+ de +StrZero(Year(dDataBase),4)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 103

Modelo2
Tipo: Processamento Exibe formulrio para cadastro segundo o modelo 2 (como a rotina de Nota Fiscal).

Sintaxe
Modelo2(cTtulo,aCabec,aRodap,aGd,nOp,cLOk,cTOk, [aGetsGD,bF4,cIniCpos,nMax,aCordw,lDelget])

Parmetros
cTtulo aCabec Ttulo da janela Array com os campos do cabealho

aRodap Array com os campos do rodap aGd nOp cLOk cTOk Array com as posies para edio dos itens (GETDADOS) Modo de operao (3 ou 4 altera e inclui itens, 6 altera mas no inclui itens, qualquer outro nmero s visualiza os itens) Funo para validao da linha Funo para validao de todos os dados (na confirmao)

aGetsGD Array Gets editveis (GetDados) Default = Todos. bF4 Codeblock a ser atribudo a tecla F4. Default = Nenhum. cIniCpos String com o nome dos campos que devem ser inicializados ao teclar seta para baixo (GetDados). nMAx Limita o nmero de linhas (GetDados). Default = 99. aCordw Array com quatro elementos numricos, correspondendo s coordenadas linha superior, coluna esquerda, linha interior e coluna direita, definindo a rea de tela a ser usada. Default = rea de Dados Livre. lDelget Determina se as linhas podem ser deletadas ou no (GetDados) Default = .T.
MANUAL RDMAKE - SIGA ADVANCED 4.07 - 104

Retorna
lRet Retorna .T. se for confirmado

Exemplo
//************************************************** // 3,4 Permitem alterar getdados e incluir linhas // 6 So permite alterar getdados e nao incluir linhas // Qualquer outro numero so visualiza nOpcx:=3 dbSelectArea(Sx3) dbSetOrder(1) dbSeek(SX5) nUsado:=0 aHeader:={} While !Eof() .And. (x3_arquivo == SX5) IF X3USO(x3_usado) .AND. cNivel >= x3_nivel nUsado:=nUsado+1 AADD(aHeader,{ TRIM(x3_titulo),x3_campo,; x3_picture,x3_tamanho,x3_decimal,; ExecBlock(Md2valid,.f.,.f.),x3_usado,; x3_tipo, x3_arquivo, x3_context } ) Endif dbSkip() End aCols:=Array(1,nUsado+1) dbSelectArea(Sx3) dbSeek(SX5) nUsado:=0 While !Eof() .And. (x3_arquivo == SX5) IF X3USO(x3_usado) .AND. cNivel >= x3_nivel nUsado:=nUsado+1 IF nOpcx == 3 IF x3_tipo == C aCOLS[1][nUsado] := SPACE(x3_tamanho) Elseif x3_tipo == N aCOLS[1][nUsado] := 0 Elseif x3_tipo == D aCOLS[1][nUsado] := dDataBase Elseif x3_tipo == M aCOLS[1][nUsado] := Else aCOLS[1][nUsado] := .F. Endif Endif

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 105

Endif dbSkip() End aCOLS[1][nUsado+1] := .F. cCliente:=Space(6) cLoja dData :=Space(2) :=Date()

nLinGetD:=0 cTitulo:=TESTE DE MODELO2" aC:={} // aC[n,1] = Nome da Variavel Ex.:cCliente // aC[n,2] = Array com coordenadas do Get [x,y], em // Windows estao em PIXEL // aC[n,3] = Titulo do Campo // aC[n,4] = Picture // aC[n,5] = Validacao // aC[n,6] = F3 // aC[n,7] = Se campo e editavel .t. se nao .f. #IFDEF WINDOWS AADD(aC,{cCliente ,{15,10} ,Cod. do Cliente,@!,; ExecBlock(MD2VLCLI,.F.,.F.),SA1",}) AADD(aC,{cLoja AADD(aC,{dData #ELSE AADD(aC,{cCliente ,{6,5} ,Cod. do Cliente,@!,; ExecBlock(MD2VLCLI,.F.,.F.),SA1",}) AADD(aC,{cLoja AADD(aC,{dData #ENDIF aR:={} // aR[n,1] = Nome da Variavel Ex.:cCliente // aR[n,2] = Array com coordenadas do Get [x,y], em // Windows estao em PIXEL // aR[n,3] = Titulo do Campo // aR[n,4] = Picture // aR[n,5] = Validacao // aR[n,6] = F3 // aR[n,7] = Se campo e editavel .t. se nao .f. #IFDEF WINDOWS AADD(aR,{nLinGetD ,{120,10},Linha na GetDados,; @E 999,,,.F.}) #ELSE AADD(aR,{nLinGetD ,{19,05},Linha na GetDados,; @E 999,,,.F.}) #ENDIF #IFDEF WINDOWS ,{6,40},Loja,@!,,,}) ,{7,5} ,Data de Emissao,,,,}) ,{15,200},Loja,@!,,,}) ,{27,10} ,Data de Emissao,,,,})

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 106

aCGD:={44,5,118,315} #ELSE aCGD:={10,04,15,73} #ENDIF cLinhaOk := ExecBlock(Md2LinOk,.f.,.f.) cTudoOk := ExecBlock(Md2TudOk,.f.,.f.) // lRet = .t. se confirmou // lRet = .f. se cancelou lRet:=Modelo2(cTitulo,aC,aR,aCGD,nOpcx,cLinhaOk,cTudoOk) // No Windows existe a funcao de apoio CallMOd2Obj() que // retorna o objeto Getdados Corrente Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 107

Modelo3
Tipo: Processamento Executa cadastro semelhante ao cadastro de Pedidos de Venda, cabealho varivel com itens.

Sintaxe
Modelo3(cTitulo,cAliasEnchoice,cAliasGetD,aCpoEnchoice,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk, [lVirtual,nLinhas,aAltEnchoice])

Parmetros
cTitulo Ttulo da janela cAliasEnchoice lias do cabealho cAliasGetd lias dos itens

aCpoEnchoice Array com os campos que sero mostrados cLinOk cTudOk nOpce nOpcG cFieldOk lVirtual Funo para validar a mudana de linha nos itens. Funo para validar todos os itens. Nmero da opo do menu para o cabealho (Enchoice) Nmero da opo do menu para o itens (GetDados) Funo para validar os campos dos itens (GetDados) Permite visualizar campos virtuais na enchoice. Default = .F. nLinhas Limita o nmero mximo de linhas (GetDados) Default = 99. aAltEnchoice Array com campos alterveis (Enchoice) Default = Todos.

Retorna
lRet Retorno da funo modelo3. Se True a operao foi confirmada.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 108

Exemplo
aRotina := {{ Pesquisa,AxPesqui, 0 , 1},; { Visual,AxVisual, 0 , 2},; { Inclui,AxInclui, 0 , 3},; { Altera,AxAltera, 0 , 4, 20 },; { Exclui,AxDeleta, 0 , 5, 21 }} // // Opcoes de acesso para a Modelo 3 cOpcao:=VISUALIZAR Do Case Case cOpcao==INCLUIR; nOpcE:=3 ; nOpcG:=3 Case cOpcao==ALTERAR; nOpcE:=3 ; nOpcG:=3 Case cOpcao==VISUALIZAR; nOpcE:=2 ; nOpcG:=2 EndCase // // Cria variaveis M->????? da Enchoice RegToMemory(SC5,(cOpcao==INCLUIR)) // // Cria aHeader e aCols da GetDados nUsado:=0 dbSelectArea(SX3) dbSeek(SC6) aHeader:={} While !Eof().And.(x3_arquivo==SC6") If Alltrim(x3_campo)==C6_ITEM dbSkip() Loop Endif If X3USO(x3_usado).And.cNivel>=x3_nivel nUsado:=nUsado+1 Aadd(aHeader,{ TRIM(x3_titulo), x3_campo, x3_picture,; x3_tamanho, x3_decimal,AllwaysTrue(),; x3_usado, x3_tipo, x3_arquivo, x3_context } ) Endif dbSkip() End If cOpcao==INCLUIR aCols:={Array(nUsado+1)} aCols[1,nUsado+1]:=.F. For _ni:=1 to nUsado aCols[1,_ni]:=CriaVar(aHeader[_ni,2]) // // //

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 109

Next Else aCols:={} dbSelectArea(SC6) dbSetOrder(1) dbSeek(xFilial()+M->C5_NUM) While !eof().and.C6_NUM==M->C5_NUM AADD(aCols,Array(nUsado+1)) For _ni:=1 to nUsado aCols[Len(aCols),_ni]:=FieldGet(FieldPos(aHeader[_ni,2])) Next aCols[Len(aCols),nUsado+1]:=.F. dbSkip() End Endif If Len(aCols)>0 // // Executa a Modelo 3 cTitulo:=Teste de Modelo3() cAliasEnchoice:=SC5" cAliasGetD:=SC6" cLinOk:=AllwaysTrue() cTudOk:=AllwaysTrue() cFieldOk:=AllwaysTrue() aCpoEnchoice:={C5_CLIENTE} //

_lRet:=Modelo3(cTitulo,cAliasEnchoice,cAliasGetD,aCpoEnchoice,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk) // // Executar processamento If _lRet Aviso(Modelo3(),Confirmada operacao!,{Ok}) Endif Endif Return //

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 110

MontaF3
Tipo: Processamento Permite o acesso janela de Consultas Padronizadas (criadas no SXB) atravs de um GET usando a tecla F3.

Sintaxe
MontaF3(cAlias)

Parmetros
cAlias Alias do arquivo ou cdigo de tabela para consulta. Se no informado, desabilita a tecla F3.

Exemplo
// Exemplo de uso da funcao MontaF3: // Versao DOS cCod := Space(15) @02,50 Say Digite o codigo: Get cCod Picture @! ; When MontaF3(SB1) Valid(MontaF3()) Read Return // *************************** // Versao WINDOWS // Use a propria clausula do comando get: @ 250,250 To 360,450 Dialog oDlg Title Teste @ 02,50 Get cCod Picture @! F3 SB1 Activate Dialog oDlg Centered Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 111

MovimCC
Tipo: Processamento Retorna o movimento de um centro de custo mais conta contbil (extracontbil).

Sintaxe
MovimCC(cCC, cConta, nMs, nMoeda)

Parmetros
cCC cConta nMs nMoeda Cdigo do centro de custo Cdigo da conta contbil Referente ao ms Moeda desejada para obteno do valor

Exemplo
MovimCC(3001, 111001,Month(Ddatabase),1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 112

Movimento
Tipo: Processamento Devolve o movimento (dbito-crdito) de uma determinada conta, ou seja, o saldo do movimento.

Sintaxe
Movimento(cCdigo,nMs,nMoeda,dData)

Parmetros
cCdigo Cdigo da conta nMs nMoeda dData Ms do movimento desejado Moeda desejada para obteno do movimento Data do exerccio desejado

Exemplo
Movimento(43,1,1, CTOD ("01/01/95") - retorna o 1 perodo Movimento(`43,1,1,CTOD(01/01/96) - retorna o 13 perodo // Exibe uma mensagem no dialogo MsProcTxt(Processando produto: +B1_COD) // Processamento... dbSkip() EndDo Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 113

MsGetVersion
Tipo: Processamento Retorna array com as verses do Windows NT.

Sintaxe
MsGetVersion( )

Exemplo
aVersao := MsGetVersion() @ 001, 010 PSAY Versao do Windows : + Str( aVersao[1], 2 ) + . + Str( aVersao[2], 2 ) @ 008, 010 PSAY Versao do Dos aVersao[4], 2 ) : + Str( aVersao[3], 2 ) + . + Str(

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 114

MsgBox
Tipo: Tela Windows Abre uma caixa de dialogo padronizada para informar o usurio de um Erro deciso a ser tomada ou apenas uma informao (Registro Gravado com sucesso).

Sintaxe
MSGBOX(cMensagem,cTtulo,cTpCaixa)

Parmetros
cMensagem Define a mensagem apresentada no interior da janela cTtulo Titulo da janela

cTpCaixa Tipo da caixa padronizada

Retorno
Retorna Nil ou um valor lgico (.T. ou .F.) conforme o tipo de caixa.

Comentrios
As caixas assumem o tamanho de <cMensagem>. Tipos de caixas: STOP, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil. INFO, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil. ALERT, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil. YESNO, utiliza um bitmap para advertncia e tem dois botes Sim e No, retorna .T. ou .F. RETRYCANCEL, utiliza um bitmap para advertncia e tem dois botes Repetir e Cancelar, retorna .T. ou .F.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 115

@..To...MultiLine
Tipo: Tela Windows Ativa Browse para edio de mltiplos itens padro SigaAdv Win (GetDados Itens SC6).

Sintaxe
@ nLinha1,nColuna1 TO nLinha2,nColuna2 MULTILINE <<MODIFY>> <<DELETE>> <<VALID>> cFuno <<FREEZE>> nColuna

Parmetros
nLinha1 Nmero da linha superior nColuna1 Nmero da coluna superior nLinha2 Nmero da linha inferior

nColuna2 Nmero da coluna inferior cFuno Funo a ser executada para validar mudana de linha <opcional> nColuna Nmero de colunas Congeladas esquerda <opcional>

Comentrios
As clusulas opcionais permitidas controlam as Alteraes, Excluses e Validaes nas mudanas de linha e congelamento de colunas respectivamente.

Devem ser criadas obrigatoriamente as matrizes aHeader [n][n] e aCols [n][n] antes da definio da MULTILINE, sendo que aHeader [n][n] contm informaes sobre os campos que sero editados (SX3) e aCols [n][n] contm os dados referentes aos campos que sero editados.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 116

NaoVazio
Tipo: Processamento Verifica se o campo no est vazio.

Sintaxe
NaoVazio(cCpo)

Parmetros
cCpo Campo a verificar

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Exemplos
@ 5,10 Get cCodigo Valid NaoVazio(cCodigo)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 117

Negativo
Tipo: Processamento Verifica se negativo.

Sintaxe
Negativo(nCpo)

Parmetros
nCpo Campo a verificar

Retorna
ExpL1 Se o valor de nCpo for menor que 0, retornado .T., caso contrrio ser retornado .F..

Exemplos
If Negativo (nValTitulo) @ 5,10 Say Valor invalido Loop EndIf

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 118

Orcado
Tipo: Processamento Retorna o valor orado de uma conta.

Sintaxe
Orcado(cConta, nPerodo,nMoeda,dData)

Parmetros
cConta Cdigo da conta De nPerdodo Referente ao perodo nMoeda dData Moeda desejada para obteno do valor Data para converso (em formato data ou caracter), caso no informada, ser utilizada a DataBase do sistema

Exemplo
Orcado(11102001,1,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 119

OrcadoCC
Tipo: Processamento Recupera o valor orado da Conta x Centro de Custo para utilizao na planilha.

Sintaxe
OrcadoCC(cConta,cCC,nPerodo,nMoeda,dData)

Parmetros
cConta cCC Cdigo da Conta Cdigo do Centro de Custo

nPerodo Perodo (default ms da database) nMoeda dData Moeda (default 1) Data para converso se moeda de 2 a 5 - (default dDataBase)

Exemplo
OrcadoCC( 111001,3001,3,2)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 120

OpenFile
Tipo: Processamento a funo que exibe o diagnstico de arquivos, verificando a existncia dos arquivos de dados e os ndices do sistema, criando caso no existam, etc. Abre os arquivos de acordo com o mdulo onde executada ou de acordo com a parametrizao.

Sintaxe
OpenFile(cEmp)

Parmetros
cEmp Cdigo da empresa que deve ser aberta.

Exemplo
// Exemplo de uso da funcao openfile: cEmp := SM0->M0_CODIGO // Elimina os indices de todos os arquivos abertos no // SX2 para reindexacao dbSelectArea(SX2) dbGoTop() While !EOF() If Select(SX2->X2_CHAVE) > 0 dbSelectArea(SX2->X2_CHAVE) dbCloseArea() cEsp := AllTrim(SX2->X2_PATH) cEsp := cEsp + AllTrim(SX2->X2_ARQUIVO) + "*" + RetIndExt() fErase(cEsp) Endif dbSelectArea(SX2) dbSkip() EndDo dbCloseAll() // Fecha todos os arquivos OpenFile(cEmp) // Abre os arquivos (reindexa) Return * Parmetro cEmp apenas no Windows.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 121

OurSpool
Tipo: Impresso Abre a tela do gerenciador de impresso do sistema. O gerenciador mostra os relatrios impressos em disco gravados no diretrio definido atravs do parmetro MV_RELATO.

Sintaxe
OurSpool(cArq)

Parmetros
cArq Nome do arquivo. Este parmetro opcional, se informado, o gerenciador de impresso j aberto neste arquivo.

Exemplo
// Exemplo de uso da funcao ourspool: // Ativa o gerenciador de impressao: OurSpool() // Para verificar o uso desta funcao em relatorios, // verifique o exemplo da funcao AVALIMP. Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 122

Pergunte
Tipo: Impresso Esta funo permite acessar e editar um grupo de perguntas do arquivo SX1. Mostra uma tela contendo as perguntas gravadas em SX1 a serem respondidas ou confirmadas pelo usurio.

Sintaxe
Pergunte(cGrupo, lVar)

Parmetros
cGrupo lVar Nome do Grupo de perguntas. .F. - devolve o contedo das variveis, no apresentando a janela de perguntas; .T. - permite a alterao das variveis, apresentando a janela.

Retorna
ExpL1 .T. se o grupo de perguntas existe.

Exemplos
pergunte(AFR090,.T.) // Variveis utilizadas na pergunta // mv_par01 a partir da data // mv_par02 at a data // mv_par03 da conta // mv_par04 at a conta // mv_par05 do centro de custo // mv_par06 at o centro de custo // mv_par07 do cdigo // mv_par08 at o cdigo // mv_par09 do projeto // mv_par10 at o projeto // mv_par11 moeda

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 123

Periodo
Tipo: Processamento Devolve o perodo contbil de acordo com o exerccio atual.

Sintaxe
Periodo(dData,nMoeda)

Parametros
dData nMoeda Data a ser considerada. Se no for especificada, assumida a data base. Moeda a ser considerada. Se no for especificada, assumida a primeira moeda.

Retorna
nPer Perodo contbil retornado.

Exemplo
Veja o exemplo da funo CALCSALDO.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 124

Pertence
Tipo: Processamento Verifica se o campo est contido em outro.

Sintaxe
Pertence(cString,cCampo)

Parmetros
cString cCampo String que deve estar contida no cCampo Campo a verificar

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Exemplo
SetCursor(1) @ 09,19 Get cTipo Picture @! Valid Pertence(CL\VD\PD,cTipo)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 125

PesqPict
Tipo: Processamento Pesquisa, no dicionrio de dados, qual a picture usada em um determinado campo, seja para a edio em tela ou para a impresso de relatrios.

Sintaxe
PesqPict(cAlias,cCampo,nTam)

Parmetros
cAlias cCampo nTam Alias do arquivo Nome do campo Opcional, para campos numricos, ser usado como o tamanho do campo para definio da picture. Se no informado, e usado o tamanho padro no dicionrio de dados.

Retorna
cPic Picture do campo

Exemplo
// Exemplo de uso da funcao PesqPict // Em um relatorio pode-se usar a sintaxe abaixo para // formatacao automatica de acordo com o dicionario de // dados: @ @ nLin,20 Say Total: nLin,27 Say SF2->F2_VALBRUT Picture PesqPict(SF2,F2_VALBRUT)

// ... Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 126

PesqPictQt
Tipo: Processamento Devolve a Picture de um campo de quantidade, de acordo com o dicionrio de dados. Esta funo geralmente utilizada quando h pouco espao disponvel para impresso de valores em relatrios, quando o valor nEdio no informado, ela tem o comportamento semelhante ao da funo X3Picture, pois busca o tamanho do campo no dicionrio de dados.

Sintaxe
PesqPictQt(cCampo,nEdio)

Parmetros
cCampo nEdio Nome do campo a verificar a picture Espao disponvel para edio

Retorna
ExpC Picture ideal para o espao definido por nEdio, sem a separao dos milhares por vrgula

Exemplo
@ 8,10 Say SB2->B2_QATU Picture PesqPictQt (B2_QATU,8)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 127

Posicione
Tipo: Processamento Posiciona o arquivo em um determinado registro.

Sintaxe
Posicione(cAlias, nOrdem, cChave, cCampo)

Parmetros
cAlias nOrdem cChave cCampo Alias do arquivo Ordem utilizada Chave pesquisa Campo a ser retornado

Retorna
Retorna o contedo do campo passado com o permetro.

Exemplo
Posicione(SA1,1,xFilial(SA1)+001,A1_NOME)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 128

Positivo
Tipo: Processamento Verifica se positivo.

Sintaxe
Positivo(nCampo)

Parmetros
nCampo Campo a verificar

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Comentrios
Se cCampo for maior ou igual ( >= ) a zero a funo retorna .T. Caso contrrio retorna .F.

Exemplo
@ 09,07 Get nValor Picture 999999 Valid Positivo ( nValor )

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 129

ProcRegua
Tipo: Tela DOS/Windows Inicializa rgua padro de processamento.

Sintaxe
ProcRegua(nRegs,nLinha,nColuna)

Parmetros
nRegs nLinha nColuna Nmero de registros que sero processados. Nmero da Linha da rgua Nmero da Coluna da rgua

Retorna
Nil

Exemplo
ProcRegua(1000) For i:= 1 to 1000 IncProc() Next Return

No RdMake Windows a ProcRegua s utiliza o primeiro parmetro. No RdMake DOS so utilizados os trs parmetros. = Ver tambm IncProc()

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 130

ProxReg
Tipo: Processamento Retorna o ltimo registro incrementado. Esta funo retorna um valor, numrico ou caracter, contendo o prximo nmero a partir do ltimo registro encontrado. O campo que levado em considerao aquele que se encontra posicionado no SX3 (dicionrio de dados). Pode ser usada para obter os prximos valores para campos dos tipos: Caracter, Numrico e Data.

Sintaxe
ProxReg(nInc,nPos,nIndice)

Parmetros
nInc nPos nndice Valor a incrementar Tamanho Nmero do ndice a ser utilizado

Retorna
uRet Prximo nmero (ltimo registro incrementado)

Exemplo
// Exemplo de uso da funo ProxReg: dbSelectArea(SX3) dbSetOrder(2) dbSeek(A1_COD) dbSelectArea(SA1) cProx := ProxReg(1,6,1) // Retorna o possvel prximo // cdigo para o cadastro de

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 131

// cliente dbSelectArea(SX3) dbSeek(D2_NUMSEQ) dbSelectArea(SD2) nProx := ProxReg(1,,4) // Retorna o proximo nmero // seqencial Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 132

@...Radio
Tipo: Tela Windows Cria uma caixa de seleo semelhante a CHECKBOX, todos os itens so apresentados mas apenas um pode ser selecionado.

Sintaxe
@ nLinha,nColuna RADIO aArray VAR nPos Object oRdx

Parmetros
nLinha Nmero da linha superior nColuna Nmero da coluna superior aArray nPos oRdx Matriz [1] com os Itens Contm a posio na Matriz[1] do item selecionado Objeto associado Radiobox()

Retorno
O item selecionado pode ser obtido por - Matriz [n3]

Comentrios
Os itens da Matriz [1] devem ser do tipo C caracter. Pode ser utilizada para definir uma caracterstica em um conjunto. Ex.Tipo da Condio de pagamento Tipo 1 Tipo 2 Tipo 3

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 133

RecLock
Tipo: Processamento Tenta efetuar um lock no registro do banco de dados informado.

Sintaxe
RecLock(cAlias,lAdiciona)

Parmetros
cAlias Alias do Banco de Dados lAdiciona .T. adiciona registro ao Banco de Dados

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Comentrios
Esta funo tenta colocar o registro corrente do arquivo cAlias em lock. necessrio colocar um registro em lock sempre que se for efetuar uma atualizao no mesmo, como um comando Replace ou um Delete. Caso lAdiciona = .T., a funo RecLock inclui (com um Append Blank) um registro no arquivo cAlias. Se a operao for bem sucedida, retorna .T.

Exemplo
// Excluso de Registro // Com lAdiciona = .F. If ! RecLock(SF1,.F.) @ 1,1 Say Registro em uso por outra estao Loop EndIf dbDelete() dbUnLock() Com ExpL2 = .T. // Incluso de Registro RecLock(SF1,.T.) Replace F1_TIPO F1_SERIE F1_LOJA dbUnLock() With cTipo, F1_DOC With cNFiscal,; With cSerie With cLoja ,F1_EMISSAO With dDEmissao,; ,F1_FORNECE With Subs(cA100For,1,6)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 134

Aps a atualizao do registro, deve-se executar a funo MsUnlock().

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 135

RecMoeda
Tipo: Processamento Rotina para obteno do valor da moeda desejada em determinada data.

Sintaxe
RecMoeda(dData,nMoeda)

Parmetros
dData nMoeda Data para obteno do valor da moeda. Moeda desejada.

Retorna
nVMoeda Retorna o Valor da moeda na data desejada.

Exemplo
// Exemplo de uso da funcao RecMoeda: nDolar := RecMoeda(dDataBase,2) nValDolar := SE1->E1_VALOR * nDolar Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 136

RestArea
Tipo: Processamento Restaura a rea RestArea a partir do array.

Sintaxe
RestArea(aArray)

Parmetros
aArray Expresso Array para restaurao

Exemplo
aArray:=GetArea() RestArea(aArray)

Ver tambm
Funo GetArea( )

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 137

RetASC
Tipo: Processamento Retorna um cdigo de letras quando ultrapassar o nmero mximo de dgitos.

Sintaxe
RetAsc(cOri,nTam,lAlfa)

Parmetros
cOri nTam lAlfa String original a ser convertida. Tamanho mximo para a converso. Indica se o retorno deve conter letras (.T.) ou somente nmeros (.F.)

Retorna
cStr Retorna a String formada com letras ou nmeros.

Exemplo
// Exemplo de uso da funcao RetAsc: // Suponha a existencia de um campo caracter de tamanho // 2. Usando a funcao RetAsc com o parametro lAlfa ver// dadeiro (.T.) se o numero ultrapassar 99 retornara A0 cCod := StrZero(ProxReg(1,2,1),2) // Se ultrapassar 99 retorna A0 cCod := RetAsc(cCod,2,.T.) __Return(cCod)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 138

RetIndex
Tipo: Processamento Devolve os ndices padres do SIGA.

Sintaxe
RetIndex(cAlias)

Parmetros
cAlias Alias do Arquivo

Retorna
Nmero ndices existentes no SINDEX

Comentrios
Baseado no SINDEX, abre todos os ndices padres para o arquivo em pauta.

Exemplo
Select SA1 Index on A1_ACUM to TRAB : SINDEX := RetIndex (SA1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 139

RollBackSX8
Tipo: Processamento Retorna o nmero obtido pela funo GETSX8NUM no semforo como pendente. Verifique a funo GETSX8NUM para maiores detalhes.

Sintaxe
RollBackSx8()

Exemplo
Verifique os exemplos na funo GETSX8NUM.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 140

RptStatus
Tipo: Processamento (Apenas Windows) Executa funo de detalhe do relatrio.

Sintaxe
RptStatus(bBlock) => RptStatus(bBlock, cTtulo, cMsg)

Parmetros
bBlock cTtulo cMsg Bloco de cdigo que define a funo a ser executada. Ttulo do dilogo de processamento. Mensagem do dilogo de processamento.

Comentrios
Pode ser utilizada com os parmetros: RptStatus( { | | Execute(Nome da Funo) } )

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 141

Saldo
Tipo: Processamento Calcula o saldo de uma determinada conta at o perodo informado e na moeda especificada.

Sintaxe
Saldo(cConta,nPer,nMoeda)

Parmetros
cConta nPer nMoeda Cdigo da conta desejada. Perodo contbil at o qual ser feito o clculo. Moeda desejada.

Retorna
nSld Retorna o Saldo da conta at o perodo desejado.

Exemplo
// Exemplo de uso da funcao Saldo: cConta := SA1->A1_CONTA nSl cSl Return := Saldo(cConta,Periodo(dDataBase,2),2) := Transform(nSl,@E 9,999,999.99")

Alert(O saldo da conta +cConta+ na moeda 2 e: +cSl)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 142

SaldoCC
Tipo: Processamento Calcula o saldo atual em um determinado centro de custo ou conta (extracontbil). O arquivo SI3 deve estar posicionado para a obteno dos valores para o clculo.

Sintaxe
SaldoCC(cCC,cConta,nPer,nMoeda)

Parmetros
cCC cConta nPer nMoeda Centro de Custo desejado Cdigo da conta Perodo at o qual o acmulo deve ser calculado Moeda desejada

Retorna
nSld Saldo atual retorna do.

Exemplo
// Exemplo de uso da funcao SaldoCC: // Assumindo-se que o SI3 esta posicionado, nao e neces// sario informar o centro de custo e a conta. nSld := SaldoCC(,,12,1) return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 143

SaldoCusto
Tipo: Processamento Calcula o saldo dos centro de custos extracontbeis.

Sintaxe
SaldoCusto(cCC1,cCC2,cConta1,cConta2,nMs,nMoeda)

Parmetros
cCC1 cCC2 cConta1 cConta2 nMs nMoeda Centro de Custo Inicial Centro de Custo Final Conta Inicial Conta Final Ms (se nula, assume o ms de referncia da database) Moeda (se nula, ser assumido 1)

Exemplo
SaldoCusto(1007, 1099, 3, 4, 10, 1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 144

SaldoSB2
Tipo: Processamento Esta funo calcula o saldo atual do produto (do Arquivo SB2), descontando os valores empenhados, reservados, etc. necessrio que o Arquivo SB2 esteja posicionado no produto desejado.

Sintaxe
SaldoSB2()

Retorna
nSld Retorna o Saldo do produto calculado.

Exemplo
// Exemplo de uso da funcao SaldoSb2: cProd := Space(15) @ 10,10 Get cProd Picture @! Read dbSelectArea(SB2) dbSeek(cProd) cSld := Transform(SaldoSb2(),@E 9,999,999.99") Alert(Este produto tem um saldo de: +cSld) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 145

SetDefault
Tipo: Processamento Habilita os padres definidos pela funo SetPrint.

Sintaxe
SetDefault (aArray, cAlias)

Parmetros
aArray Array aReturn, preenchido pelo SetPrint [1] Reservado para Formulrio [2] Reservado para N de Vias [3] Destinatrio [4] Formato => 1-Comprimido 2-Normal [5] Mdia => 1-Disco 2-Impressora [6] Porta ou Arquivo 1-LPT1... 4-COM1... [7] Expresso do Filtro [8] Ordem a ser selecionada [9]..[10]..[n] Campos a Processar (se houver) cAlias Alias do arquivo a ser impresso.

Retorna
Nil

Comentrios
Esta funo habilita os padres de relatrio alterados pela funo SetPrint.

Exemplo
// Define Variveis cString:= SB1 NomeRel:= MATR290 cPerg := MTR290 titulo := RELAO PARA ANLISE DOS ESTOQUES cDesc1 := Este relatrio demonstra a situao de cada item em

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 146

cDesc2 := relao ao seu saldo , seu empenho , suas entradas previstas cDesc3 := e sua classe ABC. aOrd := { Por Codigo Tamanho := G // Envia controle para a funo SETPRINT NomeRel:= SetPrint( cString, NomeRel, cPerg, @titulo, cDesc1, ; cDesc2, cDesc3, .F., aOrd, .F., Tamanho) If LastKey() = 27 .or. nLastKey = 27 RestScreen(3,0,24,79,cSavScr1) Return Endif SetDefault(aReturn,cAlias) If LastKey() = 27 .OR. nLastKey = 27 RestScreen(3,0,24,79,cSavScr1) Return Endif , Por Tipo }

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 147

SetDlg
Tipo: Tela Windows Colocar um ttulo em uma Dialog.

Sintaxe
SetDlg(oWnd, cText)

Parmetros
oWnd cText Objeto da janela Novo Texto

Exemplo
If ( INCLUI ) cCaption ElseIf ( ALTERA ) cCaption EndIf SetDlg( oDlg, cCaption ) := Alteracao de Pedidos := Inclusao de Pedidos

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 148

SetPrint
Tipo: Impresso Altera os padres de impresso.

Sintaxe
SetPrint(cAlias,cNomeRel,cPerg,cDesc1,cDesc2,cDesc3,cDesc4,lDic, aOrdem,lComp,cClass)

Parmetros
cAlias cNomeRel cPerg Alias do Arquivo Principal (se existir) Nome padro do relatrio Nome do grupo de perguntas

cDesc1 ..cDesc4 Descrio do Relatrio lDic Habilita o Dicionrio de Dados .T. Habilita (s utilizar em conjunto com a funo ImpCadast) .F. Desabilita Array contendo as ordens de indexao do arquivo principal. Habilita a alterao da compresso do relatrio .T. Habilita .F. Desabilita Classificao do Relatrio por Tamanho ( G, M ou P ) P 80 colunas M 132 colunas G 220 colunas

aOrdem lComp

cClass

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 149

Retorna
ExpC Nome do arquivo com o relatrio impresso em disco opcionalmente alterado pelo usurio

Comentrios
Esta funo possibilita a alterao de determinados padres dos relatrios. Ela funciona em conjunto com a funo SetDefault.

Exemplo
// Define Variveis cString:= SB1 NomeRel:= MATR290 cPerg := MTR290 titulo := RELAO PARA ANLISE DOS ESTOQUES cDesc1 := Este relatrio demonstra a situao de cada item em cDesc2 := relao ao seu saldo , seu empenho , suas entradas previstas cDesc3 := e sua classe ABC. aOrd := { Por Codigo , Por Tipo } Tamanho:= G // Envia controle para a funo SETPRINT NomeRel := SetPrint( cString, NomeRel, cPerg, @titulo, cDesc1,; cDesc2, cDesc3, .F., aOrd, .F., Tamanho ) If LastKey() = 27 .or. nLastKey = 27 RestScreen(3,0,24,79,cSavScr1) Return Endif SetDefault(aReturn,cAlias) If LastKey() = 27 .OR. nLastKey = 27 RestScreen(3,0,24,79,cSavScr1) Return Endif

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 150

SetRegua
Tipo: Impresso (DOS/ Windows) Inicializa rgua padro em relatrios.

Sintaxe
SetRegua(nRegs)

Parmetros
nRegs Nmero de registros que sero processados.

Retorno
Nil

Exemplo
DbSelectArea(SA1) SetRegua(LastRec()) While ( ! Eof() ) @ Li, 001 PSAY SA1->A1_NOME DbSkip() IncRegua() End Do

Comentrio
Ver tambm incRegra.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 151

SldBco
Tipo: Processamento Retorna o saldo bancrio em uma data.

Sintaxe
SldBco(cBanco,cAgncia,cConta,dData,nMoeda)

Parmetros
cBanco Cdigo do Banco cAgncia Agncia Bancria cConta dData nMoeda Conta Bancria Data do Saldo Moeda do Saldo Bancrio

Exemplo
SldBco(409,00198,011122, dDataBase,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 152

SldCliente
Tipo: Processamento Retorna o saldo a receber do cliente em uma determinada data.

Sintaxe
SldCliente(cCliente,dData,nMoeda,lSaldo)

Parmetros
cCliente dData nMoeda lSaldo Cdigo do Cliente+Loja Data do Movimento a Receber (padro dDataBase) Moeda Se .T. considera o saldo do SE5 (padro .T.)

Exemplo
SldCliente(00000101,dDataBase)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 153

SldFornece
Tipo: Processamento Retorna o saldo a pagar do fornecedor em uma data.

Sintaxe
SldFornece(cFornece,dData,nMoeda,lSaldo)

Parmetros
cFornece Cdigo do Fornecedor+Loja dData nMoeda lSaldo Data do Movimento a Pagar (padro dDataBase) Moeda - (padro 1) Se .T. considera o saldo do SE5 (padro .T.)

Exemplo
SldFornece(00000101")

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 154

SldPagar
Tipo: Processamento Retorna o saldo a pagar em uma determinada data.

Sintaxe
SldPagar(dData,nMoeda,lData)

Parmetros
dData nMoeda lData Data do Movimento a Pagar ( padro dDataBase) Moeda (padro 1) Se .T. At a Data, .F. Somente Data (padro .T.)

Exemplo
SldPagar(dDataBase,1,.T.)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 155

SldReceber
Tipo: Processamento Retorna o saldo a receber em uma data.

Sintaxe
SldReceber(dData,nMoeda,lData)

Parmetros
dData nMoeda lData Data do Movimento a Receber. Moeda - default 1 .T. - at a Data; .F. - somente Data (o padro .T.)

Exemplo
SldReceber(Data,1,.T.)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 156

SomaContas
Tipo: Processamento Retorna o saldo acumulado de um grupo de contas, de acordo com a sintaxe apresentada. Esta funo considera somente contas de classe A analtica

Sintaxe
SomaContas(cLista,nMs,nMoeda)

Parmetros
cLista Lista de contas, cercada por aspas (). O separador : (dois pontos) informa intervalo de contas De-At. O separador , (vrgula) informa separao de contas. Ms (default ms da database) Moeda (default 1)

nMs nMoeda

Exemplo
SomaContas(11101001,3,1) Devolve o saldo da conta em questo no ms 3 na moeda 1.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 157

SomaMovim
Tipo: Processamento Retorna o movimento dentro de um intervalo de contas analticas.

Sintaxe
SomaMovim(cConta1, cConta2, nMs, nMoeda)

Parmetros
cConta1 cConta2 nMs nMoeda Cdigo da conta De Cdigo da conta At Referente ao ms Moeda desejada para obteno do valor

Exemplo
SomaMovim(41304,41305,12,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 158

Somar
Tipo: Processamento Faz o somatrio de um arquivo, retornando o valor acumulado de um campo determinado.

Sintaxe
Somar(cAlias, cCond, cCampo)

Parmetros
cAlias cCond cCampo Alias do arquivo Condio para soma Campo a ser somado

Exemplo
Somar(SI1",I1_CLASSE='S' ,I1_SALANT)

Caso o usurio no deseje definir nenhuma condio, a ExpC2 deve ser .T..

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 159

SomaSaldo
Tipo: Processamento Retorna o saldo atual entre um intervalo de contas.

Sintaxe
SomaSaldo(cConta1, cConta2, nPerodo, nMoeda)

Parmetros
cConta1 cConta2 Cdigo da conta De Cdigo da conta At

nPerodo Referente ao perodo nMoeda Moeda desejada para obteno do valor

Exemplo
SomaSaldo(31001,31010,12,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 160

SumMovimCC
Tipo: Processamento Retorna o movimento de um intervalo de centro de custos extracontbeis. Poder ser parametrizados tambm um grupo de contas.

Sintaxe
SumMovimCC(cCC1,cCC2,cConta1,cConta2,nMs,nMoeda)

Parmetros
cCC1 cCC2 cConta1 cConta2 nMs nMoeda do Centro de Custo at Centro de Custo da Conta at a Conta Ms (default ms da database) Moeda (default 1)

Exemplo
SumMovimCC( 3001,3100,31001,31010,12,1)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 161

Tabela
Tipo: Processamento Devolve o contedo da tabela de acordo com a chave. Esta funo usada para a obtencao do contedo de uma determinada tabela, na chave especificada. Retorna o conteudo, possibilitando inclusive a exibio de um help caso a tabela no exista.

Sintaxe
Tabela(cTab,cChav,lPrint)

Parmetros
cTab cChav lPrint Nmero da tabela a pesquisar (deve ser informado como caracter). Chave a pesquisar na tabela informada. Indica se deve (.T.) ou no (.F.) exibir o help ou a chave NOTAB se a tabela no existir.

Retorna
cRet Contedo da tabela na chave especificada. Retorna nulo caso a tabela no exista ou a chave no seja encontrada.

Exemplo
// Exemplo de uso da funcao tabela: // Suponha a existencia da tabela 99 (tabela de // vendedor x Comissao): // // // // Chave V0 V1 V3 Conteudo 10 2.20 5 //

// Pode-se fazer um gatilho que, quando da informacao do // codigo do vendedor no cadastro, sugira o percentual // da tabela acima, de acordo com as duas primeiras po// sicoes do codigo digitado: //Gatilho-Dominio // // Regra : A3_COD : Val(Tabela(99,Left(M->A3_COD,2))) Cta. Dominio: A3_COMIS

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 162

TamSX3
Tipo: Processamento Retorna o tamanho de um campo no SX3 (dicionrio de dados).

Sintaxe
TamSx3(cCampo)

Parmetros
cCampo Nome do campo.

Retorna
aTam Array com o tamanho e decimais do campo.

Exemplo
// Exemplo de uso da funcao TAMSX3 // Array auxiliar: aCampos := { {B1_COD ,C},; {B1_DESC,C},; {B1_QE ,N},; {B1_PRV1,N} } // Cria arquivo de trabalho com o tamanho dos campos // exatamente como na base de dados, evitando erros de ] // Data Width Error: i := 0 aStru := {} For i:=1 To Len(aCampos) cCpo := aCampos[i,1] cTp := aCampos[i,2] aTam := TamSx3(cCpo) aAdd(aStru,{cCpo,cTp,aTam[1],aTam[2]) Next i cArq := CriaTrab(aStru,.T.) // O programa continua. . . Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 163

Texto
Tipo: Processamento No permite a digitao seguida de mais de um espao em branco, em campo do tipo Caracter.

Sintaxe
Texto(ExpC)

Parmetros
ExpC1 Expresso a ser verificada

Exemplo
Texto()

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 164

@ ...TO
Tipo: Tela Desenha um box 3d.

Sintaxe
@ nLInha1,nColuna1 TO nLinha2,nColuna2 <TITLE> cTtulo

Parmetros
nLinha1 Nmero da linha superior nColuna1 Nmero da coluna superior nLinha2 Nmero da linha inferior

nColuna2 Nmero da coluna inferior cTtulo Titulo apresentado na linha superior (opcional)

Comentrios
A clusula TITLE opcional. Se for omitida, o box no ter ttulo.

Exemplo
@ 000, 000 TO 430, 500 DIALOG oDlg TITLE Interpretador xBase for Windows @ 060, 005 TO 185, 245 TITLE Exemplos @ 070, 010 BUTTON _Objetos Bsicos SIZE 70,20 ACTION Execute(BasicObj) @ 070, 090 BUTTON _Browses SIZE 70,20 ACTION Execute(Browse) @ 130, 170 BUTTON Dlg c/Refresh SIZE 70,20 ACTION Execute(DlgDinam) @ 160, 090 BUTTON SQL SIZE 70,20 ACTION Execute(SqlDemo) @ 192,218 BMPBUTTON TYPE 1 ACTION Close(oDlg) ACTIVATE DIALOG oDlg CENTERED

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 165

TM
Tipo: Processamento Devolve a Picture de impresso de campos numricos dependendo do espao disponvel.

Sintaxe
TM(nValor, nEdio, nDec)

Parmetros
nValor nEdio nDec Valor a ser editado Espao disponvel para edio Nmero de casas decimais

Retorna
ExpC1 Picture ideal para edio do valor nValor.

Comentrios
Esta rotina leva em considerao duas variveis: MV_MILHAR Determina se deve haver separao de milhar; MV_CENT Nmero de casas decimais padro da moeda corrente.

Para ajustar o valor passado (ExpN1) ao espao disponvel (ExpN2) o programa verifica se pode haver separao de milhar, neste caso, a rotina eliminar tantos pontos decimais quantos sejam necessrios ao ajuste do tamanho. Caso no seja possvel ajustar o valor ao espao dado, ser colocado na picture o caracter de estouro de campo . O programa tambm ajusta um valor ao nmero de decimais (ExpN3), sempre imprimindo a quantidade de decimais passados no parmetro.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 166

Exemplo
Cabec(Ttulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo) Endif li:=li+1 nSalAnt := nSaldoAtu-nCompras-nRecProd-nRecCons @li,00 Say cTipAnt @li,05 Say nSalAnt Picture TM(nSalAnt, 14) @li,23 Say nCompras Picture TM(nCompras, 17, 3)

Se o contedo do campo nSalAnt for: o valor ser impresso como:

3.423.659.234,48 3423659.234,48

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 167

Variao
Tipo: Processamento Retorna a variao em percentual entre dois valores.

Sintaxe
Variao(nFator1,nFator2)

Parmetros
nFator1 nFator2 Primeiro fator comparativo Segundo fator comparativo

Exemplo
Variacao(100000,50000)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 168

Vazio
Tipo: Processamento Verifica se o campo est vazio.

Sintaxe
Vazio(cCampo)

Parmetros
cCampo Campo a verificar

Retorna
ExpL1 Valor Lgico de Retorno (.T. ou .F.)

Comentrios
Retorna .T. se ExpC1 estiver vazio.

Exemplo
@ 9,10 Get cCodigo Valid !Vazio(cCodigo)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 169

X3Picture
Tipo: Processamento Devolve a Picture do campo de acordo com o dicionrio de dados.

Sintaxe
X3Picture(cCampo)

Parmetros
cCampo Nome do campo a verificar a picture.

Retorna
ExpC1 Picture do campo no dicionrio de dados.

Comentrios
Funo geralmente usada para atribuir aos relatrios a efetiva picture de campos numricos em relatrios.

Exemplo
: cRel:=SetPrint(cAlias, cPrograma , , @cTitulo, cDesc1, cDesc2, cDesc3 , .T., aOrd ) SetDefault(aReturn, cString) : While !EOF() nLinha:=nLinha+1 @nLinha, 1 Say SB2->B2_QATU Picture X3Picture(B2_QATU)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 170

XFilial
Tipo: Processamento Retorna a filial utilizada por determinado arquivo. Esta funo utilizada para permitir que pesquisas e consultas em arquivos trabalhem somente com os dados da filial corrente, dependendo claro se o arquivo est compartilhado ou no (definio que feita atravs do Mdulo Configurador). importante verificar que esta funo no tem por objetivo retornar apenas a filial corrente, mas retornla caso o arquivo seja exclusivo. Se o arquivo estiver compartilhado, a funo xFilial retornar dois espaos em branco.

Sintaxe
xFilial(cAlias)

Parmetros
cAlias Alias do arquivo desejado. Se no for especificado, o arquivo tratado ser o da rea corrente.

Retorna
cFilArq Retorna a Filial para o arquivo desejado.

Exemplo
// Exemplo de uso da funcao xFilial: // Supondo que a filial corrente seja a 01: @ 10,10 Say xFilial(SB1) // A linha acima ira imprimir 01 se o arquivo de // produtos estiver exclusivo. Se estiver compartilhado // imprimira . // Usando em processamentos (Pesquisa e processa // enquanto for a mesma filial): dbSeek(xFilial()+mv_par01) While !EOF() .And. xFilial() == SB1->B1_FILIAL ... Processamento Enddo Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 171

XMoeda
Tipo: Processamento Rotina para converso de valores entre moedas.

Sintaxe
xMoeda(nVMo,nMo,nMd,dData,nDec)

Parmetros
nVMo nMo nMd dData nDec Valor na moeda origem. Nmero da moeda origem. Nmero da moeda destino. Data para converso. Nmero de decimais. Se no informado, assume-se 2 casas decimais.

Retorna
nVMoeda Retorna o Valor na moeda de destino.

Exemplo
// Exemplo de uso da funcao xMoeda: nVal := SE1->E1_VALOR // Valor na moeda 1 nVM3 := 0 Return // Contera o valor na moeda 3 nVM3 := xMoeda(nVal,1,3,dDataBase)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 172

Funes para impresso de etiquetas padro ZPL e Allegro


Visualizao do posicionamento da imagem na etiqueta no padro Zebra (ZPL):

X
Microsiga

Sentido do movimento de impresso

Visualizao do posicionamento da imagem na etiqueta no padro Allegro:

Microsiga

X Sentido do movimento de impresso

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 173

MSCBPRINTER
Tipo: Impresso Configura modelo da impressora, saida utilizada, resoluo na impresso e tamanho da etiqueta a ser impresso.

Sintaxe
MscbPrinter(cModelPrt, cPorta, nDensidade, nTamanho)

Parmetros
[ModelPrt] String com o modelo de impressora Zebra Os modelos disponiveis padro Zebra: S500-6, Z105S-6, Z16S-6, S300, S500-8, Z105S-8, Z160S-8 ,Z140XI,Z90XI e Z170ZI. Os modelos disponiveis padro Allegro: ALLEGRO, PRODIGY, DMX e DESTINY. cPorta String com a porta Nmero com a densidade referente a quantidade de pixel por mm Tamanho da etiqueta em milmetros.

[nDensidade] [nTamanho]

O parmetro nDensidade no necessrio informar, pois ModelPrt o atualizar automaticamente. A utilizao deste parmetro (nDensidade) dever ser feita quando no souber o modelo da impressora. O tamanho da etiqueta ser necessrio quando a mesma no for continua.

Exemplo
MSCBPRINTER(S500-8, COM2:9600,e,7,2,NIL, 42)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 174

MSCBBEGIN
Tipo: Impresso Inicializa a montagem da imagem para cada etiqueta

Sintaxe
MscbBegin(nQtde, nVeloc)

Parmetros
nQtde nVeloc Quantidade de cpias Velocidade (1,2,3,4,5,6) polegada por segundo

Exemplo
MSCBBEGIN(3,4)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 175

MSCBEND
Tipo: Impresso Finaliza a montagem da imagem.

Sintaxe
MscBend()

Parmetros
Nil

Exemplo
MSCBEND()

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 176

MSCBSAY
Tipo: Impresso Imprime um String.

Sintaxe
MscbSay(nXmm, nYmm, cTexto, cRotacao, cFonte, cTam, [lReverso], [lSerial], [cIncr], [lZerorsL])

Parmetros
nXmm nYmm cTexto Posio X em Milmetros Posio Y em Milmetros String a ser impressa

cRotao String com o tipo de Rotao (N,R,I,B) N-Normal R-Cima p/Baixo I-Invertido B-Baixo p/ Cima cFonte String com o tipo de Fonte Zebra : (A,B,C,D,E,F,G,H,0) 0(Zero) - fonte escalar Alegro : (0,1,2,3,4,5,6,7,8,9) 9 - fonte escalar cTam String com o tamanho da Fonte

[lReverso] Imprime em reverso quando tiver sobre um box preto [lSerial] [cIncr] Serializa o codigo String, valor de incremento da serie

[lZerorsL] Coloca zeros a esquerda na serie

Exemplo
MSCBSAY(15,3,MICROSIGA ,N,C,018,010",.t.)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 177

MSCBSAYBAR
Tipo: Impresso Imprime Cdigo de Barras.

Sintaxe
MscbSayBar(nXmm, nYmm, cConteudo, cRotacao, cTypePrt, nAltura, ldigVer, lLinha, lLinBaixo, cSubSetIni, nLargura, nRelacao, lCompacta, lSerial, cIncr)

Parmetros
nXmm nYmm cConteudo cRotao cTypePrt Posio X em Milmetros Posio Y em Milmetros String a ser impressa String com o tipo de Rotao String com o Modelo de Cdigo de Barras Zebra 2 - Interleaved 2 of 5 3 - Code 39 8 - EAN 8 E - EAN 13 U - UPC A 9 - UPC E C - CODE 128 Zebra D - Interleaved 2 of 5 A - Code 39 G - EAN 8 F - EAN 13 B - UPC A C - UPC E E - CODE 128 [nAltura] [lDigver] Altura do cdigo de Barras em Milmetros Imprime dgito de verificao
MANUAL RDMAKE - SIGA ADVANCED 4.07 - 178

[lLinha] [lLinBaixo] [cSubSetIni] [nLargura] [nRelacao] [lCompacta] [lSerial] [cIncr] [lZerorsL]

Imprime a linha de cdigo Imprime a linha de cdigo acima das barras Utilizado no code 128 Largura da barra mais fina em pontos default 3 Relao entre as barras finas e grossas em pontos default 2 Compacta o cdigo de barra Serializa o cdigo String, valor de incremento da srie Coloca zeros esquerda na srie

Exemplo
MSCBSAYBAR(20,22,AllTrim(SB1->B1_CODBAR),N,C,13)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 179

MSCBSAYMEMO
Tipo: Impresso Monta e imprime um campo MEMO.

Sintaxe
MscbSayMemo(nXmm, nYmm, cConteudo, cRotacao, cTypePrt, nAltura, ldigVer, lLinha, lLinBaixo, cSubSetIni, nLargura, nRelacao, lCompacta, lSerial, cIncr)

Parmetros
nXmm nYmm nLMemomm nQLinhas cTexto cRotao cFonte cTam [lReverso] [cAlign] Posio X em Milmetros Posio Y em Milmetros Tamanho da 1 linha do campo memo em Milmetros Quantidade de linhas String a ser impressa String com o tipo de Rotao (N,R,I,B) String com o tipo de Fonte (A,B,C,D,E,F,G,H,0) String com o tamanho da Fonte lgica se imprime em reverso quando tiver sobre um box preto String com o tipo de Alinhamento do memo L - Esquerda R - Direita C - Centro J - Margem a margem (justificado)

Exemplo
MSCBSAYMEMO(1,10,8,4,cTexto,N,A,9,5",.f.,C)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 180

MSCBBOX
Tipo: Impresso Imprime um Box.

Sintaxe
MscbBox(nX1mm, nY1mm, nX2mm, nY2mm, [nExpessura], [cCor])

Parmetros
nX1mm nY1mm nX2mm nY2mm Posio X1 em Milmetros Posio Y1 em Milmetros Posio X2 em Milmetros Posio Y2 em Milmetros

[nExpessura] Nmero com a espessura em pixel [cCor] String com a Cor Branco ou Preto (W ou B)

Exemplo
MSCBBOX(12,01,31,10,37)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 181

MSCBLineH
Tipo: Impresso Imprime uma linha horizontal

Sintaxe
MscbLineH(nX1mm, nY1mm, nX2mm, [nExpessura], [cCor])

Parmetros
nX1mm nY1mm nX2mm Posio X1 em Milmetros Posio Y1 em Milmetros Posio X2 em Milmetros

[nExpessura] Nmero com a expessura em pixel [cCor] String com a Cor Branco ou Preto (W ou B)

Exemplo
MSCBLineH(01,10,80,3,B)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 182

MSCBLineV
Tipo: Impresso Imprime uma linha vertical.

Sintaxe
MscbLineV(nX1mm, nY1mm, nY2mm, [nExpessura], [cCor])

Parmetros
nX1mm nY1mm nY2mm Posio X1 em Milmetros Posio Y1 em Milmetros Posio X2 em Milmetros Nmero com a espessura em pixel String com a Cor Branco ou Preto (W ou B)

[nExpessura] [cCor]

Exemplo
MSCBLineV(01,10,80,3,B)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 183

MSCBLOADGRF
Tipo: Impresso Carrega uma imagem para memria da impressora.

Para o padro Zebra, o arquivo do grfico tem que ser do tipo GRF, gerado atravs de um PCX ou TIF no software fornecido pelo fabricante da zebra. Para o padro Allegro, o arquivo do grfico pode ser do tipo BMP, PCX eIMG. No precisa ser convertido.

Sintaxe
MscbLoadGrf(cImagem)

Parmetros
cImagem nome do arquivo que ser carregado

Exemplo
MSCBLOADGRF(LOGO.GRF)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 184

MSCBGRAFIC
Tipo: Impresso Imprime grfico que est armazenado na memria da impressora.

Sintaxe
MscbGrafic(nXmm, nYmm, cArquivo, [lReverso])

Parmetros
nXmm nYmm Posio X em Milmetros Posio Y em Milmetros

cArquivo Nome do grfico que foi carregado na memoria da impressora (no colocar a extenso .GRF) [lReverso] Imprime em reverso quando tiver sobre um box preto

Exemplo
MSCBGRAFIC(3,3,LOGO,.t.)

Parmetros que estiverem entre [], significa que no so OBRIGATRIOS.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 185

MSCBWRITE
Tipo: Impresso Permite enviar para porta uma linha de programao nativa da Impressora.

Sintaxe
MSCBWRITE(cContedo)

Parmetros
cContedo Linha de programa nativa da impressora.

Exemplo
MSCBWRITE("^FO1,1^GB400,50,25^FS")

Parmetros que estiverem entre [], significa que no so OBRIGATRIOS e os parmetros que estiverem com *, significa que so ignorados no padro Allegro.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 186

Tipos de Fontes para Zebra:


As fontes A,B,C,D,E,F,G,H, so do tipo BITMAPPEDs, tem tamanhos definidos e podem ser expandidos proporcionalmente a dimenso mnima. Exemplo: Fonte do tipo A, 9 X 5 ou 18 x 10 ou 27 X 15 A fonte 0 (Zero) do tipo ESCALAR, esta ser gerada na memria da impressora, portanto, torna-se um processamento lento.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 187

Tipos de Fontes para Allegro:


As fontes 0,1,2,3,4,5,6,7,8, so do tipo BITMAPPEDs, tem tamanhos definidos e podem ser expandidos. Exemplo: Fonte do tipo 1, 1 X 1 ou 1 x 2 ou 1 X 3 ou 2 X 1 ou 2 X 2 A fonte 9 (Nove) do tipo ESCALAR, esta ser gerada na memria da impressora, portanto, torna-se um processamento lento, as dimenses deste tipo de fonte tem que ser passado junto com o tamanho da fonte. Exemplo: cTam := "001,001,002" Dimenso da fonte que pode ser de 0 a 9 Tamanho da fonte

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 188

Utilizando as funes:
Exemplo: padro Zebra
MSCBPRINTER(S500-8,COM2:9600,e,7,2",,42) //Seta tipo de impressora padrao ZPL MSCBLOADGRF(LOGO.GRF) //Carrega o logotipo para impressora MSCBBEGIN(2,4) //Inicio da Imagem da Etiqueta //com 2 copias e velocidade 4 etiquetas por polegadas MSCBBOX(01,01,80,40) MSCBBOX(12,01,31.5,10,37) MSCBGRAFIC(2.3,2.5,LOGO) //Posiciona o logotio MSCBSAY(15,3,MICROSIGA ,N,C,018,010") //Imprime Texto MSCBSAY(13,6.5,SOFTWARE S/A,N,C,018,010") MSCBLineH(01,10,80) MSCBSAY(35,5,SB1->B1_COD,N,E,28,15") MSCBSAY(4,12,Descricao,N,B,11,7") MSCBSAY(4,16,SB1->B1_DESC,N,F,26,13") MSCBLINEH(01,20,80) MSCBSAYBAR(20,22,AllTrim(SB1->B1_CODBAR),N,C,13,.f.,.t.,,,3,2,.t.) //monta cdigo de barras MSCBEND() //Fim da Imagem da Etiqueta //Monta Linha Horizontal MSCBSAY(35,2,Cdigo Interno,N,B,11,7") //Monta BOX

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 189

Utilizando as funes:
Exemplo: padro Allegro
. . . MSCBPRINTER(S500-8,COM2:9600,e,7,2",,42) //Seta tipo de impressora padrao ZPL MSCBLOADGRF(LOGO.GRF) //Carrega o logotipo para impressora MSCBBEGIN(2,4) //Inicio da Imagem da Etiqueta //com 2 copias e velocidade 4 etiquetas por polegadas MSCBBOX(01,01,80,40) MSCBBOX(12,01,31.5,10,37) MSCBGRAFIC(2.3,2.5,LOGO) //Posiciona o logotio MSCBSAY(15,3,MICROSIGA ,N,C,018,010") //Imprime Texto MSCBSAY(13,6.5,SOFTWARE S/A,N,C,018,010") MSCBLineH(01,10,80) MSCBSAY(35,5,SB1->B1_COD,N,E,28,15") MSCBSAY(4,12,Descricao,N,B,11,7") MSCBSAY(4,16,SB1->B1_DESC,N,F,26,13") MSCBLINEH(01,20,80) MSCBSAYBAR(20,22,AllTrim(SB1->B1_CODBAR),N,C,13,.f.,.t.,,,3,2,.t.) //monta cdigo de barras MSCBEND() //Fim da Imagem da Etiqueta . . . //Monta Linha Horizontal MSCBSAY(35,2,Cdigo Interno,N,B,11,7") //Monta BOX

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 190

RDMAKE EM AMBIENTE SQL


A princpio no existem diferenas na programao do RDMAKE na verso SQL, j que pelo prprio fato de ser uma linguagem interpretada, o sistema quem se encarrega de executar os comandos e funes adequadamente no ambiente em que trabalha. Mas importante saber algumas informaes ao programar para o ambiente SQL. Deve-se lembrar que estamos trabalhando com um banco de dados relacional, que se utiliza de tabelas ao invs de arquivos, e onde o sistema no tem acesso aos dados de forma nativa e sim atravs do Top Connect. Essa forma de acesso adiciona ao sistema algumas das caractersticas e vantagens oferecidas pelo SGBD em uso (por exemplo, o Oracle, MSSQL Server ou o DB2) como, por exemplo, facilidades da linguagem SQL, mas por outro lado tem-se tambm as implicaes da converso dos comandos no padro xBase para a perfeita compreenso no ambiente SQL. Imagine a montagem de uma expresso de filtro para um ndice condicional. Tome a seguinte expresso como exemplo: DTOS(E1_VENCTO) >= DTOS(mv_par01). Em um ambiente padro xBase, como o NTX ou o ADS, pode-se utilizar variveis sem qualquer problema em uma expresso de filtro pois a mesma ser avaliada registro a registro durante a montagem do ndice. Mas no ambiente SQL, o filtro nada mais do que uma tabela temporria, onde esto selecionados apenas os registros conforme a condio indicada. A seleo de dados em tabelas pelo SQL mais rpida, mas em compensao o SGBD no tem como reconhecer a varivel informada na expresso. Ela existe apenas no sistema ou, mais especificamente, no seu programa. Por isso, deve-se substituir a expresso anteriormente exemplificada pela seguinte (que tambm funcionaria perfeitamente em um ambiente xBase): DTOS(E1_VENCTO) >= +DTOS(mv_par01)+. Esta expresso melhor que anterior simplesmente porque no se utiliza da varivel e sim do contedo da mesma, o que pode ser compreendido em qualquer ambiente. Toda essas explicaes so vlidas, da mesma maneira, a filtros criados atravs do comando SET FILTER. Ainda existem outros detalhes a se considerar quando se trabalha com ndices em um ambiente SQL. que na verdade no existem ndices condicionais nesse ambiente. O filtro criado independente do ndice. Ento, voc pode criar um INDREGUA com um filtro e mudar a ordem, mas o filtro permanecer ativo, em qualquer ordem. Do mesmo modo, no se pode manter dois ndices, com filtros diferentes, pois um filtro sobrescreveria o outro.
MANUAL RDMAKE - SIGA ADVANCED 4.07 - 191

Outro ponto de ateno deve ser a funo xBase chamada DBSETINDEX. Podem ocorrer alguns erros ao tentar-se utilizar essa funo para abrir um ndice de trabalho criado. Por esses motivos e pelo fato de tornar o processamento mais lento deve-se evitar ao mximo o uso de ndices de trabalho no ambiente SQL. Da mesma maneira que a funo DBSETINDEX, os comandos COPY TO e APPEND FROM tambm devem ter uma ateno especial. No ambiente SQL esses comandos so executados entre uma tabela e um arquivo DBF (e vice-versa) ou entre dois arquivos DBF. Por exemplo, o comando COPY TO pode ser usado para copiar os dados da tabela ativa para um DBF local e o comando APPEND FROM pode ser usado para importar os dados de um arquivo local para a tabela ativa. Os dois podem ser usados entre dois arquivos, mas nunca pode-se usar, por exemplo, o comando APPEND FROM para importar os dados de uma tabela para outra. Apesar de todos esses detalhes, o ambiente SQL traz muitas facilidades ao interpretador RDMAKE. Atravs de novos comandos criados especificamente para esse ambiente, pode-se usar clusulas SQL ou at mesmo Stored Procedures dentro de um RDMAKE. A seguir uma lista dos novos comandos e sintaxes (todos estes comandos podem ser consultados no programa de exemplo chamado RDDEMO.PRW, que acompanha o sistema na verso):
Comando ou Funo Descrio Exemplo

Executa uma query (consulta) ao banco de dados, retornando um alias para o resultado. Semelhante ao comando USE padro do CLIPPER, porm executando a consulta. A sintaxe a seguinte: TCQUERY TCQUERY <cQuery> [NEW] [ALIAS <cAlias>]

CQuery := "Select * From SA1990 For A1_COD > '200'" TCQUERY cQuery NEW Alias "CNT" // Neste momento, alias CNT // disponvel com o resultado

Obs.: A tabela retornada SEMPRE Read Only (somente leitura) Esta funo executa qualquer sintaxe SQL (no somente consultas como a anterior). Pode ser usada para executar UPDATE, INSERT, DELETE, etc. A sintaxe a seguinte: TCSQLEXEC TCSQLEXEC(cClause) Obs.: A sintaxe de criao de uma Stored Procedure dependente do SGBD em que o sistema trabalha. Ou seja, existem sintaxes especficas para o Oracle, para o MSSQL SERVER, para o SYBASE, etc.

// da consulta

// Cria uma Stored Procedure // chamada TSOMA CClause := "Create Procedure TSOMA (IN_V1 in number, OUT_RET ou number) is BEGIN OUT_RET:=IN_V1+IN_V2"+CHR(59)+"END"+CHR(59) TCSQLEXEC(cClause)

// Executa a Stored Procedure criada no Esta funo executa uma Stored Procedure. Aceita parmetros e o retorno da funo sempre um array (com as variveis de retorno). A sintaxe a seguinte: aRet:=TCSPEXEC (cClause, [uPar1], [uPar2],...) // exemplo da funo anterior aRet:= TCSPEXEC("TSOMA",2,3) ? aRet[1] // Imprime o resultado da // soma (no caso, 5)

TCSPEXEC

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 192

EXECUTANDO
Simplesmente clique na opo do menu que o programa procurar no diretrio corrente pelo programa contido no menu e se encontrado o executar, caso contrrio, uma mensagem de aviso ser gerada.

Executando com Debug

O boto

na barra de ferramentas da janela principal permite a utilizao

do Debug para Rdmake. Este programa permite a visualizao do arquivo fonte junto a execuo, acesso lista de variveis, criao de pontos de parada, execuo de qualquer comando independente ou mesmo fazer uma procura no programa fonte.

Para acessar o Debug, clique neste boto da barra de ferramentas. A janela para escolha do arquivo fonte a ser depurado ser apresentada.

Aps a seleo do arquivo PCODE (_IW), ser apresentada a janela do Debug com o programa escolhido. O cdigo fonte (.PRW ou .PRX) deve estar no diretrio de trabalho (\SIGAADV).

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 193

Utilize os botes ou as teclas para depurao: - [F8] executa cada instruo do programa e retorna a janela do Debug. - [F5] executa o programa at encontrar um ponto de parada definido pelo usurio. - [F2] visualiza o contedo da varivel informada.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 194

- [F3] permite a execuo de um comando informado.

- [F9] define a linha posicionada como ponto de parada na execuo do programa. Para marcar ou desmarcar um ponto de parada, pode-se tambm dar um duplo clique na linha.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 195

permite a localizao de um texto no programa.

permite localizar a prxima ocorrncia do texto. acessa o help do Debug

finaliza o Debug. Clique o boto direito do mouse ou pressione a tecla [F11] para apresentar um menu popup com as opes da barra de ferramentas.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 196

O Debug para RdMake possui limitaes no Windows 3.11, sendo necessrio reinicializar o equipamento aps o seu uso.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 197

Erros de Compilao
A estrutura de erros do RDMAKE obedece aos seguintes princpios: (nnn) <Mensagem elucidativa do erro> Linha do programa fonte onde ocorreu o erro

Erros e aes a serem tomadas


RDMAKE Fatal 3-> Erro Fatal na compilao da rotina TESTE Impossvel continuar.); Causa - O ADVPL16 detectou algum erro de sintaxe Ao - Corrigir o erro e resubmeter o programa ao RDMAKE O termo LOCAL no permitido. Causa - Tentativa de declarar uma varivel LOCAL Ao - Retirar o termo LOCAL da declarao da varivel No so permitidas funes STATIC. Causa - Tentativa de declarar uma varivel STATIC Ao - Retirar o termo STATIC da declarao da varivel O termo PRIVATE no permitido. Causa - Tentativa de declarar uma varivel PRIVATE Ao - Retirar o termo PRIVATE da declarao da varivel Passagem de parmetros no permitida. Use variveis PRIVATE. Causa - Na chamada de uma funo interna ou na declarao de funo foi solicitada a passagem de parmetros Ao - Ao invs de passar parmetros para a funo, declare a varivel de retorno antes da chamada da funo e mova um contedo para esta na funo chamada.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 198

Sintaxe invlida __<varivel>. Causa - Tentativa de criar uma varivel ou funo com __ (duplo underline) no incio desta. Ao - Variveis deste tipo so prerrogativas do RDMAKE, Interpretador e do ADVPL16, declare variveis com Caracteres Alfabticos no incio. Operador de igualdade invlido, use :=, ==, x:=x+2, etc... Causa - Uso de igualdade simples. Ao - Use := para atribuir um valor a uma varivel e == para comparar. Linha maior que 512 bytes, truncada. Causa - Uma linha maior que 512 caracteres foi inserida no programa fonte. Ao - Reduza a linha. Erro -> String muito grande. Causa - Erro interno do RDMAKE. Ao - Avise a Microsiga do problema. Uso de operadores invlidos ++ *= +=... use operadores xBase Causa - Uso de operadores compostos. Ao - Ao invs de operadores compostos ex.: var++ use operadores simples var:=var+1

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 199

EXEMPLOS DE PROGRAMA
/* Funo Autor Data Uso Exemplo */ RdDemo Ary Medeiros 15/02/96 RdMake <Programa.Ext> - w RdMake RDDemo.prw -w

cVar := "com PICTURE, VALID, WHEN e F3" cCombo := 2 nVar := 0 nVar1 := 10 nList := 4 lCheck1 := .t. lCheck2 := .f. lCheck3 := .t. lCheck4 := .f. aItems := {01,02,03,04} aRadio := {1,2,3,4} nRadio := 2

Define Variveis Define um formulrio tela, a varivel oD1g recebe todas as definies do objeto. Semelhante a criao de um objeto TBrowseDb / TBrowseNew.

@ 0,0 TO 380,500 DIALOG oDlg TITLE "Interpretador xBase for Windows" @ 10,10 BITMAP SIZE 110,40 FILE "RDDEMO.BMP"

Atribui uma figura BitMap ao objeto oD1g.

@ 60,5 TO 155,245

Atribui um Box simples ao objeto oD1g, semelhante ao comando Box (obsoleto) e a funo DispBox() padro do Clipper.

@ 070,010 BUTTON "_Objetos Bsicos" SIZE 70,20 ACTION Execute(BasicObj) @ 070,090 BUTTON "_Browses" SIZE 70,20 ACTION Execute(Browse) @ 070,170 BUTTON "_Entrada de Dados" SIZE 70,20 ACTION Execute(Multiline) @ 100,010 BUTTON "_Cadastros" SIZE 70,20 ACTION Execute(DemoCad) @ 100,090 BUTTON "Bo_tes Padro" SIZE 70,20 ACTION Execute(DemoButton) @ 100,170 BUTTON "_Mensagens" SIZE 70,20 ACTION Execute(DefaultDlg) @ 130,010 BUTTON "_Relatrios" SIZE 70,20 ACTION Execute(Report) @ 130,090 BUTTON "_Processamento" SIZE 70,20 ACTION Execute(ProcDemo) @ 130,170 BUTTON "Dlg c/Refresh " SIZE 70,20 ACTION Execute(DlgDinam) @ 162,218 BMPBUTTON TYPE 1 ACTION Close(oDlg) ACTIVATE DIALOG oDlg CENTERED

Atribui botes ao objeto oD1g . Quando o objeto estiver ativo estes botes executam as funes definidas na sua criao .

Para que todas as definies estejam disponveis para uso, necessrio ativar o objeto oD1g. Esta funo funciona de forma semelhante a definio de vrios Gets e sua execuo com o comando Read. Pode-se tambm comparar a definio dos objetos de um formulrio ao Mtodo AddColumn.

Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 200

/* Funo Autor Data Descrio */ Function BasicObj

BasicObj Ary Medeiros 15/02/96 Objetos bsicos Windows Define um formulrio tela, a varivel oD1g1 recebe todas as definies do objeto. Semelhante a criao de um objeto TBrowseDb / TBrowseNew.

@ 0,0 TO 250,450 DIALOG oDlg1 TITLE "Objetos bsicos do Windows" @ 10,10 SAY "ListBox:" Comando Say Padro do Clipper.

@ 20,10 LISTBOX nList ITEMS aItems SIZE 50,50

Este Comando atribui ao objeto oD1g1 uma caixa de seleo ListBox, semelhante a funo Achoice() Padro do Clipper. Atribui ao objeto um Box que contem o Titulo especificado. Este conjunto de Comandos atribui ao objeto oD1g1 uma caixa de seleo CheckBox, a CheckBox cria uma lista de itens que podem ser marcados e desmarcados semelhante a criar uma serie de Gets para selecionar entre S ou N. No tem barras de rolagem como a ListBox. Atribui ao objeto um Box que contm o Titulo especificado.

@ 16,70 TO 67,120 TITLE "CheckBox" @ 23,75 CHECKBOX "Opo 1" VAR lCheck1 @ 33,75 CHECKBOX "Opo 2" VAR lCheck2 @ 43,75 CHECKBOX "Opo 3" VAR lCheck3 @ 53,75 CHECKBOX "Opo 4" VAR lCheck4

@ 16,130 TO 67,180 TITLE "RadioButton" @ 23,130 RADIO aRadio VAR nRadio

Este Comando atribui ao objeto oD1g1 uma caixa de seleo RadioButton, a RadioButton semelhante a CheckBox a nica diferena entre os comandos que na RadionButton apenas um dos itens pode ser selecionado e CheckBox podem ser selecionados vrios itens, a CheckBox utiliza variveis Lgicas e a RadioButton utiliza uma Matriz. No tem barras de rolagem como a ListBox.

@ 75,10 Say "ComboBox:"

Comando Say Padro do Clipper. Este Comando atribui ao objeto oD1g1 uma caixa de seleo ComboBox, tem funcionamento semelhante a ListBox a nica diferena entre os comandos que na ComboBox os itens no so apresentados at que a caixa seja selecionada ideal para pequenas reas no formulrio. Ambas utilizam uma Matriz..

@ 85,10 COMBOBOX cCombo ITEMS aItems SIZE 50,50

@ 75,70 Say "Entrada de dados:"

Comando Say Padro do Clipper. O comando Get no RdMake For Windows tem duas diferenas, a clusula F3, que disponibiliza a consulta padro conforme o parmetro e no necessrio utilizar o comando Read. Definio de botes.

@ 85,70 GET cVar PICTURE "@!" VALID .t. F3 "SI1"

@ 20,185 BUTTON "_Ok" SIZE 35,15 ACTION Close(oDlg1) @ 45,189 BMPBUTTON TYPE 12 ACTION PlayWave("RDDemo.wav") Ativa o objeto oD1g1

ACTIVATE DIALOG oDlg1 CENTER Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 201

/* Funo Autor Data Descrio */ Function DefaultDlg

DefaultDlg Ary Medeiros 15/02/96 Dilogos Padronizados

MsgBox ("Dialogo para mensagens de erro","Erro!!!","STOP") MsgBox ("Informao ao usurio","Informao","INFO") MsgBox ("Mensagens de alerta","Ateno","ALERT") MsgBox ("Dialogo com perguntas...","Escolha","YESNO") MsgBox ("mais perguntas...","Escolha","RETRYCANCEL") Return

A funo MsgBox() pode ser utilizada para avisar o usurio de uma operao bem sucedida, um erro ou solicitar uma confirmao de processamento. O BitMap e os botes dependem do tipo selecionado nos parmetros.

/* Funo Autor Data Descrio */ Function Browse

Browse Ary Medeiros 15/02/96 Objeto para manipulao de Browses

@ 200,1 TO 400,530 DIALOG oDlg2 TITLE "Utilizao de Browses" @ 6,5 TO 93,150 BROWSE "SX6" ENABLE "!X6_CONTEUD"

Define Objeto oDlg2 Este comando atribui ao objeto oDlg2 o Browse padro do sistema utilizando as definies do dicionrio de dados. A clusula ENABLE identifica o campo que se vazio alterna a marca entre as cores vermelho/verde.

@ 10,155 SAY "- Baseado no dicionrio de dados" @ 20,155 SAY "- Registros Habilitados/desabilitados" @ 30,155 SAY "- Marcar/Desmarcar registros" @ 40,155 SAY "- Movimentao/Resize de colunas" @ 70,180 BUTTON "_Ok" SIZE 40,15 ACTION Close(oDlg2) ACTIVATE DIALOG oDlg2 CENTERED Return

Comando Say Padro do Clipper.

Definio de um boto.

Ativa o objeto oD1g2

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 202

/* Funo Autor Data Descrio */ Function Multiline

MultiLine Ary Medeiros 15/02/96 Objeto para entrada de dados(Itens)

@ 200,1 TO 400,540 DIALOG oDlg3 TITLE "Edio de mltiplos itens" Inicializa Variveis Seleciona rea

Define Objeto oDlg3

cAlias := "SX5" dbSelectArea( cAlias ) dbGoTop() cTabela := X5_TABELA aHeader := {} nUsado := 0 Select Sx2 Seek cAlias Select Sx3 Seek cAlias

Posiciona no primeiro registro. Inicializa variveis. A Matriz aHeader armazenar as definies da colunas do Browse do Comando MULTILINE.

Busca no SX2 e SX3 o Alias do arquivo que ser utilizado no Browse. Neste While a Matriz aHeader preenchida com as definies dos campos que sero utilizados no Browse. Deve-se utilizar a varivel cNivel (Microsiga) para verificar se o usurio tem acesso o campo e verificar se o campo est em uso. Pode-se tambm utilizar uma definio especifica para definir os campos que sero utilizados.

While !EOF() .And. X3_ARQUIVO == cAlias If x3_usado != " " .And. cNivel >= X3_NIVEL nUsado := nUsado + 1 AADD(aHeader,{ TRIM(X3_TITULO), X3_CAMPO, X3_PICTURE, ; X3_TAMANHO, X3_DECIMAL, X3_VALID,; X3_USADO, X3_TIPO, X3_ARQUIVO } ) EndIf Skip EndDo dbSelectArea( cAlias ) Seek xFilial()+cTabela nCnt := 0

Busca no arquivo que ser utilizado no Browse o primeiro registro que satisfaa as condies. Inicializa varivel que totalizara o nmero de registros a serem processados.

While !EOF() .And. X5_FILIAL+X5_TABELA == xFilial()+cTabela nCnt := nCnt+1 Skip EndDo aCOLS := Array(nCnt,nUsado+1)

Avalia quantidade de registros que satisfazem as condies.

Inicializa Matriz aCOLS que armazena os dados que sero apresentados no Browse. A matriz criada pelo nmero de registros x o nmero de campos + 1 onde este ltimo elemento tem valor lgico e identifica se o registro foi ou no deletado durante a edio. Busca no arquivo que ser utilizado no Browse o primeiro registro que satisfaa as condies.

dbSelectArea( cAlias ) Seek xFilial()+cTabela nCnt := 0

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 203

While !EOF() .And. X5_FILIAL+X5_TABELA == xFilial()+cTabela nCnt := nCnt+1 nUsado:=0 Select SX3 Seek cAlias While !EOF() .And. X3_ARQUIVO == cAlias If x3_usado != " " .And. cNivel >= X3_NIVEL nUsado := nUsado+1 aCOLS[nCnt][nUsado] := &(cAlias+"->"+x3_campo) EndIf Skip EndDo aCOLS[nCnt][nUsado+1] := .f. //Flag de Delao dbSelectArea( cAlias ) Skip EndDo dbSelectArea( cAlias ) Seek xFilial()+cTabela nRegistro := RecNo( )

Neste While a Matriz aCOLS estar sendo carregada com as informaes que sero editadas conforme o dicionrio de dados. Em outros casos deve-se avaliar se Incluso ou Alterao para inicializar a Matriz com um registro nulo ou o contedo dos registros para edio. Pode-se tambm utilizar a Matriz aHeader como referncia uma vez que j foi carregada com as definies dos campos. O mais importante que cada elemento da Matriz aCols deve ser definido na mesma ordem em que foi definido na Matriz aHeader. O ltimo elemento da Matriz aCols deve ser inicializado com valor FALSO ( Flag de deleo ).

Busca no arquivo que ser utilizado no Browse o primeiro registro que satisfaa as condies e salva sua posio. Atribui ao objeto oDlg3 o Browse MultLine para edio de mltiplos itens Ex. (Itens Pedido de Vendas). A funo LineOk faz a consistncia de cada linha alterada/includa.

@ 6,5 TO 93,150 MULTILINE MODIFY DELETE VALID Execute(LineOk) FREEZE 1

@ 10,155 SAY "- Validao e Picture configuravel por coluna" @ 20,155 SAY "- Congelamento de colunas" @ 30,155 SAY "- Validao linha a linha" @ 40,155 SAY "- Gatilhos, etc..." @ 70,190 BUTTON "_Ok" SIZE 40,15 ACTION Close(oDlg3) ACTIVATE DIALOG oDlg3 CENTERED Return /* Funo Autor Data Descrio */ Ativa o objeto oD1g3

Comando Say Padro do Clipper. Define boto

LineOk Ary Medeiros 15/02/96 Validao da linha digitada na funo MultiLine

Function LineOk MsgBox("Linha Ok!","Validando o Item...") Return .t.

Dilogo padronizado

A Funo utilizada para validar a linha digitada deve retornar valor lgico.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 204

/* Funo Autor Data Descrio */ Function DemoButton

DemoButton Ary Medeiros 15/02/96 Botes com BitMaps padronizados

@ 200,1 TO 400,450 DIALOG oDlg4 TITLE "Botes com Bitmaps" @ 5,10 TO 75,215 Atribui ao objeto um Box.

Define Objeto oDlg4

@ 15,018 BMPBUTTON TYPE 01 ACTION MsgBox("Tipo 1","Boto Selecionado...") @ 15,058 BMPBUTTON TYPE 02 ACTION MsgBox("Tipo 2","Boto Selecionado...") @ 15,098 BMPBUTTON TYPE 03 ACTION MsgBox("Tipo 3","Boto Selecionado...") @ 15,138 BMPBUTTON TYPE 04 ACTION MsgBox("Tipo 4","Boto Selecionado...") @ 15,178 BMPBUTTON TYPE 05 ACTION MsgBox("Tipo 5","Boto Selecionado..." ) @ 35,018 BMPBUTTON TYPE 06 ACTION MsgBox("Tipo 6","Boto Selecionado...") @ 35,058 BMPBUTTON TYPE 07 ACTION MsgBox("Tipo 7","Boto Selecionado...") @ 35,098 BMPBUTTON TYPE 08 ACTION MsgBox("Tipo 8","Boto Selecionado...") @ 35,138 BMPBUTTON TYPE 09 ACTION MsgBox("Tipo 9","Boto Selecionado...") @ 35,178 BMPBUTTON TYPE 10 ACTION MsgBox("Tipo 10","Boto Selecionado...") @ 55,018 BMPBUTTON TYPE 11 ACTION MsgBox("Tipo 11","Boto Selecionado...") @ 55,058 BMPBUTTON TYPE 12 ACTION MsgBox("Tipo 12","Boto Selecionado...") @ 55,098 BMPBUTTON TYPE 13 ACTION MsgBox("Tipo 13","Boto Selecionado...") @ 55,138 BMPBUTTON TYPE 14 ACTION MsgBox("Tipo 14","Boto Selecionado...") @ 80,175 BUTTON "_Ok" SIZE 40,15 ACTION Close(oDlg4 ) ACTIVATE DIALOG oDlg4 CENTERED Return /* Funo Autor Data Descrio */ Ativa o objeto oD1g4 Define Boto.

Os botes de BitMap funcionam de forma idntica aos Botes anteriormente definidos diferem apenas na imagem apresentada ao invs de um texto. Para esses botes as imagens no podem ser redefinidas.

DemoCad Ary Medeiros 15/02/96 tela de cadastramento padro

Function DemoCad AxCadastro("SX6","AX_Cadastro() - Cadastramento Padro") Return

A funo AxCadastro() disponibiliza o Browse Padro Microsiga e as rotinas padro de Pesquisa, Visualiza, Altera, Inclui e Exclui. O padro de edio da AxCadastro o mesmo utilizados em cadastros como Clientes e Produtos, Modelo 1.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 205

/* Funo Autor Data Descrio */ Function Report

Report Ary Medeiros 15/02/96 Exemplo de programao relatrios

cString:="SX5" cDesc1:= OemToAnsi("Este programa tem como objetivo, demostrar a utilizao ") cDesc2:= OemToAnsi("das ferramentas de impresso do Interpretador xBase. ") cDesc3:= "" tamanho:="P" aReturn := { "Zebrado", 1,"Administracao", 1, 2, 1, "",1 } nomeprog:="RDTESTE" aLinha := { } nLastKey := 0 titulo :="Teste de impressao - Interpretador xBase" cabec1 :="TESTE DE IMPRESSAO" cabec2 :="" cCancel := "***** CANCELADO PELO OPERADOR *****" m_pag := 0 //Varivel que acumula numero da pagina wnrel:="RDTESTE" //Nome Default do relatrio em Disco

Define variveis padro relatrios no SigaAdv.

em

SetPrint(cString,wnrel,,titulo,cDesc1,cDesc2,cDesc3,.F.,"",,tamanho) If nLastKey == 27 Set Filter To Return Endif SetDefault(aReturn,cString) If nLastKey == 27 Set Filter To Return Endif RptStatus({|| Execute(RptDetail) })

A funo SetPrint permite a configurao dos parmetros do relatrio

Verifica se foi pressiona tecla de interrupo, se verdadeiro abandona a funo. Assume as configuraes definidas para impresso do relatrio.

Verifica se foi pressiona tecla de interrupo, se verdadeiro abandona a funo. No RdMake For Windows a definio de um relatrio deve obedecer duas etapas , a configurao do relatrio e sua impresso. Deve-se utilizar esta funo para executar a funo que far a impresso do relatrio.

Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 206

/* Funo Autor Data Descrio */ Function RptDetail

RptDetail Ary Medeiros 15/02/96 Impresso do corpo do relatrio.

SetRegua(50) //Ajusta numero de elementos da rgua de relatrios

A funo SetRegua() inicializa a rgua padro de relatrios RdMake Dos/Windows.

Cabec(titulo,cabec1,cabec2,nomeprog,tamanho,18) //Impressao do cabecalho

Funo padro cabealho.

para

impresso

do

For nLin := 1 to 50 if lEnd Exit endif @ nLin+8,0 PSAY "Linha ==>" @ nLin+8,10 PSAY nLin PICTURE "@E 999,999.99" IncRegua() Next Roda(0,"","P") Funo padro para impresso do rodap dos relatrios. Elimina filtro do arquivo principal.

Contador para demonstrar impresso. Deve-se utilizar PSAY no RdMake For Windows, quando for desenvolvido um relatrio para Dos/Windows deve-se utilizar a Diretiva : #IFNDEF WINDOWS #DEFINE PSAY SAY #ENDIF A Funo IncRegua() incrementa a rgua padro.

Set Filter To

If aReturn[5] == 1 Set Printer To Commit ourspool(wnrel) Endif MS_FLUSH() Return Libera fila de relatrios em spool.

Testa se o relatrio foi direcionado para disco , esvazia os Buffers e chama funo de Spool Padro.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 207

/* Funo Autor Data Descrio */ Function ProcDemo

ProcDemo Ary Medeiros 15/02/96 Exemplo de utilizao de rotinas de processamento

@ 96,42 TO 323,505 DIALOG oDlg5 TITLE "Rotina de Processamento" @ 8,10 TO 84,222 Atribui ao objeto um Box.

Define Objeto oDlg5

@ 91,139 BMPBUTTON TYPE 5 ACTION Pergunte("MTA010") @ 91,168 BMPBUTTON TYPE 1 ACTION Execute(OkProc) @ 91,196 BMPBUTTON TYPE 2 ACTION Close(oDlg5) @ 23,14 SAY "Este programa e uma demonstrao da utilizao das rotinas de processamento." @ 33,14 SAY " -Processa() - Dispara Dialogo de Processamento" @ 43,14 SAY " -ProcRegua() - Ajusta tamanho da rgua" @ 53,14 SAY " -IncProc() - Incrementa posio da rgua" ACTIVATE DIALOG oDlg5 Return nil /* Funo Autor Data Descrio */ Function OkProc Close(oDlg5) Esta funo finaliza objeto oD1g5 e todos os objetos correspondentes. Assim como nos relatrios essa funo executa a Funo que far o processamento. Ativa o objeto oD1g5

Define Botes

Comando Say Padro do Clipper.

OkProc Ary Medeiros 15/02/96 Confirma o processamento

Processa( {|| Execute(RunProc) } ) Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 208

/* Funo Autor Data Descrio */ Function RunProc ProcRegua(1000)

OkProc Ary Medeiros 15/02/96 Executa o processamento

Inicializa a rgua padro de processamentos pode ser utilizada no RdMake Dos/Windows.

For i:= 1 to 1000 IncProc() Next Return /* Funo Autor Data Descrio */ Function DlgDinam cSay1 := "Demo 01" cSay2 := "Demo 02" cGet1 := "Get 01" cGet2 := "Get 02"

Contador para demonstrar a funo que incrementa a rgua padro previamente definida.

DlgDinam Ary Medeiros 15/02/96 Exemplo de rotina de refresh

Define variveis.

@ 96,42 TO 323,505 DIALOG oDlg6 TITLE "Rotina de Refresh" @ 8,10 TO 84,222 Atribui um Box ao objeto.

Define Objeto oDlg6

@ 91,139 BUTTON "Refresh" Size 70,20 ACTION Execute(RefrDlg) @ 23,14 SAY cSay1 @ 33,14 SAY cSay2 @ 43,14 Get cGet1 @ 53,14 Get cGet2 ACTIVATE DIALOG oDlg6 CENTERED Return Comando Say Padro do Clipper.

Define um boto.

Comando Get, no necessrio utilizar o Comando Read, no Windows o Get estar ativo quando o objeto ao qual foi atribudo for Ativado. Ativa o objeto oD1g6

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 209

Function RefrDlg cSay1 := IIF(cSay1=="Demo 01","Demo 03","Demo 01") cSay2 := IIF(cSay2=="Demo 02","Demo 04","Demo 02") cGet1 := IIF(cGet1=="Get 01","Get 03","Get 01") cGet2 := IIF(cGet2=="Get 02","Get 04","Get 02") dlgRefresh(oDlg6) Return

Redefine variveis.

Esta funo utilizada para atualizar as informaes do formulrio ativo, em Dos sempre que for necessrio atualizar um valor na tela necessrio utilizar o Comando Say, em Windows basta apenas atualizar (Refresh), pois, o objeto Say j est ativo no formulrio.

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 210

/*/ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Programa RDDEMO2 Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Demo. Interpretador XBase para Windows. Versao 2 com mais --- exemplos, de comandos e uso de metodos e propriedades. ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ //----------------------------------------------------------------------// Variaveis do programa //----------------------------------------------------------------------oRDDEMO2 := NIL oTimer := NIL cMsg cMsg cMsg cMsg cMsg cMsg cMsg cMsg nPosMsg bTimer Space(20) cMsg + "Esta verso do RDDEMO demostra novos conceitos e o uso de novas " cMsg + "possibilidades para os comandos do interpretador para Windows. " cMsg + "Alm disso, demostra formas de acesso a propriedades de objetos " cMsg + "e mtodos, o que facilita a programao nesse ambiente. Escolha atravs " := cMsg + "das duas listas abaixo as demostraes que deseja visualizar e pressione " := cMsg + "o boto EXECUTAR. := OemToAnsi(cMsg) := 1 := {|| cTopBar := Substr(cMsg,nPosMsg,65) , ; nPosMsg := If(nPosMsg>Len(cMsg),1,nPosMsg + 1), ; ObjectMethod(oGt,"Refresh()") } := Space(65) := := := := 0 {"Uso de Senhas","Novos Dialogos","Refresh de Objetos","Campos MEMO"} 0 {} := := := := :=

"

cTopBar nSource aSource nTarget aTarget

//----------------------------------------------------------------------// Criacao do dialogo principal //----------------------------------------------------------------------@ 105,074 To 304,716 Dialog oRDDEMO2 Title "RDDEMO2 - Demonstrao do Interpretador XBase for Windows" //----------------------------------------------------------------------// Define o timer que ira executar por detras do dialogo //----------------------------------------------------------------------oTimer := IW_Timer(100,bTimer) ObjectMethod(oTimer,"Activate()") //----------------------------------------------------------------------// Objetos do dialogo principal //----------------------------------------------------------------------@ 020,003 Say OemToAnsi("Demonstraes disponveis:") @ 020,133 Say OemToAnsi("Executar Demonstraes:")

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 211

//----------------------------------------------------------------------// Nova clausula disponivel para todos os comandos -> OBJECT <NOME> //----------------------------------------------------------------------@ 004,000 Get cTopBar When .F. Object oGt @ 030,004 ListBox nSource Items aSource Size 86,65 Object oSource @ 029,133 ListBox nTarget Items aTarget Size 85,65 Object oTarget @ 030,093 Button OemToAnsi("_Adicionar >>") Size 36,16 Action Execute(AddDemo) Object oBtnAdd @ 048,093 Button OemToAnsi("<< _Remover") Size 36,16 Action Execute(RemoveDemo) Object oBtnRem @ 030,250 Button OemToAnsi("_Executar") Size 36,16 Action Execute(RunDemos)

@ 082,277 BmpButton Type 1 Action Close(oRDDEMO2) Activate Dialog oRDDEMO2 //----------------------------------------------------------------------// Funcao para acesso aos metodos de um objeto -> OBJECTMETHOD //----------------------------------------------------------------------//----------------------------------------------------------------------// Libera o timer //----------------------------------------------------------------------ObjectMethod(oTimer,"DeActivate()") ObjectMethod(oTimer,"Release()") Return /*/ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo ADDDEMO Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Adiciona o item da lista Source para a lista Target ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function AddDemo If nSource != 0 aAdd(aTarget,aSource[nSource]) ObjectMethod(oTarget,"SetItems(aTarget)") nNewTam := Len(aSource) - 1 aSource := aSize(aDel(aSource,nSource),nNewTam) ObjectMethod(oSource,"SetItems(aSource)") Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 212

/*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo REMOVEDEMO Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Remove um item da lista Target e adiciona na lista Source ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ function RemoveDemo If nTarget != 0 aAdd(aSource,aTarget[nTarget]) ObjectMethod(oSource,"SetItems(aSource)") nNewTam := Len(aTarget) - 1 aTarget := aSize(aDel(aTarget,nTarget), nNewTam) ObjectMethod(oTarget,"SetItems(aTarget)") Endif Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo RUNDEMOS Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Executa os demos da lista Target ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function RunDemos If Len(aTarget) != 0 For nDemo := 1 To Len(aTarget) cDemo := AllTrim(Upper(aTarget[nDemo])) Do Case Case cDemo == "USO DE SENHAS" Execute(FunSenhas) Case cDemo == "NOVOS DIALOGOS" Execute(FunNovos) Case cDemo == "REFRESH DE OBJETOS" Execute(FunRefresh) Case cDemo == "CAMPOS MEMO" Execute(FunMEMO) EndCase Next nDemo Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 213

/*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FUNSENHAS Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Demostracao do uso de senhas ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FunSenhas cSenha := Space(200) cConteudo := Space(200) @ 115,085 To 267,727 Dialog oSenhas Title "Demostrao de Objetos GET com senhas" @ 002,002 To 038,315 @ 009,008 Say OemToAnsi('Para se trabalhar com caixas de edio que no exibem o contedo digitado, basta acrescentar a cl usula') @ 020,008 Say OemToAnsi('PASSWORD ao comando GET do programa. Por exemplo: @00,00 Get cSenha Picture "@!" Valid .T. PASSWORD') @ 042,004 Say OemToAnsi("Senha :") @ 057,004 Say OemToAnsi("Contedo:") @ 042,042 Get cSenha Picture "@S40" Valid .T. PASSWORD Object oSenha @ 057,042 Get cConteudo Picture "@S40" When .F. Object oConteudo @ 059,277 BmpButton Type 1 Action Close(oSenhas) oAtuCont := Iw_Timer(100,{|| cConteudo := cSenha , ObjectMethod(oConteudo,"Refresh()") }) ObjectMethod(oAtuCont,"Activate()") Activate Dialog oSenhas ObjectMethod(oAtuCont,"DeActivate()") ObjectMethod(oAtuCont,"Release()") Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FUNNOVOS Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Demonstracao de dialogos diversificados. ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FunNovos nTipo := 1 aTipo := {"Selecao de Arquivo","Selecao de Cores"} @ 150,133 To 361,716 Dialog oDialogos Title "Demostrao de Di logos Diversificados" @ 003,002 To 039,282 @ 011,008 Say di logos para @ 023,008 Say RDMAKE.") @ 049,003 Say OemToAnsi("Alm dos di logos para simples exibio de mensagens, existem os seleo de arquivos,") OemToAnsi("entradas de dados, etc, que facilitam a vida do programador OemToAnsi("Tipo do Di logo:")

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 214

@ 060,004 Radio aTipo Var nTipo @ 060,160 Button OemToAnsi("_Executar") Size 36,16 Action Execute(RunDlg) @ 089,248 BmpButton Type 1 Action Close(oDialogos) Activate Dialog oDialogos Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo RUNDLG Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Executa o dialogo selecionado pelo usuario em FunNovos ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function RunDlg cTipo cTipo cTipo cTipo cTipo := := := := := cTipo cTipo cTipo cTipo + + + + "Executaveis (*.EXE) "Figuras (*.BMP) "Arquivos de Dados (*.DBF) "Arquivos de Indice (*.CDX) "Todos os Arquivos (*.*) | | | | | *.EXE *.BMP *.DBF *.CDX *.* | | | | " " " " "

If nTipo == 1 // Selecao de Arquivos cFile := cGetFile(cTipo,"Dialogo de Selecao de Arquivos") If !Empty(cFile) Aviso("Arquivo Selecionado",cFile,{"Ok"}) Else Aviso("Cancelada a Selecao!","Voce cancelou a selecao do arquivo.",{"Ok"}) Endif ElseIf nTipo == 2 // Selecao de Cores nCor := ChooseColor(255) Endif Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FUNREFRESH Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Demostracao de metodos para refresh em objetos ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FunRefresh lPrimeiro := .T. cPrimeiro := PADR("Este texto faz parte do PRIMEIRO GET",36) cSegundo := PADR("Este texto faz parte do SEGUNDO GET" ,36)

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 215

@ 116,090 To 416,707 Dialog oRefresh Title OemToAnsi("Refresh de Objetos") @ 003,002 To 040,305 @ 012,008 Say OemToAnsi("Alguns dos objetos no Windows, como o SAY e o GET, possuem um mtodo REFRESH(). Desse modo") @ 024,009 Say OemToAnsi("pode-se atualizar as informaes desses objetos sem forar a atualizao de todo o di logo.") @ 055,005 Say OemToAnsi("Hora atual:") oTimerHora := Iw_Timer(500,{|| ObjectMethod(oHoraAtual,"SetText(Time())") }) ObjectMethod(oTimerHora,"Activate()") @ @ @ @ @ 055,040 080,005 104,005 080,040 104,040 Say Say Say Get Get OemToAnsi(Time()) OemToAnsi("1o. Get: ") OemToAnsi("2o. Get: ") cPrimeiro cSegundo Object Object Object Object Object oHoraAtual oLabel1 oLabel2 oGet1 oGet2

@ 088,262 Button OemToAnsi("_Trocar") Size 36,16 Action Execute(FRTroca) @ 132,263 BmpButton Type 1 Action Close(oRefresh) Activate Dialog oRefresh ObjectMethod(oTimerHora,"DeActivate()") ObjectMethod(oTimerHora,"Release()") Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FRTROCA Autor Luiz Carlos Vieira Data Wed 23/09/98------------------------------------------------------------------------Descrio Faz a troca dos objetos no dialogo da funcao FUNREFRESH ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FRTroca cAux1 cAux2 := cPrimeiro := cSegundo

cSegundo := cAux1 cPrimeiro := cAux2 ObjectMethod(oGet1,"Refresh()") ObjectMethod(oGet2,"Refresh()") If lPrimeiro ObjectMethod(oLabel1,"SetText('2o. ObjectMethod(oLabel2,"SetText('1o. lPrimeiro := .F. Else ObjectMethod(oLabel1,"SetText('1o. ObjectMethod(oLabel2,"SetText('2o. lPrimeiro := .T. Endif Return Get: ')") Get: ')") Get: ')") Get: ')")

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 216

/*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FUNMEMO Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Demo. da edicao de campos memo ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FunMEMO cTexto cFOpen := "" := ""

@ 116,090 To 416,707 Dialog oDlgMemo Title "Demonstrao de Campos MEMO - Editor de Arquivos Texto" @ 003,002 To 040,305 @ 012,008 Say OemToAnsi("Para editar um campo MEMO, ou mesmo o contedo de um arquivo texto, utiliza-se o prprio") @ 024,009 Say OemToAnsi("comando GET, adicionando as cl usulas SIZE e MEMO. Por exemplo: @10,10 GET cVar Size 50,50 MEMO") @ 045,005 Say OemToAnsi("Arquivo: <SEM NOME>"+Space(100)) Object oNome @ 055,005 Get cTexto Size 250,080 MEMO Object oMemo @ @ @ @ 045,263 063,263 081,263 099,263 Button Button Button Button OemToAnsi("_Abrir...") OemToAnsi("_Fechar") OemToAnsi("_Salvar") OemToAnsi("_Salvar Como...") Size Size Size Size 36,16 36,16 36,16 36,16 Action Action Action Action Execute(FRAbre) Execute(FRFecha) Execute(FRSalva) Execute(FRSalvaComo)

@ 132,263 BmpButton Type 1 Action Close(oDlgMemo) Activate Dialog oDlgMemo Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FRABRE Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Rotina para a abertura do arquivo texto na FunMEMO ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FRAbre cFOpen := cGetFile("Arquivos Texto|*.TXT|Todos os Arquivos|*.*",OemToAnsi("Abrir Arquivo...")) If !Empty(cFOpen) cTexto := MemoRead(cFOpen) ObjectMethod(oMemo,"Refresh()") ObjectMethod(oNome,"SetText('Arquivo: '+cFOpen)") Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 217

/*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FRFECHA Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Rotina para fechamento do arquivo texto em FunMEMO ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FRFecha cTexto := "" cFOpen := "" ObjectMethod(oMemo,"Refresh()") ObjectMethod(oNome,"SetText('Arquivo: <SEM NOME>')") Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FRSALVA Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Rotina para salvar o arquivo texto em FunMEMO ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FRSalva If !Empty(cFOpen) MemoWrit(cFOpen,cTexto) Endif Return /*/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Funo FRSALVACOM Autor Luiz Carlos Vieira Data Thu 24/09/98------------------------------------------------------------------------Descrio Rotina para salvar arquivo texto com outro nome em FunMEMO ----------------------------------------------------------------------------Uso Especfico para clientes Microsiga ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*/ Function FRSalvaComo cAux := cFOpen cFOpen := cGetFile("Arquivos Texto|*.TXT|Todos os Arquivos|*.*",OemToAnsi("Salvar Arquivo Como...")) If !Empty(cFOpen) MemoWrit(cFOpen,cTexto) ObjectMethod(oNome,"SetText('Arquivo: '+cFOpen)") Else cFOpen := cAux Endif Return

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 218

Referncias e Abreviaturas

SGBD

Sistema Gerenciador de Banco de Dados. o aplicativo que gerencia os dados e controla o acesso aos mesmos. Structured Query Language Linguagem de Consulta Estruturada. uma linguagem de consulta gil e estruturada, bastante difundida entre gerenciadores de banco de dados relacionais. Estes so sistemas de gerenciamento de banco de dados relacional em bastante evidncia no mercado atual. Oracle marca registrada da Oracle Inc., MSSQL da Microsoft e DB2 da IBM. Advantage DataBase Server. marca registrada da Advantage, e um Driver para acesso base de dados padro xBase em ambiente de rede.

SQL

Oracle, MSSQL Server ou DB2

ADS

MANUAL RDMAKE - SIGA ADVANCED 4.07 - 219

También podría gustarte