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 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 5 lN1LklkL1ADOk X8ASL 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 - 6 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 compila- dos 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 - 7 lkOGkAVAO 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, recomenda- mos 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 - 8 Operadores So vlidos todos os operadores do padro XBase excetuando-se: Original Substituir por ++var - soma antes de executar var:=var+1 (antes do processo) - - var - subtrai antes de executar var:=var-1 (antes do processo) var++ - soma aps executar var:=var+1 var - - - subtrai aps executar var:=var-1 var+=n - soma n a var var:=var+n var-=n - subtrai n de var var:=var-n var*=n - multiplica var por n var:=var*n var/=n - divide var por n var:=var/n var%=n - resto de var/n var:=var%n var**=n - Exponencia var a 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 - 9 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 - 10 Macros So aceitas macros (&) dentro de programas interpretveis, entretanto macros muito complexas ou inseridas no meio de uma string precisam ser revistas. b := &a - vlida b:= var1&var2 - precisa ser substituda por b:= &(var1+&var2) &var:=Correta - 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 - 11 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 progra- ma. 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 - 12 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 interpre- tvel em sete posies. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 13 DllLkLNAS LN1kL kDVAkL DOS L wlNDOwS 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 desenvol- vidos 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 - 14 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 / / . . . Executa o processamento com as informaes recebidas... Este cdigo demostra uma estrutura de fluxo em execuo infinita, que somente deixar de executar quando o usurio pressionar a tecla ESC. 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 - 15 / / . . . 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 - 16 Verso DOS sTel a : = SaveScr een( 07, 06, 15, 71) Dr awAdvWi ndow( " At eno! " , 07, 08, 13, 71) sOl dCor : = Set Col or ( " B/ BG" ) @09, 10 Say " Est e pr ogr ama exi ge que os ar qui vos associ ados a el e est ej am" @10, 10 Say " emmodo excl usi vo. Cer t i f i que- se de que nenhumout r o usur i o" @11, 10 Say " est ej a usando o si st ema nest e moment o. " Set Col or ( sOl dCor ) Whi l e . T. NResp: =Menuh( {" Ok" , " Cancel a" }, 13, 10, " b/ w, w+/ n, r / w" , " OC" , " " , 1) I f nResp == 1 Endi f Exi t EndDo Ret ur n // // // // Salva o contedo da tela atual na varivel sTela. // // // // Desenha uma janela utilizando a funo padro do Microsiga. // // // // Apresenta as mensagens ao usurio. // // // // 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. // // // // Executa o processamento necessrio, pois o usurio confirmou. // // // // Indica a finalizao do Loop para finalizar o programa. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 17 Verso Windows @0, 0 TO 135, 360 DI ALOG oDl g TI TLE " At eno! " @01, 02 TO 45, 178 @10, 10 Say " Est e pr ogr ama exi ge que os ar qui vos associ ados a el e est ej am" @20, 10 Say " emmodo excl usi vo. Cer t i f i que- se de que nenhumout r o usu r i o" @30, 10 Say " est ej a usando o si st ema nest e moment o. " @50, 120 BMPBUTTON TYPE 1 ACTI ON Execut e( Cont i nua) @50, 150 BMPBUTTON TYPE 2 ACTI ON Cl ose( oDl g) ACTI VATE DI ALOG oDl g CENTERED Ret ur n // // // // // 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. // // // // 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. // // // // As linhas abaixo demostram a exibio de mensagens na tela do usurio. O comando exatamente o mesmo utilizado no ambiente DOS. // // // // // // // // 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. // // // // // // // 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. // // // // Aqui finaliza a execuo do programa principal. O processamento somente chegar a este ponto quando o dilogo for fechado. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 18 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 CONTI- NUA, voc pode acessar o contedo das variveis editadas no dilogo, ou as variveis referentes a qualquer outro componente criado pelos comandos padro- nizados 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 pr- compilador. 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 agrupamen- to 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 - 19 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 - 20 RXMAKE NOMPROG W /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 anteri- ores poderiam ser unificados da seguinte maneira: MANUAL RDMAKE - SIGA ADVANCED 4.07 - 21 l Ok : = . T. cDoc : = Space( 6) cSer i e : = Space( 3) cMens : = Space( 200) cI mpDup : = "S" nI mpDup : = 1 aI mpDup : = {"Si m ", "Nao "} aSer i es : = {} aOp : = {Conf i r ma, Redi gi t a, Abandona} dbSel ect Ar ea( "SX5") dbSeek( xFi l i al ( "SX5") +"01") Whi l e ! EOF( ) . And. SX5- >X5_TABELA == "01" aAdd( aSer i es, Subst r ( Al l Tr i m( SX5- >X5_CHAVE) , 1, 3) ) dbSki p( ) EndDo // // // // Declarao das variveis utilizadas pelo programa. // // // // Monta um ARRAY com as sries disponveis para o sistema. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 22 Whi l e . T. @12, 21 Say Space( 29) Col or "B/ W" @07, 34 Get cDoc Pi ct ur e "@! " @07, 49 Get cSer i e Pi ct ur e "@! " When Mont aF3( "01") Val i d Mont aF3( ) @08, 39 Get cMens Pi ct ur e "@! @S27" @10, 45 Get cI mpDup Pi ct ur e "! " Val i d Per t ence( "SN") Rea nResp : = MenuH( aOP, 12, 21, "b/ w, w+/ n, r / w", "CRA", "", 1) Do Case Case nResp == 1 / / Conf i r ma OkPr oc( ) I f l Ok Exi t El se l Ok : = . T. Loop Endi f Case nResp == 2 / / Redi gi t a Loop Case nResp == 3 / / Abandona Exi t EndCase EndDo #ELSE @212, 148 To 418, 652 Di al og oDados Ti t l e Dados da Not a Fi scal " @001, 001 To 100, 250 // // // // // // 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. // // // // // // // 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). MANUAL RDMAKE - SIGA ADVANCED 4.07 - 23 #I FNDEF WI NDOWS _sTel a : = SaveScr een( 05, 17, 14, 68) Dr awAdvWi ndow( "Dados da Not a Fi scal ", 05, 19, 12, 68) @06, 20 TO 11, 67 Col or "B/ BG" @07, 21 Say "Not a Fi scal : " Col or "B/ BG" @07, 42 Say "Ser i e: " Col or "B/ BG" @08, 21 Say "Mensagemda not a: " Col or "B/ BG" @10, 21 Say "I mpr i mi r as dupl i cat as?" Col or "B/ BG" // // // // // // // // // // 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. // // // // Salva a rea da tela aonde sero exibidos os dados e monta a tela no padro DOS. // // // // // // 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 - 24 @009, 007 Say OemToAnsi ( "Not a Fi scal : ") @009, 149 Say OemToAnsi ( "Sr i e") @024, 006 Say OemToAnsi ( "Mensagemda Not a: ") @080, 008 Say OemToAnsi ( "I mpr i mi r dupl i cat as?") @009, 038 Get cDoc Pi ct ur e "@! " Si ze 100, 100 @033, 007 Get cMens Pi ct ur e "@! " Si ze 230, 040 MEMO @009, 168 ComboBox cSer i e I t ems aSer i es Si ze 50, 50 @080, 060 Radi o aI mpDup Var nI mpDup @083, 172 BmpBut t on Type 1 Act i on Execut e( OkPr oc) @083, 210 BmpBut t on Type 2 Act i on Cl ose( oDados) Act i vat e Di al og oDados Cent er ed #ENDI F Ret ur n // // // // // // // 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. // // // // // // // 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. // // // // // // 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. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 25 Figura 1 - Tela do programa de exemplo no ambiente DOS MANUAL RDMAKE - SIGA ADVANCED 4.07 - 26 Funct i on OkPr oc I f Empt y( cDoc) . Or . Empt y( cSer i e) Avi so( " Er r o! " , " Voce deve i nf or mar o numer o de um document o de not a f i scal e ser i e exi st ent e. " , {" Ok" }) l Ok : = . F. Ret ur n Endi f dbSel ect Ar ea( " SF2" ) dbSet Or der ( 1) I f ! dbSeek( xFi l i al ( " SF2" ) +cDoc+cSer i e) Avi so( " Er r o! " , " Nmer o do document o/ Sr i e no encont r ado. " , {" Ok" }) l Ok : = . F. Ret ur n Endi f #I FNDEF WI NDOWS I f cI mpDup == " S" / / Execut a o pr ocessament o par a i mpr essao das dupl i cat as. . . Endi f #ELSE I f nI mpDup == 1 / / Execut a o pr ocessament o par a i mpr essao das dupl i cat as. . . Endi f #ENDI F // // // // // // Esta a funo OKPROC. a mesma que ser executada em ambas as verses, portanto encontra- se 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. // // // // // // 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. // // // // // // // // 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 - 27 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 - 28 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 componen- tes, 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 cdigo- fonte 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 - 29 lUNLS lAkA O lN1LklkL1ADOk X8ASL A seguir so apresentadas as funes SIGA Advanced para uso junto ao RD- MAKE / 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 - 30 khrefxc| 1|po: liocessaaeuto 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 // TI AbeExc1|ST2) Pack Eh0TI AbeExc1| ) dbCoTop| ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 31 kct|vate 0|a|eg 1|po: 1e|a w|udoWs 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 - 32 k|eater|e 1|po: liocessaaeuto 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 Nmero mximo para a gerao do nmero aleatrio nSeed Semente para a gerao do nmero aleatrio Retorna nRet Nmero aleatrio retornado Exemplo // Exemp1o do uso da fuho A1eafo1o: hSeed := 0 Io 1 := 1 fo 100 hSeed := A1eafo1o|100,hSeed) ? Sf|1,3)+ humeo a1eafo1o geado: +Sf|hSeed,3) hexf 1 1hkey|0) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 33 kva||mp 1|po: ke|atoi|os 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 (respec- tivamente 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 // Exemp1o de uso da fuho Ava1Tmp: #TIh0EI WTh00WS #0EIThE PSAY SAY #Eh0TI cCbTxf:= cCbCohf:= h0dem:= 0 hA1fa:= 0 hZ:= 0 hM:= 0 cTamahho:= C cL1m1fe:= 220 cT1fu1o:= PA0C|hofa I1sca1,74) c0esc1:= PA0C|Esfe pogama 1 em1f1 a hofa I1sca1 de Ehfada/Sa1da,74) c0esc2:= c0esc3:= PA0C|da Ieede Thdusf1a1 Lfda.,74) chafueza:= MANUAL RDMAKE - SIGA ADVANCED 4.07 - 34 aPefuh:= {Espec1a1, 1,Adm1h1sfao, 1, 2, 2,,1} chomePog:= hIEE0EP cPeg:= EhTSAT hLasfKey:= 0 1Cohf1hua:= .T. hL1:= 0 Whe1:= hIEE0EP hTamhf:=72 // Apehas Thfomaf1vo Peguhfe|cPeg,.I.) // Peguhfa ho SX1 cSf1hg:=SI2" Whe1:= SefP1hf|cSf1hg,Whe1,cPeg,cT1fu1o,c0esc1,c0esc2,c0esc3,.T.) Sef0efau1f|aPefuh,cSf1hg) Tf hLasfKey == 27 Pefuh Ehd1f #TI0EI WTh00WS PpfSfafus|{|| Execufe|Pe1afo)}) Pefuh #Eh0TI Iuhcf1oh Pe1afo SefPc|0,0) // Aqu1 esf a chamada da fuho Ava1Tmp. Cohf1gua a // 1mpessoa de acodo com as def1h1es em aPefuh // esco1h1das pe1o usu1o ha fuho SefP1hf 0 00,00 PSAY Ava1Tmp|220) dbSe1ecfAea|SI2) dbSeek|xI111a1|)+mvpa01+mvpa03,.T.) // 0 pogama segue homa1mehfe... Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 35 kv|se 1|po: 1e|a DOS/w|udoWs 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 // Exemp1o de uso da fuho Av1so: Wh11e .T. CavaAq|) // Iuho qua1que |apehas p/exemp1o) Tf !I11e|TESTE.TXT) a0p:= {S1m,hao,Cahce1a} cT1f:= Afehcao! cMsg:= 0 aqu1vo TESTE.TXT hao fo1 gavado! cMsg:= cMsg + Tehfa hovamehfe? h0p:= Av1so|cT1f,cMsg,a0p) Tf h0p == 1 // S1m Loop E1seTf h0p == 3 // Cahce1a Pefuh E1se // hao ou <ESC> Ex1f Ehd1f Ehd1f Ex1f Ehd0o // Iaz o pocessamehfo... Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 36 kx0a6astre 1|po: liocessaaeuto Gerao de modelo 1. Rotina para criao e manuteno de cadastros no padro do SIGA Advanced, contendo as opes padronizadas: PESQUISA, INCLU- SO, ALTERAO, VISUALIZAO e EXCLUSO. Disponibiliza o Browse e todas as funes de cadastramento padro. Sintaxe AxCadastro(cAlias,cTitulo,cDel,cOk) Parmetros cAlias Alias do arquivo. Deve obrigatoriamente ter sua estrutura definida no SX3. cTitulo Ttulo da Janela. cDel Funo para validar a excluso. cOk Funo para validar a Incluso/Alterao. Comentrios Deve ser utilizada para editar arquivos especficos (Famlia SZ?), sendo seme- lhante aos cadastros de Clientes, Fornecedores e etc... Exemplo // Exemp1o de uso de cadasfo de aqu1vo espec1f1co: AxCadasfo|SZ1,Cadasfo de 0escohfos,.T.",.T.) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 37 a1,a2 8mp8attea 1|po: 1e|a w|udoWs 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 - 38 ... 8|tmap... 8|te 1|po: 1e|a w|udoWs 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 - 39 ...1e...8rewse 1|po: 1e|a w|udoWs 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 Alias do Arquivo (apenas arquivos com estrutura no SX3) cCor 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 - 40 ...8attea 1|po: 1e|a w|udoWs Cria um boto com texto. Sintaxe @ nLinha,nColuna BUTTON cTexto SIZE nAltura,nLargura ACTION cFuno Object oBtn Parmetros nLinha Nmero da linha superior nColuna Nmero da coluna superior cTexto Texto que ser apresentado no boto. Deve incluir um _ antes da letra que utilizada como Hot Key. Ex.: ( _Salvar,Edi_Tar) nAltura Altura do boto nLargura Largura do boto cFuno 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 - 41 0ahec 1|po: lapiesso Esta funo imprime, na impressora selecionada, o cabealho padro dos relat- rios 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 Ttulo do Relatrio cTexto1 Extenso da primeira linha do cabealho cTexto2 Extenso da segunda linha do cabealho cProg 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 cT1fu1o := Pe1ao dos Ad1ahfamehfos cCabec1 := Cd1go Tfem Cohfa Cohfb11 CCusfo Poefo 0afa va1o cCabec2 := ----------- ------- ----------------------- ------------ ------------ -------- -------- cPogama := ATPI090 cTamahho := P hCaacfe := 1S MANUAL RDMAKE - SIGA ADVANCED 4.07 - 42 : cPe1:=SefP1hf|cA11as, cPogama , , 0cT1fu1o, c0esc1, c0esc2, c0esc3 , .T., a0d ) Sef0efau1f|aPefuh, cSf1hg) : nL1nha:=Cabec|cT1fu1o, cCabec1, cCabec2, cPogama, cTamanho, nCaacfe} Wh11e !E0I|) hL1hha:=hL1hha+1 0hL1hha,1 Say S1->1C00TC0 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 43 0a|cfst 1|po: liocessaaeuto e l|au||ha 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 Almoxarifado a pesquisar dData Data desejada Retorna aArray Array contendo: Elemento 1 - Quantidade inicial em estoque na data Elemento 2 - Custo inicial na data na moeda 1 Elemento 3 - Custo inicial na data na moeda 2 Elemento 4 - Custo inicial na data na moeda 3 Elemento 5 - Custo inicial na data na moeda 4 Elemento 6 - Custo inicial na data na moeda 5 Elemento 7 - Quantidade inicial na segunda unidade de medida Exemplos aSa1dos:=Ca1cEsf|S1->1C00,S1->1L0CPA0, d0afaase) huahf:=aSa1dos|1] MANUAL RDMAKE - SIGA ADVANCED 4.07 - 44 0a|c8a|6e 1|po: liocessaaeuto e l|au||ha 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 Perodo (1 a 17) que ser usado como limite para o clculo de saldo. nMoeda Moeda para o clculo. Se no informada, assumida a moeda 1. lSalAnt 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 // Exemp1o de uso da fuho CALCSAL00: cCohfa := SA1->A1C0hTA dbSe1ecfAea|ST1) dbSeek|xI111a1|ST1)+cCohfa) ? Sa1do afua1 da cohfa +cCohfa+: ? Ca1cSa1do|Pe1odo|)) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 45 0ap|ta| 1|po: liocessaaeuto Transforma as letras iniciais em Maisculas e as demais em Minsculas. Sintaxe Capital(cTexto) Parmetros cTexto Texto a ser convertido Exemplo cCap1fa1:=Cap1fa1|TEXT0 MATbSCbL0) // 0 efoho se Texfo Ma1scu1o MANUAL RDMAKE - SIGA ADVANCED 4.07 - 46 000 1|po: liocessaaeuto 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, correspon- dem 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 cCCC:= Space|14) : 010,16 CET cCCC P1cfue 0P 99.999.999/9999-99 va11d CCC|cCCC) 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 - 47 ...0heck8ex...Var 1|po: 1e|a w|udoWs 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 - 48 0hkI||e 1|po: liocessaaeuto 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 Alias do arquivo a ser aberto. lExcl Se for informado verdadeiro (.T.), o arquivo ser aberto em modo exclusivo, caso contrrio, o arquivo ser aberto em modo compar- tilhado. Se este parmetro no for informado, ser assumido falso (.F.). newAlis Abre o arquivo com outro apelido. Retorna lRet Retorna verdadeiro (.T.) caso tenha conseguido abrir o arquivo e falso (.F.) caso contrrio. Exemplo // Exemp1o de uso da fuho ChkI11e: // Tehfa ab1 o aqu1vo de c11ehfes como exc1us1vo: dbSe1ecfAea|SA1) dbC1oseAea|) 10k := .T. Wh11e .T. TI !ChkI11e|SA1,.T.) hPesp := A1ef|0ufo usua1o usahdo! Tehfa de hovo?,{S1m,hao}) Tf hPesp == 2 10k := .I. Ex1f Ehd1f : MANUAL RDMAKE - SIGA ADVANCED 4.07 - 49 Ehd1f Ehd0o Tf 10k // Iaz o pocessamehfo com o aqu1vo... Ehd1f // I1ha11za Tf Se1ecf|SA1) dbC1oseAea|) Ehd1f ChkI11e|SA1,.I.) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 50 0|ese 1|po: 1e|a w|udoWs Desativa uma janela previamente definida e ativa. Sintaxe Close(cVar) Parmetros cVar Varivel criada durante o comando de definio da janela. Exemplo 0 7S,1S mpuffoh fype 02 Acf1oh C1ose|o01g) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 51 0|ese0pea 1|po: liocessaaeuto Funo usada para fechar e abrir uma lista de arquivos. Sintaxe CloseOpen(aFecha,aAbre) Parmetros aFecha Array com a lista dos Aliases a serem fechados. aAbre 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 // Exemp1o de uso da fuhcao C1ose0peh: aIecha := {SA1,SA2",SA3",S1"} aAbe := {SC1,Sh"} Tf C1ose0peh|aIecha,aAbe) .. Pocessamehfo Ehd1f Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 52 0|esesI||e 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao CL0SESITLE: // Iecha fodos os aqu1vos mehos os cadasfos: cEmp := SM0->M0C00TC0 C1osesI11e|SA1/SA2/SA3/SA4/SAS/SA6/SA7/SA9/SAA/SA/SAC) // Pocessamehfo. . . // I1ha11zacao dbC1oseA11|) 0pehI11e|cEmp) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 53 ...0emhe8ex...lteas...8|te 1|po: 1e|a w|udoWs 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 Contedo caracter do item selecionado na Matriz [1] aArray Array, Matriz [1] com os itens para seleo nAltura 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 - 54 0emp3 1|po: liocessaaeuto 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 aSa1dos:=0eComp3|A1M0vTMEh) hSa1do:=aSa1dos|1] Io := 2 To 24 STEP 2 hSa1do := hSa1do - aSa1dos | ] + aSa1dos | + 1 ] hexf aSa1dos|1]:=hSa1do AITLL|aSa1dos,0,2,24) Pec1ock|SA1) PEPLACE A1M0vTMEh W1fh Comp3|aSa1dos} Ver tambm Funo DeComp3 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 55 0ea6|cae 1|po: liocessaaeuto 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 Valor total a ser parcelado cCond Cdigo da condio de pagamento nVIPI Valor do IPI, destacado para condio que obrigue o pagamento do IPI na 1 parcela dData Data inicial para considerar Retorna aRet Array de retorno ( { {VALOR,VENCTO} , ... } ) Exemplo // Exemp1o de uso da fuhcao Cohd1cao: hva1Tof := 2S00 cCohd := 002 // T1po 1, 0uas vezes aPac := Cohd1cao|hva1Tof,cCohd,,d0afaase) ? 1 Pace1a: +Tahsfom|aPac|1,1],0E 9,999,999.99") ? vehcfo: +0T0C|aPac|1,2]) ? ? 2 Pace1a: +Tahsfom|aPac|2,1],0E 9,999,999.99") ? vehcfo: +0T0C|aPac|2,2]) 1hkey|0) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 56 0eaf|rm8X8 1|po: liocessaaeuto Permite a confirmao do nmero sugerido pelo Arquivo de Semforo, atravs da funo GETSX8NUM. Verifique a funo GETSX8NUM para maiores detalhes. Sintaxe ConfirmSx8() Exemplo chumSCS:=CefSXhum|SCS) Pep1ace CShbM W1fh chumSCS Cohf1mSX|) Verifique os exemplos descritos na funo GETSX8NUM. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 57 0eatar 1|po: liocessaaeuto Conta o nmero de registros de acordo com a condio determinada. Sintaxe Contar(cAlias, cCond) Parmetros cALias Alias do arquivo cCond Condio para a contagem Exemplo Cohfa|SC1,C10ATPPI < d0afaase) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 58 0eavMee6a 1|po: liocessaaeuto Converte o valor informado para a moeda selecionada. Sintaxe ConvMoeda(dData1,dData2,nValor,cMoeda) Parmetros dData1 Data de emisso dData2 Data de vencimento nValor Valor a ser convertido cMoeda 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 hva1o2 := CohvMoeda| 02EMTSSA0, , 02T0TAL, cMoeda ) hva1o1 := CohvMoeda| 010T0TCTT, , 01T0TAL, cMoeda ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 59 0re6|te 1|po: liocessaaeuto Devolve o valor a crdito de uma determinada conta. Sintaxe Credito(cConta, nMs, nMoeda) Parmetros cConta Cdigo da Conta nMs Ms do movimento desejado nMoeda Moeda desejada para obteno do valor a crdito Exemplo Ced1fo|11103,03,1) Ver tambm Funes Debito, Saldo e Movimento MANUAL RDMAKE - SIGA ADVANCED 4.07 - 60 0r|a1rah 1|po: liocessaaeuto Cria arquivo de trabalho. Sintaxe CriaTrab(aArray,lDbf) Parmetros aArray Array multidimensional contendo os campos a criar {Nome, Tipo, Tamanho, Decimal} lDbf 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 10bf = .I. cAq := C1aTab|hTL, .I.) cThd1ce := C9ACPEC++ThdexKey|) Thdex oh &cThd1ce To &cAq // Com 10bf = .T. aSfu := {} AA00|aSfu,{ MAPK , C, 1, 0}) AA00|aSfu,{ ACLbT , C, 10, 0}) AA00|aSfu,{ hbM0P , C, 10, 0}) AA00|aSfu,{ PP00bT0, C, 1S, 0}) AA00|aSfu,{ bAhT , h, 16, 4}) AA00|aSfu,{ EhTPECA, 0, , 0}) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 61 AA00|aSfu,{ EhTPAJb, 0, , 0}) AA00|aSfu,{ 0P0EM , h, 4, 0}) AA00|aSfu,{ CEPA00 , C, 1, 0}) cAqTab := C1aTab|aSfu, .T.) bSE &cAqTab ALTAS TP hEW MANUAL RDMAKE - SIGA ADVANCED 4.07 - 62 0r|aVar 1|po: liocessaaeuto 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 Nome do campo lIniPad Indica se considera (.T.) ou no (.F.) o inicializador cLado 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 // Exemp1o do uso da fuho C1ava: chumhofa := C1ava|I200C) // Pefoha o cohfedo do // 1h1c1a11zado pado, // se ex1sf1, ou espaos em bahco A1ef|chumhofa) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 63 0ataVa||6a 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao 0afava11da: // Pode-se gava o campo do vehc1mehfo ea1 de um // f1fu1o a paf1 do vehc1mehfo 1hfomado. dvehcfo := cTod|) : Cef dvehcfo Pead dvehcPea := 0afava11da|dvehcfo) Cava|) // Iuhcao gehe1ca. // bm uso 1hfeessahfe, e a obfehcao do humeo de d1as // ufe1s de defem1hado mes uf111zahdo-se dessa fuhcao. // A 1og1ca e s1mp1es: h0bf11 := 0 hMes := 0S hAho := 9 d0fTh1 := CT00|01/+SfZeo|hMes,2)+/+SfZeo|hAho,2) d0fMov := d0fTh1 Wh11e Mohfh|d0fTh1) == Mohfh|d0fMov) .Ahd. Yea|d0fTh1) == Yea|d0fMov) Tf 0afava11da|d0fMov) == d0fMov h0bf11 := h0bf11 + 1 Ehd1f d0fMov := d0fMov + 1 Ehd0o MANUAL RDMAKE - SIGA ADVANCED 4.07 - 64 0eh|te 1|po: liocessaaeuto Devolve o valor a dbito de uma determinada conta. Sintaxe Debito(cConta, nMs, nMoeda) Parmetros cConta Cdigo da Conta nMs Ms do movimento desejado nMoeda Moeda desejada para obteno do valor a dbito Exemplo 0eb1fo|11103,03,1) Ver tambm Funes Credito, Saldo e Movimento MANUAL RDMAKE - SIGA ADVANCED 4.07 - 65 0e0emp3 1|po: liocessaaeuto 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 aSa1dos:= 0eComp3|A1M0vTMEh) hSa1do := aSa1dos | 1 ] Io := 2 To 24 STEP 2 hSa1do:= hSa1do - aSa1dos | ] + aSa1dos | + 1 ] hexf aSa1dos|1]:=hSa1do AITLL|aSa1dos,0,2,24) Pec1ock|SA1) PEPLACE A1M0vTMEh W1fh Comp3|aSa1dos) Ver tambm Funo Comp3 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 66 ...1e...0|a|eg 1|po: 1e|a w|udoWs 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 Varivel que recebera as definies da nova janela cTtulo 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 - 67 0|g|te11 1|po: liocessaaeuto Clculo de dgito verificador em mdulo 11. Sintaxe Digito11(cCalc,cDigito) Parmetros cCalc String para calcular o dgito cDigito 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 0 9, 10 Cef cCod1go va11d 01g1fo11| SubSf|cCod1go, 1, 5}, Subsf|cCod1go, 6, 1}} MANUAL RDMAKE - SIGA ADVANCED 4.07 - 68 0rawk6v30 1|po: 1e|a DOS Desenha uma janela DOS em 3 dimenses. Sintaxe DrawAdv3D(cTitle, nLinha1, nColuna1, nLInha2, nColuna2, cCorFrente, cCorFundo, cStyle) Parmetros cTitle Ttulo da Janela nLinha1 Nmero da linha superior nColuna1 Nmero da coluna superior nLinha2 Nmero da linha inferior nColuna2 Nmero da coluna inferior cCorFrente Cor da letra cCorFundo Cor do fundo cStyle R (onde R = Raised - define a impresso de baixo relevo. O padro alto relevo) Exemplo // 0aWAdv30|Jahe1a 30,01,24,20,24,+,h,P) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 69 0rawk6vw|a6ew 1|po: 1e|a 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 Ttulo da janela nLinha1 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 0aWAdvW1hdoW|T1fu1os em Abefo,3,4,20,76) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 70 fkh0|g|te 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao EAh0TCTT0: // Caf11ho // 0om.: 1C00AP // Cfa0om.: 1C00AP // Pega: Eahd1g1fo|PA0L|A11T1m|M->1C00AP),12,0")) // 0u usado em um pogama dmake: cCod := Eah01g1fo|PA0L|A11T1m|M->1C00AP),12,0")) c01g := Subsf|cCod,12,1) A1ef|0 d1g1fo ca1cu1ado e`: +c01g) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 71 fatre 1|po: liocessaaeuto 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 Expresso a comparar >= ExpX2 Expresso a comparar <= cCampo Nome do Campo Retorna ExpL1 Valor Lgico de Retorno (.T. ou .F.) Exemplos : Tf Ehfe|A1,A9",cSe1e) 0 S,10 Say Se1e 0k E1se 0 S,10 Say Se1e Thva11da Loop EhdTf : MANUAL RDMAKE - SIGA ADVANCED 4.07 - 72 fstrat 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao Esfuf: cPd := Space|1S) aSfu := {} hEsfu := 0 Wh11e .T. 0 10,10 Say Cod1go do Podufo: 0 10,30 Cef cPd P1cfue 0! va11d|!Empfy|cPd)) Pead Tf LasfKey|) == 27 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 73 Ex1f Ehd1f Tf !Ex1sfCpo|S1,cPd) Loop Ehd1f 1:= 0 aSfu := Esfuf|cPd) // 0bfem a esfufua hL1h := S Io 1 := 1 To Leh|aSfu) 0hL1h,00 Say Comp.: +aSfu|1,3] 0hL1h,20 Say uahf.: +Sf|aSfu|1,4],1S) hL1h := hL1h + 1 Tf hL1h > 23 024,00 Say Tec1e <EhTEP>... Thkey|0) hL1h := S Ehd1f hexf 1 Ehd0o MANUAL RDMAKE - SIGA ADVANCED 4.07 - 74 fxecate 1|po: liocessaaeuto Executa uma Funo definida em um mesmo .Pr? nas clusulas <ACTION> ou <VALID>. Sintaxe Execute (cFuno) Parmetro cFuno Funo a ser executada. Exemplo 0 7S,09 mpuffoh fype 01 acf1oh Execufe|SS00TMP) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 75 fx|st0hav 1|po: liocessaaeuto 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 Alias do arquivo no qual a consistncia deve ser avaliada cChave Chave para a pesquisa. Opcional. Se no for informada, o contedo ser automaticamente obtido do GET ativo nOrdem Ordem do ndice para a pesquisa no Alias. Se no for especificado, ser assumida a primeira ordem cHelp 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 // Exemp1o de uso da fuhcao Ex1sfChav: // Pode-se uf111za-1a em uma va11dacao de usua1o, // def1hada afaves do Cohf1guado: // Campo -> 1C00 // va11dacao do bsua1o -> Ex1sfChav|S1) // 0u em um Pdmake: Wh11e .T. cEsp := Space|1S) 0 00,00 Say Cadasfo de Espec1a11dades 010,00 Say Espec.: Cef cEsp P1cf 0! Pead Tf LasfKey|) == 27 Ex1f Ehd1f Tf Ex1sfChav|SZ1,cEsp,1,ESPEXTST) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 76 Loop Ehd1f Cava|) // Pof1ha gehe1ca Ehd0o Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 77 fx|st0pe 1|po: liocessaaeuto 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 Alias do arquivo para a pesquisa cChave Chave a ser pesquisada (opcional). Se no for informada, o conte- do obtido automaticamente do GET em uso nOrdem 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 // Exemp1o de uso da fuhcao Ex1sfCpo: Wh11e .T. cPod := Space|1S) 010,10 Cef cPod Pead Tf LasfKey|) == 27 Ex1f Ehd1f Tf !Ex1sfCpo|S1,cPod) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 78 Loop Ehd1f Cava|) // Iuhcao gehe1ca. Ehd0o Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 79 fx|stla| 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao Ex1sfTh1: // Se ex1sf1 1h1c1a11zado ho campo 1C00: Tf Ex1sfTh1|1C00) // Chama o 1h1c1a11zado: cCod := C1ava|1C00) Ehd1f Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 80 fxtease 1|po: liocessaaeuto 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 Valor a ser gerado o extenso. lQtd 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.). nMoeda - Qual moeda do sistema deve ser o extenso. Retorna cValor Retorna o valor por extenso. Exemplo // Exemp1o de uso da fuhcao Exfehso: hva1o := SI2->I2vALIAT // Cea o exfehso do va1o, fomafahdo a va1ave1 com // 200 caacfees peehchehdo os espacos em bahco com " cExfehso := PA0P|Exfehso|hva1o),200,") // Tmp1me o exfehso em duas 11hhas |100 caacfees em cada): Io hL1 := 20 To 21 0hL1,10 Say Subsf|cExfehso,|hL1-20)"100+1,100) hexf hL1 Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 81 I|ahat0rc 1|po: liocessaaeutoe l|au||ha 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 I1hhaf0c|P001,10,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 82 I|ahatPrv 1|po: liocessaaeuto e l|au||ha Retorna o valor previsto de cada natureza. Sintaxe FinatPrv(cNatureza,dData1,dData2,nMoeda) Parmetros cNatureza Natureza a ser pesquisada dData1 Data Inicial para clculo dData2 Data Final de clculo nMoeda Moeda de sada Exemplo I1hhafPv|P001,Cfo0|01/01/9),d0afaase,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 83 I|ahatea 1|po: liocessaaeuto e l|au||ha Retorna o valor realizado da Natureza. Sintaxe FinNatRea(cNatureza,dData1,dData2,nMoeda) Parmetros cNatureza Natureza a ser pesquisada dData1 Data Inicial para clculo dData2 Data Final de clculo nMoeda Moeda de sada Exemplo I1hhafPea|P001,Cfo0|01/01/9),d0afaase,1) aAdd|aL,+---------------------+) aAdd|aL,|XXXXXXXX Pe1afo1o de Tesfe Pag1ha: XXXXX|) aAdd|aL,+----+------------+----+) aAdd|aL,| C00TC0 | 0ESCPTCA0 | PPEC0 |) aAdd|aL,+----+------------+----+) aAdd|aL,| XXXXXXX | XXXXXXXXXXXXXXXXXXXXXX | XXXXXX |) aAdd|aL,+----+------------+----+) hL1m:= 0 // Pe1afo1o de 0 co1uhas hL1:= 60 hPg:= 1 dbSe1ecfAea|S1) dbCoTop|) Wh11e !E0I|) Tf hL1 > SS hL1 := 0 ImfL1h|{},aL|1],,,0hL1,.T.,hL1m) ImfL1h|{d0afaase,hPg},aL|2],,,0hL1,.T.,hL1m) ImfL1h|{},aL|3],,,0hL1,.T.,hL1m) ImfL1h|{},aL|4],,,0hL1,.T.,hL1m) ImfL1h|{},aL|S],,,0hL1,.T.,hL1m) hPg := hPg + 1 Ehd1f a0ados := {} aAdd|a0ados,Subs|1C00,1,7)) aAdd|a0ados,Subs|10ESC,1,22)) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 84 Ierma|a 1|po: liocessaaeuto Interpreta uma frmula cadastrada. Esta funo interpreta uma frmula, previa- mente 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 // Exemp1o de uso da fuhcao fomu1a: // Iomu1a cadasfada ho SM4: // Cod1go: I01 // Pega : Sao Pau1o, +SfZeo|0ay|d0afaase),2)+ // de +MesExfehso|d0afaase)+ de + // SfZeo|Yea|d0afaase),4)+. // Ao 1mp1m1 esfa 11hha em um pogama, po exemp1o, 0 00,00 Say Iomu1a|I01) // o esu1fado 1mpesso sea a1go como: // Sao Pau1o, 17 de dezembo de 1997. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 85 // Iomu1a cadasfada ho SM4: // Cod1go: I02 // Pega : |CETMv|MvJbP0S)/100)+1 // Ao usa esfa fomu1a, pode-se da um acesc1mo em um // va1o de acodo com a faxa de uos cadasfada ho paamefo MvJbP0S: hva1o := hva1o " Iomu1a|I02) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 86 IaacaMee6a 1|po: liocessaaeuto Retorna um array contendo o valor do titulo em at cinco (5) moedas. Sintaxe FuncaMoeda(dData,nValor,nMoeda) Parmetros dData Data utilizada como referncia nValor Valor utilizado como referncia nMoeda Moeda em que o valor se encontra Retorna aRet Array contendo o valor informado nas cinco moedas ( { nVal1,nVal2,nVal3,nVal4,nVal5 } ) Exemplo // Exemp1o do uso da fuhcao IuhcAMoeda: hva1T1f := SE1->E1SAL00 hMoeda := SE1->E1M0E0A ava1oes := IuhcaMoeda|d0afaase,hva1T1f,hMoeda) Io 1:=1 fo S ? va1o do f1fu1o ha +Sf|1,1)+ moeda: + Tahsfom|ava1oes|1],0E 9,999,999.99") hexf 1 1hkey|0) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 87 ... 0f1 1|po: 1e|a DOS/w|udoWs 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 - 88 0etk6vIva| 1|po: liocessaaeuto 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 Alias do arquivo. uCpo Nome de um campo ou array contendo os nomes dos campos desejados. uChave Chave para a pesquisa. nOrder Ordem do indice para a pesquisa. uDef 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 // Exemp1o de uso da fuhcao CefAdvIva1: // 0bfehdo apehas de um campo: cChave := S02->02C00+S02->02L0CAL c0esc := CefAdvIva1|S1,10ESC,cChave,1,SC6->C60ESCPT) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 89 // 0bfehdo o cohfeudo de ma1s de um campo: cChave := S02->02C00+S02->02L0CAL aCpos := {10ESC,1PPv1",1bM} a0ados := CefAdvIva1|S1,aCpos,cChave,1,{SC6->C60ESCPT,SC6->C6PPCvEh,SC6->C6bM}) 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: // Co1uhas... hPosCod := aScah|aheade,{ |x| bppe|A11T1m|x|2])) == C6PP00bT0 }) hPosfd := aScah|aheade,{ |x| bppe|A11T1m|x|2])) == C6T0vEh }) // 0bfm o cd1go do podufo cCod1go := aCo1s|h,hPosCod] // Pesqu1sa dbSe1ecfAea|S1) dbSef0de|1) dbSeek|xI111a1|S1)+cCod) // A1fea a quahf1dade ho g1d aCo1s|h,hPosfd] := S1->1TSbCEP // Campo espec1f1co com a quahf1dade pado Pefuh|S1->1TSbCEP) 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 - 90 0etMV 1|po: liocessaaeuto 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 cTabv1sfa := CETMv|MvTAvTST) cCo1TCMS := CETMv|MvC0LTCMS) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 91 0et8X8ham 1|po: liocessaaeuto 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 junta- mente 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: cCodheW := CefSxhum|SZ1,Z1C00) // Pocessamehfo... MANUAL RDMAKE - SIGA ADVANCED 4.07 - 92 // Cohf1macao Cohf1mSx|) // ou Cahce1amehfo Po11ackSx|) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 93 0rava0rca6e 1|po: liocessaaeuto e l|au||ha Permite que um determinado valor calculado pela planilha seja gravado no Arquivo de Oramentos. Sintaxe GravaOrcado(cConta,nClula,nMs,nMoeda) Parmetros cConta Conta Contbil a ser orada nClula Nmero da clula onde o valor estar contido nMs Ms a ser orado (se nulo, ser ms corrente) nMoeda 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 - 94 he|p 1|po: 1e|a DOS/w|udoWs 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 Nome da Rotina chamadora do help (sempre branco) nLinha Nmero da linha da rotina chamadora (sempre 1) cTtulo Ttulo do help cNil Sempre NIL cMensagem Mensagem adicional ao help nLinMen Nmero de linhas da Mensagem (relativa janela) nColMen Nmero de colunas da Mensagem (relativa janela) Retorna Nada Exemplos : Tf Empfy|cAqs) dbSe1ecfAea|cA11as) PecLock|cA11as,.I.) db0e1efe|) E1se he1p| ,1,haoExc1u1,,cAqs,4,1) Ehd1f : MANUAL RDMAKE - SIGA ADVANCED 4.07 - 95 lmp0a6ast 1|po: lapiesso 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 Primeira linha de cabealho cCab2 Segunda linha de cabealho cCab3 Terceira linha de cabealho cNomePrg Nome do programa cTam Tamanho do relatrio (P,M ou G) nLim Limite do relatrio. Mxima coluna a ser impressa cAlias Alias do arquivo de cadastro a ser impresso Exemplo // Exemp1o de uso da fuhcao Tmpcadasf: // Tmp1me e1afo1o de cadasfo de podufos: TmpCadasf|Cabec1,Cabec2,Cabec3,PPC01",P,0,S1") Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 96 lacegaa 1|po: lapiesso Incrementa rgua padro de processamento em relatrios. Sintaxe IncRegua() Parmetros Nil Retorno Nil Exemplo 0bSe1ecfAea|SA1) SefPegua|LasfPec|)) Wh11e | ! Eof|) ) 0 L1, 001 PSAY SA1->A1h0ME 0bSk1p|) ThcPegua|) Ehd Comentrio Ver tambm SetRegua() MANUAL RDMAKE - SIGA ADVANCED 4.07 - 97 lacPrec 1|po: 1e|a DOS/w|udoWs Incrementa rgua padro de processamento. Sintaxe IncProc() Parmetros Nil Retorno Nil Exemplo PocPegua|1000) Io 1:= 1 fo 1000 ThcPoc|) hexf Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 98 la6egaa 1|po: liocessaaeuto Cria ndice de trabalho, podendo ser condicional. Sintaxe IndRegua(cAlias,cArqtrab,cChave,cPar,cFiltro,cTexto) Parmetros cAlias Alias do arquivo. cArqtrab Nome do arquivo de trabalho retornado pela funo CriaTrab (.F.). cChave Expresso utilizada na chave do novo ndice. cPar Se for igual a D, cria um indice com a chave inversa, do maior valor para o menor. cFiltro Expresso utilizada para filtro. cTexto Texto da rgua de processamento ( Selecionando registros ...). Retorno Nil Exemplo 0bSe1ecfAea|SCS) cI11fo := CS0K<>`X` cChave := 0fos|CSEMTSSA0)+CSvEh01 cThdSCS1 := C1aTab|h11,.I.) ThdPegua|SCS, cThdSCS1, cChave, , cI11fo, Se1ec1ohahdo Ped1dos...) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 99 letter0rham 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao Leffe0hum: cCh := Thkey|0) Tf Leffe0hum|cCh) ... Pocessamehfo Ehd1f Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 100 Mark8rewse 1|po: liocessaaeuto 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 lias do arquivo cCampo Campo que estabelece relao com a culuna de marca cCpo Campo que se estiver vazio muda a cor da linha aCampos Array com os campos para montar o browse lMarc Flag para inicializar marcado ou no cMarca Marca obtida com a funo Getmark cCtrlM Funo para ser executada no Alt_M lBotoes 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 cMaca := CefMak|) cCadasfo := Esco1he C11ehfes aPof1ha := { { Pesqu1sa,AxPesqu1,0,1}, {v1sua11za,Axv1sua1,0,2}} MakoW|SA1,A10K,SA1->A10K,,,cMaca) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 101 M8rewse 1|po: liocessaaeuto 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 Alias do arquivo aFixe Array contendo os campos fixos (a serem mostrados em primeiro lugar no browse) cCpo Campo a ser tratado. Quando vazio, muda a cor da linha nPar Parmetro obsoleto cCor Funo que retorna um valor lgico, muda a cor da linha nOpc Define qual opo do aRotina que ser utilizada no double click Exemplo cCadasfo := Cadasfo de 0camehfos aPof1ha := {{Pesqu1sa,AxPesqu1,0,1}, {Thc1u1,Exec1ock|`0EM0A`,.I.),0,3}, {A1fea,Exec1ock|`0EM0`),0,4}, {Exc1u1,Exec1ock|`0EM0C`,.I.),0,S}} MoWse|6, 1, 22, 7S, SA1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 102 Me6|a 1|po: liocessaaeuto Retorna a taxa mdia da moeda em um determinado ms/ano. Sintaxe Media(nMoeda,nMes,nAno) Parmetros nTaxa Taxa mdia calculada. nMoeda Moeda para clculo da taxa mdia. nMes Ms para clculo da taxa mdia. Se no informado, assumido o ms da data base. nAno Ano para clculo da taxa mdia. Se no informado, assumido o ano da data base. Exemplo // Exemp1o de uso da fuhcao Med1a hTxMed := Med1a|1) hTaxa := hTxMed 0 00,00 Say Med1a do mes: +Tahsfom|hTxMed,0E999.99") 0 00,01 Say Taxa ca1cu1.: Cef hTaxa P1cfue 0E999.99 Pead Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 103 Mesfxtease 1|po: liocessaaeuto 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 // Exemp1o do uso da fuhcao MesExfehso: ? Sao Pau1o, +STPZEP0|0ay|d0afaase),2)+ de + MesExfehso|d0afaase)+ de +SfZeo|Yea|d0afaase),4) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 104 Me6e|e2 1|po: liocessaaeuto Exibe formulrio para cadastro segundo o modelo 2 (como a rotina de Nota Fiscal). Sintaxe Mo d e l o 2 ( c T t u l o , a Ca b e c , a Ro d a p , a Gd , n Op , c L Ok , c TOk , [aGetsGD,bF4,cIniCpos,nMax,aCordw,lDelget]) Parmetros cTtulo Ttulo da janela aCabec Array com os campos do cabealho aRodap Array com os campos do rodap aGd Array com as posies para edio dos itens (GETDADOS) nOp Modo de operao (3 ou 4 altera e inclui itens, 6 altera mas no inclui itens, qualquer outro nmero s visualiza os itens) cLOk Funo para validao da linha cTOk 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 coor- denadas 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 - 105 Retorna lRet Retorna .T. se for confirmado Exemplo //"""""""""""""""""""""""""""""""""""""""""""""""""" // 3,4 Pem1fem a1fea gefdados e 1hc1u1 11hhas // 6 So pem1fe a1fea gefdados e hao 1hc1u1 11hhas // ua1que oufo humeo so v1sua11za h0pcx:=3 dbSe1ecfAea|Sx3) dbSef0de|1) dbSeek|SXS) hbsado:=0 aheade:={} Wh11e !Eof|) .Ahd. |x3aqu1vo == SXS) TI X3bS0|x3usado) .Ah0. ch1ve1 >= x3h1ve1 hbsado:=hbsado+1 AA00|aheade,{ TPTM|x3f1fu1o),x3campo, x3p1cfue,x3famahho,x3dec1ma1, Exec1ock|`Md2va11d`,.f.,.f.),x3usado, x3f1po, x3aqu1vo, x3cohfexf } ) Ehd1f dbSk1p|) Ehd aCo1s:=Aay|1,hbsado+1) dbSe1ecfAea|Sx3) dbSeek|SXS) hbsado:=0 Wh11e !Eof|) .Ahd. |x3aqu1vo == SXS) TI X3bS0|x3usado) .Ah0. ch1ve1 >= x3h1ve1 hbsado:=hbsado+1 TI h0pcx == 3 TI x3f1po == C aC0LS|1]|hbsado] := SPACE|x3famahho) E1se1f x3f1po == h aC0LS|1]|hbsado] := 0 E1se1f x3f1po == 0 aC0LS|1]|hbsado] := d0afaase E1se1f x3f1po == M aC0LS|1]|hbsado] := E1se aC0LS|1]|hbsado] := .I. Ehd1f Ehd1f MANUAL RDMAKE - SIGA ADVANCED 4.07 - 106 Ehd1f dbSk1p|) Ehd aC0LS|1]|hbsado+1] := .I. cC11ehfe:=Space|6) cLoa :=Space|2) d0afa :=0afe|) hL1hCef0:=0 cT1fu1o:=TESTE 0E M00EL02" aC:={} // aC|h,1] = home da va1ave1 Ex.:cC11ehfe // aC|h,2] = Aay com coodehadas do Cef |x,y], em // W1hdoWs esfao em PTXEL // aC|h,3] = T1fu1o do Campo // aC|h,4] = P1cfue // aC|h,S] = va11dacao // aC|h,6] = I3 // aC|h,7] = Se campo e` ed1fave1 .f. se hao .f. #TI0EI WTh00WS AA00|aC,{cC11ehfe ,{1S,10} ,Cod. do C11ehfe,0!, `Exec1ock|M02vLCLT,.I.,.I.)`,SA1",}) AA00|aC,{cLoa ,{1S,200},Loa,0!,,,}) AA00|aC,{d0afa ,{27,10} ,0afa de Em1ssao,,,,}) #ELSE AA00|aC,{cC11ehfe ,{6,S} ,Cod. do C11ehfe,0!, Exec1ock|M02vLCLT,.I.,.I.)`,SA1",}) AA00|aC,{cLoa ,{6,40},Loa,0!,,,}) AA00|aC,{d0afa ,{7,S} ,0afa de Em1ssao,,,,}) #Eh0TI aP:={} // aP|h,1] = home da va1ave1 Ex.:cC11ehfe // aP|h,2] = Aay com coodehadas do Cef |x,y], em // W1hdoWs esfao em PTXEL // aP|h,3] = T1fu1o do Campo // aP|h,4] = P1cfue // aP|h,S] = va11dacao // aP|h,6] = I3 // aP|h,7] = Se campo e` ed1fave1 .f. se hao .f. #TI0EI WTh00WS AA00|aP,{hL1hCef0 ,{120,10},L1hha ha Cef0ados, 0E 999,,,.I.}) #ELSE AA00|aP,{hL1hCef0 ,{19,0S},L1hha ha Cef0ados, 0E 999,,,.I.}) #Eh0TI #TI0EI WTh00WS MANUAL RDMAKE - SIGA ADVANCED 4.07 - 107 aCC0:={44,S,11,31S} #ELSE aCC0:={10,04,1S,73} #Eh0TI cL1hha0k := Exec1ock|`Md2L1h0k`,.f.,.f.) cTudo0k := Exec1ock|`Md2Tud0k`,.f.,.f.) // 1Pef = .f. se cohf1mou // 1Pef = .f. se cahce1ou 1Pef:=Mode1o2|cT1fu1o,aC,aP,aCC0,h0pcx,cL1hha0k,cTudo0k) // ho W1hdoWs ex1sfe a fuhcao de apo1o Ca11M0d20b|) que // efoha o obefo Cefdados Coehfe Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 108 Me6e|e3 1|po: liocessaaeuto 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 Funo para validar a mudana de linha nos itens. cTudOk Funo para validar todos os itens. nOpce Nmero da opo do menu para o cabealho (Enchoice) nOpcG Nmero da opo do menu para o itens (GetDados) cFieldOk Funo para validar os campos dos itens (GetDados) lVirtual 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 - 109 Exemplo aPof1ha := {{ Pesqu1sa,AxPesqu1, 0 , 1}, { v1sua1,Axv1sua1, 0 , 2}, { Thc1u1,AxThc1u1, 0 , 3}, { A1fea,AxA1fea, 0 , 4, 20 }, { Exc1u1,Ax0e1efa, 0 , S, 21 }} //uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // 0pcoes de acesso paa a Mode1o 3 //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu c0pcao:=vTSbALTZAP 0o Case Case c0pcao==ThCLbTP h0pcE:=3 h0pcC:=3 Case c0pcao==ALTEPAP h0pcE:=3 h0pcC:=3 Case c0pcao==vTSbALTZAP h0pcE:=2 h0pcC:=2 EhdCase //uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // C1a va1ave1s M->????? da Ehcho1ce //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu PegToMemoy|SCS,|c0pcao==ThCLbTP)) //uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // C1a aheade e aCo1s da Cef0ados //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu hbsado:=0 dbSe1ecfAea|SX3) dbSeek|SC6) aheade:={} Wh11e !Eof|).Ahd.|x3aqu1vo==SC6") Tf A11f1m|x3campo)==C6TTEM dbSk1p|) Loop Ehd1f Tf X3bS0|x3usado).Ahd.ch1ve1>=x3h1ve1 hbsado:=hbsado+1 Aadd|aheade,{ TPTM|x3f1fu1o), x3campo, x3p1cfue, x3famahho, x3dec1ma1,A11WaysTue|), x3usado, x3f1po, x3aqu1vo, x3cohfexf } ) Ehd1f dbSk1p|) Ehd Tf c0pcao==ThCLbTP aCo1s:={Aay|hbsado+1)} aCo1s|1,hbsado+1]:=.I. Io h1:=1 fo hbsado aCo1s|1,h1]:=C1ava|aheade|h1,2]) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 110 hexf E1se aCo1s:={} dbSe1ecfAea|SC6) dbSef0de|1) dbSeek|xI111a1|)+M->CShbM) Wh11e !eof|).ahd.C6hbM==M->CShbM AA00|aCo1s,Aay|hbsado+1)) Io h1:=1 fo hbsado aCo1s|Leh|aCo1s),h1]:=I1e1dCef|I1e1dPos|aheade|h1,2])) hexf aCo1s|Leh|aCo1s),hbsado+1]:=.I. dbSk1p|) Ehd Ehd1f Tf Leh|aCo1s)>0 //uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // Execufa a Mode1o 3 //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu cT1fu1o:=Tesfe de Mode1o3|) cA11asEhcho1ce:=SCS" cA11asCef0:=SC6" cL1h0k:=A11WaysTue|) cTud0k:=A11WaysTue|) cI1e1d0k:=A11WaysTue|) aCpoEhcho1ce:={CSCLTEhTE} 1Pef:=Mode1o3|cT1fu1o,cA11asEhcho1ce,cA11asCef0,aCpoEhcho1ce,cL1h0k,cTud0k,h0pcE,h0pcC,cI1e1d0k) //uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // Execufa pocessamehfo //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu Tf 1Pef Av1so|Mode1o3|),Cohf1mada opeacao!,{0k}) Ehd1f Ehd1f Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 111 MeataI3 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao MohfaI3: // vesao 00S cCod := Space|1S) 002,S0 Say 01g1fe o cod1go: Cef cCod P1cfue 0! Wheh MohfaI3|S1) va11d|MohfaI3|)) Pead Pefuh // """"""""""""""""""""""""""" // vesao WTh00WS // bse a pop1a c1ausu1a do comahdo gef: 0 2S0,2S0 To 360,4S0 01a1og o01g T1f1e Tesfe 0 02,S0 Cef cCod P1cfue 0! I3 S1 Acf1vafe 01a1og o01g Cehfeed Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 112 Mev|m00 1|po: liocessaaeuto Retorna o movimento de um centro de custo mais conta contbil (extracontbil). Sintaxe MovimCC(cCC, cConta, nMs, nMoeda) Parmetros cCC Cdigo do centro de custo cConta Cdigo da conta contbil nMs Referente ao ms nMoeda Moeda desejada para obteno do valor Exemplo Mov1mCC|3001, 111001,Mohfh|0dafabase),1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 113 Mev|meate 1|po: liocessaaeuto 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 Ms do movimento desejado nMoeda Moeda desejada para obteno do movimento dData Data do exerccio desejado Exemplo Mov1mehfo|43,1,1, CT00 |"01/01/9S") - efoha o 1 pe1odo Mov1mehfo|`43,1,1,CT00|01/01/96) - efoha o 13 pe1odo // Ex1be uma mehsagem ho d1a1ogo MsPocTxf|Pocessahdo podufo: +1C00) // Pocessamehfo... dbSk1p|) Ehd0o Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 114 Ms0etVers|ea 1|po: liocessaaeuto Retorna array com as verses do Windows NT. Sintaxe MsGetVersion( ) Exemplo avesao := MsCefves1oh|) 0 001, 010 PSAY `vesao do W1hdoWs : ` + Sf| avesao|1], 2 ) + `.` + Sf| avesao|2], 2 ) 0 00, 010 PSAY `vesao do 0os : ` + Sf| avesao|3], 2 ) + `.` + Sf| avesao|4], 2 ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 115 Msg8ex 1|po: 1e|a w|udoWs 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 - 116 ..1e...Ma|t|l|ae 1|po: 1e|a w|udoWs 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 Valida- es 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 - 117 haeVat|e 1|po: liocessaaeuto 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 0 S,10 Cef cCod1go va11d haovaz1o|cCod1go} MANUAL RDMAKE - SIGA ADVANCED 4.07 - 118 hegat|ve 1|po: liocessaaeuto 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 Tf hegaf1vo |nva1T1fu1o} 0 S,10 Say va1o 1hva11do Loop EhdTf MANUAL RDMAKE - SIGA ADVANCED 4.07 - 119 0rca6e 1|po: liocessaaeuto Retorna o valor orado de uma conta. Sintaxe Orcado(cConta, nPerodo,nMoeda,dData) Parmetros cConta Cdigo da conta De nPerdodo Referente ao perodo nMoeda Moeda desejada para obteno do valor dData Data para converso (em formato data ou caracter), caso no informada, ser utilizada a DataBase do sistema Exemplo 0cado|11102001,1,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 120 0rca6e00 1|po: liocessaaeuto Recupera o valor orado da Conta x Centro de Custo para utilizao na planilha. Sintaxe OrcadoCC(cConta,cCC,nPerodo,nMoeda,dData) Parmetros cConta Cdigo da Conta cCC Cdigo do Centro de Custo nPerodo Perodo (default ms da database) nMoeda Moeda (default 1) dData Data para converso se moeda de 2 a 5 - (default dDataBase) Exemplo 0cadoCC| 111001,3001,3,2) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 121 0peaI||e 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao opehf11e: cEmp := SM0->M0C00TC0 // E11m1ha os 1hd1ces de fodos os aqu1vos abefos ho // SX2 paa e1hdexacao dbSe1ecfAea|SX2) dbCoTop|) Wh11e !E0I|) Tf Se1ecf|SX2->X2ChAvE) > 0 dbSe1ecfAea|SX2->X2ChAvE) dbC1oseAea|) cEsp := A11T1m|SX2->X2PATh) cEsp := cEsp + A11T1m|SX2->X2APbTv0) + """ + PefThdExf|) fEase|cEsp) Ehd1f dbSe1ecfAea|SX2) dbSk1p|) Ehd0o dbC1oseA11|) // Iecha fodos os aqu1vos 0pehI11e|cEmp) // Abe os aqu1vos |e1hdexa) Pefuh " Pamefo cEmp apehas ho W1hdoWs. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 122 0ar8pee| 1|po: lapiesso 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 // Exemp1o de uso da fuhcao ouspoo1: // Af1va o geehc1ado de 1mpessao: 0uSpoo1|) // Paa ve1f1ca o uso desfa fuhcao em e1afo1os, // ve1f1que o exemp1o da fuhcao AvALTMP. Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 123 Pergaate 1|po: lapiesso 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 Nome do Grupo de perguntas. lVar .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 peguhfe|AIP090,.T.) // va1ve1s uf111zadas ha peguhfa // mvpa01 a paf1 da dafa // mvpa02 af a dafa // mvpa03 da cohfa // mvpa04 af a cohfa // mvpa0S do cehfo de cusfo // mvpa06 af o cehfo de cusfo // mvpa07 do cd1go // mvpa0 af o cd1go // mvpa09 do poefo // mvpa10 af o poefo // mvpa11 moeda MANUAL RDMAKE - SIGA ADVANCED 4.07 - 124 Per|e6e 1|po: liocessaaeuto Devolve o perodo contbil de acordo com o exerccio atual. Sintaxe Periodo(dData,nMoeda) Parametros dData Data a ser considerada. Se no for especificada, assumida a data base. nMoeda 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 - 125 Perteace 1|po: liocessaaeuto Verifica se o campo est contido em outro. Sintaxe Pertence(cString,cCampo) Parmetros cString String que deve estar contida no cCampo cCampo Campo a verificar Retorna ExpL1 Valor Lgico de Retorno (.T. ou .F.) Exemplo SefCuso|1) 0 09,19 Cef cT1po P1cfue 0! va11d Pefence|CL\v0\P0,cT1po} MANUAL RDMAKE - SIGA ADVANCED 4.07 - 126 PesP|ct 1|po: liocessaaeuto 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 Alias do arquivo cCampo Nome do campo nTam 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 // Exemp1o de uso da fuhcao PesqP1cf // Em um e1afo1o pode-se usa a s1hfaxe aba1xo paa // fomafacao aufomaf1ca de acodo com o d1c1oha1o de // dados: 0 hL1h,20 Say Tofa1: 0 hL1h,27 Say SI2->I2vALPbT P1cfue PesqP1cf|SI2,I2vALPbT) // ... Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 127 PesP|ct0t 1|po: liocessaaeuto 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 Nome do campo a verificar a picture nEdio Espao disponvel para edio Retorna ExpC Picture ideal para o espao definido por nEdio, sem a separao dos milhares por vrgula Exemplo 0 ,10 Say S2->2ATb P1cfue PesqP1cff |2ATb,) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 128 Pes|c|eae 1|po: liocessaaeuto Posiciona o arquivo em um determinado registro. Sintaxe Posicione(cAlias, nOrdem, cChave, cCampo) Parmetros cAlias Alias do arquivo nOrdem Ordem utilizada cChave Chave pesquisa cCampo Campo a ser retornado Retorna Retorna o contedo do campo passado com o permetro. Exemplo Pos1c1ohe|SA1,1,xI111a1|SA1)+001,A1h0ME) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 129 Pes|t|ve 1|po: liocessaaeuto 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 0 09,07 Cef hva1o P1cfue 999999 va11d Pos1f1vo | nva1o } MANUAL RDMAKE - SIGA ADVANCED 4.07 - 130 Precegaa 1|po: 1e|a DOS/w|udoWs Inicializa rgua padro de processamento. Sintaxe ProcRegua(nRegs,nLinha,nColuna) Parmetros nRegs Nmero de registros que sero processados. nLinha Nmero da Linha da rgua nColuna Nmero da Coluna da rgua Retorna Nil Exemplo PocPegua|1000) Io 1:= 1 fo 1000 ThcPoc|) hexf Pefuh 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 - 131 Prexeg 1|po: liocessaaeuto 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 Valor a incrementar nPos Tamanho nndice Nmero do ndice a ser utilizado Retorna uRet Prximo nmero (ltimo registro incrementado) Exemplo // Exemp1o de uso da fuho PoxPeg: dbSe1ecfAea|SX3) dbSef0de|2) dbSeek|A1C00) dbSe1ecfAea|SA1) cPox := PoxPeg|1,6,1) // Pefoha o poss1ve1 px1mo // cd1go paa o cadasfo de MANUAL RDMAKE - SIGA ADVANCED 4.07 - 132 // c11ehfe dbSe1ecfAea|SX3) dbSeek|02hbMSE) dbSe1ecfAea|S02) hPox := PoxPeg|1,,4) // Pefoha o pox1mo hmeo // seqehc1a1 Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 133 ...a6|e 1|po: 1e|a w|udoWs 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 Matriz [1] com os Itens nPos Contm a posio na Matriz[1] do item selecionado oRdx 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 - 134 ecleck 1|po: liocessaaeuto 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 // Exc1uso de Peg1sfo // Com 1Ad1c1oha = .I. Tf ! PecLock|SI1,.I.} 0 1,1 Say Peg1sfo em uso po oufa esfao Loop EhdTf db0e1efe|) dbbhLock|) Com ExpL2 = .T. // Thc1uso de Peg1sfo PecLock|SI1,.T.) Pep1ace I1TTP0 W1fh cT1po, I100C W1fh chI1sca1, I1SEPTE W1fh cSe1e ,I1EMTSSA0 W1fh d0Em1ssao, I1L0JA W1fh cLoa ,I1I0PhECE W1fh Subs|cA100Io,1,6) dbbhLock|) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 135 Aps a atualizao do registro, deve-se executar a funo MsUnlock(). MANUAL RDMAKE - SIGA ADVANCED 4.07 - 136 ecMee6a 1|po: liocessaaeuto Rotina para obteno do valor da moeda desejada em determinada data. Sintaxe RecMoeda(dData,nMoeda) Parmetros dData Data para obteno do valor da moeda. nMoeda Moeda desejada. Retorna nVMoeda Retorna o Valor da moeda na data desejada. Exemplo // Exemp1o de uso da fuhcao PecMoeda: h0o1a := PecMoeda|d0afaase,2) hva10o1a := SE1->E1vAL0P " h0o1a Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 137 estkrea 1|po: liocessaaeuto Restaura a rea RestArea a partir do array. Sintaxe RestArea(aArray) Parmetros aArray Expresso Array para restaurao Exemplo aAay:=CefAea|) PesfAea|aAay) Ver tambm Funo GetArea( ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 138 etk80 1|po: liocessaaeuto Retorna um cdigo de letras quando ultrapassar o nmero mximo de dgitos. Sintaxe RetAsc(cOri,nTam,lAlfa) Parmetros cOri String original a ser convertida. nTam Tamanho mximo para a converso. lAlfa Indica se o retorno deve conter letras (.T.) ou somente nmeros (.F.) Retorna cStr Retorna a String formada com letras ou nmeros. Exemplo // Exemp1o de uso da fuhcao PefAsc: // Supohha a ex1sfehc1a de um campo caacfe de famahho // 2. bsahdo a fuhcao PefAsc com o paamefo 1A1fa ve- // dade1o |.T.) se o humeo u1fapassa 99 efohaa A0 cCod := SfZeo|PoxPeg|1,2,1),2) // Se u1fapassa 99 efoha A0 cCod := PefAsc|cCod,2,.T.) Pefuh|cCod) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 139 etla6ex 1|po: liocessaaeuto 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 Se1ecf SA1 Thdex oh A1ACbM fo TPA : STh0EX := PefThdex |SA1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 140 e||8ack8X8 1|po: liocessaaeuto Retorna o nmero obtido pela funo GETSX8NUM no semforo como penden- te. Verifique a funo GETSX8NUM para maiores detalhes. Sintaxe RollBackSx8() Exemplo Verifique os exemplos na funo GETSX8NUM. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 141 pt8tatas 1|po: liocessaaeuto (Apeuas w|udoWsi Executa funo de detalhe do relatrio. Sintaxe RptStatus(bBlock) => RptStatus(bBlock, cTtulo, cMsg) Parmetros bBlock Bloco de cdigo que define a funo a ser executada. cTtulo Ttulo do dilogo de processamento. cMsg Mensagem do dilogo de processamento. Comentrios Pode ser utilizada com os parmetros: RptStatus( { | | Execute(Nome da Funo) } ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 142 8a|6e 1|po: liocessaaeuto Calcula o saldo de uma determinada conta at o perodo informado e na moeda especificada. Sintaxe Saldo(cConta,nPer,nMoeda) Parmetros cConta Cdigo da conta desejada. nPer Perodo contbil at o qual ser feito o clculo. nMoeda Moeda desejada. Retorna nSld Retorna o Saldo da conta at o perodo desejado. Exemplo // Exemp1o de uso da fuhcao Sa1do: cCohfa := SA1->A1C0hTA hS1 := Sa1do|cCohfa,Pe1odo|d0afaase,2),2) cS1 := Tahsfom|hS1,0E 9,999,999.99") A1ef|0 sa1do da cohfa +cCohfa+ ha moeda 2 e`: +cS1) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 143 8a|6e00 1|po: liocessaaeuto 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 Centro de Custo desejado cConta Cdigo da conta nPer Perodo at o qual o acmulo deve ser calculado nMoeda Moeda desejada Retorna nSld Saldo atual retorna do. Exemplo // Exemp1o de uso da fuhcao Sa1doCC: // Assum1hdo-se que o ST3 esfa pos1c1ohado, hao e heces- // sa1o 1hfoma o cehfo de cusfo e a cohfa. hS1d := Sa1doCC|,,12,1) efuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 144 8a|6e0aste 1|po: liocessaaeuto Calcula o saldo dos centro de custos extracontbeis. Sintaxe SaldoCusto(cCC1,cCC2,cConta1,cConta2,nMs,nMoeda) Parmetros cCC1 Centro de Custo Inicial cCC2 Centro de Custo Final cConta1 Conta Inicial cConta2 Conta Final nMs Ms (se nula, assume o ms de referncia da database) nMoeda Moeda (se nula, ser assumido 1) Exemplo Sa1doCusfo|1007, 1099, 3, 4, 10, 1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 145 8a|6e882 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao Sa1doSb2: cPod := Space|1S) 0 10,10 Cef cPod P1cfue 0! Pead dbSe1ecfAea|S2) dbSeek|cPod) cS1d := Tahsfom|Sa1doSb2|),0E 9,999,999.99") A1ef|Esfe podufo fem um sa1do de: +cS1d) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 146 8et0efaa|t 1|po: liocessaaeuto 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 // 0ef1he va1ve1s cSf1hg:= S1 homePe1:= MATP290 cPeg := MTP290 f1fu1o := PELA0 PAPA AhALTSE 00S EST0bES c0esc1 := Esfe e1af1o demohsfa a s1fuao de cada 1fem em MANUAL RDMAKE - SIGA ADVANCED 4.07 - 147 c0esc2 := e1ao ao seu sa1do , seu empehho , suas ehfadas pev1sfas c0esc3 := e sua c1asse AC. a0d := { Po Cod1go , Po T1po } Tamahho := C // Ehv1a cohfo1e paa a fuho SETPPThT homePe1:= SefP1hf| cSf1hg, homePe1, cPeg, 0f1fu1o, c0esc1, c0esc2, c0esc3, .I., a0d, .I., Tamahho) Tf LasfKey|) = 27 .o. hLasfKey = 27 PesfSceeh|3,0,24,79,cSavSc1) Pefuh Ehd1f Sef0efau1f|aPefun,cA11as} Tf LasfKey|) = 27 .0P. hLasfKey = 27 PesfSceeh|3,0,24,79,cSavSc1) Pefuh Ehd1f MANUAL RDMAKE - SIGA ADVANCED 4.07 - 148 8et0|g 1|po: 1e|a w|udoWs Colocar um ttulo em uma Dialog. Sintaxe SetDlg(oWnd, cText) Parmetros oWnd Objeto da janela cText Novo Texto Exemplo Tf | ThCLbT ) cCapf1oh := `Thc1usao de Ped1dos` E1seTf | ALTEPA ) cCapf1oh := `A1feacao de Ped1dos` EhdTf Sef01g| o01g, cCapf1oh ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 149 8etPr|at 1|po: lapiesso Altera os padres de impresso. Sintaxe SetPrint(cAlias, cNomeRel, cPerg, cDesc1, cDesc2, cDesc3, cDesc4, lDic, aOrdem, lComp, cClass) Parmetros cAlias Alias do Arquivo Principal (se existir) cNomeRel Nome padro do relatrio cPerg 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 aOrdem Array contendo as ordens de indexao do arquivo principal. lComp Habilita a alterao da compresso do relatrio .T. Habilita .F. Desabilita cClass Classificao do Relatrio por Tamanho ( G, M ou P ) P 80 colunas M 132 colunas G 220 colunas MANUAL RDMAKE - SIGA ADVANCED 4.07 - 150 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 // 0ef1he va1ve1s cSf1hg:= S1 homePe1:= MATP290 cPeg := MTP290 f1fu1o := PELA0 PAPA AhALTSE 00S EST0bES c0esc1 := Esfe e1af1o demohsfa a s1fuao de cada 1fem em c0esc2 := e1ao ao seu sa1do , seu empehho , suas ehfadas pev1sfas c0esc3 := e sua c1asse AC. a0d := { Po Cod1go , Po T1po } Tamahho:= C // Ehv1a cohfo1e paa a fuho SETPPThT homePe1 := SefP1hf| cSf1hg, homePe1, cPeg, 0f1fu1o, c0esc1, c0esc2, c0esc3, .I., a0d, .I., Tamanho } Tf LasfKey|) = 27 .o. hLasfKey = 27 PesfSceeh|3,0,24,79,cSavSc1) Pefuh Ehd1f Sef0efau1f|aPefuh,cA11as) Tf LasfKey|) = 27 .0P. hLasfKey = 27 PesfSceeh|3,0,24,79,cSavSc1) Pefuh Ehd1f MANUAL RDMAKE - SIGA ADVANCED 4.07 - 151 8etegaa 1|po: lapiesso (DOS/ w|udoWsi Inicializa rgua padro em relatrios. Sintaxe SetRegua(nRegs) Parmetros nRegs Nmero de registros que sero processados. Retorno Nil Exemplo 0bSe1ecfAea|SA1) SefPegua|LasfPec|)) Wh11e | ! Eof|) ) 0 L1, 001 PSAY SA1->A1h0ME 0bSk1p|) ThcPegua|) Ehd 0o Comentrio Ver tambm incRegra. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 152 8|68ce 1|po: liocessaaeuto Retorna o saldo bancrio em uma data. Sintaxe SldBco(cBanco,cAgncia,cConta,dData,nMoeda) Parmetros cBanco Cdigo do Banco cAgncia Agncia Bancria cConta Conta Bancria dData Data do Saldo nMoeda Moeda do Saldo Bancrio Exemplo S1dco|409,0019,011122, d0afaase,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 153 8|60||eate 1|po: liocessaaeuto Retorna o saldo a receber do cliente em uma determinada data. Sintaxe SldCliente(cCliente,dData,nMoeda,lSaldo) Parmetros cCliente Cdigo do Cliente+Loja dData Data do Movimento a Receber (padro dDataBase) nMoeda Moeda lSaldo Se .T. considera o saldo do SE5 (padro .T.) Exemplo S1dC11ehfe|00000101,d0afaase) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 154 8|6Ieraece 1|po: liocessaaeuto Retorna o saldo a pagar do fornecedor em uma data. Sintaxe SldFornece(cFornece,dData,nMoeda,lSaldo) Parmetros cFornece Cdigo do Fornecedor+Loja dData Data do Movimento a Pagar (padro dDataBase) nMoeda Moeda - (padro 1) lSaldo Se .T. considera o saldo do SE5 (padro .T.) Exemplo S1dIohece|00000101") MANUAL RDMAKE - SIGA ADVANCED 4.07 - 155 8|6Pagar 1|po: liocessaaeuto Retorna o saldo a pagar em uma determinada data. Sintaxe SldPagar(dData,nMoeda,lData) Parmetros dData Data do Movimento a Pagar ( padro dDataBase) nMoeda Moeda (padro 1) lData Se .T. At a Data, .F. Somente Data (padro .T.) Exemplo S1dPaga|d0afaase,1,.T.) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 156 8|6eceher 1|po: liocessaaeuto Retorna o saldo a receber em uma data. Sintaxe SldReceber(dData,nMoeda,lData) Parmetros dData Data do Movimento a Receber. nMoeda Moeda - default 1 lData .T. - at a Data; .F. - somente Data (o padro .T.) Exemplo S1dPecebe|0afa,1,.T.) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 157 8ema0eatas 1|po: liocessaaeuto 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. nMs Ms (default ms da database) nMoeda Moeda (default 1) Exemplo SomaCohfas|11101001,3,1) Dc+o+c o aoo oa :on!a cw quc!o no wc 5 na wocoa J. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 158 8emaMev|m 1|po: liocessaaeuto Retorna o movimento dentro de um intervalo de contas analticas. Sintaxe SomaMovim(cConta1, cConta2, nMs, nMoeda) Parmetros cConta1 Cdigo da conta De cConta2 Cdigo da conta At nMs Referente ao ms nMoeda Moeda desejada para obteno do valor Exemplo SomaMov1m|41304,4130S,12,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 159 8emar 1|po: liocessaaeuto Faz o somatrio de um arquivo, retornando o valor acumulado de um campo determinado. Sintaxe Somar(cAlias, cCond, cCampo) Parmetros cAlias Alias do arquivo cCond Condio para soma cCampo Campo a ser somado Exemplo Soma|ST1",T1CLASSE=S ,T1SALAhT) Caso o usurio no deseje definir nenhuma condio, a ExpC2 deve ser .T.. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 160 8ema8a|6e 1|po: liocessaaeuto Retorna o saldo atual entre um intervalo de contas. Sintaxe SomaSaldo(cConta1, cConta2, nPerodo, nMoeda) Parmetros cConta1 Cdigo da conta De cConta2 Cdigo da conta At nPerodo Referente ao perodo nMoeda Moeda desejada para obteno do valor Exemplo SomaSa1do|31001,31010,12,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 161 8amMev|m00 1|po: liocessaaeuto 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 do Centro de Custo cCC2 at Centro de Custo cConta1 da Conta cConta2 at a Conta nMs Ms (default ms da database) nMoeda Moeda (default 1) Exemplo SumMov1mCC| 3001,3100,31001,31010,12,1) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 162 1ahe|a 1|po: liocessaaeuto 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 Nmero da tabela a pesquisar (deve ser informado como caracter). cChav Chave a pesquisar na tabela informada. lPrint 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 // Exemp1o de uso da fuhcao fabe1a: // Supohha a ex1sfehc1a da fabe1a 99 |fabe1a de // vehdedo x Com1ssao): // Chave Cohfeudo // --------------------- // v0 10 // v1 2.20 // v3 S // Pode-se faze um gaf11ho que, quahdo da 1hfomacao do // cod1go do vehdedo ho cadasfo, sug1a o pecehfua1 // da fabe1a ac1ma, de acodo com as duas p1me1as po- // s1coes do cod1go d1g1fado: //Caf11ho-0om1h1o : A3C00 // Cfa. 0om1h1o: A3C0MTS // Pega : va1|Tabe1a|99,Leff|M->A3C00,2))) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 163 1am8X3 1|po: liocessaaeuto 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 // Exemp1o de uso da fuhcao TAMSX3 // Aay aux111a: aCampos := { {1C00 ,C}, {10ESC,C}, {1E ,h}, {1PPv1,h} } // C1a aqu1vo de faba1ho com o famahho dos campos // exafamehfe como ha base de dados, ev1fahdo eos de ] // 0afa W1dfh Eo: 1 := 0 aSfu := {} Io 1:=1 To Leh|aCampos) cCpo := aCampos|1,1] cTp := aCampos|1,2] aTam := TamSx3|cCpo) aAdd|aSfu,{cCpo,cTp,aTam|1],aTam|2]) hexf 1 cAq := C1aTab|aSfu,.T.) // 0 pogama cohf1hua. . . Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 164 1exte 1|po: liocessaaeuto 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 Texfo|) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 165 ...10 1|po: 1e|a 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 0 000, 000 T0 430, S00 0TAL0C o01g TTTLE Thfepefado xase fo W1hdoWs 0 060, 00S T0 1S, 24S TTTLE `Exemp1os` 0 070, 010 bTT0h 0befos s1cos STZE 70,20 ACTT0h Execufe|as1c0b) 0 070, 090 bTT0h oWses STZE 70,20 ACTT0h Execufe|oWse) 0 130, 170 bTT0h 01g c/Pefesh STZE 70,20 ACTT0h Execufe|01g01ham) 0 160, 090 bTT0h SL STZE 70,20 ACTT0h Execufe|Sq10emo) 0 192,21 MPbTT0h TYPE 1 ACTT0h C1ose|o01g) ACTTvATE 0TAL0C o01g CEhTEPE0 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 166 1M 1|po: liocessaaeuto Devolve a Picture de impresso de campos numricos dependendo do espao disponvel. Sintaxe TM(nValor, nEdio, nDec) Parmetros nValor Valor a ser editado nEdio Espao disponvel para edio nDec 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 - 167 Exemplo Cabec|T1fu1o,Cabec1,Cabec2,homePog,Tamahho,hT1po) Ehd1f 11:=11+1 hSa1Ahf := hSa1doAfu-hCompas-hPecPod-hPecCohs 011,00 Say cT1pAhf 011,0S Say hSa1Ahf P1cfue TM|nSa1Anf, 14} 011,23 Say hCompas P1cfue TM|nCompas, 17, 3} Se o contedo do campo nSalAnt for: 3.423.659.234,48 o valor ser impresso como: 3423659.234,48 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 168 Var|ae 1|po: liocessaaeuto Retorna a variao em percentual entre dois valores. Sintaxe Variao(nFator1,nFator2) Parmetros nFator1 Primeiro fator comparativo nFator2 Segundo fator comparativo Exemplo va1acao|100000,S0000) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 169 Vat|e 1|po: liocessaaeuto 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 0 9,10 Cef cCod1go va11d !vaz1o|cCod1go} MANUAL RDMAKE - SIGA ADVANCED 4.07 - 170 X3P|ctare 1|po: liocessaaeuto 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 : cPe1:=SefP1hf|cA11as, cPogama , , 0cT1fu1o, c0esc1, c0esc2, c0esc3 , .T., a0d ) Sef0efau1f|aPefuh, cSf1hg) : Wh11e !E0I|) hL1hha:=hL1hha+1 0hL1hha, 1 Say S2->2ATb P1cfue X3P1cfue|2ATu} : MANUAL RDMAKE - SIGA ADVANCED 4.07 - 171 XI|||a| 1|po: liocessaaeuto 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 retorn- la 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 // Exemp1o de uso da fuhcao xI111a1: // Supohdo que a f111a1 coehfe sea a 01: 0 10,10 Say xI111a1|S1) // A 11hha ac1ma 1a 1mp1m1 01 se o aqu1vo de // podufos esf1ve exc1us1vo. Se esf1ve compaf11hado // 1mp1m1a . // bsahdo em pocessamehfos |Pesqu1sa e pocessa // ehquahfo fo a mesma f111a1): dbSeek|xI111a1|)+mvpa01) Wh11e !E0I|) .Ahd. xI111a1|) == S1->1ITLTAL ... Pocessamehfo Ehddo Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 172 XMee6a 1|po: liocessaaeuto Rotina para converso de valores entre moedas. Sintaxe xMoeda(nVMo,nMo,nMd,dData,nDec) Parmetros nVMo Valor na moeda origem. nMo Nmero da moeda origem. nMd Nmero da moeda destino. dData Data para converso. nDec Nmero de decimais. Se no informado, assume-se 2 casas deci- mais. Retorna nVMoeda Retorna o Valor na moeda de destino. Exemplo // Exemp1o de uso da fuhcao xMoeda: hva1 := SE1->E1vAL0P // va1o ha moeda 1 hvM3 := 0 // Cohfea o va1o ha moeda 3 hvM3 := xMoeda|hva1,1,3,d0afaase) Pefuh MANUAL RDMAKE - SIGA ADVANCED 4.07 - 173 Funes para impresso de etiquetas padro ZPL e Allegro Visualizao do posicionamento da imagem na etiqueta no padro Zebra (ZPL): X Y Sentido do movimento de impresso Microsiga Visualizao do posicionamento da imagem na etiqueta no padro Allegro: Y X Sentido do movimento de impresso Microsiga MANUAL RDMAKE - SIGA ADVANCED 4.07 - 174 M808Plh1f 1|po: lapiesso 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 [nDensidade] Nmero com a densidade referente a quantidade de pixel por mm [nTamanho] Tamanho da etiqueta em milmetros. 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 MSCPPThTEP|SS00-, C0M2:9600,e,7,2,hTL, 42) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 175 M8088f0lh 1|po: lapiesso Inicializa a montagem da imagem para cada etiqueta Sintaxe MscbBegin(nQtde, nVeloc) Parmetros nQtde Quantidade de cpias nVeloc Velocidade (1,2,3,4,5,6) polegada por segundo Exemplo MSCECTh|3,4) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 176 M808fh0 1|po: lapiesso Finaliza a montagem da imagem. Sintaxe MscBend() Parmetros Nil Exemplo MSCEh0|) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 177 M8088kY 1|po: lapiesso Imprime um String. Sintaxe MscbSay(nXmm, nYmm, cTexto, cRotacao, cFonte, cTam, [lReverso], [lSerial], [cIncr], [lZerorsL]) Parmetros nXmm Posio X em Milmetros nYmm Posio Y em Milmetros cTexto 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] Serializa o codigo [cIncr] String, valor de incremento da serie [lZerorsL] Coloca zeros a esquerda na serie Exemplo MSCSAY|1S,3,MTCP0STCA ,h,C,01,010",.f.) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 178 5+*5);*)4 1|po: lapiesso Imprime Cdigo de Barras. Sintaxe MscbSayBar(nXmm, nYmm, cConteudo, cRotacao, cTypePrt, nAltura, ldigVer, lLinha, lLinBaixo, cSubSetIni, nLargura, nRelacao, lCompacta, lSerial, cIncr) Parmetros nXmm Posio X em Milmetros nYmm Posio Y em Milmetros cConteudo String a ser impressa cRotao String com o tipo de Rotao cTypePrt 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] Altura do cdigo de Barras em Milmetros [lDigver] Imprime dgito de verificao MANUAL RDMAKE - SIGA ADVANCED 4.07 - 179 [lLinha] Imprime a linha de cdigo [lLinBaixo] Imprime a linha de cdigo acima das barras [cSubSetIni] Utilizado no code 128 [nLargura] Largura da barra mais fina em pontos default 3 [nRelacao] Relao entre as barras finas e grossas em pontos default 2 [lCompacta] Compacta o cdigo de barra [lSerial] Serializa o cdigo [cIncr] String, valor de incremento da srie [lZerorsL] Coloca zeros esquerda na srie Exemplo MSCSAYAP|20,22,A11T1m|S1->1C00AP),h,C,13) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 180 M8088kYMfM0 1|po: lapiesso 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 Posio X em Milmetros nYmm Posio Y em Milmetros nLMemomm Tamanho da 1 linha do campo memo em Milmetros nQLinhas Quantidade de linhas cTexto String a ser impressa cRotao String com o tipo de Rotao (N,R,I,B) cFonte String com o tipo de Fonte (A,B,C,D,E,F,G,H,0) cTam String com o tamanho da Fonte [lReverso] lgica se imprime em reverso quando tiver sobre um box preto [cAlign] String com o tipo de Alinhamento do memo L - Esquerda R - Direita C - Centro J - Margem a margem (justificado) Exemplo MSCSAYMEM0|1,10,,4,cTexfo,h,A,9,S",.f.,C) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 181 M80880X 1|po: lapiesso Imprime um Box. Sintaxe MscbBox(nX1mm, nY1mm, nX2mm, nY2mm, [nExpessura], [cCor]) Parmetros nX1mm Posio X1 em Milmetros nY1mm Posio Y1 em Milmetros nX2mm Posio X2 em Milmetros nY2mm Posio Y2 em Milmetros [nExpessura] Nmero com a espessura em pixel [cCor] String com a Cor Branco ou Preto (W ou B) Exemplo MSC0X|12,01,31,10,37) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 182 M808l|aeh 1|po: lapiesso Imprime uma linha horizontal Sintaxe MscbLineH(nX1mm, nY1mm, nX2mm, [nExpessura], [cCor]) Parmetros nX1mm Posio X1 em Milmetros nY1mm Posio Y1 em Milmetros nX2mm Posio X2 em Milmetros [nExpessura] Nmero com a expessura em pixel [cCor] String com a Cor Branco ou Preto (W ou B) Exemplo MSCL1heh|01,10,0,3,) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 183 M808l|aeV 1|po: lapiesso Imprime uma linha vertical. Sintaxe MscbLineV(nX1mm, nY1mm, nY2mm, [nExpessura], [cCor]) Parmetros nX1mm Posio X1 em Milmetros nY1mm Posio Y1 em Milmetros nY2mm Posio X2 em Milmetros [nExpessura] Nmero com a espessura em pixel [cCor] String com a Cor Branco ou Preto (W ou B) Exemplo MSCL1hev|01,10,0,3,) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 184 M808l0k00I 1|po: lapiesso 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 MSCL0A0CPI|L0C0.CPI) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 185 M8080kIl0 1|po: lapiesso Imprime grfico que est armazenado na memria da impressora. Sintaxe MscbGrafic(nXmm, nYmm, cArquivo, [lReverso]) Parmetros nXmm Posio X em Milmetros nYmm 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 MSCCPAITC|3,3,L0C0,.f.) Parmetros que estiverem entre [], significa que no so OBRIGAT- RIOS. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 186 M808wl1f 1|po: lapiesso Permite enviar para porta uma linha de programao nativa da Impressora. Sintaxe MSCBWRITE(cContedo) Parmetros cContedo Linha de programa nativa da impressora. Exemplo MSCWPTTE|"^I01,1^C400,S0,2S^IS") Parmetros que estiverem entre [], significa que no so OBRIGAT- RIOS e os parmetros que estiverem com *, significa que so ignorados no padro Allegro. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 187 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 - 188 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 - 189 Utilizando as funes: Exemplo: padro Zebra MSCPPThTEP|SS00-,C0M2:9600,e,7,2",,42) //Sefa f1po de 1mpessoa padao ZPL MSCL0A0CPI|L0C0.CPI) //Caega o 1ogof1po paa 1mpessoa MSCECTh|2,4) //Th1c1o da Tmagem da Ef1quefa //com 2 cop1as e ve1oc1dade 4 ef1quefas po po1egadas MSC0X|01,01,0,40) //Mohfa 0X MSC0X|12,01,31.S,10,37) MSCCPAITC|2.3,2.S,L0C0) //Pos1c1oha o 1ogof1o MSCSAY|1S,3,MTCP0STCA ,h,C,01,010") //Tmp1me Texfo MSCSAY|13,6.S,S0ITWAPE S/A,h,C,01,010") MSCL1heh|01,10,0) //Mohfa L1hha ho1zohfa1 MSCSAY|3S,2,Cd1go Thfeho,h,,11,7") MSCSAY|3S,S,S1->1C00,h,E,2,1S") MSCSAY|4,12,0esc1cao,h,,11,7") MSCSAY|4,16,S1->10ESC,h,I,26,13") MSCLThEh|01,20,0) MSCSAYAP|20,22,A11T1m|S1->1C00AP),h,C,13,.f.,.f.,,,3,2,.f.) //mohfa cd1go de baas MSCEh0|) //I1m da Tmagem da Ef1quefa MANUAL RDMAKE - SIGA ADVANCED 4.07 - 190 Utilizando as funes: Exemplo: padro Allegro . . . MSCPPThTEP|SS00-,C0M2:9600,e,7,2",,42) //Sefa f1po de 1mpessoa padao ZPL MSCL0A0CPI|L0C0.CPI) //Caega o 1ogof1po paa 1mpessoa MSCECTh|2,4) //Th1c1o da Tmagem da Ef1quefa //com 2 cop1as e ve1oc1dade 4 ef1quefas po po1egadas MSC0X|01,01,0,40) //Mohfa 0X MSC0X|12,01,31.S,10,37) MSCCPAITC|2.3,2.S,L0C0) //Pos1c1oha o 1ogof1o MSCSAY|1S,3,MTCP0STCA ,h,C,01,010") //Tmp1me Texfo MSCSAY|13,6.S,S0ITWAPE S/A,h,C,01,010") MSCL1heh|01,10,0) //Mohfa L1hha ho1zohfa1 MSCSAY|3S,2,Cd1go Thfeho,h,,11,7") MSCSAY|3S,S,S1->1C00,h,E,2,1S") MSCSAY|4,12,0esc1cao,h,,11,7") MSCSAY|4,16,S1->10ESC,h,I,26,13") MSCLThEh|01,20,0) MSCSAYAP|20,22,A11T1m|S1->1C00AP),h,C,13,.f.,.f.,,,3,2,.f.) //mohfa cd1go de baas MSCEh0|) //I1m da Tmagem da Ef1quefa . . . MANUAL RDMAKE - SIGA ADVANCED 4.07 - 191 kDVAkL LV AV8lLN1L 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 compre- enso 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 - 192 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): u o o d n a m o C o n u F o i r c s e D o l p m e x E Y R E U Q C T , s o d a d e d o c n a b o a ) a t l u s n o c ( y r e u q a m u a t u c e x E o a e t n a h l e m e S . o d a t l u s e r o a r a p s a i l a m u o d n a n r o t e r m r o p , R E P P I L C o d o r d a p E S U o d n a m o c : e t n i u g e s a e x a t n i s A . a t l u s n o c a o d n a t u c e x e ] > s a i l A c < S A I L A [ ] W E N [ > y r e u Q c < Y R E U Q C T y l n O d a e R E R P M E S a d a n r o t e r a l e b a t A : . s b O ) a r u t i e l e t n e m o s ( " ' 0 0 2 ' > D O C _ 1 A r o F 0 9 9 1 A S m o r F * t c e l e S " = : y r e u Q C " T N C " s a i l A W E N y r e u Q c Y R E U Q C T T N C s a i l a , o t n e m o m e t s e N / / o d a t l u s e r o m o c l e v n o p s i d / / a t l u s n o c a d / / C E X E L Q S C T o n ( L Q S e x a t n i s r e u q l a u q a t u c e x e o n u f a t s E a d a s u r e s e d o P . ) r o i r e t n a a o m o c s a t l u s n o c e t n e m o s . c t e , E T E L E D , T R E S N I , E T A D P U r a t u c e x e a r a p : e t n i u g e s a e x a t n i s A ) e s u a l C c ( C E X E L Q S C T e r u d e c o r P d e r o t S a m u e d o a i r c e d e x a t n i s A : . s b O . a h l a b a r t a m e t s i s o e u q m e D B G S o d e t n e d n e p e d , e l c a r O o a r a p s a c i f c e p s e s e x a t n i s m e t s i x e , a j e s u O . c t e , E S A B Y S o a r a p , R E V R E S L Q S S M o a r a p e r u d e c o r P d e r o t S a m u a i r C / / A M O S T a d a m a h c / / , r e b m u n n i 1 V _ N I ( A M O S T e r u d e c o r P e t a e r C " = : e s u a l C C N I G E B s i ) r e b m u n u o T E R _ T U O ) 9 5 ( R H C + " D N E " + ) 9 5 ( R H C + " 2 V _ N I + 1 V _ N I = : T E R _ T U O ) e s u a l C c ( C E X E L Q S C T C E X E P S C T a t i e c A . e r u d e c o r P d e r o t S a m u a t u c e x e o n u f a t s E y a r r a m u e r p m e s o n u f a d o n r o t e r o e s o r t e m r a p . ) o n r o t e r e d s i e v i r a v s a m o c ( : e t n i u g e s a e x a t n i s A ) . . . , ] 2 r a P u [ , ] 1 r a P u [ , e s u a l C c ( C E X E P S C T = : t e R a o n a d a i r c e r u d e c o r P d e r o t S a a t u c e x E / / r o i r e t n a o n u f a d o l p m e x e / / ) 3 , 2 , " A M O S T " ( C E X E P S C T = : t e R a a d o d a t l u s e r o e m i r p m I / / ] 1 [ t e R a ? ) 5 , o s a c o n ( a m o s / / MANUAL RDMAKE - SIGA ADVANCED 4.07 - 193 LXLCU1ANDO 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 - 194 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 - 195 - [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 - 196 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 - 197 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 - 198 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 - 199 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 - 200 E EXEMPLOS DE P PROGRAMA /* Funo RdDemo Autor Ary Medeiros Data 15/02/96 Uso RdMake <Programa.Ext> - w Exemplo 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 @ 0,0 TO 380,500 DIALOG oDlg TITLE "Interpretador xBase for Windows" @ 10,10 BITMAP SIZE 110,40 FILE "RDDEMO.BMP" @ 60,5 TO 155,245 @ 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 Return Define Variveis Define um formulrio tela, a varivel oD1g recebe todas as definies do objeto. Semelhante a criao de um objeto TBrowseDb / TBrowseNew. Atribui uma figura BitMap ao objeto oD1g. Atribui um Box simples ao objeto oD1g, semelhante ao comando Box (obsoleto) e a funo DispBox() padro do Clipper. 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. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 201 /* Funo BasicObj Autor Ary Medeiros Data 15/02/96 Descrio Objetos bsicos Windows */ Function BasicObj @ 0,0 TO 250,450 DIALOG oDlg1 TITLE "Objetos bsicos do Windows" @ 10,10 SAY "ListBox:" @ 20,10 LISTBOX nList ITEMS aItems SIZE 50,50 @ 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 @ 75,10 Say "ComboBox:" @ 85,10 COMBOBOX cCombo ITEMS aItems SIZE 50,50 @ 75,70 Say "Entrada de dados:" @ 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") ACTIVATE DIALOG oDlg1 CENTER Return Define um formulrio tela, a varivel oD1g1 recebe todas as definies do objeto. Semelhante a criao de um objeto TBrowseDb / TBrowseNew. Comando Say Padro do Clipper. Este Comando atribui ao objeto oD1g1 uma caixa de seleo ListBox, semelhante a funo Achoice() Padro do Clipper. 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 contem o Titulo especificado. Atribui ao objeto um Box que contm o Titulo especificado. 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. 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.. 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. Ativa o objeto oD1g1 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 202 /* Funo DefaultDlg Autor Ary Medeiros Data 15/02/96 Descrio Dilogos Padronizados */ Function DefaultDlg 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 /* Funo Browse Autor Ary Medeiros Data 15/02/96 Descrio Objeto para manipulao de Browses */ Function Browse @ 200,1 TO 400,530 DIALOG oDlg2 TITLE "Utilizao de Browses" @ 6,5 TO 93,150 BROWSE "SX6" ENABLE "!X6_CONTEUD" @ 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 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. 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. Comando Say Padro do Clipper. Definio de um boto. Ativa o objeto oD1g2 MANUAL RDMAKE - SIGA ADVANCED 4.07 - 203 /* Funo MultiLine Autor Ary Medeiros Data 15/02/96 Descrio Objeto para entrada de dados(Itens) */ Function Multiline @ 200,1 TO 400,540 DIALOG oDlg3 TITLE "Edio de mltiplos itens" cAlias := "SX5" dbSelectArea( cAlias ) dbGoTop() cTabela := X5_TABELA aHeader := {} nUsado := 0 Select Sx2 Seek cAlias Select Sx3 Seek cAlias 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 While !EOF() .And. X5_FILIAL+X5_TABELA == xFilial()+cTabela nCnt := nCnt+1 Skip EndDo aCOLS := Array(nCnt,nUsado+1) dbSelectArea( cAlias ) Seek xFilial()+cTabela nCnt := 0 Inicializa variveis. A Matriz aHeader armazenar as definies da colunas do Browse do Comando MULTILINE. Inicializa Variveis Busca no SX2 e SX3 o Alias do arquivo que ser utilizado no Browse. Seleciona rea Posiciona no primeiro registro. Define Objeto oDlg3 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. 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. 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. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 204 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( ) @ 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 LineOk Autor Ary Medeiros Data 15/02/96 Descrio Validao da linha digitada na funo MultiLine */ Function LineOk MsgBox("Linha Ok!","Validando o Item...") Return .t. 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. Comando Say Padro do Clipper. Define boto Ativa o objeto oD1g3 Dilogo padronizado A Funo utilizada para validar a linha digitada deve retornar valor lgico. 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 ). MANUAL RDMAKE - SIGA ADVANCED 4.07 - 205 /* Funo DemoButton Autor Ary Medeiros Data 15/02/96 Descrio Botes com BitMaps padronizados */ Function DemoButton @ 200,1 TO 400,450 DIALOG oDlg4 TITLE "Botes com Bitmaps" @ 5,10 TO 75,215 @ 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 DemoCad Autor Ary Medeiros Data 15/02/96 Descrio tela de cadastramento padro */ Function DemoCad AxCadastro("SX6","AX_Cadastro() - Cadastramento Padro") Return Define Objeto oDlg4 Atribui ao objeto um Box. 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. Define Boto. Ativa o objeto oD1g4 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 - 206 /* Funo Report Autor Ary Medeiros Data 15/02/96 Descrio Exemplo de programao relatrios */ Function Report 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 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) }) Return Verifica se foi pressiona tecla de interrupo, se verdadeiro abandona a funo. Assume as configuraes definidas para impresso do relatrio. 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. Define variveis padro em relatrios no SigaAdv. A funo SetPrint permite a configurao dos parmetros do relatrio Verifica se foi pressiona tecla de interrupo, se verdadeiro abandona a funo. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 207 /* Funo RptDetail Autor Ary Medeiros Data 15/02/96 Descrio Impresso do corpo do relatrio. */ Function RptDetail SetRegua(50) //Ajusta numero de elementos da rgua de relatrios Cabec(titulo,cabec1,cabec2,nomeprog,tamanho,18) //Impressao do cabecalho 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") Set Filter To If aReturn[5] == 1 Set Printer To Commit ourspool(wnrel) Endif MS_FLUSH() Return A funo SetRegua() inicializa a rgua padro de relatrios RdMake Dos/Windows. Funo padro para impresso do cabealho. 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. Funo padro para impresso do rodap dos relatrios. Elimina filtro do arquivo principal. Testa se o relatrio foi direcionado para disco , esvazia os Buffers e chama funo de Spool Padro. Libera fila de relatrios em spool. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 208 /* Funo ProcDemo Autor Ary Medeiros Data 15/02/96 Descrio Exemplo de utilizao de rotinas de processamento */ Function ProcDemo @ 96,42 TO 323,505 DIALOG oDlg5 TITLE "Rotina de Processamento" @ 8,10 TO 84,222 @ 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 OkProc Autor Ary Medeiros Data 15/02/96 Descrio Confirma o processamento */ Function OkProc Close(oDlg5) Processa( {|| Execute(RunProc) } ) Return Define Objeto oDlg5 Atribui ao objeto um Box. Define Botes Comando Say Padro do Clipper. Ativa o objeto oD1g5 Esta funo finaliza objeto oD1g5 e todos os objetos correspondentes. Assim como nos relatrios essa funo executa a Funo que far o processamento. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 209 /* Funo OkProc Autor Ary Medeiros Data 15/02/96 Descrio Executa o processamento */ Function RunProc ProcRegua(1000) For i:= 1 to 1000 IncProc() Next Return /* Funo DlgDinam Autor Ary Medeiros Data 15/02/96 Descrio Exemplo de rotina de refresh */ Function DlgDinam cSay1 := "Demo 01" cSay2 := "Demo 02" cGet1 := "Get 01" cGet2 := "Get 02" @ 96,42 TO 323,505 DIALOG oDlg6 TITLE "Rotina de Refresh" @ 8,10 TO 84,222 @ 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 Define variveis. Define Objeto oDlg6 Atribui um Box ao objeto. Define um boto. Comando Say Padro do Clipper. Inicializa a rgua padro de processamentos pode ser utilizada no RdMake Dos/Windows. 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 Contador para demonstrar a funo que incrementa a rgua padro previamente definida. MANUAL RDMAKE - SIGA ADVANCED 4.07 - 210 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 - 211 / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pr ogr ama RDDEMO2 Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Demo. I nt er pr et ador XBase par a Wi ndows. Ver sao 2 commai s - - - - exempl os, de comandos e uso de met odos e pr opr i edades. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Var i avei s do pr ogr ama / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - oRDDEMO2 : = NI L oTi mer : = NI L cMsg : = Space( 20) cMsg : = cMsg + " Est a ver so do RDDEMO demost r a novos concei t os e o uso de novas " cMsg : = cMsg + " possi bi l i dades par a os comandos do i nt er pr et ador par a Wi ndows. " cMsg : = cMsg + " Al mdi sso, demost r a f or mas de acesso a pr opr i edades de obj et os " cMsg : = cMsg + " e mt odos, o que f aci l i t a a pr ogr amao nesse ambi ent e. Escol ha at r avs " cMsg : = cMsg + " das duas l i st as abai xo as demost r aes que desej a vi sual i zar e pr essi one " cMsg : = cMsg + " o bot o EXECUTAR. " cMsg : = OemToAnsi ( cMsg) nPosMsg : = 1 bTi mer : = {| | cTopBar : = Subst r ( cMsg, nPosMsg, 65) , ; nPosMsg : = I f ( nPosMsg>Len( cMsg) , 1, nPosMsg + 1) , ; Obj ect Met hod( oGt , " Ref r esh( ) " ) } cTopBar : = Space( 65) nSour ce : = 0 aSour ce : = {" Uso de Senhas" , " Novos Di al ogos" , " Ref r esh de Obj et os" , " Campos MEMO" } nTar get : = 0 aTar get : = {} / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Cr i acao do di al ogo pr i nci pal / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @105, 074 To 304, 716 Di al og oRDDEMO2 Ti t l e " RDDEMO2 - Demonst r ao do I nt er pr et ador XBase f or Wi ndows" / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Def i ne o t i mer que i r a execut ar por det r as do di al ogo / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - oTi mer : = I W_Ti mer ( 100, bTi mer ) Obj ect Met hod( oTi mer , " Act i vat e( ) " ) / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Obj et os do di al ogo pr i nci pal / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @020, 003 Say OemToAnsi ( " Demonst r aes di spon vei s: " ) @020, 133 Say OemToAnsi ( " Execut ar Demonst r aes: " ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 212 / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Nova cl ausul a di sponi vel par a t odos os comandos - > OBJ ECT <NOME> / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @004, 000 Get cTopBar When . F. Obj ect oGt @030, 004 Li st Box nSour ce I t ems aSour ce Si ze 86, 65 Obj ect oSour ce @029, 133 Li st Box nTar get I t ems aTar get Si ze 85, 65 Obj ect oTar get @030, 093 But t on OemToAnsi ( " _Adi ci onar >>" ) Si ze 36, 16 Act i on Execut e( AddDemo) Obj ect oBt nAdd @048, 093 But t on OemToAnsi ( " << _Remover " ) Si ze 36, 16 Act i on Execut e( RemoveDemo) Obj ect oBt nRem @030, 250 But t on OemToAnsi ( " _Execut ar " ) Si ze 36, 16 Act i on Execut e( RunDemos) @082, 277 BmpBut t on Type 1 Act i on Cl ose( oRDDEMO2) Act i vat e Di al og oRDDEMO2 / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Funcao par a acesso aos met odos de umobj et o - > OBJ ECTMETHOD / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / / Li ber a o t i mer / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Obj ect Met hod( oTi mer , " DeAct i vat e( ) " ) Obj ect Met hod( oTi mer , " Rel ease( ) " ) Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo ADDDEMO Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Adi ci ona o i t emda l i st a Sour ce par a a l i st a Tar get - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on AddDemo I f nSour ce ! = 0 aAdd( aTar get , aSour ce[ nSour ce] ) Obj ect Met hod( oTar get , " Set I t ems( aTar get ) " ) nNewTam: = Len( aSour ce) - 1 aSour ce : = aSi ze( aDel ( aSour ce, nSour ce) , nNewTam) Obj ect Met hod( oSour ce, " Set I t ems( aSour ce) " ) Endi f Ret ur n MANUAL RDMAKE - SIGA ADVANCED 4.07 - 213 / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo REMOVEDEMO Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Remove umi t emda l i st a Tar get e adi ci ona na l i st a Sour ce - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ f unct i on RemoveDemo I f nTar get ! = 0 aAdd( aSour ce, aTar get [ nTar get ] ) Obj ect Met hod( oSour ce, " Set I t ems( aSour ce) " ) nNewTam: = Len( aTar get ) - 1 aTar get : = aSi ze( aDel ( aTar get , nTar get ) , nNewTam) Obj ect Met hod( oTar get , " Set I t ems( aTar get ) " ) Endi f Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo RUNDEMOS Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Execut a os demos da l i st a Tar get - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on RunDemos I f Len( aTar get ) ! = 0 For nDemo : = 1 To Len( aTar get ) cDemo : = Al l Tr i m( Upper ( aTar get [ nDemo] ) ) Do Case Case cDemo == " USO DE SENHAS" Execut e( FunSenhas) Case cDemo == " NOVOS DI ALOGOS" Execut e( FunNovos) Case cDemo == " REFRESH DE OBJ ETOS" Execut e( FunRef r esh) Case cDemo == " CAMPOS MEMO" Execut e( FunMEMO) EndCase Next nDemo Endi f Ret ur n MANUAL RDMAKE - SIGA ADVANCED 4.07 - 214 / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FUNSENHAS Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Demost r acao do uso de senhas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FunSenhas cSenha : = Space( 200) cCont eudo : = Space( 200) @115, 085 To 267, 727 Di al og oSenhas Ti t l e " Demost r ao de Obj et os GET comsenhas" @002, 002 To 038, 315 @009, 008 Say OemToAnsi ( ' Par a se t r abal har comcai xas de edi o que no exi bemo cont edo di gi t ado, bast a acr escent ar a cl usul a' ) @020, 008 Say OemToAnsi ( ' PASSWORD ao comando GET do pr ogr ama. Por exempl o: @00, 00 Get cSenha Pi ct ur e " @! " Val i d . T. PASSWORD' ) @042, 004 Say OemToAnsi ( " Senha : " ) @057, 004 Say OemToAnsi ( " Cont edo: " ) @042, 042 Get cSenha Pi ct ur e " @S40" Val i d . T. PASSWORD Obj ect oSenha @057, 042 Get cCont eudo Pi ct ur e " @S40" When . F. Obj ect oCont eudo @059, 277 BmpBut t on Type 1 Act i on Cl ose( oSenhas) oAt uCont : = I w_Ti mer ( 100, {| | cCont eudo : = cSenha , Obj ect Met hod( oCont eudo, " Ref r esh( ) " ) }) Obj ect Met hod( oAt uCont , " Act i vat e( ) " ) Act i vat e Di al og oSenhas Obj ect Met hod( oAt uCont , " DeAct i vat e( ) " ) Obj ect Met hod( oAt uCont , " Rel ease( ) " ) Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FUNNOVOS Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Demonst r acao de di al ogos di ver si f i cados. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FunNovos nTi po : = 1 aTi po : = {" Sel ecao de Ar qui vo" , " Sel ecao de Cor es" } @150, 133 To 361, 716 Di al og oDi al ogos Ti t l e " Demost r ao de Di l ogos Di ver si f i cados" @003, 002 To 039, 282 @011, 008 Say OemToAnsi ( " Al mdos di l ogos par a si mpl es exi bi o de mensagens, exi st emos di l ogos par a sel eo de ar qui vos, " ) @023, 008 Say OemToAnsi ( " ent r adas de dados, et c, que f aci l i t ama vi da do pr ogr amador RDMAKE. " ) @049, 003 Say OemToAnsi ( " Ti po do Di l ogo: " ) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 215 @060, 004 Radi o aTi po Var nTi po @060, 160 But t on OemToAnsi ( " _Execut ar " ) Si ze 36, 16 Act i on Execut e( RunDl g) @089, 248 BmpBut t on Type 1 Act i on Cl ose( oDi al ogos) Act i vat e Di al og oDi al ogos Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo RUNDLG Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Execut a o di al ogo sel eci onado pel o usuar i o emFunNovos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on RunDl g cTi po : = " Execut avei s ( *. EXE) | *. EXE | " cTi po : = cTi po + " Fi gur as ( *. BMP) | *. BMP | " cTi po : = cTi po + " Ar qui vos de Dados ( *. DBF) | *. DBF | " cTi po : = cTi po + " Ar qui vos de I ndi ce ( *. CDX) | *. CDX | " cTi po : = cTi po + " Todos os Ar qui vos ( *. *) | *. * " I f nTi po == 1 / / Sel ecao de Ar qui vos cFi l e : = cGet Fi l e( cTi po, " Di al ogo de Sel ecao de Ar qui vos" ) I f ! Empt y( cFi l e) Avi so( " Ar qui vo Sel eci onado" , cFi l e, {" Ok" }) El se Avi so( " Cancel ada a Sel ecao! " , " Voce cancel ou a sel ecao do ar qui vo. " , {" Ok" }) Endi f El seI f nTi po == 2 / / Sel ecao de Cor es nCor : = ChooseCol or ( 255) Endi f Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FUNREFRESH Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Demost r acao de met odos par a r ef r esh emobj et os - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FunRef r esh l Pr i mei r o : = . T. cPr i mei r o : = PADR( " Est e t ext o f az par t e do PRI MEI RO GET" , 36) cSegundo : = PADR( " Est e t ext o f az par t e do SEGUNDO GET" , 36) MANUAL RDMAKE - SIGA ADVANCED 4.07 - 216 @116, 090 To 416, 707 Di al og oRef r esh Ti t l e OemToAnsi ( " Ref r esh de Obj et os" ) @003, 002 To 040, 305 @012, 008 Say OemToAnsi ( " Al guns dos obj et os no Wi ndows, como o SAY e o GET, possuemum m t odo REFRESH( ) . Desse modo" ) @024, 009 Say OemToAnsi ( " pode- se at ual i zar as i nf or maes desses obj et os semf or ar a at ual i zao de t odo o di l ogo. " ) @055, 005 Say OemToAnsi ( " Hor a at ual : " ) oTi mer Hor a : = I w_Ti mer ( 500, {| | Obj ect Met hod( oHor aAt ual , " Set Text ( Ti me( ) ) " ) }) Obj ect Met hod( oTi mer Hor a, " Act i vat e( ) " ) @055, 040 Say OemToAnsi ( Ti me( ) ) Obj ect oHor aAt ual @080, 005 Say OemToAnsi ( " 1o. Get : " ) Obj ect oLabel 1 @104, 005 Say OemToAnsi ( " 2o. Get : " ) Obj ect oLabel 2 @080, 040 Get cPr i mei r o Obj ect oGet 1 @104, 040 Get cSegundo Obj ect oGet 2 @088, 262 But t on OemToAnsi ( " _Tr ocar " ) Si ze 36, 16 Act i on Execut e( FRTr oca) @132, 263 BmpBut t on Type 1 Act i on Cl ose( oRef r esh) Act i vat e Di al og oRef r esh Obj ect Met hod( oTi mer Hor a, " DeAct i vat e( ) " ) Obj ect Met hod( oTi mer Hor a, " Rel ease( ) " ) Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FRTROCA Aut or Lui z Car l os Vi ei r a Dat a Wed 23/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Faz a t r oca dos obj et os no di al ogo da f uncao FUNREFRESH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FRTr oca cAux1 : = cPr i mei r o cAux2 : = cSegundo cSegundo : = cAux1 cPr i mei r o : = cAux2 Obj ect Met hod( oGet 1, " Ref r esh( ) " ) Obj ect Met hod( oGet 2, " Ref r esh( ) " ) I f l Pr i mei r o Obj ect Met hod( oLabel 1, " Set Text ( ' 2o. Get : ' ) " ) Obj ect Met hod( oLabel 2, " Set Text ( ' 1o. Get : ' ) " ) l Pr i mei r o : = . F. El se Obj ect Met hod( oLabel 1, " Set Text ( ' 1o. Get : ' ) " ) Obj ect Met hod( oLabel 2, " Set Text ( ' 2o. Get : ' ) " ) l Pr i mei r o : = . T. Endi f Ret ur n MANUAL RDMAKE - SIGA ADVANCED 4.07 - 217 / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FUNMEMO Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Demo. da edi cao de campos memo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FunMEMO cText o : = " " cFOpen : = " " @116, 090 To 416, 707 Di al og oDl gMemo Ti t l e " Demonst r ao de Campos MEMO - Edi t or de Ar qui vos Text o" @003, 002 To 040, 305 @012, 008 Say OemToAnsi ( " Par a edi t ar umcampo MEMO, ou mesmo o cont edo de umar qui vo t ext o, ut i l i za- se o pr pr i o" ) @024, 009 Say OemToAnsi ( " comando GET, adi ci onando as cl usul as SI ZE e MEMO. Por exempl o: @10, 10 GET cVar Si ze 50, 50 MEMO" ) @045, 005 Say OemToAnsi ( " Ar qui vo: <SEM NOME>" +Space( 100) ) Obj ect oNome @055, 005 Get cText o Si ze 250, 080 MEMO Obj ect oMemo @045, 263 But t on OemToAnsi ( " _Abr i r . . . " ) Si ze 36, 16 Act i on Execut e( FRAbr e) @063, 263 But t on OemToAnsi ( " _Fechar " ) Si ze 36, 16 Act i on Execut e( FRFecha) @081, 263 But t on OemToAnsi ( " _Sal var " ) Si ze 36, 16 Act i on Execut e( FRSal va) @099, 263 But t on OemToAnsi ( " _Sal var Como. . . " ) Si ze 36, 16 Act i on Execut e( FRSal vaComo) @132, 263 BmpBut t on Type 1 Act i on Cl ose( oDl gMemo) Act i vat e Di al og oDl gMemo Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FRABRE Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Rot i na par a a aber t ur a do ar qui vo t ext o na FunMEMO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FRAbr e cFOpen : = cGet Fi l e( " Ar qui vos Text o| *. TXT| Todos os Ar qui vos| *. *" , OemToAnsi ( " Abr i r Ar qui vo. . . " ) ) I f ! Empt y( cFOpen) cText o : = MemoRead( cFOpen) Obj ect Met hod( oMemo, " Ref r esh( ) " ) Obj ect Met hod( oNome, " Set Text ( ' Ar qui vo: ' +cFOpen) " ) Endi f Ret ur n MANUAL RDMAKE - SIGA ADVANCED 4.07 - 218 / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FRFECHA Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Rot i na par a f echament o do ar qui vo t ext o emFunMEMO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FRFecha cText o : = " " cFOpen : = " " Obj ect Met hod( oMemo, " Ref r esh( ) " ) Obj ect Met hod( oNome, " Set Text ( ' Ar qui vo: <SEM NOME>' ) " ) Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FRSALVA Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Rot i na par a sal var o ar qui vo t ext o emFunMEMO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FRSal va I f ! Empt y( cFOpen) MemoWr i t ( cFOpen, cText o) Endi f Ret ur n / */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Funo FRSALVACOM Aut or Lui z Car l os Vi ei r a Dat a Thu 24/ 09/ 98 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Descr i o Rot i na par a sal var ar qui vo t ext o comout r o nome emFunMEMO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uso Espec f i co par a cl i ent es Mi cr osi ga - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / */ Funct i on FRSal vaComo cAux : = cFOpen cFOpen : = cGet Fi l e( " Ar qui vos Text o| *. TXT| Todos os Ar qui vos| *. *" , OemToAnsi ( " Sal var Ar qui vo Como. . . " ) ) I f ! Empt y( cFOpen) MemoWr i t ( cFOpen, cText o) Obj ect Met hod( oNome, " Set Text ( ' Ar qui vo: ' +cFOpen) " ) El se cFOpen : = cAux Endi f Ret ur n MANUAL RDMAKE - SIGA ADVANCED 4.07 - 219 Referncias e Abreviaturas SGBD Sistema Gerenciador de Banco de Dados. o aplicativo que gerencia os dados e controla o acesso aos mesmos. SQL Structured Query Language Linguagem de Consulta Estruturada. uma linguagem de con- sulta gil e estruturada, bastante difundida entre gerenciadores de banco de dados relacionais. Oracle, MSSQL Server ou DB2 Estes so sistemas de gerenciamento de banco de dados relacional em bastante evidncia no mer- cado atual. Oracle marca registrada da Oracle Inc., MSSQL da Microsoft e DB2 da IBM. ADS Advantage DataBase Server. marca registrada da Advantage, e um Driver para acesso base de dados padro xBase em ambiente de rede.