In funzione delle colonne attualmente selezionate, questa routine compone una stringa che contiene l'ordinamento corrente
Esempio della chiamata alla routine
Questa routine viene richiamata da alcune procedure automatiche. Le routine automatiche sono:
Viene anche richiamata manualmente quando si deve impostare un ordinamento manuale (le colonne sono selezionate da un default o da una configurazione, ad esempio:
a4.
initialize tab-maschera
* Questo andrebbe messo in una perform preparatoria
move "S" to w-grid-det-ord-reset
*-----------------------------------------------------------
* Imposto l'ordinamento predefinito (in questo caso e' fisso,
* potrebbe dipendere da una configurazione)
*-----------------------------------------------------------
move 1 to gor-r-pnt
move gcn-r-dato-3 to gor-r-col (1)
move "A" to gor-r-ord-tipo (1)
perform z-grid-det-componi-ord
perform z-grid-det-mostra-ord
*-----------------------------------------------------------
* All'inizio del programma carico l'eventuale filtro di default
*-----------------------------------------------------------
perform z-imppredf-carica-default
perform x-imposta-conferma
display s-mm-1
......
Esempio della routine
*------------------------------------------------------------------*
* Compongo la stringa che contiene l'ordinamento corrente
*------------------------------------------------------------------*
z-grid-det-componi-ord.
* Resetto il colore dell'intestazione
* Rimuovo anche il riferimento all'ordinamento '(x)'
move 0 to gor-r-co-k
perform with test after until gor-r-co-int = ' '
add 1 to gor-r-co-k
modify e-grid-det (1, gor-r-co-k), cell-color = 0
inquire e-grid-det (1, gor-r-co-k),
cell-data in gor-r-co-int
inspect gor-r-co-int replacing all '(D)' by ' '
inspect gor-r-co-int replacing all '(A)' by ' '
modify e-grid-det (1, gor-r-co-k),
cell-data = gor-r-co-int
end-perform
move ' ' to w-grid-det-descrizione-ord
move 0 to gor-r-co-k
perform gor-r-pnt times
add 1 to gor-r-co-k
move gor-r-col (gor-r-co-k) to gor-r-co-r
inquire e-grid-det (1, gor-r-co-r),
cell-data in gor-r-co-int
string gor-r-co-int delimited ' '
'(' gor-r-ord-tipo (gor-r-co-k) ')'
delimited size
into gor-r-co-int
if gor-r-co-k = 1
string gor-r-co-int delimited ' '
'#' delimited size
into w-grid-det-descrizione-ord
else
string w-grid-det-descrizione-ord delimited '#'
',' gor-r-co-int delimited ' '
'#' delimited size
into w-grid-det-descrizione-ord
end-if
modify e-grid-det (1, gor-r-co-r),
cell-color = ext-color-int-grid-ord,
cell-data = gor-r-co-int
end-perform
inspect w-grid-det-descrizione-ord replacing all '#' by ' '
.