Iniciar Sesión

Ver la Versión Completa : [Sintaxis] Ordenar CmListView


Breew
19 de febrero de 2017, 18:59
Hola.

No doy con el sistema para poder ordenar un CmListView por columnas en tiempo de ejecucion.
Quisiera posicionarme en cualquier columna y al clikar se ordene entero, pero solo consigo que
se ordene por la columna sort que le he definido en las propiedades.

¿ Se puede ?

Gracias

Kuk
19 de febrero de 2017, 20:14
Breew, en el evento "ColumnClick" debes hacer lo siguiente:


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 POW-COLUMNINDEX PIC S9(9) COMP-5.
PROCEDURE DIVISION USING POW-COLUMNINDEX.

MOVE POW-COLUMNINDEX TO "SortColumn" OF CmListView1.

Rapinto
20 de febrero de 2017, 00:24
Breew,

em run-time, deves fazer em seguida o SortOrder para reordenar
( A seguir ao SortColumn indicado pelo KUK)

Fujitsu Cobol User's Manual:

0 – None (POW-SORTORDER-NONE)
1 – Ascending (POW-SORTORDER-ASC)
2 – Descending (POW-SORTORDER-DESC)

The objects are resorted as soon as the value is changed.

Por Exemplo: move 1 to "SortOrder" of CmListView.

Saludos,
Rui

Breew
22 de febrero de 2017, 15:44
Hola.

Nada, no hay manera. Siempre reordena la columna 3 marque la columna que sea .


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 POW-ARG-COLUMNINDEX PIC S9(9) COMP-5.
PROCEDURE DIVISION USING POW-ARG-COLUMNINDEX.
MOVE 1 to "SortOrder" OF CMLISTVIEW1.
MOVE POW-ARG-COLUMNINDEX TO "SortColumn" OF CMLISTVIEW1.
INVOKE CMLISTVIEW1 "Refresh".
DISPLAY POW-ARG-COLUMNINDEX

Rapinto
23 de febrero de 2017, 00:03
Breew,

Troca as instruções:


MOVE POW-ARG-COLUMNINDEX TO "SortColumn" OF CMLISTVIEW1.
MOVE 1 to "SortOrder" OF CMLISTVIEW1.


Saludos,
Rui

Lascu
20 de marzo de 2017, 13:24
Hola,
Además de si el orden es ascendente o descendente, tambien tenes que indicarle si la columna por la que vas a ordenar el listview es númerica (POW-SORTKIND-NUMERIC) o de texto (POW-SORTKIND-TEXT) en el atributo "SortKind".
Con esto debería funcionar sin problemas. Acordate que las fechas en powercobol son texto.
Saludos

Lascu


MOVE POW-SORTORDER-ASC TO"SortOrder" OF LISTVIEW.
IF POW-ARG-COLUMNINDEX = 1 OR 2 OR 5 OR 6 OR 9 THEN
MOVE POW-SORTKIND-TEXT TO "SortKind" OF LISTVIEW
ELSE
MOVE POW-SORTKIND-NUMERIC TO "SortKind" OF LISTVIEW
END-IF.
MOVE POW-ARG-COLUMNINDEX TO "SortColumn" OF LISTVIEW.


En mi ejemplo las columnas 1, 2, 5, 6, y 9 son de texto, el resto numéricas.