Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Apostila Genexus

Download as pdf or txt
Download as pdf or txt
You are on page 1of 113

Sumário

1. Comandos GeneXus ................................................................................................................................... 7


1.1. Assign Atributo .................................................................................................................................. 7
1.2. Assign Variável .................................................................................................................................. 7
1.3. Call ..................................................................................................................................................... 8
1.4. Change Page ....................................................................................................................................... 8
1.5. Commit ............................................................................................................................................... 8
1.6. Confirm .............................................................................................................................................. 9
1.7. Delete.................................................................................................................................................. 9
1.8. Do ‘Nome Subrotina’ ....................................................................................................................... 10
1.9. Do While .......................................................................................................................................... 10
1.10. Eject .............................................................................................................................................. 10
1.11. Error_Handler ............................................................................................................................... 10
1.12. Exit ............................................................................................................................................... 11
1.13. Footer............................................................................................................................................ 11
1.14. For Each ....................................................................................................................................... 11
CLÁUSULA ORDER .............................................................................................................................. 12
CLÁUSULA WHERE.............................................................................................................................. 12
CLÁUSULA DEFINED BY .................................................................................................................... 13
1.15. For Each Line ............................................................................................................................... 13
1.16. For Each Selected line .................................................................................................................. 13
1.17. Graph ............................................................................................................................................ 13
1.18. Header .......................................................................................................................................... 14
1.19. If ................................................................................................................................................... 15
1.20. Line Number................................................................................................................................. 15
1.21. Load .............................................................................................................................................. 15
1.22. Margin Botton .............................................................................................................................. 15
1.23. Margin Top ................................................................................................................................... 16
1.24. Message ........................................................................................................................................ 16
1.25. New Record .................................................................................................................................. 16
1.26. NoSkip .......................................................................................................................................... 17
1.27. Page Length .................................................................................................................................. 17
1.28. Print If Detail ................................................................................................................................ 17
1.29. PrinterCommand........................................................................................................................... 17
1.30. Refresh.......................................................................................................................................... 18
1.31. Return ........................................................................................................................................... 18
1.32. RollBack ....................................................................................................................................... 18
1.33. Submit .......................................................................................................................................... 18
1.34. Subroutine .................................................................................................................................... 19
1.35. Xfor Each ..................................................................................................................................... 19
1.36. Xfor First ...................................................................................................................................... 19
1.37. Xnew ............................................................................................................................................ 19
2. Regras dos Objetos GeneXus ................................................................................................................... 20
2.1. ACCEPT ........................................................................................................................................... 20
2.2. ADD ................................................................................................................................................. 21
2.3. ALLOWNULLS ............................................................................................................................... 21
2.4. <ASSIGN> ....................................................................................................................................... 21
2.5. CALL................................................................................................................................................ 21
2.6. COLOR ............................................................................................................................................ 22
2.7. DEFAULT ........................................................................................................................................ 22
2.8. DEFAULT MODE ........................................................................................................................... 23
2.9. EQUAL ............................................................................................................................................ 23
2.10. ERROR ......................................................................................................................................... 23
2.11. ERROR_HANDLER .................................................................................................................... 24

1
2.12. .............................................................................................................................................................. 24
2.13. HIDDEN ....................................................................................................................................... 24
2.14. MSG ............................................................................................................................................. 25
2.15. NOACCEPT ................................................................................................................................. 25
2.16. NOCHECK ................................................................................................................................... 25
2.17. NOCONFIRM .............................................................................................................................. 25
2.18. NOREAD ..................................................................................................................................... 26
2.19. NOPROMPT ................................................................................................................................ 26
2.20. ORDER ........................................................................................................................................ 26
2.21. PARM ........................................................................................................................................... 26
2.22. PRINTER ..................................................................................................................................... 27
2.23. PROMPT ...................................................................................................................................... 27
2.24. REFCALL .................................................................................................................................... 27
2.25. REFMSG ...................................................................................................................................... 27
2.26. SEARCH ...................................................................................................................................... 28
2.27. SERIAL ........................................................................................................................................ 28
2.28. SUBMIT ....................................................................................................................................... 28
2.29. SUBTRACT ................................................................................................................................. 28
2.30. WORKFILE_LINES .................................................................................................................... 29
2.31. XORDER...................................................................................................................................... 29
3. Funções Disponíveis no GeneXus ............................................................................................................ 30
3.1. DAY ................................................................................................................................................. 30
3.2. MONTH ........................................................................................................................................... 30
3.3. YEAR ............................................................................................................................................... 31
3.4. TODAY ............................................................................................................................................ 31
3.5. NOW( ) ............................................................................................................................................. 31
3.6. HOUR, MINUTE, SECONDS ......................................................................................................... 31
3.7. DOW ................................................................................................................................................ 32
3.8. CDOW .............................................................................................................................................. 32
3.9. CMONTH ......................................................................................................................................... 32
3.10. CTOD ........................................................................................................................................... 32
3.11. CTOT............................................................................................................................................ 33
3.12. DTOC ........................................................................................................................................... 34
3.13. TTOC............................................................................................................................................ 34
3.14. YMDTOD .................................................................................................................................... 35
3.15. YmdHmstoT ................................................................................................................................. 35
3.16. ADDMTH .................................................................................................................................... 35
3.17. ADDYR ........................................................................................................................................ 36
3.18. AGE .............................................................................................................................................. 36
3.19. EOM ............................................................................................................................................. 36
3.20. TDIFF ........................................................................................................................................... 36
3.21. TADD ........................................................................................................................................... 37
3.22. ASK .............................................................................................................................................. 37
3.23. UDF .............................................................................................................................................. 37
3.24. UDP .............................................................................................................................................. 37
3.25. ROWS .......................................................................................................................................... 38
3.26. COLS ............................................................................................................................................ 38
3.27. TIME ............................................................................................................................................ 38
3.28. SYSTIME ..................................................................................................................................... 39
3.29. SYSDATE .................................................................................................................................... 39
3.30. USERCLS .................................................................................................................................... 39
3.31. USERID........................................................................................................................................ 39
3.32. WRKST ........................................................................................................................................ 39
3.33. STR ............................................................................................................................................... 40
3.34. SUBSTR ....................................................................................................................................... 40
3.35. CONCAT ...................................................................................................................................... 40

2
3.36. SPACE.......................................................................................................................................... 41
3.37. LEN .............................................................................................................................................. 41
3.38. TRIM ............................................................................................................................................ 41
3.39. LTRIM.......................................................................................................................................... 41
3.40. RTRIM ......................................................................................................................................... 42
3.41. UPPER.......................................................................................................................................... 42
3.42. LOWER ........................................................................................................................................ 42
3.43. INT ............................................................................................................................................... 42
3.44. ROUND ........................................................................................................................................ 43
3.45. TRUNC ........................................................................................................................................ 43
3.46. VAL .............................................................................................................................................. 43
3.47. COLOR ........................................................................................................................................ 43
3.48. RGB .............................................................................................................................................. 43
3.49. NULL ........................................................................................................................................... 44
3.50. NULLVALUE .............................................................................................................................. 44
3.51. LOADBITMAP ............................................................................................................................ 44
3.52. OLD .............................................................................................................................................. 45
3.53. PREVIOUS .................................................................................................................................. 45
3.54. AFTER ......................................................................................................................................... 45
3.55. LEVEL ......................................................................................................................................... 46
3.56. INSERT/UPDATE/DELETE ....................................................................................................... 46
4. Operadores Disponíveis no GeneXus ....................................................................................................... 47
5. Variáveis Internas do GeneXus ................................................................................................................ 48
5.1. TODAY ............................................................................................................................................ 48
5.2. TIME ................................................................................................................................................ 48
5.3. PAGE................................................................................................................................................ 48
5.4. LINE ................................................................................................................................................. 48
5.5. OUTPUT .......................................................................................................................................... 48
5.6. PGMDESC ....................................................................................................................................... 49
5.7. PGMNAME ...................................................................................................................................... 49
5.8. MODE .............................................................................................................................................. 49
6. Propriedades do GeneXus ........................................................................................................................ 50
6.1. VISIBLE ........................................................................................................................................... 50
6.2. TOLLTIP .......................................................................................................................................... 50
6.3. CAPTION ......................................................................................................................................... 51
6.4. ENABLE .......................................................................................................................................... 51
6.5. ACTIVEPAGE ................................................................................................................................. 51
6.6. PAGECOUNT .................................................................................................................................. 52
6.7. BACKCOLOR, FORECOLOR ........................................................................................................ 52
6.8. TOP, LEFT ....................................................................................................................................... 52
6.9. FILLSTYLE ..................................................................................................................................... 53
6.10. FILLCOLOR ................................................................................................................................ 53
6.11. DEFAULT .................................................................................................................................... 53
6.12. BITMAP ....................................................................................................................................... 54
6.13. BACKSTYLE............................................................................................................................... 54
6.14. FONTNAME ................................................................................................................................ 54
6.15. FONTITALIC, FONTUNDERLINE, FONTBOLD, FONTSTRIKETHRU ............................... 55
6.16. FONTSIZE ................................................................................................................................... 55
6.17. WIDTH, HEIGHT ........................................................................................................................ 55
6.18. TITLE ........................................................................................................................................... 56
6.19. WINDOWSTATE ........................................................................................................................ 56
6.20. LINESELECTOR ......................................................................................................................... 56
6.21. REDRAW ..................................................................................................................................... 57
6.22. TITLEFORECOLOR, TITLEBACKCOLOR .............................................................................. 57
6.23. TAG .............................................................................................................................................. 57
6.24. BORDERSTYLE ......................................................................................................................... 58

3
7. Eventos de Controle ................................................................................................................................. 58
7.1. DBCLICK ........................................................................................................................................ 58
7.2. CLICK .............................................................................................................................................. 58
7.3. ISVALID .......................................................................................................................................... 59
7.4. RIGHTBUTTON .............................................................................................................................. 59
8. Métodos .................................................................................................................................................... 60
8.1. SETFOCUS ...................................................................................................................................... 60
8.2. REPAINT ......................................................................................................................................... 60
8.3. CLEAR, ADDITEM ......................................................................................................................... 60
8.4. REMOVEITEM ............................................................................................................................... 61
8.5. LOAD ............................................................................................................................................... 61
8.6. SORT ................................................................................................................................................ 62
8.7. PRINTFORM ................................................................................................................................... 62
8.8. REFRESH ........................................................................................................................................ 62
9. Propriedades do Modelo Principal ........................................................................................................... 63
9.1. PREFERÊNCIAS ............................................................................................................................. 63
MAXIMUN NUMERIC LENGHT .......................................................................................................... 63
FUNCTIONS............................................................................................................................................ 64
TIME FORMAT....................................................................................................................................... 64
9.2. GERADORES .................................................................................................................................. 65
9.3. MODEL FORMS ............................................................................................................................. 65
9.4. PROMPTS ........................................................................................................................................ 66
10. Propriedades das Transações ................................................................................................................ 67
10.1. TRANSACTION INTEGRITY – INTEGRIDADE TRANSACIONAL .................................. 67
COMMIT ON EXIT ................................................................................................................................. 67
CONFIRM TRANSACTION ................................................................................................................... 68
10.2. USER INTERFACE – INTERFACE COM USUÁRIO .............................................................. 69
CONFIRMATION ................................................................................................................................... 69
WINDOWS INTERFACE ....................................................................................................................... 69
• MenuBar ....................................................................................................................................... 69
• Border Style .................................................................................................................................. 69
• Maximize Button .......................................................................................................................... 70
• Minimize Button ........................................................................................................................... 70
• Form Icon ..................................................................................................................................... 70
• Control Box .................................................................................................................................. 70
• Modal Dialog ................................................................................................................................ 71
CHARACTER INTERFACE – INTERFACE DE CARACTERES ........................................................ 71
• Generate as a Popup Window ....................................................................................................... 71
• Automatic Border – Color ............................................................................................................ 72
• Automatic Border – Display Attribute.......................................................................................... 72
• Automatic Border – Characters .................................................................................................... 73
10.3. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400 ...................................................................... 73
COMMITMENT ...................................................................................................................................... 73
KEY ASSIGNMENT ............................................................................................................................... 74
• Exit Key........................................................................................................................................ 74
• Prompt Key................................................................................................................................... 74
• Refresh Key .................................................................................................................................. 74
• Insert Mode................................................................................................................................... 74
• Previous Record............................................................................................................................ 75
• Next Record .................................................................................................................................. 75
• Retrieve ........................................................................................................................................ 75
• Menu ............................................................................................................................................. 75
• Update Mode ................................................................................................................................ 76
• Cancel ........................................................................................................................................... 76
• Delete Mode ................................................................................................................................. 76

4
• Select ............................................................................................................................................ 76
• First Record .................................................................................................................................. 77
• Display Mode ............................................................................................................................... 77
• More Keys .................................................................................................................................... 77
11. Propriedades das Work Panels ............................................................................................................. 78
11.1. LOADING .................................................................................................................................... 78
LOAD RECORDS ................................................................................................................................... 78
LOAD AT STARTUP .............................................................................................................................. 78
ALLOW USER TO CANCEL WHILE LOADING ................................................................................ 79
AUTOMATIC REFRESH........................................................................................................................ 79
REFRESH TIMEOUT (Foxpro for Windows e Visual Basic) ................................................................. 79
11.2. WINDOWS INTERFACE ........................................................................................................... 80
MENUBAR .............................................................................................................................................. 80
BORDER STYLE .................................................................................................................................... 80
MAXIMIZE BUTTON ............................................................................................................................ 80
MINIMIZE BUTTON .............................................................................................................................. 81
FORM ICON ............................................................................................................................................ 81
CONTROL BOX ...................................................................................................................................... 81
MODAL DIALOG ................................................................................................................................... 81
11.3. CHARACTER INTERFACE ....................................................................................................... 82
GENERATE AS A POPUP WINDOW ................................................................................................... 82
AUTOMATIC BORDER ......................................................................................................................... 83
• Automatic Border – Color ............................................................................................................ 83
• Automatic Border – Display Attribute.......................................................................................... 83
• Automatic Border – Characters .................................................................................................... 83
11.4. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400 ...................................................................... 84
KEY ASSIGNMENT ............................................................................................................................... 84
• Exit Key........................................................................................................................................ 84
• Refresh Key .................................................................................................................................. 84
• Cancel ........................................................................................................................................... 85
• More keys ..................................................................................................................................... 85
12. Propriedades dos Relatórios ................................................................................................................. 86
12.1. OPTIONS ..................................................................................................................................... 86
REPORT OUTPUT .................................................................................................................................. 86
PROMPT FOR CONFIRMATION .......................................................................................................... 86
ALLOW USER TO CANCEL PROCESSING ........................................................................................ 86
FOOTER ON LAST PAGE ..................................................................................................................... 87
12.2. AS/400 SPECIFIC - ESPECIFICAÇÕES AS/400 ....................................................................... 87
KEY ASSIGNMENT ............................................................................................................................... 87
• Exit Key........................................................................................................................................ 87
• Refresh Key .................................................................................................................................. 87
• Cancel ........................................................................................................................................... 87
• More keys ..................................................................................................................................... 88
13. Propriedades dos Procedimentos .......................................................................................................... 89
13.1. OPTIONS ..................................................................................................................................... 89
REPORT OUTPUT .................................................................................................................................. 89
PROMPT FOR CONFIRMATION .......................................................................................................... 89
ALLOW USER TO CANCEL PROCESSING ........................................................................................ 89
FOOTER ON LAST PAGE ..................................................................................................................... 90
13.2. TRANSACTION INTEGRITY – INTEGRIDADE TRANSACIONAL ..................................... 90
COMMIT ON EXIT ................................................................................................................................. 90
13.3. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400 ...................................................................... 92
COMMITMENT ...................................................................................................................................... 92
KEY ASSIGNMENT ............................................................................................................................... 92
• Exit Key........................................................................................................................................ 92

5
• Refresh Key .................................................................................................................................. 92
• Cancel ........................................................................................................................................... 92
• More keys ..................................................................................................................................... 93
14. Propriedades das Web Panels ............................................................................................................... 94
14.1. FOOTER ...................................................................................................................................... 94
FOOTER IMAGE .................................................................................................................................... 94
WEBMASTER’S MAIL ADDRESS ....................................................................................................... 94
15. Propriedades do Modelo – Visual Basic ............................................................................................... 95
15.1. GENERAL ................................................................................................................................... 95
VISUAL BASIC VERSION .................................................................................................................... 95
GRID VERSION ...................................................................................................................................... 95
TARGET SYSTEM INTERFACE ........................................................................................................... 95
GENERATE MDI APPLICATION ......................................................................................................... 96
ALLOW COLUMN RESIZING .............................................................................................................. 97
SKIP READ-ONLY COLUMNS ............................................................................................................. 97
CONFIRM ................................................................................................................................................ 97
AUTOSKIP .............................................................................................................................................. 98
LOCK TYPE ............................................................................................................................................ 98
PSEUDO CONVERSATIONAL DIALOG ............................................................................................. 99
LOCAL DATABASE FILE ................................................................................................................... 100
MAIL FUNCTIONS .............................................................................................................................. 100
GRAPHIC FUNCTIONS ....................................................................................................................... 100
EXCEL OLE FUNCTIONS ................................................................................................................... 101
COMMOM DIALOG FUNCTIONS ..................................................................................................... 101
15.2. RIGHT BUTTON ....................................................................................................................... 103
CALCULATOR ON SECUNDARY NUMERIC FIELDS ................................................................... 103
CALENDAR ON DATE FIELDS ......................................................................................................... 103
15.3. PRINTING ................................................................................................................................. 103
LAN PRINTER ...................................................................................................................................... 104
SHOW PRINTER DIALOG ON REPORTS ......................................................................................... 104
PRINT METHOD .................................................................................................................................. 105
15.4. FORMAT ................................................................................................................................... 105
FIELD EXIT........................................................................................................................................... 105
ESC KEY ACTION ............................................................................................................................... 106
DECIMAL SEPARATOR...................................................................................................................... 106
DATE FORMAT .................................................................................................................................... 106
DATE FORMAT IN CTOD FUNCTION (VISUAL BASIC) ............................................................... 107
TIME FORMAT..................................................................................................................................... 107
FIRST YEAR OF 20th CENTURY ........................................................................................................ 108
15.5. WEB INFORMATION .............................................................................................................. 108
PROTOCOL SPECIFICATION............................................................................................................. 108
15.6. TYPE CHECKING .................................................................................................................... 109
CHECK TYPE ERRORS ....................................................................................................................... 109
FUNCTIONS.......................................................................................................................................... 112
15.7. KEY CONFIGURATION .......................................................................................................... 112
FIRST RECORD .................................................................................................................................... 112
LAST RECORD ..................................................................................................................................... 112
NEXT RECORD .................................................................................................................................... 112
PREVIOUS RECORD ........................................................................................................................... 112
REFRESH KEY ..................................................................................................................................... 112
PROMPT KEY ....................................................................................................................................... 112
15.8. ............................................................................................................................................................ 113
15.9. OTHER ....................................................................................................................................... 113
MAXIMUN WORKFILE LINES .......................................................................................................... 113

6
1. Comandos GeneXus

1.1. Assign Atributo


(Procedure)
<Att> = <Exp>

Associa o valor de uma expressão para um atributo (Este comando


atualiza o banco de dados).
A expressão associada a <Exp> pode ser:
• um Atributo
• uma Variável
• uma Constante
• uma Função
• uma Expressão Aritmética (Data e tipo Numérico somente)

A atualização precisa ser feita dentro de um grupo FOR EACH – ENDFOR.


Várias tabelas podem ser associadas a um grupo FOR EACH – ENDFOR, por
exemplo:
• Tabela Base
• Tabelas que podem ser acessadas pela Tabela Base (Tabelas Estendidas).
Qualquer atributo dessas tabelas poderá ser atualizado.

1.2. Assign Variável


(Transação, Procedure, Relatório, Work Panel)
&<Var> = <Exp>

Associa o valor de uma expressão para uma variável.


Algumas vezes é necessário definir cálculos locais dentro de um objeto.
GENEXUS torna isso possível via VARIÁVEIS LOCAIS. Essas variáveis
existem somente no ambiente do objeto correspondente e em nenhum outro
lugar.
A expressão associada a <Exp> pode ser:
• Um Atributo

7
• Uma Variável
• Uma Constante
• Uma Função (permitido quando uma associação é utilizada)
• Uma Expressão Aritmética (Data e tipo Numérico somente)

1.3. Call
(Transação, Procedure, Relatório, Work Panel)
CALL([‘]Pgmname[‘],[parm1,parm2,...]

Este comando é usado para chamar uma rotina externa ou um objeto


GENEXUS. Parâmetros podem ser atributos, variáveis ou valores constantes.
Todos os parâmetros servem para entrada e saída, assim valores podem ser
retornados em qualquer dos parâmetros.
Se o programa que você estiver chamando já existir, não será necessário
escrever o nome entre apóstrofos. GENEXUS irá checar se o programa
realmente existe.
O Nome do programa que será chamado pode ser uma variável ou um
atributo.

1.4. Change Page


(Procedure, Relatório)
CP <nlines>

Causa um salto de página quando faltarem menos linhas que <nlines> na


página que está sendo impressa. Esse comando é equivalente a: EJECT if
Pagelenght – Currentline for menor que <nlines>.

1.5. Commit
(Procedure, Relatório, Work Panel)
Commit

Força um COMMIT quando incluído em um programa.


GENEXUS irá ativar o controle de Commitment para todas as
Procedures e Transações, se nenhum dos dois comandos NOCOMMITMENT ou
NOENDTRN tiverem sido especificados, será gerado um COMMIT no final da
execução da Procedure ou Transação.

8
1.6. Confirm
(Transação, Work Panel)
Confirm(‘msg’ | &<Var> [,Y | N])

Mostra uma mensagem e aguarda até o usuário informar ‘Sim ou ‘Não.


Mostra o texto/variável (‘msg’ /&<var>, respectivamente) em uma janela
(ou linha de mensagem, dependendo do ambiente de trabalho) e aguarda uma
resposta do usuário que pode ser ‘Sim’ ou ‘Não’. Em ambiente AS/400 os
valores possíveis são F12=Cancel ou Reject e Enter=Accept ou Confirm. Para
saber se o operador confirmou ou rejeitou a mensagem, a função
CONFIRMED( ) é usada.

1.7. Delete
(Procedure)
Delete

Exclui o registro da Tabela Base associado ao grupo onde o comando


DELETE foi especificado.

Regras:
• Um comando DELETE pode somente ser usado em um FOR EACH-
ENDFOR.
• A Exclusão é executada exatamente no momento em que o comando
DELETE é encontrado.
• A integridade referencial não é automaticamente checada quando o
comando DELETE é especificado.

NOTA:
• Se o comando DELETE é especificado em um grupo que contenha
grupos aninhados, os dados do grupo corrente podem ser usados
dentro dos grupos aninhados, embora eles não serão fisicamente
deletados.
• Recomendação: primeiro exclua os níveis internos antes dos externos.
Isto evita qualquer possível cancelamento ou travamento do registro.

9
1.8. Do ‘Nome Subrotina’
(Transação, Procedure, Relatório, Work Panel e Web Panels)
DO ‘RoutineName’

Permite você chamar uma subrotina (definida usando o comando “Sub”).


Não é permitida a passagem de parâmetros; TODAS as variáveis do mesmo
programa também podem ser utilizados pela subrotina.

1.9. Do While
(Transação, Procedure, Relatório, Work Panel e Web Panels)
Do while <Cond>
Enddo

Serão executados todos os comandos entre o DO WHILE e o ENDDO


enquanto a condição <Cond> for verdadeira. Para forçar a saída do grupo do DO
WHILE pode ser usado o comando EXIT.

1.10. Eject
(Procedure, Relatório)
Eject

Este comando força um salto de página no programa gerado, quando a


saída selecionada está associada a impressora, ou limpa a tela quando a saída
está associada a tela.

1.11. Error_Handler
(Transação, Procedure, Relatório, Work Panel)
Implementado para tratamento de erros para Client/Server.

A regra/comando error_handler provê uma maneira dinâmica para


executar ações específicas quando um erro no database é relatado em tempo
de execução do programa.
Quando usado como regra, a sintaxe é: Error_handler(‘subname’).
Quando usado como comando, a sintaxe é: Error_handler([‘subname’]),
onde, subname é o nome de uma subrotina.

10
1.12. Exit
(Transação, Procedure, Relatório, Work Panel)
Exit

O comando Exit permite abandonar um grupo For Each, Xfor Each ou Do


While. O próximo comando a ser executado após um exit é o próximo comando
após o comando EndFor, XendFor ou EndDo correspondente ao grupo que
contém o comando Exit.
NOTA: O comando Exit não é valido dentro de um FOR EACH LINE.

1.13. Footer
(Procedure, Relatório)
Footer
End

Define as linhas de rodapé a serem impressas no final de cada página.


Os comandos entre a cláusula FOOTER e a cláusula END são executadas
quando chega-se ao final da página. FOOTERS podem também ser definidos
com um FOR EACH dentro, da mesma forma como HEADERS pode.
Se existirem linhas de impressão entre o FOOTER e o END, elas irão ser
impressas dentro da margem inferior (parâmetro MB). Se as linhas de
FOOTER não couberem dentro da área da margem inferior a impressão irá
continuar na próxima página.

1.14. For Each


(Procedure, Relatório, Work Panel)
For each [order <Att1> <Att2> ...]
[Where <Condition> ]
[Defined by <Att1> <Att2> ...]
Endfor

Define um grupo de atributos genéricos por operações, o comando For


Each é usado para definir acesso ao Banco de Dados.
Não existem referências explícitas para tabelas em um FOR EACH. Você
somente precisa mencionar QUAIS os Atributos que você precisa, e o Genexus

11
resolve o problema de COMO encontrá-los. A maneira COMO GENEXUS vai
efetuar a navegação pode ser vista no relatório de Especificação. Para forçar
uma saída de um grupo FOR EACH você pode usar o comando EXIT.
Existem dois tipos de tabelas associadas a um grupo FOR EACH:
• Uma TABELA BASE.
• Tabelas que podem ser alcançadas pela Tabela Base, conhecidas como
Tabelas Estendidas.
Se existirem atributos que não façam parte da Tabela Base nem das
Tabelas Estendidas irá aparecer uma mensagem de erro no relatório de
Especificação e o programa não será gerado.

CLÁUSULA ORDER
ORDER < Lista de Atributos >

A ordem para acessar a Tabela Base de um for Each pode ser


especificada por uma lista ordenada de atributos, informados logo após o
comando FOR EACH.
NOTA: A cláusula ordem é bastante usada para definir quebras (Break)
em grupos For Each aninhados. Uma quebra é definida sempre que nós temos a
mesma tabela base em dois grupos For Each, os atributos da Quebra estão
definidos pelo conjunto de atributos especificados na cláusula Ordem.

CLÁUSULA WHERE
WHERE <Condição>

A cláusula WHERE pode ser especificada para estabelecer uma condição


para o grupo For Each – EndFor.
Regras:
• Vários comandos WHERE podem ser especificados após um FOR
EACH. Neste caso, as condições WHERE funcionarão como se elas
estivessem separadas por um operador “.AND.”.
• Um comando WHERE pode, somente, ser especificado imediatamente
após um FOR EACH ou após outro comando WHERE.

12
CLÁUSULA DEFINED BY
DEFINED BY < Lista de Atributos >
Este comando permite definir a Tabela Base de um grupo FOR EACH -
ENDFOR.
Geralmente quando se está definido Procedures/Reports/Work Panels,
os atributos dentro do FOR EACH determinam a Tabela Base. Algumas vezes,
os atributos dentro do grupo não determinam exatamente a Tabela Base (ex.:
mais de uma tabela pode ser encontrada como Tabela Base). Assim é
necessário declarar um grupo para determinar qual a Tabela Base que tem mais
prioridade, informando uma Lista de Atributos na cláusula DEFINED BY.

1.15. For Each Line


(Work Panel)
For each line
EndFor
Força o processamento de todas as linhas (carregadas) no subfile em
uma Work panel.
Esse comando pode ser usado, por exemplo, para marcar todas as linhas
que satisfaçam uma certa condição.
FOR EACH LINE tem as seguintes restrições:
• Ele somente irá processar os registros que foram carregados no
subfile. Se você quiser processar todos os registros do Subfile, a
regra LOAD ALL precisa ser usada.
• Ele processa todas as linhas, tenham elas sido modificadas ou não.

1.16. For Each Selected line


(Work Panel)
For each select line
EndFor

Esse comando funciona de forma similar ao for each lline, porém


somente serão consideradas as linhas marcadas (selecionadas).

1.17. Graph
(Work Panel)
graph([‘<GraphName>’,][<List>]);

13
Permite gerar um gráfico a partir das informações contidas no Subfile.
Isto pode somente ser utilizada por programas gerados para Foxpro for
Windows ou Visual Basic. Quando gerado no Foxpro for Windows, o programa
MS-GRAPH (Incluído no Foxpro for Windows) é executado sempre que esse
comando for localizado.
• conteúdo do subfile é usado como o dado para o gráfico e o usuário pode
escolher qual o tipo de gráfico que será usado. É possível alterar os valores,
imprimir o gráfico e vê-lo em 3D, etc. Este comando irá armazenar todas as
definições do gráfico (portanto o Graph Wizard não precisa ser usado
todas as vezes).
Onde:
• <GraphName> corresponde ao caminho e nome para o arquivo que
contém o gráfico.
Se o arquivo correspondente ao gráfico não existir, o Graph
Wizard será chamado. Uma vez que o gráfico é definido você
precisará salvá-lo com o mesmo nome usado em <GraphName>. Se você
quiser modificar a definição do gráfico você precisa dar um duplo
clique sobre a janela do gráfico.
• <List> é uma lista com os atributos e variáveis do Subfile que devem
ser incluíds no gráfico. O eixo X pode receber qualquer type variável
(caractere, data ou numérico) e todas as outras variáveis precisam
ser numéricas (eixo Y).

1.18. Header
(Procedure, Relatório)
Header
End

Define o cabeçalho a ser impresso no topo de cada página.


O primeiro grupo no Layout padrão das Procedures/Reports é o grupo
HEADER. Os dados dentro desse grupo são impressos no início de cada página
do relatório.
Você pode também definir um cabeçalho para cada “FOR EACH” definido
no Layout.

14
1.19. If
(Transação, Procedure, Relatório, Work Panel)
If <Cond>
[Else]
Endif

Executam um bloco de comando se a condição for avaliada como


verdadeira.

1.20. Line Number


(Procedure, Relatório)
Lineno <Lineno>

Especifica o número da linha onde o dado será impresso.

1.21. Load
(Work Panel)
Load

Este comando força a carga de uma nova linha dentro do subfile.


Ela é bastante usada quando o Work Panel não tem uma tabela Base, e
consequentemente a carga precisa ser feita “na mão” ou quando precisamos
fazer filtros com atributos de várias tabelas.

1.22. Margin Botton


(Procedure, Relatório)
MB <nlines>

Configura o número de linhas em branco no final de uma página.


Se margin Botton não for especificado, 6 linhas serão assumidas
(<nlines> = 6).

15
1.23. Margin Top
(Procedure, Relatório)
MT <nlines>

Define o número de linhas em branco no topo da página.

1.24. Message
(Transação, Procedure, Relatório, Work Panel)
Msg(‘msg’ | &<var> [,nowait] [,status])

Usado para mostrar mensagens de aviso. Pode mostrar um literal ou uma


variável contendo uma mensagem.
Nowait: Armazena a mensagem em uma variável interna e continua o
processamento. O usuário não irá ver mensagem até que o processamento do
programa se encerre. Isto garante uma melhor performance com menos telas
de I/O requeridas.
Status: A mensagem é mostrada no momento em que é originada. Ela é usada
principalmente para dar ao usuário informações sobre status de
processamento.
Nenhuma Opção Especificada: Exibe a mensagem e aguarda pelo
pressionamento do <ENTER>.

1.25. New Record


(Procedure)
New
[When Duplicate]
EndNew

O comando NEW insere um registro na Tabela Base determinada pelo


atributo no grupo NEW-ENDNEW. Chaves duplicadas são checadas.
Se a chave já existir, todos os comandos entre o WHEN DUPLICATE e o
ENDNEW serão executados. Caso você deseje fazer alguma alteração nesse
registro já existente, um grupo FOR EACH – ENDFOR precisa ser especificado
dentro do WHEN DUPLICATE.

16
1.26. NoSkip
(Procedure, Relatório)
NoSkip

Inibe salto de linhas de impressão consecutivas.


Este comando precisa ser colocado imediatamente após o print block.

1.27. Page Length


(Procedure, Relatório)
PL <nlines>

Configura o tamanho da página para Reports/Procedures.


O número de linhas que serão impressos é o número especificado por
<nlines>, menos a margem inferior (valor default é 6).

1.28. Print If Detail


(Procedure, Relatório)
Print if Detail

Evita a impressão do registro se não existirem registros no Subfile.


Este comando precisa ser especificado sempre que você quiser inibir o
processamento de um FOR EACH caso não haja registros de detalhe para ele.
Ele pode ser colocado em qualquer lugar dentro de um grupo.

1.29. PrinterCommand
(Procedure, Relatório)
PrnCmd <\Onn | String>

Manda seqüências de controle para a impressora.


<\Onn | String> é um string caracter contendo caracteres ou um código
ASCII de 3 dígitos precedido por uma “\” onde no mínimo um espaço separa o
PRNCMD and <\Onn | String>. Os parâmetros dependem de cada impressora e
podem ser encontrado no Manual da Impressora.

17
1.30. Refresh
(Work Panel)
Refresh [Keep]

Atualiza as informações mostradas no subfile.


Opção KEEP:
Este parâmetro indica que quando o comando Refresh for executado, o
Subfile será posicionado sobre o registro que estava em foco anteriormente.

1.31. Return
(Transação, Procedure, Relatório, Work Panel)
Return

Encerra o programa e retorna a execução ao programa que o chamou.

1.32. RollBack
(Transação, Procedure, Relatório, Work Panel)
RollBack

O comando ROLLBACK invalida um conjunto de alterações do banco de


dados em uma LWU (Logical work Unit).
Considerações:
O comando ROLLBACK é ignorado pelos ambientes que não usam
Integridade Transacional.

1.33. Submit
(Transação, Procedure, Relatório, Work Panel)
SUBMIT(‘Usr-pgm’,’SubmitParms’[<Parm1> <Parm2> ...])

Processa certas tarefas da aplicação em modo batch.


Os ambientes que não permitem a execução de tarefas batch (como o
DOS) consideram o SUBMIT como se fosse um comando CALL e ignoram os
parâmetros específicos do SUBMIT.

18
1.34. Subroutine
(Transação, Procedure, Relatório, Work Panel)
Sub ‘RoutineName’
EndSub

Permite que sejam definidas rotinas que serão disparadas quando um


comando DO for executado. Todas as variáveis do mesmo programa fonte pode
também ser usadas dentro da subrotina.

1.35. Xfor Each


(Procedure, Relatório, Work Panel)
Xfor each ‘<FileName>’ [INDEX ‘<Indexname>’]
Where <Condition>
Xendfor

Define um loop interativo para um arquivo externo (File View), usando


índice especificado (se existir) e filtra dados de acordo com a condição
declarada na opção WHERE.

1.36. Xfor First


(Procedure, Relatório, Work Panel)
Xfor first ‘<FileName>’ [INDEX ‘<IndexName>’]
Where <Condition>
Xendfor

Este comando é similar ao comando XFOR EACH, porém ele não fica em
loop. Ele retorna o primeiro registro (se existir um registro) de um arquivo
externo utilizando o índice especificado e filtrando dados de acordo com a
condição declarada na opção WHERE.

1.37. Xnew
(Procedure)
Xnew ‘<FileName>’ Xendnew

19
O comando XNEW insere um registro em um File View (arquivo externo).

2. Regras dos Objetos GeneXus

2.1. ACCEPT
(Transações)
Accept(&variável, Atributo);

Esta Regra permite aceitação de uma Variável em Tela.


A ordem da entrada do valor para a Variável em um Nível, dependerá da
posição das Variáveis e dos Atributos na Tela.

20
2.2. ADD
(Transações)
Add( Atributo1, Atributo2) if Condição;

Esta regra adiciona o valor de Atributo1 ao Atributo2, se a Condição for


avaliada como verdadeira.
Esta Adição leva em conta as operações de Inserção, Atualização e
Remoção.
Exemplo:
Add( Qtdcompra, Qtdestq);
Se o atributo Qtdcompra for atualizado, o Atributo Qtdestq também o
será, pelo valor diferencial da atualização.

2.3. ALLOWNULLS
(Transações)
Allownulls( Atrib1, Atrib2, ..., AtribN )

Esta regra é usada para permitir valores NULOS para atributos nos
quais são feitos verificação da integridade referencial.

2.4. <ASSIGN>
(Transações, Relatório/Procedimentos)
Atributo | &Variável = Expressão IF Condição;

Esta regra é usada para assinalar o valor de uma expressão a um dado


atributo. Em contraste com Fórmulas, o valor é atribuído ao Atributo ou à
variável somente quando a Transação estiver sendo processada.

2.5. CALL
(Transações, Procedimentos, Relatórios, Work Panels)
CALL(‘Prog_usuário’,Par1,...,Parn) IF Condição;

Desvia a execução temporariamente para outro programa.


O Prog_usuário, que pode ser: um nome de programa, atributo ou
variável, será chamado sempre que a “Condição” for avaliada como Verdadeira.
Exemplo:

21
&Pgm = ‘WProg’
Call(&Pgm, &V1,&V2);

2.6. COLOR
(Transações, Work Panels)
Color( <gxcolor> ); //Permite a definição das cores default para tela.

Color(<gxcolor>,[<attri>|<var>)(if <cond>]; //Define cores para atributos


ou variáveis.
Onde:
<GxColor> = ‘ ‘ ‘<Displaycolor>[‘,<AcceptColor>]’ ‘ ‘
<DisplayColor> = <ColorPair>
<AcceptColor> = <ColorPair>
<ColorPair> = <ColorSet> [‘/’ <ColorSet>]
<ColorSet> = <Color> [ <DsAttri> ]
<Color> = ‘WHT’ | ‘BLK’ | ‘RED’ | ‘GRN’ | ‘BRW’ | ‘MGN’
‘BLU’ | ‘CYN’ | ‘YLW’ | ‘RI’ | ‘X’
<DspAttri> = ‘+’ | ‘*’
Cada <ColorPair> define a cor de frente e a cor de fundo.
Abreviaturas de Cores: ‘WHT’ = branco
‘BLK’ = preto
‘RED’ = vermelho
‘GRN’ = verde
‘BRW’ = marrom
‘MGN’ = magenta
‘BLU’ = azul
‘CYN’ = cinza
‘YLW’ = amarelo
‘RI’ = imagem reversa
‘X’ = escondido
Um asterisco (‘*’) em <DspAttri> representa um elemento BLINKING e
um sinal mais (‘+’), em HIGHLIGHTS.
Ex.: color(‘RED+’, Saldo) if saldo < 0;
Color(‘WHT’, Saldo) if saldo > = 0;

2.7. DEFAULT
(Transações, Procedimentos/Relatórios, Work Panels)

22
Default( Atributo, xxx);

Onde xxx pode ser: Atributo, Constante ou Função.


Esta Regra assinala o valor de xxx ao Atributo no momento da Inserção,
e permite que o usuário mude esse valor.
Exemplo: Default(Peddat, today( ) );
Esta regra não é válida para um Atributo que faça parte de uma
Chave.

2.8. DEFAULT MODE


(Transações)
Default_mode(Ação, Atributo);

É usada para forçar um modo específico em um Nível de Transação.


Ação: Pode ser uma das seguintes: INSERT, UPDATE ou DELETE.
Atributo: É usado para indicar o Nível. Se não for especificado nenhum
Atributo, será assumido o primeiro Nível.

2.9. EQUAL
(Transações)
Equal( Atributo, xxx);

Onde xxx pode ser: Atributo, Constante ou Função.


Esta Regra assinala o valor de xxx ao Atributo no momento da Inserção.
Esse valor não pode ser mudado pelo usuário.

2.10. ERROR
(Transações)
Error(‘Texto de Mensagem’) IF Condiçaõ;

23
Esta Regra faz com que a “string” definida em ‘Texto de Mensagem’ seja
apresentada na Janela de Erro da Transação, se a condição for avaliada como
verdade.
Todo processamento subsequente, inclusive outras regras, não serão
executadas. Portanto, se muitas regras estiverem associadas a uma única
condição, a regra Error deverá ser a última, para que as outras possam ser
executadas.

2.11. ERROR_HANDLER
(Transação, Procedure, Relatório, Work Panel)

Implementado para tratamento de erros para Client/Server.


A regra/comando error_handler provê uma maneira dinâmica para
executar ações específicas quando um erro no database é relatado em tempo
de execução do programa.
Quando usado como regra, a sintaxe é: Error_handler(‘subname’);
Quando usado como comando, a sintaxe é: Error_handler([‘subname’])
Onde:
Subname é o nome de uma subrotina.

2.12.

2.13. HIDDEN
(Work Panels)
Hidden(<Parm1>,<Parm2>,...,<Parmn>);

Esta regra é usada para incluir atributos ou variáveis específicas no


Subfile, que eventualmente não aparecem na tela. Ela é bastante utilizada
quando precisa-se de um código no Subfile, mas não se quer que ele apareça na
tela.

24
2.14. MSG
(Transações)
Msg(‘Texto de Mensagem’) IF Condição;

Esta regra é usada para enviar mensagens de aviso para o operador. A


“string” definida em ‘Texto de Mensagem’ será apresentada na Janela de erro
da Transação se a for avaliada como verdade.

2.15. NOACCEPT
(Transações, Work Panels)
Noaccept( Atributo | &Variável) IF Condição;

GeneXus avalia quais Atributos são entrada de dados, e quais Atributos


são saída de dados. Todavia, pode haver ocasiões em que não se deseja que o
usuário introduza dados, dependendo de uma condição.
Esta regra faz com que a Transação não aceite a digitação de dados para
o Atributo ou variável associado.

2.16. NOCHECK
(Transações)
Nocheck( Atributo1, Atributo2, ..., Atributon);

A regra Nocheck é usada para inibir a checagem de integridade


referencial.

2.17. NOCONFIRM
(Transações)
Noconfirm(Atributo);

A regra Noconfirm é usada para evitar a confirmação no Nível. Quando


se passa de um Nível para o seguinte, uma mensagem é apresentada, pedindo a
confirmação dos dados. Para se evitar o pedido de confirmação, usa-se esta
regra.
Atributo: É usado para indicar o nível. Se não for especificado nenhum
atributo, será assumido o primeiro nível.

25
2.18. NOREAD
(Procedimentos/Relatórios, Work Panels)
Noread(<Att1>,<Att2>,...,<Attn>);

Essa regra permite inibir a leitura de uma tabela que é navegada e


mostrada no diagrama de navegação quando especificado.

2.19. NOPROMPT
(Transações)
Noprompt( Atrib1, Atrib2, ..., AtribN)

Atrib1, Atrib2, AtribN são identificadores da chave da tabela.


Essa regra é usada para evitar o “Prompt” (‘Visualizar’) quando se entra
com um valor para a Chave Estrangeira que não existe na Tabela.

2.20. ORDER
(Work Panels)
Order(<Att1>,<Att2>,...,<Attn>);

Estabelece a ordem de leitura da tabela base da Work Panel.


Se essa regra é omitida, a chave primária da tabela base será usada.

2.21. PARM
(Transações, Procedimentos/Relatórios, Work Panels)
Parm( Par1, Par2, ..., Parn);

Recebe os programas enviados por outro programa.


Obs.:
• Transações que possuem a regra PARM( ) não aparecem no
Menu.

26
• Quando um Objeto é chamado de outro programa, os
parâmetros recebidos pela regra PARM( ) são considerados
como uma regra Equal.

2.22. PRINTER
(Procedimentos/Relatórios)
Printer(‘<PrinterFile>’);

Seleciona o arquivo de impressão a ser usado pelo AS/400 ou o nome da


impressora, definido por uma variável de ambientes DOS, na geração Xbase.

2.23. PROMPT
(Transações)
Prompt(‘Programa’, Atrib1, Atrib2, ... , AtribN);

Chama o programa definido, ao invés do programa default criado pelo


GeneXus, quando seleciona-se ‘Visualizar’.

2.24. REFCALL
(Transações)
Reffcall(‘Nome_prog’, Atrib1, ... , AtribN);

Esta regra é usada para chamar um Programa quando a integridade


referencial tenta ser quebrada.

2.25. REFMSG
(Transações)
Refmsg(‘Texto’, Atrib1, ..., AtribN)

27
Esta regra é usada para mudar as mensagens geradas por GeneXus
quando verificando as Integridades Referenciais em tempo de Inserção ou
Atualização.
Exemplo: Refmsg(‘O CLIENTE NÃO ESTA CADASTRADO’, Clicod);

2.26. SEARCH
(Work Panels)
Search(<Cond>);

Seleciona um posicionamento condicional para o subfile.


A diferença dessa regra para uma condition é que ela não filtra os dados
do subfile, ela somente posiciona o ponteiro.

2.27. SERIAL
(Transações)
Serial( Atributo1, Atributo2, Passo);

Esta regra faz com que o Atributo1 seja incrementado para o valor
contido em Atributo2 mais o valor do Passo, toda vez que um novo registro for
adicionado à Tabela onde Atributo1 esteja.
Se Atributo1 não faz parte do Identificador, o usuário deverá digitar
um valor que não existe, para que Atributo1 assuma o modo INSERÇÃO, e
receba o próximo valor serializado.

2.28. SUBMIT
(Transações)
SUBMIT(‘Usr-pgm’,’SubmitParms’[,<Parm1>,<Parm2>,...])[IF <Cond>];

Processa relatórios e procedimentos em modo batch, desde que esses


não tenham interações com o usuário.

2.29. SUBTRACT
(Transações)
Subtract( Atributo1, Atributo2) if condição;

28
Esta regra Subtrai o valor de Atributo1 do Atributo2, se a Condição for
avaliada como verdadeira. Esta Subtração leva em conta as operações de
Inserção, Atualização e Remoção.
Exemplo: Subtract( Qtd, Qtdestq);

2.30. WORKFILE_LINES
(Work Panels)
Workfile_lines(<NoLines>);

Estabelece o tamanho máximo para o subfile.


Os Subfiles em um ambiente PC são carregadas em um arquivo
temporário. O tamanho máximo para o subfile no AS/400 é de 9.999 linhas,
contudo, não existem restrições quando PC ou LAN’s são usados.
Esta liberdade pode causar problemas, por exemplo, se você está
trabalhando com uma Work Panel ou Transação que carrega 300.000 registros
da tabela base e o usuário vai para o fim do arquivo (Ctrl-End). Neste caso um
arquivo temporário contendo 300.000 registros será gerado.

2.31. XORDER
(Work Panels)

Essa regra é utilizada em Work Panels que utilizam arquivos externos.


Ela indica qual é o arquivo base do subfile, e qual índice será usado para
carregá-lo (caso não seja indicado, a ordem física será usada).

29
3. Funções Disponíveis no GeneXus

3.1. DAY
(Transações, Procedimentos/Relatórios, Work Panels)
Day(<Date>)

Tipo retornado: N(2)


Retorna o dia de uma data informada. Se <Date> for uma data nula, o
valor 0 será retornado.

3.2. MONTH
(Transações, Procedimentos/Relatórios, Work Panels)
Month(<Date>)

Tipo retornado: N(2)


Retorna o número do mês de uma data informada. Um valor nulo (0) será
retornado se a <Date> não for uma data nula.

30
3.3. YEAR
(Transações, Procedimentos/Relatórios, Work Panels)
Year(<Date>)

Tipo retornado: N(4)


Retorna o ano de uma data informada. Se <Date> não for uma data válida,
um valor nulo será retornado.

3.4. TODAY
(Transações, Procedimentos/Relatórios, Work Panels)
Today( )

Tipo retornado: Date


Retorna a data do sistema operacional.

3.5. NOW( )
(Transações, Procedimentos, Relatórios, Work Panels, Web Panels)
Now( )

Tipo retornado: Datetime


Retorna a data e a hora corrente.

3.6. HOUR, MINUTE, SECONDS


(Transações, Procedimentos, Relatórios, Work Panels, Web Panels)
Hour( <Date Time> ) / Minute(<DateTime>) / Seconds(<Date Time>);

Tipo retornado: Numérico


Retorna um valor numérico representando as horas/minutos/segundos
respectivamente, no formato da hora informado do datetime.

31
3.7. DOW
(Transações, Procedimentos/Relatórios, Work Panels)
Dow(<Date>)

Tipo retornado: N(1)


Retorna um número entre 1 e 7. Este número está associado ao dia da
semana (Domingo=1).
Se a data contida em <Date> for nula, o valor retornado será 0.

3.8. CDOW
(Transações, Procedimentos/Relatórios, Work Panels)
Cdow(<Date>[‘<Language>’])

Tipo retornado: C(9)


Retorna o nome do dia da semana de uma determinada data na linguagem
selecionada. Espaços serão retornados se o valor de <Date> for inválido.
<Language> deve ser uma das seguintes (caso não seja informada, será
utilizada a linguagem selecionada no ‘Model Properties’):
spa – Espanhol
eng – Inglês
por – Português
ita - Italiano

3.9. CMONTH
(Transações, Procedimentos/Relatórios, Work Panels)
Cmonth(<Date>[ , ‘<Language>’])

Tipo retornado: C(9)


Retorna o nome do mês da data informada na linguagem selecionada. Se
nenhuma linguagem for selecionada, será utilizada a que estiver definida em
‘Model Properties’.

3.10. CTOD
(Transações, Procedimentos/Relatórios, Work Panels)
Ctod(‘nn/nn/yy’)

32
Converte uma String em Data.
A string de caracteres pode ser ‘mm/dd/yy’ ou ‘dd/mm/yy’ dependendo
da linguagem corrente, onde: mm representa o mês com dois dígitos; dd
representa o dia com 2 dígitos; yy representa a ano com 2 dígitos.
Em ambiente Micro, o valor default depende da linguagem selecionada:
Inglês ‘mm/dd/yy’
Português/Espanhol ‘dd/mm/yy’

3.11. CTOT
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)
CtoT(‘nn/nn/yy hh[:mm[:ss]][AM|PM]’)

Tipo retornado: C(9)


Converte uma String em DateTime. A primeira parte dos parâmetros
representa a data e a segunda parte a hora.
nn/nn/yy tem o formato M/D/A ou o especificado na preferência ‘Date
format in CTOD function’.
Se AM|PM é especificado, hh pode variar de 0-12. Caso contrário, irá
variar entre 0-23.
{00:00:00AM} é equivalente a {12:00:00AM}, Meia-noite
{00:00:00PM} é equivalente a {12:00:00PM}, Meio-dia
{00:00:00} a {11:59:59} é equivalente a {12:00:00AM} a {11:59:59AM}
{12:00:00} a {23:59:59} é equivalente a {12:00:00PM} a {11:59:59PM}
24:00:00 não é uma hora válida.

Notas:
• A data e a hora da string de parâmetros devem ser separados por
pelo menos um branco.
• Se qualquer parte da string (data e hora) for omitido, é assumido
nulo.
• Se qualquer parte da string não é válida, o DateTime resultante será
nulo.
• Se não for especificdo nem AM nem PM, o formato 24-horas é
assumido.

33
3.12. DTOC
(Transações, Procedimentos/Relatórios, Work Panels)
Dtoc(<Date>)

Retorna a String associada a data especificada.

3.13. TTOC
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)
TtoC( <DateTime>[ ,M[ ,N]])

Tipo retornado: Caractere


Retorna caractere associado ao DateTime, com o formato especificado
por M e N.
Os valores possíveis para M e N são os mesmos usados na definição do
tipo DateTime.
Valores possíveis para M:
0 Data não é pedida nem mostrada
8 Data é mostrada em 8 dígitos (99/99/99)
9 Data é mostrada em 10 dígitos (99/99/9999)
Valores possíveis para N:
2 Somente a parte das horas é mostrado no formato 24 horas
5 Hora e minuto são mostrados separados pelo símbolo
separador de horas. O formato 24 horas é utilizado.
8 Hora completa é mostrada (incluindo segundos). O formato
24 horas é usado.
É possível também setar valor nulo (0) para N. Neste caso, somente a
parte da data é obtido.

Exemplos: TtoC( DT, 8, 0)


TtoC( DT, 10, 0)
TtoC( DT, 0, 0) NÃO é válido.
Notas:
• No caso de M e/ou N serem omitidos, seus valores default são os
parâmetros utilizados para definição do DateTime (primeiro
parâmetro).
• No caso da combinação M/N não ser válida, os valores assumidos são:
M=10 e N=8.

34
• O formato da string retornada é o mesmo da função CtoT, ou seja, a
data depende da preferência ‘Date format in CtoD function’ e a hora
é sempre no formato 24 horas.

3.14. YMDTOD
(Transações, Procedimentos/Relatórios, Work Panels)
Ymdtod(<NExp1>,<NExp2>,<NExp3>)

Retorna a data onde <NExp1> é o ano, <NExp2> é o mês e <NExp3> é o


dia.
<NExp1>, <NExp2> e <NExp3> devem ser expressões numéricas.

3.15. YmdHmstoT
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)
YmdHmstoT( <NExp1>, <NExp2>, <NExp3> [ , <NExp4> [ ,<NExp5> [ ,<NExp6>]]])

Tipo retornado: Date Time


Retorna um Date Time associado a data e hora especificados no
parâmetro. Parâmetros omitidos assumem o valor zero. Todos os parâmetros
são expressões numéricas.
NExp1 – representa o ano. Este valor não se ajusta ao que for indicado
na preferência ‘First year of 20th century’.
NExp2 – representa o mês.
NExp3 – representa o dia.
NExp4 – representa a hora. Hora deve ser especificado no formato 24-
horas.
NExp5 – representa os minutos.
NExp6 – representa os segundos.
Nota: Se somente um dos componentes (dat ou hora) é válido, somente
este será considerado. Por exemplo: YMDHMStoT(1990, 31, 2, 12, 10, 15) irá
retornar um datetime válido com a parte da data nula. A hora será 12:10:15.

3.16. ADDMTH
(Transações, Procedimentos/Relatórios, Work Panels)
Addmth(<Date>,<NExpression>)

35
Retorna a data referente a adição de <NExpression> meses para <Date>.
Um valor nulo é retornado se <Date> for uma data inválida.

3.17. ADDYR
(Transações, Procedimentos/Relatórios, Work Panels)
Addyr(<Date>,<NExpression>)

Retorna a data correspondente a <Date> mais <NExpression> anos.

3.18. AGE
(Transações, Procedimentos/Relatórios, Work Panels)
Age(<DExpression1>[ ,<DExpression2>])

Retorna a quantidade de anos entre <DExpression1> e <DExpression2>.


Se <DExpression2> não for especificada, a função Today( ) é assumida.

3.19. EOM
(Transações, Procedimentos/Relatórios, Work Panels)
Eom(<Date>)

Retorna o número do último dia correspondente ao mês referente a data


informada.

3.20. TDIFF
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)
TDiff( <DateTimeExpr1>, <DateTimeExpr2>)

Tipo retornado: Numérico.


Retorna os segundos da diferença entre dois DateTime recebidos como
parâmetros (DateTimeExpr1 – DateTimeExpr2)
Se DateTimeExpr2 for maior que DateTimeExpr1, um valor negativo
será retornado.

36
3.21. TADD
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)
TAdd( <DateTimeExpr>, <SecondsExpr> )

Tipo retornado: DateTime


Soma os segundos informados em <SecondsExpr>) ao datetime
<DateTimeEspr>.

3.22. ASK
(Transações, Procedimentos/Relatórios, Work Panels)
Ask(‘msg text’)

Pede ao usuário para que informe o valor de um Atributo ou variável


antes de entrar no objeto.
‘msg text’ é a mensagem que será mostrada quando for solicitado o valor.
Exemplo:
&CliIni = ask(‘Cliente Inicial: ‘);
&CliFin = ask(‘Cliente Final: ‘);

3.23. UDF
(Transações, Procedimentos/Relatórios, Work Panels)
Udf(‘Usr-Pgm’, Par1, .., Parn)

Chama uma rotina que não usa tabelas e retorna um resultado.


Programas que NÃO USAM TABELAS podem ser referenciados usando a
função UDF.
Quando você escreve o código para ‘UsrPgm’, deve incluir um parâmetro
a mais no final da lista de parâmetros, que deverá conter o valor retornado
para a função. Os outros parâmetros não poderão retornar nenhum valor.
Exemplo: TotalPoints = UDF(‘PCalPts’, PilotNbr)

3.24. UDP
(Transações, Procedimentos/Relatórios, Work Panels)
Udp(‘Usr-pgm’, Paar1, ..., Parn)

37
A função UDP chama um programa que pode USAR TABELAS e retorna
um valor.
Quando o código para o programa ‘UsrPgm’ for escrito, deverá ser
incluído no final da lista de parâmetros, um parâmetro o qual conterá o valor
que será retornado pela função.
Note que a função UDP fecha as tabelas antes da chamada ser feita, e
abre-as novamente após retornar. Se ‘Usr-Pgm’ não usa tabelas, a função UDF
é recomendada para que ganhe performance.

3.25. ROWS
(Procedimentos/Relatórios, Work Panels)
Rows(&Array( ))

Retorna o número de linhas definidas para um vetor.

3.26. COLS
(Procedimentos/Relatórios, Work Panels)
Cols(&Array( ))

Retorna o número de colunas de um vetor bidimensional.

3.27. TIME
(Transações, Procedimentos/Relatórios, Work Panels)
Time( )

Retorna a hora no formato ‘hh:mm:ss’.


No AS/400, esta função retorna a hora inicial do JOB.
No ambiente Micro/LAN, retorna a HORA DO SISTEMA, assim Time( )
e SYSTIME( ) são equivalentes.

38
3.28. SYSTIME
(Transações, Procedimentos/Relatórios, Work Panels)
Systime( )

Retorna a hora do sistema no formato ‘hh:mm:ss’.

3.29. SYSDATE
(Transações, Procedimentos/Relatórios, Work Panels)
Sysdate( )

Retorna a data do sistema.

3.30. USERCLS
(Transações, Procedimentos/Relatórios, Work Panels)
Usercls( )

Retorna a classe do Usuário definida no User Profile. Esta regra é válida


somente no AS/400.

3.31. USERID
(Transações, Procedimentos/Relatórios, Work Panels)
Userid( )

No ambiente AS/400, esta função retorna a identificação do usuário


definida no User Profile.
No ambiente Micro/Lan esta função retorna o conteúdo da variável de
ambiente do DOS chamada LOGNAME. Para habilitar o uso dessa função, essa
variável deverá ser criada para todas as estações.
Em um ambiente Client/Server esta função retorna a identificação do
usuário conectado ao servidor.

3.32. WRKST
(Transações, Procedimentos/Relatórios, Work Panels)
Wrkst( )

39
Retorna a identificação da Estação de Trabalho correspondente.
Em ambiente Micro/Lan retorna o conteúdo da variável de ambiente do
DOS, PSTATION. Para habilitar o uso dessa função, você precisa setar esta
variável de ambiente.

3.33. STR
(Transações, Procedimentos/Relatórios, Work Panels)
Str(N1 [ ,N2 [ ,N3]])

Converte o valor da expressão numérica em <N1> para uma string


caracter, alinhado pela direita, <N2> é o tamanho total de <N1> (incluindo o
sinal e o ponto decimal), e <N3> é o número de decimais. Se você especificar
menos decimais do que a expressão numérica <N1> possui, o valor será
arredondado.
Notas:
• Zeros não significativos serão truncados.
• O valor Default para N2 = 10
• O valor Default para N3 = 0

3.34. SUBSTR
(Transações, Procedimentos/Relatórios, Work Panels)
Substr(S1,N1,N2)

Retorna a substring de um dado informado.


Retorna a substring de S1 começando na Posição N1, com um tamanho de
N2 caracteres.

3.35. CONCAT
(Transações, Procedimentos/Relatórios, Work Panels)
Concat( S1, S2 [ ,S3])

Concatena duas strings incluindo um separador se informado.

40
Retorna a string resultante da concatenação de S1 e S2 e o separador
S3. Os brancos das strings S1 e S2 são truncados. Se S3 não for especificado,
não serão inseridos separadores.

3.36. SPACE
(Transações, Procedimentos/Relatórios, Work Panels)
Space(<Att | Var | Const>)

Retorna uma string caracter com a quantidade informada de espaços em


branco.
No AS/400, o atributo ou variável que recebe a função, será
completamente preenchido com espaços, independente do valor informado para
o argumento.

3.37. LEN
(Transações, Procedimentos/Relatórios, Work Panels)
Len(S1)

Retorna o número de caracteres de uma expressão.

3.38. TRIM
(Transações, Procedimentos/Relatórios, Work Panels)
Trim(<Str>)

Remove todos os brancos a esquerda e a direita da expressão caracter


<Str> informada.

3.39. LTRIM
(Transações, Procedimentos/Relatórios, Work Panels)
LTrim (<Str>)

41
Remove todos os brancos a esquerda da expressão caracter <Str>. Esta
função é especialmente útil para remover os brancos que são inseridos quando
você utiliza a função Str( ) para converter um valor numérico para uma string
caracter.

3.40. RTRIM
(Transações, Procedimentos/Relatórios, Work Panels)
Rtrim(<Str>)

Remove os brancos a direita de uma string caracter informada.

3.41. UPPER
(Transações, Procedimentos/Relatórios, Work Panels)
Upper(<Str>)

Retorna a correspondente maiúscula da string <Str>. Cada letra


minúscula (a - z) é convertida em letra maiúscula (A - Z) no resultado da
função, todos os outros caracteres permanecem inalterados.

3.42. LOWER
(Transações, Procedimentos/Relatórios, Work Panels)
Lower( <Str>)

Converte todas as letras maiúsculas (A – Z) da expressão caracter <Str>


para letras minúsculas (a – z). Todos os outros caracteres da expressão
permanecerão inalterados.

3.43. INT
(Transações, Procedimentos/Relatórios, Work Panels)
Int( <Exp>)

Esta função retorna a parte inteira da expressão <Exp>.

42
3.44. ROUND
(Transações, Procedimentos/Relatórios, Work Panels)
Round(<NExp1>,<NCte>)

Arredonda o valor de <NExp1> para <NCte> casas decimais.

3.45. TRUNC
(Transações, Procedimentos/Relatórios, Work Panels)
Trunc(<NExp1>,<NCte>)

Trunca o valor de <NExp1> para <NCte> decimais.

3.46. VAL
(Transações, Procedimentos/Relatórios, Work Panels)
Val(<CExpression>)

Esta função converte um número de uma expressão caracter para um


valor do tipo numérico. Ela processa os números em uma expressão caracter da
esquerda para a direita até que um caracter não numérico é encontrado.

3.47. COLOR
(Procedimentos/Relatórios, Work Panels)
Color(<GXColor>);
Color(<GXColor>,[<Att1>|&<Var>]) [IF <Cond>];

Permite o uso de cores para os atributos, variáveis e tela.


(Idem a regra COLOR).

3.48. RGB
(Procedimentos/Relatórios, Work Panels)
RGB( <Red>,<Grn>,<Blu>)

43
Retorna um número representando um valor de cor RGB, dados os 3
seguintes parâmetros:
• Red : Número na faixa de 0 até 255, inclusive, que representa o
componente vermelho da cor.
• Green : Número na faixa de 0 até 255, inclusive, que representa o
componente verde da cor.
• Blue : Número na faixa de 0 até 255, inclusive, que representa o
componente azul da cor.
Um valor de cor RGB especifica a intensidade relativa de vermelho,
verde e azul para gerar uma determinada cor.

3.49. NULL
(Transações, Procedimentos/Relatórios, Work Panels)
Null(<Att | Var>)

Retorna um valor Boleano ‘true’ se o valor do atributo ou variável for


nulo. O valor nulo para campos do tipo Numérico é zero, e para campos tipo
Caracter e Data é uma string em branco.

3.50. NULLVALUE
(Transações, Procedimentos/Relatórios, Work Panels)
Nullvalue(<Att | Var>)

Retorna um valor nulo do mesmo tipo da definição do Atributo/Variável.

3.51. LOADBITMAP
(Transações, Procedimentos/Relatórios, Work Panels)
LoadBitmap(< ’FileName’|Att|Var>)

Incorpora Bitmaps no design do Form.


A função LoaBitmap é usada para definir qual bitmap será associada a
uma variável.

44
3.52. OLD
(Transações)
Old(<Att>)

Retorna o último valor armazenado de um dado atributo <Att>

3.53. PREVIOUS
(Transações)
Previous( )
Previous(<Att>)

Retorna o valor de <Att> usado na última inserção da transação do


programa corrente. O valor não é armazenado e ele é perdido assim que o
usuário deixa a Transação. Se o atributo <Att> não for especificado, o atributo
que está sendo assinalado é assumido.

3.54. AFTER
(Transações)
After(<Event>)

Retorna Verdadeiro ou Falso dependendo de que estágio a transação se


encontre.
Retorna Verdadeiro se um evento especificado está acontecendo naquele
momento na transação.
Este evento pode ser disparado porque a execução de uma Transação
passou por um certo Nível, um certo atributo foi informado, ocorreu uma Ação
em uma Transação ou toda a transação foi finalizada. GeneXus
automaticamente realiza onde e como uma regra precisa ser executada.
Entretanto, o usuário pode forçar que o GeneXus execute uma determinada
regra depois que um dos eventos seja mencionado.
<Event> pode ser: Insert
Update
Delete
Confirm

45
Trn
<Att>
Level(<Att>)
Nota: Quando for incluída a regra After em uma regra condicional, a
regra será executada SOMENTE imediatamente após o evento After ocorrer
e em nenhum outro lugar.

3.55. LEVEL
(Transações)
Level(<Att>)

Retorna Verdadeiro se a execução da Transação está no Nível de um


dado Atributo. GeneXus automaticamente realiza onde e quando uma regra
precisa ser executada. Contudo o usuário pode forçar GeneXus a executar uma
dada regra a um Nível especificado da transação.

3.56. INSERT/UPDATE/DELETE
(Transações)
Insert
Update
Delete

Retorna Verdadeiro quando a transação está em modo de,


respectivamente, Inserção/Alteração/Deleção, caso contrário retorna Falso.

46
4. Operadores Disponíveis no GeneXus

• Operadores aritméticos ....................: +, -, *, /, ^


• Operadores lógicos .............................: .AND. .OR. .NOT.
• Operadores relacionais ......................: (, ), =, <, >, <>, >=, <=, LIKE

47
5. Variáveis Internas do GeneXus

5.1. TODAY
(Transações, Procedimentos/Relatórios, Work Panels)

Contém a data do sistema.


Formato: DD/MM/AAAA

5.2. TIME
(Transações, Procedimentos/Relatórios, Work Panels)

Contém a hora do sistema.


Formato: HH:MM:SS

5.3. PAGE
(Procedimentos/Relatórios)

Formato : N(4)
Contém a página corrente do Relatório.

5.4. LINE
(Procedimentos/Relatórios)

A variável &Line contém a linha corrente do Relatório, ou Procedimento,


no momento da execução.
Nota: Tome cuidado para não alterar o valor de &Line, porque senão
GeneXus perderá o controle de ejeção.

5.5. OUTPUT
(Procedimentos/Relatórios)

A variável de saída contém o código do dispositivo de saída corrente.


Pode ser : ‘SRC’ ou ‘PRN’

48
5.6. PGMDESC
(Transações, Procedimentos, Relatórios, Work Panels E Web Panels)

Esta variável contém a descrição do programa ativo. Esta descrição é a


informada na opção Information. Tipo é Caracter(30).

5.7. PGMNAME
(Transações, Procedimentos, Relatórios, Work Panels e Web Panels)

Esta variável contém o nome do programa ativo. O nome é o especificado


na opção Information. Tipo é caracter(30).
Exemplo: call(‘Pprocess’, &Pgmname, Parm1, ...);
Suponha que tenhamos a procedure (‘Pprocess’) que é chamado por vários
programas. Esta procedure processa as informações conforme o programa
chamador. Se é chamado por vários, nós podemos incluir o nome do programa na
lista de parâmetros para identificar quem está chamando o procedimento.

5.8. MODE
(Transações)

Formato : C(3)
Permite determinar o modo válido pelo qual a Transação poderá
trabalhar.
Valores válidos: ‘INS´ para inserir
‘ UPD’ para atualizar
´DEL´ para deletar
Nota: O conteúdo de &Mode deve ser letras maiúsculas.
Funciona somente se recebido como parâmetro.
Apesar de não estar disponível na lista de variáveis do GeneXus, ao você
defini-la, independente das características que informar, o formato acima
sempre prevalecerá.

49
6. Propriedades do GeneXus

Importante: estas propriedades somente são válidas para Visual Basic e


Visual Foxpro, os demais geradores vão ignorá-las.

6.1. VISIBLE
(Tipos de controle: Todos)

Determina qual controle é visível ou escondido.

Valores:
0: Falso -> o controle não será visível no form.
1: Verdadeiro -> o controle será visível no form.

NOTA: Uma vez que o controle foi assinalado “invisível”


(Controle.Visible=0) ele permanece dessa maneira até que você o torne visível
novamente (Controle.Visible=1).
Exemplo: bitmap.Visible = 0 if RoupaCat = 2;
Bitmap.Visible = 1 if RoupaCat <>2;
Para mostrar a foto da roupa dependendo da categoria, deveríamos
fazer as regras acima.

6.2. TOLLTIP
(Tipos de controle: Button, Edit, Check Box)

Atribui um tip à um controle quando o mouse estiver posicionado sobre o


mesmo. Uma string deve ser informada.
Exemplo: Assinalando um tip ao botão cujo nome é TESTE.
Event start
Teste.tooltiptext=’ informações para teste’
EndEvent

50
6.3. CAPTION
(Tipos de controle: Button, Frame, Text, Radio Button)

Forms: Determina o texto a ser mostrado como título na barra de títulos


do form. Quando o form é minimizado, o texto é mostrado abaixo do ícone do
Form.
Outros controles: Determina o texto a ser mostrado no controle.
Exemplo: Form.Caption = ´My Form – Update’ if update;
Form.Caption = ´My Form – Delete’ if delete;
Form.Caption = ´My Form – Insert’ if insert;
Neste exemplo, o título do form muda dependendo do modo corrente
(ins., del. ou alt.).

6.4. ENABLE
(Tipos de controle: Button, Edit, Check Box, Radio Button, Combo Box, Subfile,
Frame, Text)

Determina se o controle pode responder aos eventos de usuário.


Valores:
1: (Verdadeiro) Permite o objeto responder aos eventos.
2: (Falso) Impede o objeto de responder aos eventos.
Exemplos: 1) EvtBtn.Enabled = 0 if update;
Este botão é DESABILITADO se estiver em modo Update.
2) Att2.Enabled = 0 if .not. Null(Att1);
Atributo Att2 não pode ser editado se atributo Att1 não
for nulo.
3) subfile.Enabled = 0 if update;
O subfile não pode ser acessado se estiver em modo
Update (Dados no subfile não podem ser modificados).

6.5. ACTIVEPAGE
(Tipos de controle: Tab)

É usada para indicar qual é a página ativa de um tab control. Esta será
“visível” para o usuário.
Exemplo: MyTab.ActivePage = 1 // a primeira página é ativada

51
MyTab.ActivePage = Mytab.Activepage + 1 // move para a
próxima página.
NOTA: esta propriedade não é implementada no gerador Visual Basic 4.0

6.6. PAGECOUNT
(Tipos de controle: Tab)

É usada para obter o número de páginas de um tab control. É


normalmente usada junto com a propriedade ActivePage.
Exemplo: IF MyTab.ActivePage < MyTab.PageCount
MyTab.ActivePage = MyTab.ActivePage + 1
ELSE
Btn_Next.Caption = “Finish”
ENDIF
NOTA: esta propriedade não é implementada no gerador Visual Basic 4.0

6.7. BACKCOLOR, FORECOLOR


(Tipos de controle: Todos)

Determina as cores de fundo e frente respectivamente de um controle.


Um valor numérico representando um ‘RGB color value’ deve ser assinalado.
Exemplo: Para que a cor de fundo de um controle de edição seja verde,
devemos fazer: EditCrtl.Backcolor = RGB(0,255,0)
Exemplo: Para que a cor de frente de um controle de edição seja azul,
devemos fazer: EditCrtl.Forecolor = RGB(0,0,255)

6.8. TOP, LEFT


(Tipos de controle: Todos)

Determina a distância interna (em pixels) entre o canto


superior/esquerdo do controle e o canto superior/esquerdo de quem contém
(Frame ou Screen).
Exemplo: Form.Top = 500;
Form.Left = 600;

52
Neste exemplo o form do objeto será mostrado 500 pixels abaixo do
topo da página e 600 pixels à esquerda na execução.

6.9. FILLSTYLE
(Tipos de controle: Retângulo)

Determina a ‘sombra’ utilizada para preenchimento do retângulo.


Valores:
0 Solid
1 Transparente
2 Linha Horizontal
3 Linha Vertical
4 Upward Diagonal
5 Downward Diagonal
6 Cruzado
7 Cruzado em Diagonal
Exemplo: textframe.FillStyle = 2;
Neste exemplo o retângulo cujo nome nome é “textframe” será exibido
assim:

TEXTO

6.10. FILLCOLOR
(Tipos de controle: Retângulo)

Determina a cor usada para preenchimento do retângulo. Um valor


numérico representado um ‘RGB color value’ deve ser assinalado. O ‘Fill check
box’ no diálogo de propriedades do controle retângulo também deve ser
assinalado.
Exemplo: textframe.FillColor = rgb(255,255,0);

6.11. DEFAULT
(Tipos de controle: Botão)

53
É utilizado para especificar qual é o botão de comando default.
Valores: 0: Falso
1: Verdadeiro
Somente um botão de comando no form pode ser default. Quando um
botão de comando é setado como verdadeiro, automaticamente todos os demais
botões no form serão setados como Falso.

6.12. BITMAP
(Tipos de controle: Botão e Bitmap)

É usada para mostrar o bitmap assinalado no path.


Exemplos: 1) EventBtn.Bitmap = loadbitmap(‘c:\mypath\mypict.bmp’)
2) &bmp = ‘c:\mypath\mypict.bmp’;
EventBtn.Bitmap = loadbitmap(&bmp);
Nestes exemplo o bitmap gravado em c:\mypath\mypict.bmp será
mostrado sobre o botão “EventBtn”.

6.13. BACKSTYLE
(Tipos de controle: Texto)
Determina se um rótulo ou fundo de um objeto é transparente ou opaco.
Valores:
0: Transparente – cor de fundo e qualquer gráfico são visíveis atrás do
controle.
1: Opaco (Default) – a cor de fundo do controle preenche o controle e
oculta qualquer cor ou gráfico atrás dele.

6.14. FONTNAME
(Tipos de controle: Button, Edit, Check box, Radio Button, Combo Box, Dynamic
Combo Box, Subfile, Column)

Determina a fonte usada para mostrar o texto num controle. Você deve
assinalar uma expressão tipo string especificando o fontname a ser usado.
Exemplo: EvtBtn.fontName = ‘Times New Roman’
Onde EvtBtn é o nome do controle de um botão.

54
Em geral, você deve mudar FontName antes de setar o tamanho e estilo
dos atributos com as propriedades FontSize, FontBold, FontItalic,
FontStrikethru e FontUnderline.

6.15. FONTITALIC, FONTUNDERLINE, FONTBOLD,


FONTSTRIKETHRU
(Tipos de controle: Button, Edit, Check Box, Radio Button, combo Box, Dynamic
Combo Box, Subfile, Column)

Determina o estilo da fonte nos seguintes formatos: FontItalic,


FontUnderline, FontBold, FontStrikethru.
Valores:
1: (Verdadeiro) Ativa a formatação no estilo escolhido.
2: (Falso) Desativa a formatação no estilo escolhido.
Exemplo: subcol1.FontItalic = 1 (onde subcoll é o nome de uma coluna
do subfile)

6.16. FONTSIZE
(Tipos de controle: Button, Edit, Check Box, Radio Button, Combo Box, Dynamic
Combo Box, Subfile, Column)

Determina o tamanho da fonte a ser usado para mostrar o texto no


controle.
Exemplo: EvtBtn.fontSize = 20
Onde EvtBtn é o nome de um controle botão e 20 é o tamanho utilizado
para a font default (ou para a fonte setada na propriedade FontName).

6.17. WIDTH, HEIGHT


(Tipos de controle: Button, Edit, Check Box, Radio Button, Combo Box, Dynamic
Combo Box, Subfile, Frame, Text)

Determina a largura e altura respectivamente do controle. Um valor


numérico deve ser assinalado.
NOTA: A unidade de escala para medir largura e altura em Visual Basic é
TWIPS (aproximadamente 1/15 pixel) que é a unidade padrão do VB.

55
Em versões futuras deste gerador, a unidade de escala será pixels.
A unidade de escala para medir largura e altura em Visual FoxPro é
pixels.
Exemplo: foto.Width = 200 (foto é um controle tipo bitmap)
Foto.Height = 200
A dimensão deste controle tipo bitmap será 200 x 200 unidades.

6.18. TITLE
(Tipos de controle: Column)

Determina o título das colunas do subfile em tempo de execução. Uma


string de caracteres deve ser informada.
Exemplo: subfcol1.Title = ‘Descrição’;

6.19. WINDOWSTATE
(Tipos de controle: Frame)

Determina o estado visual de um form em tempo de execução.


Valores: 0: Normal.
1: Minimizado (diminui para um ícone).
2: Maximizado (aumenta para o estado máximo).
Exemplo: Form.WindowState = 2;
Neste exemplo o form será maximizado (embora o usuário possa
manualmente mudar o tamanho do form durante a execução)

6.20. LINESELECTOR
(Tipos de controle: Subfile)

Esta propriedade indica se o subfile possui a borda esquerda.


Valores:
0: Falso. O subfile NÃO terá a borda esquerda.
1: Verdadeiro. O subfile terá a borda esquerda.

56
6.21. REDRAW
(Tipos de controle: Subfile)

Esta propriedade indica se o subfile será redesenhado.


Valores:
1: Verdadeiro. O subfile será redesenhado.
2: Falso. O subfile não será redesenhado.
Exemplo: subfile.Redraw = 0;
subfale.FontName = ‘Small Fonts’;
subfcol1.Title = ‘Name’;
subfcol2.Title = ‘Address’;
subfcol2.FontItalic = 1;
subfile.Redraw = 1;
Neste exemplo, todas as alterações no subfile são executadas antes
(nome das colunas, fontes, etc) e então o subfile é redesenhado. Isto é feito
somente para melhorar performance.

6.22. TITLEFORECOLOR, TITLEBACKCOLOR


(Tipos de controle: Column)

Determina a cor de frente e de fundo respectivamente, do título de uma


coluna do subfile.
Um valor numérico representando uma ‘RGB color value’ deve ser
informado.
Exemplo: subfcol1.TitleForeColor = rgb(0 ,255 ,0 );
Isto mudará a cor de frente do título da coluna para verde.
Exemplo: subfcol1.TitleBackColor = rgb(0 ,255 ,0);
Isto mudará a cor de fundo do título da coluna para verde.

6.23. TAG
(Tipos de controle: Todos)

Esta propriedade é usada para assinalar uma string de identificação ao


controle (sem afetar nenhuma das outras propriedades setadas). Esta
propriedade é muito útil quando você precisa checar a identificação do
controle. Uma string de caracteres deve ser informada.

57
Exemplo: CrtlName.tag = “associated text”

6.24. BORDERSTYLE
(Tipos de controle: Subfile)

Determina o estilo de borda de um subfile.


Valores: 0: None (Sem borda)
1: Fixed Single (borda simples e sem alteração de tamanho).
2: Sizable (Este é o valor default).
3: Fixed Double (Borda 3D e sem alteração de tamanho).
Exemplo: subfile.BorderStyle = 0;
Neste exemplo o subfile não terá borda.

7. Eventos de Controle

7.1. DBCLICK
(Tipos de controle: Bitmap, Text, Edit)

Ocorre quando o usuário pressiona o botão esquerdo do mouse duas


vezes sobre um mesmo controle. Para um Form, o evento DblClick ocorre
quando o usuário dá um duplo clique sobre um controle desabilitado ou uma área
em branco do Form. Para um controle, isto ocorre quando o usuário dá um duplo
clique sobre um controle com o botão esquerdo do mouse.
Exemplo: Event foto.DblClick
Call(wShowcli, CliCode)
Endevent
Neste exemplo quando o usuário clicar duplamente sobre o bitmap que
contém a foto do cliente, uma Work panel, que mostra as informações do
cliente, é chamada.

7.2. CLICK
(Tipos de controle: Bitmap, Column, Text, Radio Button, Check Box, Dynamic
Combo Box, Combo Box, Edit)

58
Ocorre quando o usuário clica o botão esquerdo do mouse sobre o
controle.
Exemplo: Event text.Click
Msg(‘Explained text: .............’)
Endevent
Neste exemplo uma mensagem será exibida quando o usuário clicar sobre
o controle tipo texto chamado “text”.

7.3. ISVALID
(Tipos de controle: Radio Button, Check Box, Dynamic Combo Box, Combo Box,
Edit)

Ocorre quando a entrada do campo é válida.


Exemplo: Event CliCode.IsValid
Call(TclientInfo,CliCode)
EndEvent
Neste exemplo quando o usuário informar o código do cliente, outra
transação para digitar as informações da cliente é chamada se o código do
cliente digitado for válido.

7.4. RIGHTBUTTON
(Tipos de controle: Edit)

Ocorre quando o botão da direita do mouse é pressionado sobre o


controle.
Exemplo: Event CliCode.RightButton
Msg(‘Enter client code, value range: 1-100’)
Endevent
Neste exemplo o botão direito é usado para mostrar um texto
explicativo.

59
8. Métodos

Importante: MÉTODOS somente funcionam em Visual Basic e Visual


Foxpro, os demais geradores irão ignorá-los, com exceção do Método SetFocus
que foi implementado em todos os geradores.

8.1. SETFOCUS
(Tipos de controle: Edit, Check Box, Radio Button, Combo Box, Dynamic Combo
Box, Button, Subfile, Frame)

Direciona a entrada de dados a um controle específico.


Exemplo: Event ‘GetClient’
Call( PgetCli, CliCode, CliName)
SupCod.Setfocus()
EndEvent
Suponha que tenhamos um botão no Form que chama um procedimento
para obter o nome do cliente indicado no código e nós queremos direcionar a
entrada de dados (posicionar o cursor) no atributo SupCode depois do call.
Isto pode ser feito usando o método setfocus com o atributo SupCode dentro
do evento associado ao botão, como mostrado acima.

8.2. REPAINT
(Tipos de controle: Edit, Check Box, Radio Button, Combo Box, Dynamic Combo
Box, Text, Retângulo)

Este método muda as propriedades do controle.


Exemplo:
Este método é usado para ‘repintar’ o controle se qualquer das suas
propriedades foi modificada, por exemplo cor, fonte, tamanho, etc, e você quer
mostrar as mudanças.
PoNbr.FontBold = 1
PoNbr.Repaint( )

8.3. CLEAR, ADDITEM


(Tipos de controle: Combo Box e Dynamic Combo Box)

60
Clear: Apaga todos os itens de um Combo Box ou Dynamic Combo Box.
AddItem: Adiciona um novo ítem no fim de um Combo Box ou Dynamic
Combo Box.
Sintaxe: controle.additem(código, descrição[ ,índice])
‘índice é opcional e representa a posição onde o item é inserido.
Se nenhum índice é especificado o ítem é adicionado no fim.
Exemplo: Vamos apagar o conteúdo de um Combo Box antes de adicionar
novos itens da tabela e carregá-lo com todos os países do continente
Americano, o primeiro item será ‘All’ .
&Var.clear( )
&Var.additem(0, ‘All’)
for each
Where continentCod = ‘AME’
&Var.additem(CountryCod,CountryName)
EndFor

8.4. REMOVEITEM
(Tipos de controle: Combo Box e Dynamic Combo Box)

Apaga o item, cujo código é indicado pelo ‘código’, de um combo Box ou


Dynamic Combo Box.
Sintaxe: control.removeitem(code)
Remove o primeiro ‘code’ que for encontrado.

8.5. LOAD
(Tipos de controle: Subfile)

Carrega uma nova linha ao subfile de Work Panels e Web Panels. Este
método é o mesmo que o comando Load. Deve ser utilizado dentro do evento
Load como no exemplo:
Event Load
For each InvCode
&InvCode = InvCode
&InvDat = InvDate
&Type = “INV”

61
.....
sfl_1.Load( )
Endfor
EndEvent
Este método é muito útil quando você tem mais de um subfile no form
(esta feature será liberada em versões futuras). Neste caso você especifica
para qual subfile a linha deve ser carregada.
sfl_1.Load( ) or sfl_2.Load( )

8.6. SORT
(Tipos de controle: Subfile)

Ordena o subfile pelo atributo especificado.


Exemplo: sfl_1.Sort(PrdName)
Onde: PrdName é um atributo do subfile. O subfile será ordenado então
por PrdName, sem a criação de um índice temporário, se não existir nenhum
índice ordenado pelo atributo escolhido (esta é a diferença entre o método
SORT e a regra ORDER)

8.7. PRINTFORM
(Tipos de controle: Frame)

Imprime a janela da Work Panel ou transação na impressora default.


Exemplo: Event ‘Print’
Form.printform( )
EndEvent
Este evento pode ser associado a um botão e imprime a janela corrente.
NOTA: Este método não está implementado em Visual Foxpro.

8.8. REFRESH
(Tipos de controle: Frame e Subfile)

Atualiza os valores no subfile ou form.

62
Este método é muito útil se você tem mais de um subfile no form (esta
feature será liberada em versões futuras). Neste caso você pode especificar
qual subfile você quer realizar o refresh:
Sfl_1.Refresh( ) or sfl_2.Refresh( )
Também pode ser utilizado para atualizar valores de qualquer atributo.

9. Propriedades do Modelo Principal

9.1. PREFERÊNCIAS

Estas preferências são definidas para a Base de Conhecimento, em


outras palavras, são válidas para todos os modelos.
Modo de uso:
Posicione o cursor sobre a propriedade que você deseja editar, e
selecione a opção desejada no Combo Box no topo da tela.
No canto superior esquerdo do editor de propriedades, há 3 botões
usados para salvar ou cancelar as modificações e assinalar o valor default.
NOTA: Sempre use o botão para assinalar o valor default, não tecle o
caractere ‘*’.

MAXIMUN NUMERIC LENGHT

Por default, GeneXus controla a maioria das suas limitações, tornando o


trabalho em diferentes plataformas viável à partir de uma única definição, mas
é possível mudar estes controles.
Esta preferência é usada para especificar o tamanho máximo de um
campo numérico.
Valores: O valor default desta preferência é 18, mas pode ser alterado
para qualquer valor entre 4 e 30.
NOTA:
• Valores maiores que 18 somente são suportados pelo gerador RPG.

63
• Atributos e variáveis não são verificados quando este valor é
modificado para um valor menor que 18, assim, é recomendável
verificar se o novo valor é correto.

FUNCTIONS

Esta preferência é usada quando você deseja utilizar funções que não
são explicitamente suportadas pelo GeneXus.
Esta preferência somente é válida quando os objetos são salvados. (Essa
preferência nos modelos de prototipação e produção será validada na
especificação).
Assim, você poderá salvar um objeto que utilize uma função não standard
se esta preferência no modelo de design estiver setada como “Allow standard
functions only”.
Valores:
• Allows standard functions only on saving: (Permite somente funções
standard) Somente funções standard suportadas pelo GeneXus
podem ser utilizadas.
• Allows non-standard functionsnon saving: (Permite funções não-
standard) Funções são documentadas pelo GeneXus podem ser
utilizadas.
Valor default: Allows standard functions only on saving.

TIME FORMAT

Controla o formato no qual a parte das horas dos atributos tipo Date
Time são pedidos e mostrados (tanto na tela quanto na impressão). Também
controla o tamanho dos atributos/variáveis do tipo Date Time.
Esta preferência é definida na Base de Conhecimento (design) mas, cada
modelo pode ter um valor diferente para a mesma.
Valores:
• Language dependent: depende da linguagem selecionada de acordo
com a tabela seguinte:
Linguagem Formato da Hora
Inglês 12 horas
Espanhol 24 horas
Português 24 horas

64
Italiano 24 horas
• Valor default: depende da linguagem.
NOTA: Se o uso do formato 12 Horas é especificado ou inferido, de
acordo com a linguagem selecionada, os campos terão 3 caracteres a mais (tela
ou impressora) correspondendo às strings ‘AM’ ou ‘PM’.

9.2. GERADORES

Neste diálogo você pode definir todos os tipos de geradores que você
usará nos modelos para gerar seus programas.
Escolha o botão New Type para adicionar um tipo novo, você deve definir
um nome para o novo tipo de gerador. Todos os tipos de geradores definidos
aqui irão aparecer na lista de geradores possíveis (Generators Tab) em cada
modelo da Base de Conhecimento. Então em cada modelo você assinalará um
gerador em particular (ex.: Visual Basic, RPG, etc.).
Há 2 tipos de geradores pré-definidos: Default (usado como default na
geração dos programas) e Reorg (usado para reorganização das base de dados)
cujos nomes não podem ser mudados.
Tecle o botão Delete Type para apagar o tipo de gerador selecionado. Se
o tipo de gerador selecionado estiver sendo usado em qualquer modelo você não
será capaz de apagá-lo (uma mensagem de erro será mostrada).

9.3. MODEL FORMS

Você pode definir mais de uma tela para projetos que utilizem forms
(Transação/Work Panels). Na especificação você pode escolher um dos forms
definidos, dependendo do modelo. Cada modelo tem uma lista de Form Classes
válidas.
A lista do lado esquerdo inclui todas as forms classes existentes na Base
de Conhecimento, com os botões de Add e Remove você pode selecionar quais
forms irá utilizar no modelo corrente.
Há duas forms classes pré-definidas: G – Gráfica e T – Texto.
Estas não podem ser apagadas ou renomeadas. A lista do lado direito é
específica para cada modelo.

65
9.4. PROMPTS

Aqui você pode setar as opções de prompts para o modelo principal


(Design), as opções especificadas aqui podem ser utilizadas nos outros
modelos.
Se você selecionar botão Default Settings, nenhum efeito especial será
usado.
Selecionando o botão Design Model Settings, você poderá especificar um
efeito par aos prompts no modelo corrente.
• Button Prompt: O atributo aparecerá com uma seta para cima ao lado
do mesmo.
• Colored Prompt: O atributo aparecerá com uma cor diferente. Se
você escolher esta opção, a cor especificada aqui terá preferência
sobre qualquer cor especificada para este atributo em qualquer form.

Outros Modelos

Você pode setar a opção de prompt. Aqui você indicará como os atributos
para os quais GeneXus gera prompts, deverão aparecer nos Forms.
A opção especificada aqui somente terá validade para os atributos
definidos como EDIT.
Se você selecionar Design Model Settings, o que foi setado no modelo de
design será utilizado no modelo corrente.
• Button Prompt: O atributo aparecerá com uma seta para cima ao lado
do mesmo.
• Colored Prompt: O atributo aparecerá com uma cor diferente. Se
você escolher esta opção, a cor especificada aqui terá preferência
sobre qualquer cor especificada para este atributo em qualquer form.

66
10. Propriedades das Transações

10.1. TRANSACTION INTEGRITY – INTEGRIDADE


TRANSACIONAL

COMMIT ON EXIT

Programas gerados pelo GeneXus executam commits no fim de cada


transação (referenciando-se ao conceito database transaction, não ao objeto
GeneXus). Este commit automático é incluído em todos os programas que
atualizam base de dados. Não é incluído em Reports, Work Panels, Web Panels
e procedimentos que não atualizam base de dados.
Esta propriedade é usada para controlar ou não se o commmit
automático é realizado.
Esta propriedade faz sentido em Transações e Procedures que alteram
a bse de dados e são chamados por outros programas. Neste caso, o programa
chamador (ou programa chamador do chamador) é responsável pelo commit ou
rollback da LW (Logical Work Unit).
Valores:
• YES – o programa gerado executa um commit no fim da LWU.
• NO – o programa gerado não executa um commit no fim da LWU.
O valor default depende do gerador selecionado.
Exemplo: Você pode encontrar a situação de ter que dividir uma
transação em duas. Um exemplo típico é descrito no exemplo que segue. Muitos
dados devem ser digitados na Transação de cadastramento de funcionário,
assim necessitamos dividir a mesma em duas: dados do empregado e dados da
função. Para ter as duas transações funcionando em conjunto, nós colocamos no
final da primeira transação, um CALL para a segunda TRN.
TRN: Funcionário TRN: Função
................................ ...............................
................................ ...............................
CALL Tfunção ...............................
................................
................................
Commit

67
Commit on Exit = YES Commit on Exit = NO
O que mostra o exemplo acima é que uma vez dado entrada nos dados na
primeira transação, nós iremos imediatamente dar entrada nos dados da
segunda TRN. Mas nós queremos unificar as duas TRNs para que formem uma
única LWU (Unidade Lógica de Trabalho), para fazer isso é necessário:
• A primeira transação deve ter uma CALL chamando a segunda, antes que o
commit seja executado.
• Remover o COMMIT da segunda TRN usando a propriedade – Commit on
Exit = NO – para que o COMMMIT da primeira TRN faça o COMMMIT em
ambas como um todo após o retorno do CALL.
NOTA:
- É válido somente em transações que não tenham a propriedade do
AS/400 – Commitment = Disabled – neste caso a propriedade será
ignorada.
- Também será ignorada se o controle da integridade transacional for
desabilitada nas propriedades do modelo – Transactional Integrity =
NO. Esta propriedade somente aparecerá se o gerador que você
estiver usando permitir este tipo de controle. (Foxpro for Windows
não mostrará esta opção).

CONFIRM TRANSACTION

Força a confirmação da transação permitindo COMMIT ou ROLLBACK.


Valores:
• YES – Força uma confirmação a nível de LWU (Unidade Lógica de
Trabalho) ou transação. Neste caso, o usuário pode confirmar
(COMMIT) ou não (ROLLBACK) as alterações feitas na base de dados
durante a LWU.
• NO – Nenhuma confirmação da LWU é pedida e automaticamente é
executado o comando COMMIT.
O valor default depende do gerador.
NOTA:
• É válido somente em transações que não possuam nem a propriedade
“Commit on Exit = YES” nem “Commitment = Disabled”. No caso de
qualquer uma delas existir, a propriedade “Confirm Transactions =
YES” será ignorada.

68
• Também será ignorada se o controle da integridade transacional for
desabilitado nas propriedades do modelo – “Transactional Integrity
= NO”.

10.2. USER INTERFACE – INTERFACE COM USUÁRIO

CONFIRMATION

Indica se o usuário deseja ou não que a confirmação seja pedida ao


passar de um nível para outro. Ao passar de um nível para o próximo, uma
mensagem é mostrada e o usuário deve confirmar a entrada de dados.
Valores:
• Always prompt: mostrará uma mensagem e pedirá confirmação das
alterações em todos os níveis.
• Never prompt: nenhuma confirmação é pedida em nenhum nível da
transação.
• Do not prompt on first level: pedirá confirmação em todos os níveis
da transação, com exceção do primeiro nível.
O valor default depende do gerador selecionado.
NOTA: A regra Noconfirm(<Atributo>) permite a você indicar um nível
específico que não deve ser pedido confirmação.

WINDOWS INTERFACE

• MenuBar
Esta propriedade é usada para associar um menubar a um objeto. Em
outras palavras, o objeto usará o menubar indicado nesta propriedade. O
Combo mostrará todos os menubars existentes.
Se um objeto não tiver um menubar associado, então um menubar
default será utilizado.
Esta propriedade é válida somente para Transações e Work Panels.

• Border Style
Esta propriedade especifica o tipo da borda do form. Válida somente
para os geradores: Visual Basic e Visual Foxpro.

69
Valores:
- Sizeable: este é o tipo normal de borda, que é: 3D e você pode mudar
o tamanho da janela com o mouse.
- None: a janela não terá borda nem título.
- Fixed Single: a janela terá borda simples e seu tamanho não poderá
ser mudado.
- Fixed Dialog: a janela terá borda 3D e seu tamanho não poderá ser
mudado.
O valor default é Sizeable.

• Maximize Button
Especifica se o form deve ter um botão de maximização. Válido somente
para geradores: Visual Basic e Visual Foxpro.
Valores:
- YES: o form terá botão de maximização
- NO: o form não terá botão de maximização
O valor default é YES.

• Minimize Button
Especifica se o form deve ter um botão de minimização. Válido somente
para geradores: Visual Basic e Visual Foxpro.
Valores:
- YES: o form terá botão de minimização
- NO: o form não terá botão de minimização
O valor default é YES.

• Form Icon
Esta propriedade é utilizada para especificar um nome para o ícone do
form. Válido somente para geradores: Visual Basic e Visual Foxpro.
Valores: Não possui nenhum valor pré-definido, você deve informar o nome do
ícone.

• Control Box
Esta propriedade é usada para especificar se o menu no canto superior
esquerdo da janela será ativado com um click do mouse.

70
Valores:
- YES: o menu será ativado com um click do mouse.
- NO: o menu não será ativado com um click do mouse.
O valor default é YES.

• Modal Dialog
Esta propriedade é usada para indicar se o objeto utiliza diálogo Modal
ou não.
Diálogo Modal significa que o programa chamador ficará inativo até que o
objeto chamado seja fechado. Ao contrário, o diálogo Não-Modal ambos os
objetos ficam ativos ao mesmo tempo, quer dizer, você pode trabalhar com
ambos simultaneamente.
Diálogo Não-Modal é sempre melhor que diálogo modal, mas nem sempre
é possível utilizá-lo. Em particular, quando são passados parâmetros e o objeto
chamado retorna valores ao objeto chamador, então o diálogo Modal deve ser
usado. Os prompts são um exemplo típico desse tipo de diálogo, onde a
transação espera valores retornados pelo prompt.
Valores:
- YES, if parameters specified: Se o objeto tem parâmetros então o
diálogo Modal será usado, se não houver parâmetros então o diálogo
Não-modal será usado.
- YES: Diálogo Modal é utilizado.
- NO: Diálogo Não-Modal é utilizado.
O valor default é: YES, if parameters specified.

CHARACTER INTERFACE – INTERFACE DE CARACTERES

• Generate as a Popup Window


Esta propriedade é usada para indicar que o form deve ser carregado
como uma janela de Poupup (sobrepor a janela anterior ao invés de
substituí-la). Neste caso, parte das duas janelas podem ser vistas
simultaneamente.
Valores:
- NO: A janela é mostrada totalmente como poup-up.
- YES, automatic border: O form será gerado como janela popup e a
borda será desenhada de forma automática.

71
- YES, user defined border: O form será gerado como janela popup e a
borda pode ser desenhada pelo usuário no form. Este valor só é válido
para geradores de interface gráfica.
O valor default depende do gerador selecionado.
NOTA: Quando a tela é definida como popup, há algumas limitações de
linhas e colunas que devem ser respeitados. Se a tela desenhada ultrapassa
esses limites, uma mensagem é dada dentro do relatório de navegação na
especificação.
IMPORTANTE: Esta propriedade não é válida para geração em ambiente
windows.

• Automatic Border – Color


Esta propriedade é usada para controlar a cor da borda da janela dos
objetos definidos como janelas popup no AS/400.
Valores:
- Default to color rule: Segue a cor da regra color se a mesma existir.
Caso contrário, VERDE é utilizado.
- Verde
- Branco
- Vermelho
- Amarelo
- Azul
- Cinza, esta é a cor no GeneXus. No AS/400 é convertido para
Turquesa.
- Magenta, esta é a cor no GeneXus. No AS/400 é convertido para Pink
(rosa).
O valor default é: Default to color rule.

• Automatic Border – Display Attribute


Esta propriedade é usada para definir como deve ser mostrado o
atributo dos objetos definidos como janelas popup no AS/400.
Valores:
- Default to color rule: Segue a cor da regra color se a mesma existir.
- Reverse Image: Imagem reversa
- High: Mostrar mais forte (negrito)
- Blinking: Piscando
- No display: Não mostrar.
O default é: Default to color rule.

72
• Automatic Border – Characters
Esta propriedade é usada para definir os caracteres a serem usados
para cada um dos cantos e lados da janela do objeto definido como janela
popup no AS/400. Deve ter exatamente 8 caracteres. Cada caracter é usado
para desenhar (em ordem):
Caracter Desenha
1 topo-esquerdo-canto
2 topo-borda
3 toopo-direito-canto
4 esquerda-borda
5 direita-borda
6 Botão-esquerdo-canto
7 Botão-borda
8 Bptão-dirieito-canto
Estes caracteres são enviados diretamente à palavra chave
WDWBORDER da DDS language para telas. Para obter informações adicionais
sobre esta palavra chave, procure no manual de referência da DDS.
Não há valor default para esta preferência. Isto é, se nenhum valor for
especificado na preferência, os atributos de tela dependerão dos valores
default do AS/400.
NOTA: Não use o caracter ‘ (apóstrofo) nesta propriedade.

10.3. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400

COMMITMENT

Habilita e desabilita o controle da integridade transacional nos


programas gerados.
Valores:
- Enabled: O programa é gerado COM os controles de integridade
transacional.
- Disabled: O programa é gerado SEM os controles de integridade
transacional.
O valor default depende do gerador selecionado.

73
NOTA: Esta opção é ignorada para Client Server (geradores DB/2 e
Oracle).
Esses DBMs não permitem a desativação da integridade transacional.

KEY ASSIGNMENT

• Exit Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Exit.
Valores: Qualquer número de chave de função válida.
O valor default é 3.

• Prompt Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Prompt. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor ‘0’. Se for
desabilitada, o programa não responde às prompts key e os programas de
prompt não serão gerados.
Valores: Qualquer número de chave de função válida.
O valor default é 4.
NOTA: Apesar de aceitar 1 como valor válido, o gerador ignora-o.

• Refresh Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Refresh.
Valores: Qualquer número de chave de função válida.
O valor default é 5.

• Insert Mode
Esta propriedade é usada para alterar a chave de função relacionada ao
Insert Mode. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’, neste
caso, não será possível alterar para Modo de Inserção na transação. O código
para inserção de registros é gerado.

74
Valores: Qualquer número de chave de função válida.
O valor default é 6.

• Previous Record
Esta propriedade é usada para alterar a chave de função relacionada ao
Previous Record. Esta propriedade aplica-se somente ao objeto. Esta função
pode inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’,
neste caso, não será possível mover-se ao registro anterior e o código
correspondente não é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 7.

• Next Record
Esta propriedade é usada para alterar a chave de função relacionada ao
Next Record. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’, neste
caso, não será possível mover-se ao próximo registro e o código
correspondente não é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 8.

• Retrieve
Esta propriedade é usada para alterar a chave de função relacionada ao
Retrieve. Esta propriedade aplica-se somente ao objeto. Retrieve não pode ser
desabilitada porque aplica-se somente em Menus.
Valores: Qualquer número de chave de função válida.
O valor default é 9.

• Menu
Esta propriedade é usada para alterar a chave de função relacionada ao
acesso ao Menu Bar. Esta propriedade aplica-se somente ao objeto. Esta
função pode inclusive ser desabilitada assinalando-se à mesma o valor default
‘0’, neste caso, não será possível acessar o menu bar e o código correspondente
não é gerado.
Valores: Qualquer número de chave de função válida.

75
O valor default é 10.

• Update Mode
Esta propriedade é usada para alterar a chave de função relacionada ao
Modo de Update. Esta propriedade aplica-se somente ao objeto. Esta função
pode inclusive ser desabilitada assinalando-se à mesma o valor default ‘O’,
neste caso, não será possível alterar para Update na transação e o código de
alteração é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 11.

• Cancel
Esta propriedade é usada para alterar a chave de função relacionada ao
Cancel.
Valores: Qualquer número de chave de função válida.
O valor default é 12.

• Delete Mode
Esta propriedade é usada para alterar a chave de função relacionada ao
Modo Delete. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor ‘0’, neste caso, não
será possível alterar o modo para Deleção na transação e o código de alteração
é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 13.

• Select
Esta propriedade é usada para alterar a chave de função relacionada ao
Select. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’, neste
caso, o programa não responderá à chave de autoprompt e o código de
Autoprompt não é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 16.

76
• First Record
Esta propriedade é usada para alterar a chave de função relacionada ao
First Record. Esta propriedade aplica-se somente ao objeto. Esta função pode
inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’, neste
caso, não será possível acessar o primeiro registro e o código correspondente
não é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 19.

• Display Mode
Esta propriedade é usada para alterar a chave de função relacionada ao
Modo de Display. Esta propriedade aplica-se somente ao objeto. Esta função
pode inclusive ser desabilitada assinalando-se à mesma o valor default ‘0’,
neste caso, não será possível alterar para modo de Display na transação e o
código correspondente é gerado.
Valores: Qualquer número de chave de função válida.
O valor default é 14.

• More Keys
Esta propriedade é usada para alterar a chave de função relacionada ao
More Keys.
Valores: Qualquer número de chave de função válida.
O valor default é 24.

77
11. Propriedades das Work Panels

Propriedades permitem definir funções gerais para o objeto.


Propriedades das Work Panel incluem duas principais características: funções
enquanto estiver fazendo a carga e como será a interface.

11.1. LOADING

LOAD RECORDS

Indica como os registros são carregados no subfile. Normalmente, o


subfile é carregado mediante uma requisição explícita.
Inicialmente, somente a primeira tela é carregada e, conforme o usuário
avança, então outras telas são carregadas. Isto é feito para ganhar
performance. Mas em alguns casos, nós poderemos necessitar carregar o
subfile inteiro de uma vez. Para fazer isto, devemos setar a propriedade Load
Records como ‘Load All Records’. Esta propriedade indica que o subfile será
carregado por inteiro de uma única vez.
Valores:
- Load on request – carrega os registros na tela de subfile cada vez
que dados são requeridos.
- Load all records – carrega todos os registros no subfile no Evento
Load.
O valor default depende do gerador selecionado.

LOAD AT STARTUP

Indica se o subfile é carregado logo no início ou após pedir a parte fixa


do form. Quando a Work Panel tem um subfile, o subfile é carregado pela
primeira vez imediatamente após a tela ser carregada. Esta propriedade indica
que nós não desejamos que o subfile seja carregado logo no início, ao invés
disso, nós queremos que a parte fixa da tela seja pedida antes (normalmente
usadas nas conditions) e então carregar o subfile.
Valores:
- YES – o subfile é carregado imediatamente após a carga da tela.
- NO – o subfile é carregado após pedir a parte fixa da tela.

78
O valor default depende do gerador selecionado.
RESTRIÇÕES: Quando não há Tabela Base associada à Work Panel, essa
propriedade não tem efeito, e o subfile é carregado após pedir a parte fixa ser
pedida.

ALLOW USER TO CANCEL WHILE LOADING

Permite ou inibe o usuário de cancelar a execução do programa enquanto


estiver sendo feita a carga do subfile. Se esta propriedade for setada como
YES, a Work Panel poderá ser cancelada com ESC.
Valores:
- YES – o programa pode ser cancelado pressionando ESC enquanto
estiver sendo feita a carga do subfile.
- NO – o programa não pode ser cancelado enquanto estiver sendo
feita a carga do subfile.
O valor default depende do gerador selecionado.

AUTOMATIC REFRESH

Esta propriedade é muito utilizada quando o subfile é composto somente


por variáveis e você deseja executar um refresh cada vez que houver uma
mudança na parte fixa da Work Panel.
Valores:
- Only when variables in conditions change: a work panel trabalha da
forma tradicioanl.
- When any variable change: o refresh é executado cada vez que
qualquer variável da parte fixa da tela é modificado.
O valor default depende do gerador selecionado.

REFRESH TIMEOUT (Foxpro for Windows e Visual Basic)

Esta propriedade é usada para executar um refresh do subfile sem que o


usuário execute nenhuma opção durante certo período de tempo. Este intervalo
de tempo deve ser especificado em segundos.
Valores: Não há valores pré-definidos. Um valor em segundos deve ser
especificado. Se 0 ou default são especificados nenhum timeout será gerado.

79
11.2. WINDOWS INTERFACE

MENUBAR

Esta propriedade é usada para associar um menubar a um objeto. Em


outras palavras, o objeto usará o menubar indicado nesta propriedade. O
combo mostrará todos os menubars existentes. Se um objeto não tiver um
menubar associado então um menubar default será utilizado. Esta propriedade
somente é válida para transações e work panels.

BORDER STYLE

Esta propriedade especifica o tipo da borda do form. Válida somente


para os geradores: Visual Basic e Visual Foxpro.
Valores:
- Sizeable: este é o tipo normal de borda, que é 3D e você pode mudar
o tamanho da janela com o mouse.
- None: a janela não terá borda nem título.
- Fixed Single: a janela terá borda simples e seu tamanho não poderá
ser mudado.
- Fixed Dialog: a janela terá borda 3D e seu tamanho não poderá ser
mudado.
O valor default é Sizeable.

MAXIMIZE BUTTON

Especifica se o form deve ter um botão de maximização. Válido somente


para geradores: Visual Basic e Visual Foxpro.
Valores:
- YES: o form terá botão de maximização
- NO: o form não terá botão de maximização
O valor default é YES.

80
MINIMIZE BUTTON

Especifica se o form deve ter um botão de minimização. Válido somente


para geradores: Visual Basic e Visual Foxpro.

Valores:
- YES: o form terá botão de minimização
- NO: o form não terá botão de minimização
O valor default é YES.

FORM ICON

Esta propriedade é utilizada para especificar um nome para o ícone do


form. Válido somente para geradores: Visual Basic e Visual Foxpro.
Valores: Não possui nenhum valor pré-definido, você deve informar o
nome do ícone.

CONTROL BOX

Esta propriedade é usada para especificar se o menu no canto superior


esquerdo da janela será ativado com um click do mouse.
Valores:
- YES: o menu será ativado com um click do mouse.
- NO: o menu não será ativado com um click do mouse.
O valor default é YES.

MODAL DIALOG

Esta propriedade é usada para indicar se o objeto utiliza diálogo Modal


ou não.
Diálogo Modal significa que o programa chamador ficará inativo até que o
objeto chamado seja fechado. Ao contrário, com diálogo Não-Modal ambos os
objetos ficam ativos ao mesmo tempo, quer dizer, você pode trabalhar com
ambos simultaneamente.

81
Diálogo Não-Modal é sempre melhor que o diálogo modal, mas nem
sempre é possível utilizá-lo. Em particular, quando são passados parâmetros e o
objeto chamado retorna valores ao objeto chamador, então o diálogo Modal
deve ser usado. Os Prompts são um exemplo típico desse tipo de diálogo, onde
a transação espera valores retornados pelo prompt.
Valores:
- YES, if parameters specified: se o objeto tem parâmetros então o
diálogo Modal será usado, se não houver parâmetros então o diálogo
Não-Modal será usado.
- YES: Diálogo Modal é utilizado.
- NO: Diálogo Não-Modal é utilizado.
O valor default é: YES, if parameters specified.

11.3. CHARACTER INTERFACE

GENERATE AS A POPUP WINDOW

Esta propriedade é usada para indicar que o form deve ser carregado
como uma janela de Popup (sobrepor a janela anterior ao invés de substituí-la).
Neste caso, parte das duas janelas podem ser vistas simultaneamente.
Valores:
- NO: a janela é mostrada totalmente como popup.
- YES, automatic border: o form será gerado como janela popup e a
borda será desenhada de forma automática.
- YES, user defined border: o form será gerado como janela popup e a
borda pode ser desenhada pelo usuário no form. Este valor só é válido
para geradores de interface gráfica.
O valor default depende do gerador selecionado.
NOTA: Quando a tela é definida como popup, há algumas limitações de
linhas e colunas que devem ser respeitados. Se a tela desenhada ultrapassa
esses limites, uma mensagem é dada dentro do relatório de navegação na
especificação.
IMPORTANTE: Esta propriedade não é válida para geração em ambiente
windows.

82
AUTOMATIC BORDER

• Automatic Border – Color


Esta propriedade é usada para controlar a cor da borda da janela dos
objetos definidos como janelas popup no AS/400.
Valores:
- Default to color rule: Segue a cor da regra color se a mesma existir.
Caso contrário, VERDE é utilizado.
- Verde
- Branco
- Vermelho
- Amarelo
- Azul
- Cinza, esta é a cor no GeneXus. No AS/400 é convertido para
Turquesa.
- Magenta, esta é a cor no GeneXus. No AS/400 é convertido para Pink
(rosa).
O valor default é: Default to color rule.

• Automatic Border – Display Attribute


Esta propriedade é usada para definir como deve ser mostrado o
atributo dos objetos definidos como janelas popup no AS/400.
Valores:
- Default to color rule: Segue a cor da regra color se a mesma existir.
- Reverse Image: Imagem reversa
- High: Mostrar mais forte (negrito)
- Blinking: Piscando
- No display: Não mostrar.
O default é: Default to color rule.

• Automatic Border – Characters


Esta propriedade é usada para definir os caracteres a serem usados
para cada um dos cantos e lados da janela do objeto definido como janela
popup no AS/400. Deve ter exatamente 8 caracteres. Cada caracter é usado
para desenhar (em ordem):
Caracter Desenha

83
1 topo-esquerdo-canto
2 topo-borda
3 topo-direito-canto
4 esquerda-borda
5 direita-borda
6 Botão-esquerdo-canto
7 Botão-borda
8 Botão-direito-canto
Esses caracteres são enviados diretamente à palavra chave
WDWBORDER da DDS language para telas. Para obter informações adicionais
sobre esta palavra chave, procure no manual de referência da DDS.
Não há valor default para esta preferência. Isto é, se nenhum valor for
especificado na preferência, os atributos de tela dependerão dos valores
default do AS/400.
NOTA: Não use o caracter ‘ (apóstrofo) nesta propriedade.

11.4. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400

KEY ASSIGNMENT

• Exit Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Exit.
Valores: Qualquer número de chave de função válida.
O valor default é 3.

• Refresh Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Refresh.
Valores: Qualquer número de chave de função válida.
O valor default é 5.

84
• Cancel
Esta propriedade é usada para alterar a chave de função relacionada ao
Cancel.
Valores: Qualquer número de chave de função válida.
O valor default é 12.

• More keys
Esta propriedade é usada para alterar a chave de função relacionada à
opção More Keys.
Valores: Qualquer número de chave de função válida.
O valor default é 24.

85
12. Propriedades dos Relatórios

12.1. OPTIONS

REPORT OUTPUT

Especifica a saída a ser utilizada para Report/Procedure.


Valores:
- Ask User: O usuário será questionado para onde deseja enviar a saída
em tempo de execução.
- Only to Screen: A saída é enviada direto para tela.
- Only to Printer: A saída é enviada direto para impressora.
O valor default depende da gerador selecionado.

PROMPT FOR CONFIRMATION

É usado para evitar a confirmação usual que ocorre após as funções ASK
(para pedir dados) de Report/Procedures.
Valores:
- YES – Ao usuário é pedido confirmação após entrada de dados.
- NO – Evita confirmação.
O valor default depende do gerador selecionado.

ALLOW USER TO CANCEL PROCESSING

Indica se o programa pode ser cancelado pela tecla ESC. Num relatório
que imprime nota e é chamado de uma transação, é muito apropriado setar
esta propriedade como NO, para ter certeza que a nota será sempre impressa.
Valores:
- YES – é possível cancelar o programa.
- NO – não é possível cancelar o programa.
O valor default depende do gerador selecionado.

86
FOOTER ON LAST PAGE

Esta propriedade é usada para indicar se os rodapés definidos pelo


usuário devem ou não ser impressos na última página de um relatório.

Valores:
- YES – O rodapé será impresso em todas as páginas, inclusive na
última.
- NO – O rodapé não é impresso na última página.
O valor default depende do gerador selecionado.

12.2. AS/400 SPECIFIC - ESPECIFICAÇÕES AS/400

KEY ASSIGNMENT

• Exit Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Exit.
Valores: Qualquer número de chave de função válida.
O valor default é 3.

• Refresh Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Refresh.
Valores: Qualquer número de chave de função válida.
O valor default é 5.

• Cancel
Esta propriedade é usada para alterar a chave de função relacionada ao
Cancel.
Valores: Qualquer número de chave de função válida.
O valor default é 12.

87
• More keys
Esta propriedade é usada para alterar a chave de função relacionada à
opção More Keys.
Valores: Qualquer número de chave de função válida.
O valor default é 24.

88
13. Propriedades dos Procedimentos
13.1. OPTIONS

REPORT OUTPUT

Especifica a saída utilizada para Report/Procedure.


Valores:
- Ask User: O usuário será questionado para onde deseja enviar a saída
em tempo de execução.
- Only to Screen: A saída é enviada direto para tela.
- Only to Printer: A saída é enviada direto para impressora.
O valor default depende do gerador selecionado.

PROMPT FOR CONFIRMATION

É usado para evitar a confirmação usual que ocorre após as funções ASK
(para pedir dados) de Report/Procedures.
Valores:
- YES – Ao usuário é pedido confirmação após entrada de dados.
- NO – Evita confirmação.
O valor default depende do gerador selecionado.

ALLOW USER TO CANCEL PROCESSING

Indica se o programa pode ser cancelado pela tecla ESC. Num relatório que
imprime nota e é chamado de uma transação, é muito apropriado setar esta
propriedade como NO, para ter certeza que a nota será sempre impressa.
Valores:
- YES – é possível cancelar o programa.
- NO – não é possível cancelar o programa.
O valor default depende do gerador selecionado.

89
FOOTER ON LAST PAGE

Esta propriedade é usada para indicar se os rodapés definidos pelo


usuário devem ou não ser impressos na última página de um relatório.

Valores:
- YES – O rodapé será impresso em todas as páginas, inclusive na
última.
- NO – O rodapé não é impresso na última página.
O valor default depende do gerador selecionado.

13.2. TRANSACTION INTEGRITY – INTEGRIDADE


TRANSACIONAL

COMMIT ON EXIT

Programas gerados pelo GeneXus executam commits no fim da cada


transação (referenciando-se ao conceito de database transaction, não ao
objeto GeneXus). Este commit automático é incluído em todos os programas
que atualizam base de dados. Não é incluído em Reports, Work Panels, Web
Panels e procedimentos que não atualizam a base de dados.
Esta propriedade é usada para controlar ou não se o commit automático
é realizado.
Esta propriedade faz sentido em Transações e Procedures que alteram a base
de dados e são chamados por outros programas. Neste caso, o programa
chamador (ou o programa chamador do chamador) é responsável pelo commit ou
rollback da LWU (Logical Work Unit).
Valores:
- YES – o programa gerado executa um commit no fim da LWU.
- NO – o programa gerado não executa um commit no fim da LWU.
O valor default depende do gerador selecionado.
Exemplo: Você pode encontrar a situação de ter que dividir em duas. Um
exemplo típico é descrito no exemplo que segue: muitos dados devem ser
digitados na transação de cadastramento de funcionário, assim necessitamos
dividir a mesma em duas: dados do empregado e dados da função. Para ter as

90
duas transações funcionando em conjunto, nós colocamos no final da primeira
transação, um CALL para a segunda TRN.

TRN: Funcionário TRN: Função


......................... .........................
......................... .........................
CALL Tfuncao .........................
.........................
.........................
Commit

Commit on Exit = YES Commit on Exit = NO

O que mostra o exemplo acima é que uma vez dado entrada nos dados na
primeira transação, nós iremos imediatamente dar entrada nos dados da
segunda TRN. Mas nós queremos unificar as duas TRNs para que formem uma
única LWU (Unidade Lógica de Trabalho), para fazer isso é necessário:
- A primeira transação deve ter um CALL chamando a segunda, antes
que o commit seja executado.
- Remover o COMMIT da segunda TRN usando a propriedade – Commit
on Exit = NO – para que o COMMIT da primeira TRN faça o
COMMIT em ambas como um todo após o retorno do CALL.
NOTA:
- É válido somente em transações que não tenham a propriedade do
AS/400 – Commitment = Disabled – neste caso a propriedade será
ignorada.
- Também será ignorada se o controle da integridade transacional for
desabilitado nas propriedades do modelo – Transactional Integrity =
NO. Esta propriedade somente aparecerá se o gerador que você
estiver usando permitir este tipo de controle. (Foxpro for Windows
não mostrará esta opção).

91
13.3. AS/400 SPECIFIC – ESPECIFICAÇÕES AS/400

COMMITMENT

Inibe ou desabilita o controle da integridade transacional nos programas


gerados.
Valores:
- Enabled – o programa é gerado com controle de integridade
transacional.
- Disabled – o programa é gerado sem os controles de integridade
transacional.
O valor default depende do gerador selecionado.
NOTA: Esta opção é ignorada para Client Server (geradores DB/2 e
Oracle) porque este DBMs não permitem a desativação da integridade
Transacional.

KEY ASSIGNMENT

• Exit Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Exit.
Valores: Qualquer número de chave de função válida.
O valor default é 3.

• Refresh Key
Esta propriedade é usada para alterar a chave de função relacionada ao
Refresh.
Valores: Qualquer número de chave de função válida.
O valor default é 5.

• Cancel
Esta propriedade é usada para alterar a chave de função relacionada ao
Cancel.
Valores: Qualquer número de chave de função válida.

92
O valor default é 12.

• More keys
Esta propriedade é usada para alterar a chave de função relacionada à
opção More Keys.
Valores: Qualquer número de chave de função válida.
O valor default é 24.

93
14. Propriedades das Web Panels

14.1. FOOTER

FOOTER IMAGE

(Ainda não implementado)

WEBMASTER’S MAIL ADDRESS

Ainda não implementado)

94
15. Propriedades do Modelo – Visual Basic

15.1. GENERAL

VISUAL BASIC VERSION

Use esta opção para setar a versão do gerador Visual Basic que será
utilizado.
Valores:
- Visual Basic 4.0 (16 bits)
- Visual Basic 4.0 (32 bits)
- Visual Basic 5.0
O valor default é Visual Basic 5.0.

GRID VERSION

O gerador Visual Basic utiliza DataGrid Sheridan (incluindo no produto Data


Widgets) para implementar o grid dos subfiles (NOTA: você deve instalar
Sheridan’s Data Widgets para ser capaz de executar corretamente suas
aplicações Visual Basic).
Esta preferência é usada para especificar a versão do produto que você
está usando.
Valores:
- Sheridan DataGrid 2.0c
- Sheridan DataGrid 3.0
- O valor default é: Sheridan DataGrid 2.0c

TARGET SYSTEM INTERFACE

Indica qual a versão de sistema no usuário final (destino). É utilizada


para evitar problemas com a edição que acontece quando geramos Visual Basic
4.0 e executamos sob Windows 3.x.
Valores:
- Windows 95 – a interface do sistema destino será Windows95

95
- Windows 3.x – a interface do sistema destino será Windows3.1 ou
Windows3.11
O valor default é Windows95.

Caso 1: Se você está desenvolvendo uma aplicação numa máquina


executando abaixo do Windows 3.11, e a interface do sistema destino é
Windows 95, para evitar problemas com os controles de edição você deve
fazer o seguinte:
1. Desenvolver a aplicação (durante a fase de protótipo) com esta
preferência setada para “Windows 3.x”, para poder prototipá-la.
2. Uma vez que a fase de protótipo tenha terminado, mude esta
preferência “Windows 95” e gere todos os programas novamente,
então você pode distribuir sua aplicação para seus clientes.
Caso 2: Se você está desenvolvendo uma aplicação numa máquina
executando abaixo do Windows 95, e a interface do sistema destino é
Windows 3.11, sete esta preferência “Windows 3.x”, e teste a aplicação como
se estivesse no ambiente do cliente.
Caso 3: Se você está desenvolvendo uma aplicação numa máquina
executando abaixo do Windows 95, e a interface do sistema destino é
Windows 95, você não terá nenhum problema.
Caso 4: Se você está desenvolvendo uma aplicação numa máquina
executando abaixo do Windows 3.11, e a interface do sistema destino é
Windows 3.11, você não terá nenhum problema.

GENERATE MDI APPLICATION

Esta preferência é usada para indicar qual tipo de interface de


documento terão as aplicações geradas: SDI (Single Document Interface –
Interface de documentação simples) ou MDI (Multiple Document Interface –
Interface de documentação múltipla).
Com SDI toda transação ou Work Panel será uma janela independente
(esta é a interface utilizada pela Microsoft Exchange). No caso do MDI, todo
objeto é considerado “child window” da janela principal (esta é a interface
utilizada pela Microsoft Word).
Valores:
- YES – Aplicação MDI será gerada
- NO – Aplicação SDI será gerada
O valor default é YES.

96
NOTA: Se o valor dessa preferência é setada como NO (SDI), e mais
tarde é modificada para YES (MDI) você deve forçar a geração de todos os
programas.

ALLOW COLUMN RESIZING

Com esta opção você pode permitir ao usuário mudar o tamanho das colunas do
subfile em tempo de execução.
Valores:
- YES – o usuário será capaz de modificar o tamanho das colunas do
subfile a qualquer momento.
- NO – o tamanho das colunas do subfile do programa gerado será
especificado no desenho do mesmo e o usuário não será capaz de
mudá-los em tempo de execução.
O valor default é YES.

SKIP READ-ONLY COLUMNS

Esta preferência é usada para setar o comportamento da ‘Tab Key’ em


subfiles ao gerar código Visual Basic.
Valores:
- YES – a Tab Key pula variáveis e atributos read-only.
- NO – a Tab Key passa por todos os campos, independente de serem
“read-only” ou não.
O valor default é YES.
NOTA: Esta preferência não afeta o comportamento do mouse, porque o
mouse pode ser posicionado em qualquer campo.

CONFIRM

Esta propriedade, baseada na sua escolha, vai estabelecer se você


deseja confirmar as seguintes ações
- Insert, Delete e Update executadas a nível de Transação.
- Confirm each action: o usuário será questionado sobre
confirmação após ter finalizado a entrada de dados nas ações de

97
Inserção e Alteração ou selecionando o modo de deleção em algum
nível da transação.
- Do not confirm each action: o usuário NÃO será questionado
sobre confirmação após ter finalizado a entrada de dados nas
ações de Inserção e Alteração ou selecionando o modo de deleção
em algum nível da transação.

- Entrada de parâmetros em Reports e Procedures


- Confirm each action: após a entrada de parâmetros nas
Reports/Procedures, o usuário será questionado sobre a
confirmação dos mesmos.
- Do not confirm each action: após a entrada de parâmetros nas
Reports/Procedures, o usuário NÃO será questionado sobre a
confirmação dos mesmos.
O valor default é Confirm each action.
NOTA; Você pode sobrescrever esta propriedade num objeto em
particular alterando a propriedade Confirm para o objeto selecionado.

AUTOSKIP

Salto automático para o próximo campo quando o corrente é preenchido.


Por exemplo: quando o quarto dígito de um campo de 4 dígitos é digitado, é
feito um salto automático para o próximo campo.
Opções:
- YES – Salto automático para o próximo campo quando o corrente é
preenchido.
- NO – Uma tecla de entrada deve ser pressionada para mover o cursor
para o próximo campo, quando o corrente é preenchido.
O valor default é NO.

LOCK TYPE

Esta preferência controla o tipo de ‘lock’ que será executado pelo Visual
Basic no Access.
Valores:
- Pessimistic: o lock é executado quando o registro é lido.

98
- Optimistic: o lock não é executado quando o registro é lido e sim
controla se ele foi modificado ou não por outro usuário na hora de
regravá-lo.
O valor default é Pessimistic.
NOTA: Você deve levar em consideração que o Access loca páginas e não
registros.

PSEUDO CONVERSATIONAL DIALOG

Com esta opção, você pode escolher se a aplicação gerada terá Diálogo
Conversacional ou Diálogo Pseudo Conversacional para implementar o controle
de concorrência.
Com o diálogo pseudo-conversacional nós tendemos a reduzir o tempo de
lock de registro ao mínimo, o que quer dizer que somente serão locados os
registros durante o process-time. Isto incrementa a concorrência na base de
dados.
O conceito básico é ler sem locar, permitindo ao usuário fazer
alterações e então, em tempo de processamento, verificar se nenhum outro
usuário já alterou o mesmo registro. Se isto ocorrer, uma mensagem de erro é
mostrada e o usuário de refazer a operação.
Valores:
- Use conversational dialog: implementa diálogo conversacional.
- Check updated tables only: implementa diálogo pseudo-
conversacional. Neste caso, o controle é executado a nível de tabela.
Se a tabela é modificada dentro de um nível, todos os atributos
daquela tabela que estão envolvidos na transação são controlados. O
problema dessa implementação aparece quando há usuários que
baseiam suas decisões em tabelas não alteradas na transação.
- Check all acessed tables: implementa diálogo pseudo-conversacional.
Neste caso, o controle é executado sobre todas as tabelas dos
atributos envolvidos na transação. Este parece ser o nível de
controle mais indicado, pois situações incontroláveis não existirão.
O valor default é: Check updated tables only.
NOTA: Dependendo da linguagem e plataforma que você está gerando, o
diálogo Pseudo conversacional é implementado para todas as operações

99
executadas na Transação (Cobol e RPG para AS/400) ou somente no nível da
transação (nos casos dos Xbase ou Visual Basic).

LOCAL DATABASE FILE

Especifica o nome da base de dados local quando gerando Visual Basic.


Valores: O nome default é GX_DATA.MDB, mas você é capaz de
assinalar o nome que desejar.

MAIL FUNCTIONS

Você deve setar esta preferência para YES para ser capaz de usar as
mail functions.
Valores:
- YES: o desenvolvedor será capaz de executar GeneXus mail functions
- NO: o desenvolvedor NÃO será capaz de executar GeneXus mail
functions.
O valor default é NO.
NOTA: você necessitará ter corretamente instalado todos os
componentes para enviar mensagens via MAPI (Microsoft Messaging API) e
também ter instalado não somente o Mail (Microsoft Mail e/ou compatível) mas
também o arquivo VBX para utilizar a interface (MSMAPI.VBX).

GRAPHIC FUNCTIONS

O gerador GeneXus Visual Basic prevê uma série de funções para


customizar seus gráficos: GXMKGR, GXKILLGRAPH, GXSETGRAPHPROPERTY,
GXGETGRAPHPROPERTY.
Você deve setar esta preferência para YES para ser capaz de usar estas
funções gráficas e comandos gráficos do GeneXus.
Valores:
- YES: Você será capaz de chamar as funções gráficas usando o
comando CALL do GeneXus e o comando GeneXus graph.
- NO: Você NÃO será capaz de chamar as funções gráficas usando o
comando CALL do GeneXus e o comando GeneXus graph.

100
O valor default é NO.

EXCEL OLE FUNCTIONS

Você pode usar OLE para estabelecer a comunicação entre uma aplicação
gerada pelo GeneXus e Excel.
Para ser capaz de fazer isso, algumas funções standard devem ser
avaliadas. Você deve setar esta preferência para YES para ser capaz de usar
Excel do GeneXus para Visual Basic.
Valores:
- YES: o desenvolvedor será capaz de executar as funções Excel do
GeneXus.
- NO: o desenvolvedor NÃO será capaz de executar as funções Excel
do GeneXus.
O valor default é NO.

COMMOM DIALOG FUNCTIONS

‘Common Dialogs’ são uma série de diálogos usados por diferentes


aplicações e válidas no Windows. Um exemplo de Common Dialogs são: abrir um
arquivo, escolher uma cor, escolher uma fonte, etc...
Você deve setar esta preferência para YES para ser capaz de usar o
GeneXus Common Dialogs.
Valores:
- YES: o desenvolvedor será capaz de chamar o GeneXus Common
Dialogs com o comando CALL.
- NO: o desenvolvedor NÃO será capaz de chamar o GeneXus Common
Dialogs com o comando CALL.
O valor default é NO.
A sintaxe para usar estas rotinas é a seguinte:
Select Color Dialog
Call(“GxSelColor”,&selected,&default)
&selected = Cor de output selecionada (Long)
&Default = Cor default (Long)
Select Directory Dialog
Call(“GxSelDir”,&selected,&defaultpath,&caption)
&selected = Diretório de saída selecionado (String)

101
&defaultpath = Diretório default de entrada (String)
&caption = Edit Box Caption (String)
File Open Dialog
Call(“GxSelFile”,&selected,&initialpath,&extensions,&caption,&buttoncap
tion, &buttontype)
&selected = Nome do arquivo de saída selecionado (String)
&initialpath = Caminho default (String)
&extensions = default de extensão (String)
&caption = Título do Box (String)
&buttoncaption = Nome do botão de seleção (String)
&buttontype = Flag para habilitar o botão no Diálogo (inteiro)

Save as Dialog
Call(“GxNewFile”,&selected,&initialpath,&defaultname,&extensions,&cap
tion)
&selected = Nome do arquivo de saída selecionado (String)
&initialpath = Input Caminho default para procura (String)
&defaultname = Input Default nome de arquivo (String)
&extensions = default de extensão (String)
&caption = Título do Box (String)
Select Font Dialog
Call(“GxSelFont”,&SelectedFont,&SelectedSize,&SelectedStyle)
&SelectedFont = Nome da fonte de saída selecionado (String)
&SelectedSize = Tamanho da fonte selecionada (String)
&SelectedStyle = Nome da fonte de saída selecionado (String)
Select Picture File Dialog
Call(“GxSelPict”,&selected,&initialpath,&extensions,&caption,&buttoncap
tion)
&selected = Arquivo Selecionado (String)
&initialpath = Input Caminho default para procura (String)
&extensions = default de extensão (String)
&caption = Título do Box (String)
&buttoncaption = Nome botão selecionado (String)
Printer Dialog
Call(“GxSelPrn”,&selected)
&selected = Nome da Impressora Selecionada (String)
Copy File

102
Call(“GxXopyFile”,&Source,&Target)
&Source = Nome do arquivo de entrada (String)
&Target = Nome do arquivo de destino (String)
Calculator
Call(“GxCalculate”,&Result)
&Result = valor numérico de entrada/saída (Numérico)

15.2. RIGHT BUTTON

CALCULATOR ON SECUNDARY NUMERIC FIELDS

Para os campos numéricos que não tem associado um prompt, uma


calculadora será chamada quando for clicado o botão direito do mouse sobre o
mesmo.
Valores:
- YES: Você será capaz de chamar a calculadora clicando o botão
direito do mouse sobre o campo numérico.
- NO: Você NÃO terá a facilidade de chamar a calculadora clicando o
botão direito do mouse sobre o campo numérico.
O valor default é YES.

CALENDAR ON DATE FIELDS

Se você clicar o botão direito do mouse sobre um campo tipo DATE, um


calendário será mostrado permitindo a você selecionar uma data.
Valores:
- YES: Você será capaz de chamar um calendário ao clicar o botão
direito do mouse sobre um campo tipo DATE.
- NO: Você NÃO terá facilidade de chamar um calendário ao clicar o
botão direito do mouse sobre um campo tipo DATE.
O valor default é YES.

15.3. PRINTING

103
LAN PRINTER

Essa propriedade permite você definir a impressora default para onde


os relatórios serão enviados.
Se nenhuma Impressora de Rede é especificada, então a default (LTP1)
é assumida.
Quando o relatório é impresso, os seguintes passos são efetuados:
1. Se Printer Property é definida para um objeto em particular, então o
relatório é enviado à impressora indicada no objeto.
2. Se Printer Property não é definida, GeneXus procura pela impressora
de rede indicada no Model Property e imprime o relatório na
impressora indicada.
3. Se nenhuma propriedade de impressora de rede é encontrada então
LPT1 é usada.
Diferentes strings devem ser definidos dependendo da linguagem e do
tipo de rede:
Para FoxPro e DBASE os seguintes devem ser definidos:
Sintaxe para Microsoft Networks: \\<server>\<printer>
Onde <server> é o nome do servidor
<printer> é o nome da impressora
Exemplo: \\ARTECH\\PRXX
Sintaxe para Novell networks: \\<spooler>
Para maiores informações sobre o comando SET PRINTER TO, procure
nos manuais de referência do FoxPro ou DbaseIV.
Exemplo: \\SPOOLER \N \Q=WORD4039
Para Clipper:
Sintaxe para LAN Printer: <printer port>
Exemplo: LPT2.

SHOW PRINTER DIALOG ON REPORTS

Permite você especificar se deseja mostrar o <Printer Dialog> antes de


imprimir seu relatório ou você deseja enviá-lo diretamente à impressora.
Valores:
- YES – o diálogo da impressora será mostrado antes dos relatórios
serem enviados à impressora.
- NO – o relatório será enviado diretamente à impressora. Nenhum
<diálogo de impressora> será mostrado.

104
O valor defualt é YES.

PRINT METHOD

Essa preferência é usada para selecionar o método de impressão que o


gerador Visual Basic deve utilizar. Você pode escolher impressão nativa Visual
Basic ou Report Viewer GeneXus.

Valores:
- VB Native Printing: relatórios são impressos usando Visual Basic
Native printing.
- Report Viewer: relatórios são impressos usando GeneXus Report
Viewer.
O valor default é: VB Native Printing.
NOTA: se você utilizar GeneXus Report Viewer você deve ter instalado
um driver de impressora na máquina onde o programa será executado, de outro
jeito Report Viewer não funcionará corretamente.

15.4. FORMAT

FIELD EXIT

Essa preferência controla a tecla que é capaz de mover o cursor entre


os campos do programa gerado. Isto afeta exclusivamente o tipo de controle
Edit (não afeta Radio Buttons, Combo Boxes, etc)
Valores:
- Tab, Shift-Tab: o movimento de avanço é feito com a tecla Tab e a
combinação das teclas Shift-Tab faz o movimento de volta.
- Enter, Down Arrow, Up Arrow, Tab, Shift-Tab: as teclas Enter, Seta
para baixo e Tab serão interpretadas como ‘movimento’ para o
próximo campo e a Seta para Cima e Shift-tab serão interpretadas
como ‘movimento’ para o campo anterior.
- +, Down Arrow, Up Arrow, Tab, Shift Tab: as teclas +, Enter, Seta
para baixo e Tab serão interpretadas como 'movimento' para o

105
próximo campo e a Seta para Cima e Shift-Tab serão interpretadas
como 'movimento' para o campo anterior.
O valor default é: Tab, Shift-Tab.

ESC KEY ACTION

Essa preferência somente afeta transações com múltiplos níveis e


permite você estabelecer como você deseja que a tecla ESC funcione.
Valores:
- Exit Form: você abortará o programa que está executando ao
pressionar a tecla ESC.
- Change Level: a tecla ESC vai alternar o nível ao ser pressionada.
O valor default é: Exit Form.

DECIMAL SEPARATOR

Esta opção permite ao usuário configurar o separador decimal que


deseja usar.
O valor default corresponde à linguagem do modelo do Design Model.
- Inglês: assume “.” Ponto.
- Espanhol: assume “,” Vírgula.
- Português: assume “,” Vírgula.
- Italiano: assume “,” Vírgula.

DATE FORMAT

Essa opção permite você especificar o formato no qual os atributos do


tipo DATA devem ser pedidos/mostrados nos programas gerados.
Valores:
- Language Dependent: o formato do tipo date dependerá da linguagem
selecionada no modelo corrente. Os formatos assumidos para cada
linguagem são:
Inglês.......: “mm/dd/yy”
Português: “dd/mm/yy”
Espanhol..: “dd/mm/yy”
Italiano....: “dd/mm/yy”

106
Mm/dd/yy: mês/dia/ano
dd/mm/yy: dia/mês/ano
O valor default é: Language Dependent.

DATE FORMAT IN CTOD FUNCTION (VISUAL BASIC)

Essa opção permite você especificar o formato no qual a função CTOD


interpretará os parâmetros.
Valores:
- Language Dependent: o formato do tipo date dependerá da linguagem
selecionada no modelo corrente. Os formatos assumidos para cada
linguagem são:
Inglês.......: “mm/dd/yy”
Português: “dd/mm/yy”
Espanhol..: “dd/mm/yy”
Italiano....: “dd/mm/yy”

Mm/dd/yy: mês/dia/ano
dd/mm/yy: dia/mês/ano
O valor default é: Language Dependent.

TIME FORMAT

Controla o formato no qual a parte das horas dos atributos tipo


datetime são pedidos e mostrados (tanto na tela como na impressão). Também
controla o tamanho dos atributos/variáveis tipo datetime. Essa preferência é
aplicada à Base de Conhecimento, mas cada modelo pode ter um valor diferente
para essa preferência.
Valores:
- Language Dependent: Depende da linguagem selecionada de acordo
com a seguinte tabela:
Linguagem Formato Hora
Inglês 12 horas
Espanhol 24 horas
Português 24 horas
Italiano 24 horas

107
O valor default é: language Dependent.
NOTA: Se o uso do formato 12 horas é especificado ou inferido,
dependendo da linguagem selecionada, os campos terão 3 caracteres a mais
(tela ou impressora) correspondente às strings ‘AM’ ou ‘PM’.

FIRST YEAR OF 20th CENTURY

Informe a partir de qual ano que deve ser considerado como século 20.
Todo ano (parte de um campo date) menor que o informado nesta preferência,
será considerado século 21 (2000...).
O valor default é: 40.

15.5. WEB INFORMATION

PROTOCOL SPECIFICATION

Esta preferência se aplica à geração automática de links entre as Web


Panels. Esses links são gerados quando um comando CALL entre duas Web
Panels é detectado. O objetivo é identificar qual o protocolo default a ser
usado quando os links são construídos.
Um link tem a seguinte estrutura:
<A HREF=”protocol:program[?parameters]”>Text</A>
Valores:
- Secure (HTTPS): força a geração do protocolo HTTPS. HTTPS indica
que o protocolo a ser usado é Secure Hypertext Transfer Protocol.
- Unsecure (HTTP): força a geração do protocolo HTTP. HTTP indica
que o protocolo a ser usado é Hypertext Transfer Protocol.
- Do Not Specify: nenhum protocolo é especificado, o protocolo ‘atual’
é usado.
O valor default é: Unsecure (HTTP).
Em geral, nós recomendamos o uso do ‘Do Not Specify’ para obter um
código gerado mais versátil (pode ser executado com qualquer protocolo).

108
Entretanto, há alguns browsers (normalmente versões antigas) que não
suportam links sem protocolo especificado. Por esta razão, e se você deseja
suportar tantos browsers quanto possível, nós recomendamos não utilizar ´Do
not specify’ nesta preferência.
NOTA: se o protocolo HTTPS é usado, você deve ter Secure Web
Server.

15.6. TYPE CHECKING

CHECK TYPE ERRORS

Type Controls são usados para checar se expressões, condições,


fórmulas e regras são válidas. Você pode definir se quer que sejam mostrados
mensagens de erro e advertência quando o Type Control é carregado. Mesmo
que o tipo de controlador não dependa da plataforma em que se está gerando
uma aplicação, o tipo de mensagem que é mostrada depende da plataforma.
Em particular, quando uma geração PC é executada (o mesmo se aplica
para protótipo ou Produção) as mensagens são Warnings que permitem que você
prossiga na geração dos programas. Entretanto, o AS/400 mostra mensagens
de erro e não permite a geração dos programas.
Valores:
- YES: Se por algum motivo você deseja que o mesmo critério que é
utilizado pelo gerador AS/400 seja utilizado para ambientes Xbases
(PC), você deve selecionar YES para esta propriedade.
- NO: Se você selecionar NO, o tipo de controle para Xbase é
executado na especificação.
O valor default é: YES.

Tipos de controle em expressões:


Todas as expressões GeneXus serão analisadas para testar sua
compatibilidade em cálculos ou funções.
Por exemplo: &no Numérico(10)
&char Caracter(10)
&data Date
Você pode definir a seguinte expressão em Program
Source/Layout/Events/Rules:
&no = &data + month(&char)

109
A expressão acima tem dois problemas:
A função month( ) requer um parâmetro tipo Date.
Uma expressão de igualdade obriga que ambos os lados da igualdade
sejam do mesmo tipo.
Assim o diagrama de navegação irá mostrar todos os Warnings (ou erros
dependendo da plataforma) indicando que a expressão não é correta:
- Type mismatch in expression <Invalid Expression> <at line X> (Tipos
não são compatíveis) onde <Invalid Expression> é parte da expressão
onde o erro foi detectado e <at line X> indica a linha da procedure ou
report onde o erro foi encontrado.
- Type mismatch in Assignment <Invalid Assignment> <at line X> (Tipos
não são compatíveis na igualdade) onde <Invalid Assignment> mostra
uma assinalação inválida.
Ex.: &no=&data + month(&char)
Do exemplo acima as mensagens mostradas serão as seguintes: vamos
supor que o erro aconteceu na linha 15 de um relatório:
- Type mismatch in expression month(&char) at line 15.
- Type mismatch in assignment &no=&data + month(&char) at line 15

Tipos de controle em Conditions:


Condições nas Procedures, Reports e Work Panels são controladas bem
como as cláusulas WHERE, IF ou DO WHILE.
Por exemplo:
IF str(&no,10) > CTOD(&data)
.....
ENDIF
As mensagens ou erros nas conditions serão os seguintes:
- Type mismatch in conditional expression <condition> onde <condition>
indica qual a condição incorreta.
- Type mismatch in expression CTOD(&data).
- Type mismatch in conditional expression str(&no,10) > CTOD(&data).

Tipos de controle em Fórmulas:


Há basicamente dois tipos de fórmulas:
- EXPRESSIONS: Expressões serão analisadas para controlar se as
assinalações são corretas e se as condições são corretas. (Esses
casos já forma mostrados em Expressions e Conditions).

110
- AGGREGATE-SELECT: Há seis tipos de fórmulas Aggregate-Select
(max, min, find, set, sum, count). Elas são compostas dos seguintes
parâmetros:
Fórmula = formula(Atributo,Condition,Default,Return)
O atributo “Return” é usado quando fórmulas MAX( ) e MIN( ) são
utilizadas.
Os seguintes casos são controlados:
- Fórmula e Atributo devem ser do mesmo tipo (Exceto para as
fórmulas MAX( ) e MIN( ));
- Fórmula e Default devem ser do mesmo tipo;
- Fórmula e Return devem ser do mesmo tipo;
- A validade da condição também é controlada.
No caso de haver parâmetros com erro é mostrado:
- Type mismatch in formula <Formula> in <TypeOfParameter>
parameter onde <formula> é o atributo formula e <TypeOfParameter>
indica o parâmetro inválido.
Exemplo:
Formula = Numérico(10)
AttrNo = Numérico(10)
AttrData = Date 8
AttrFirst = Caracter(10)
AttrReturn = Date 8
A fórmula mostrada abaixo dará as seguintes mensagens:
Formula = max(AttrFirst,str(AttrNo,10)>CTOD(AttrData),’90’,
AttrReturn)
Type mismatch in formula in default parameter
Type mismatch in formula in return parameter.
A mensagem correspondente à condição na fórmula é:
Type mismatch in condition str(AttrNo,10) <> CTOD(AttrData) in
fórmula Formula.

Tipos de controle nas Regras das Transações:


A maioria das regras das transações são transformadas em assinalações
e a consistência dos tipos de dados também deve ser controlado. As regras
Default, Equal, Add, Subtract, etc também são controladas.
As regras condicionais também tem sua consistência checada, ex.> Error,
Msg, etc.

111
Em ambos os casos as mensagens mostradas são as mesmas mostradas
acima.

FUNCTIONS

Permite o uso de funções específicas, que não são suportadas por todos
os geradores.
Se funções específicas não são explicitamente suportados pelo GeneXus
(ex.: TRIM, LEFT, etc, porque são válidos no AS/400) e elas são utilizadas, um
erro será mostrado.
Valores:
- Allows non-standard functions when specyfing: inibe o controle da
sintaxe mencionada acima na especificação.
- Error on non-standard functions when specyfing: o controle da
sintaxe mencionada acima é feita na especificação.
O valor default é: Error on non-standard functions when specyfing.

15.7. KEY CONFIGURATION

FIRST RECORD

LAST RECORD

NEXT RECORD

PREVIOUS RECORD

REFRESH KEY

Permite você selecionar qual tecla será utilizada como tecla de Refresh.
O valor default é F5.

PROMPT KEY

Permite você selecionar qual tecla será utilizada como Prompt das
Transações.

112
O valor default é F4.
Você deve evitar assinalar a mesma tecla de função para duas ações
diferentes porque isso não é controlado pelo gerador.

15.8.

15.9. OTHER

MAXIMUN WORKFILE LINES

Os subfiles em ambiente PC são carregados em arquivos temporários. O


tamanho máximo de um subfile na AS/400 é 9.999 linhas, mas em ambiente PC
ou rede não há restrições. Esta liberdade pode causar problemas, por exemplo:
se você está trabalhando com uma Work Panel ou Transação que carrega
300.000 registros e o usuário vai para o final do mesmo (Ctrl-End), neste caso
o arquivo temporário carregará 300.000 registros.
Se nenhuma das condições acima é satisfeita então 9.999 linhas são
assumidas como limite do subfile.
Quando o limite é ultrapassado, a seguinte mensagem é mostrada:
Number of lines exceeded xxxx
E você pode continuar trabalhando, mas nenhum outro registro será
carregado.
Valores: qualquer valor numérico positivo.

113

You might also like