SX1 — Perguntas (parametros)
Tabela de Perguntas — parametros de rotinas/relatorios. Cada Pergunte() carrega valores em variaveis MV_PAR01..MV_PARxx vindo daqui.
SX1 guarda as "Perguntas" (na verdade parametros) que aparecem antes de relatorios e batches. Cada Pergunte("GRUPO") carrega valores das perguntas do grupo em variaveis MV_PARxx.
Campos principais
| Campo | Tipo | Descricao |
|---|---|---|
| X1_GRUPO | C | Grupo da pergunta (ex: "MEUPAR") |
| X1_ORDEM | C | Ordem dentro do grupo (01, 02, ...) |
| X1_PERGUNT | C | Texto da pergunta |
| X1_VARIAVL | C | Nome variavel (mv_ch1, mv_ch2, ...) |
| X1_TIPO | C | C=Char, N=Num, D=Date, L=Logical |
| X1_TAMANHO | N | Tamanho |
| X1_DECIMAL | N | Casas decimais |
| X1_PRESEL | N | Opcao default em lista |
| X1_GSC | C | G=Geral, S=Servico, C=Combo |
| X1_VAR01 | C | Nome var memoria (MV_PAR01) |
| X1_F3 | C | Consulta padrao (SXB) |
| X1_CNT01 | C | Conteudo default |
Indices
| Ordem | Chave |
|---|---|
| 1 | X1_GRUPO+X1_ORDEM |
Codigo tipico
// Criar perguntas programaticamente
PutSx1("MEUREL", "01", "Data de", "", "", "mv_ch1", "D", 8, 0, 0, "G", ;
"", "", "", "MV_PAR01", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
// Usar
Pergunte("MEUREL", .T.) // exibe dialog
// Agora MV_PAR01 contem a data informada
ConOut("Data: " + DToC(MV_PAR01))
Pegadinhas
- PutSx1 e idempotente — pode rodar varias vezes sem duplicar.
- MV_PARxx sao Private — declare antes em quem usa.
- Mesmo X1_GRUPO em rotinas diferentes compartilha MV_PARxx.
- Pra rotina pontual sem poluir SX1, use ParamBox.