Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
  COBOL Foro > IDE-s y compiladores COBOL > Fujitsu COBOL > PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
Comunicados
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Cargar la lista por columnas ctList de DBI-Tech Breew PowerCOBOL (ActiveX, v4 - v11) 5 25 de febrero de 2018 21:59
[Sintaxis] Error MOVE "Parent" de un nodo "Root" en TreeView dmosca PowerCOBOL (ActiveX, v4 - v11) 1 23 de agosto de 2017 08:47
[Sintaxis] Error al cargar imagen en Innovasys Button Josber PowerCOBOL (ActiveX, v4 - v11) 9 26 de junio de 2017 14:47
[Sintaxis] Sacar y guardar el cógido fuente de una pagina Web Roger PowerCOBOL (ActiveX, v4 - v11) 20 11 de marzo de 2015 22:56
Respuesta
 
Herramientas

  #1
Antiguo 8 de agosto de 2017, 17:32
IDENTIFICATION DIVISION
dmosca
 Junior
ENVIRONMENT DIVISION
Avatar de dmosca
DATA DIVISION
marzo 2017
Mendoza
05.11.2021 17:43
PROCEDURE DIVISION
Posts: 68
Enviado: 32
Recibido: 4
Soluciones: 1
Reputación: 5
dmosca is an unknown quantity at this point
Alternativa Guardar/cargar jerarquía de nodos en TreeView

Hola Foro:

consulta: se puede leer el contenido de un TreeView en forma secuencial?

como posicionar el primer nodo y hacer una lectura secuencial, y como llevar el control de ultimo nodo?

Powercobol V9
dmosca no ha iniciado sesión   Responder Con Cita
Mejores respuestas Soluciones: 1
  #2
Antiguo 16 de agosto de 2017, 17:28
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

dmosca, normalmente este tipo de cosas de hace con recursión. Aunque, en teoría, se puede hacer a base de iteraciones también.

¿Conoces el formato (la profundidad máxima y la estructura) del contenido del TreeView o puede variar y es a descubrir en el proceso?



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 17 de agosto de 2017, 00:39
IDENTIFICATION DIVISION
dmosca
 Junior
ENVIRONMENT DIVISION
Avatar de dmosca
DATA DIVISION
marzo 2017
Mendoza
05.11.2021 17:43
PROCEDURE DIVISION
Posts: 68
Enviado: 32
Recibido: 4
Soluciones: 1
Reputación: 5
dmosca is an unknown quantity at this point
Predeterminado Treeview

Kuk, gracias por contestar

quiero generar un menú, donde el usuario final pueda configurar sus opciones.

el menú tendría una parte fija, y otra donde el usuario pueda agregar o eliminar sus opciones.

ya pude cargar el treeview desde un archivo, pero no se como leer los nodos en forma sequencial para poder guardar las modificaciones.

saludos
dmosca no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 17 de agosto de 2017, 09:04
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

dmosca, publica el código de cómo estás cargando los datos actualmente para que lo vea.

¿El usuario puede cargar nuevos nodos de 1 nivel o de varios niveles?

Creo recordar que hay algoritmos para ello. Como he dicho antes, lo más fácil es hacerlo con recursión, pero para ello hay que estar en modo OO (Orientado Objetos). Así que dependiendo de tu respuesta, miraremos cómo lo podemos hacer con iteraciones.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 18 de agosto de 2017, 01:25
IDENTIFICATION DIVISION
dmosca
 Junior
ENVIRONMENT DIVISION
Avatar de dmosca
DATA DIVISION
marzo 2017
Mendoza
05.11.2021 17:43
PROCEDURE DIVISION
Posts: 68
Enviado: 32
Recibido: 4
Soluciones: 1
Reputación: 5
dmosca is an unknown quantity at this point
Predeterminado treeview


Kuk buenas tardes

el usuario deberia poder generar nivel 1 y 2, en el nivel 1 deberia poder cargar el nombre de un programa o crear una carpeta. (este ultimo tema no lo tengo resuelto).
adjunto el txt (es un ejemplo)
codigo para cargar el treeview desde un txt:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01 RETURNVALUE PIC S9(5) COMP-5.
  3.  01 WK-IDX PIC S9(9) COMP-5.
  4.  01 POW-PCMNODE OBJECT REFERENCE POW-CNODE.
  5.  01 WK-TEXT PIC X(100).
  6.  01 DEM PIC 99 VALUE 0.
  7.  01 I PIC 999 VALUE 0.
  8.  01 T1 PIC 999 VALUE 0.
  9.  01 TCHILD      PIC S9(9) COMP-5 GLOBAL EXTERNAL.
  10.  01 TROOT       PIC S9(9) COMP-5 GLOBAL EXTERNAL.
  11.  01 ELNODO1     PIC S9(9) COMP-5.
  12.  01 ELNODO2     PIC S9(9) COMP-5.
  13.  01 ELNODO3     PIC S9(9) COMP-5.
  14.  01 ELNODO4     PIC S9(9) COMP-5.
  15.  01 ELNODO5     PIC S9(9) COMP-5.
  16.  PROCEDURE DIVISION.
  17.      INVOKE POW-SELF "CallForm" USING "Apertura".
  18.      INVOKE Menu_Ppal "clear".
  19.  TAREA.
  20.      OPEN INPUT PROGRAMAS.
  21.      PERFORM VARYING T1 FROM 1 BY 1 UNTIL DEM = 99
  22.        READ PROGRAMAS AT END MOVE 99 TO DEM END-READ
  23.        IF DEM = ZEROES
  24.           EVALUATE NIVEL
  25.              WHEN 0
  26.                  INVOKE Menu_Ppal "Add" USING PROG 1 3 4 RETURNING ELNODO1
  27.              WHEN 1
  28.                  MOVE 'Root'(ELNODO1) OF Menu_Ppal TO POW-PCMNODE
  29.                  INVOKE POW-PCMNODE 'Add' USING PROG 1 3 4 RETURNING ELNODO2
  30.              WHEN 2
  31.                  MOVE 'Child'(ELNODO2) OF 'Root'(ELNODO1) OF Menu_Ppal TO POW-PCMNODE            
  32.                  INVOKE POW-PCMNODE 'Add' USING PROG 1 3 4 RETURNING ELNODO3
  33.              WHEN 3
  34.                  MOVE 'Child'(ELNODO3) OF
  35.                       'Child'(ELNODO2) OF 'Root'(ELNODO1) OF Menu_Ppal TO POW-PCMNODE            
  36.                  INVOKE POW-PCMNODE 'Add' USING PROG 1 3 4 RETURNING ELNODO4
  37.              WHEN 4
  38.                  MOVE 'Child'(ELNODO4) OF
  39.                       'Child'(ELNODO3) OF
  40.                       'Child'(ELNODO2) OF 'Root'(ELNODO1) OF Menu_Ppal TO POW-PCMNODE            
  41.                  INVOKE POW-PCMNODE 'Add' USING PROG 1 3 4 RETURNING ELNODO5
  42.           END-EVALUATE
  43.        END-IF
  44.      END-PERFORM.                            
  45.      CLOSE PROGRAMAS.
  46.      EXIT PROGRAM.
Archivos Adjuntos
Tipo de Archivo: txt Programa.txt (341 Bytes, 41 descargas Quién descargó)
dmosca no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 18 de agosto de 2017, 09:10
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Cita del post de dmosca Ver Mensaje
o crear una carpeta. (este ultimo tema no lo tengo resuelto).
Para ello será necesario guardar también el tipo del nodo, si es carpeta o no. Pero en realidad es ficticio, técnicamente no hay diferencia. Con lo cual, se puede decir que si el nodo tiene hijos, es una carpeta, o por ejemplo si usas iconos en el TreeView, según el índice del icono, sabrás si es carpeta o no.

En cuanto al algoritmo, voy a meditarlo y hacer pruebas. Cuando tenga resultados convincentes, te los pasaré por aquí



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
dmosca (18 de agosto de 2017)
  #7
Antiguo 23 de agosto de 2017, 22:19
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado
1 usuarios han marcado este post como "Solución"

dmosca, he aquí la solución. El truco consiste en darle un ID ficticio a cada Nodo, y guardar ese ID ficticio del padre. Luego se lee por capas/niveles comprobando si hay hijos o no, y así hasta que ningún nodo del nivel tenga hijos.

Aquí va el código de cómo guardar la jerarquía:

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  INPUT-OUTPUT SECTION.
  3.  FILE-CONTROL.
  4.      
  5.      SELECT OPTIONAL TREE-FILE
  6.      ASSIGN TO "TREE.DB"
  7.      ORGANIZATION INDEXED
  8.      ACCESS MODE DYNAMIC
  9.      RECORD KEY  IS TRE-ID
  10.      FILE STATUS IS SW-FS.
  11.      
  12.  DATA DIVISION.
  13.  FILE SECTION.
  14.  
  15.  FD  TREE-FILE.
  16.  01  TRE-REC.
  17.      05  TRE-ID                         PIC S9(4) COMP-5.
  18.      05  TRE-ID-PADRE                   PIC S9(4) COMP-5.
  19.      05  TRE-NIVEL                      PIC S9(4) COMP-5.      
  20.      05  TRE-NODE    OBJECT REFERENCE POW-CNODE.
  21.      05  TRE-NODE-N REDEFINES TRE-NODE  PIC S9(9) COMP-5.
  22.      05  TRE-TEXT                       PIC X(50).
  23.      05  TRE-ImageIndex                 PIC S9(9) COMP-5.
  24.      05  TRE-SelectedImageIndex         PIC S9(9) COMP-5.
  25.      05  TRE-ExpandedImageIndex         PIC S9(9) COMP-5.
  26.  
  27.  WORKING-STORAGE SECTION.
  28.  01  SW-FS                              PIC X(2).
  29.      88  SW-FS-EOF                                VALUE "10".
  30.  
  31.  01  SV-NIVEL                           PIC S9(4) COMP-5.
  32.  01  SV-N                               PIC S9(4) COMP-5.
  33.  01  SV-COUNT                           PIC S9(4) COMP-5.
  34.  
  35.  01  IDX-MAX                            PIC S9(4) COMP-5.
  36.  01  IDX-1                              PIC S9(4) COMP-5.
  37.  01  IDX-2                              PIC S9(4) COMP-5.
  38.  01  IDX-3                              PIC S9(4) COMP-5.
  39.  
  40.  01  IDX-T                              PIC S9(4) COMP-5.
  41.  01  TBL-TREE.
  42.      05  TB-TREE OCCURS 0 TO 5000 TIMES DEPENDING ON IDX-T.
  43.          10  TB-ID                      PIC S9(4) COMP-5.
  44.          10  TB-ID-PADRE                PIC S9(4) COMP-5.
  45.          10  TB-NIVEL                   PIC S9(4) COMP-5.        
  46.          10  TB-NODE    OBJECT REFERENCE POW-CNODE.
  47.          10  TB-NODE-N REDEFINES TB-NODE PIC S9(9) COMP-5.
  48.          10  TB-TEXT                    PIC X(50).
  49.          10  TB-ImageIndex              PIC S9(9) COMP-5.
  50.          10  TB-SelectedImageIndex      PIC S9(9) COMP-5.
  51.          10  TB-ExpandedImageIndex      PIC S9(9) COMP-5.
  52.  
  53.  01  SW-CHILDS                          PIC X.
  54.      88  SW-CHILDS-SI                             VALUE "S".
  55.      88  SW-CHILDS-NO                             VALUE "N".
  56.  
  57.  PROCEDURE DIVISION.
  58.      
  59.      CALL "CBL_DELETE_FILE2" USING BY CONTENT "TREE.DB"
  60.      
  61.      OPEN I-O TREE-FILE
  62.      
  63.      MOVE ZEROS                  TO IDX-T
  64.      MOVE "Count" OF CmTreeView1 TO IDX-MAX
  65.      MOVE 1                      TO IDX-1, SV-NIVEL
  66.      
  67.      PERFORM UNTIL IDX-1 > IDX-MAX
  68.          ADD 1 TO IDX-T
  69.          
  70.          MOVE IDX-T                                  TO TB-ID(IDX-T)
  71.          MOVE ZEROS                                  TO TB-ID-PADRE(IDX-T)
  72.          MOVE SV-NIVEL                               TO TB-NIVEL(IDX-T)
  73.          MOVE "Root"(IDX-1) OF CmTreeView1           TO TB-NODE(IDX-T)
  74.          MOVE "Text"               OF TB-NODE(IDX-T) TO TB-TEXT(IDX-T)
  75.          MOVE "ImageIndex"         OF TB-NODE(IDX-T) TO TB-ImageIndex(IDX-T)
  76.          MOVE "SelectedImageIndex" OF TB-NODE(IDX-T) TO TB-SelectedImageIndex(IDX-T)
  77.          MOVE "ExpandedImageIndex" OF TB-NODE(IDX-T) TO TB-ExpandedImageIndex(IDX-T)
  78.          
  79.          PERFORM WRITE-TRE-REC        
  80.          
  81.          ADD 1 TO IDX-1
  82.      END-PERFORM
  83.      
  84.      SET SW-CHILDS-SI TO TRUE
  85.      
  86.      PERFORM UNTIL SW-CHILDS-NO
  87.          SET SW-CHILDS-NO TO TRUE
  88.          
  89.          MOVE 1     TO IDX-2
  90.          MOVE IDX-T TO SV-N
  91.          
  92.          PERFORM UNTIL IDX-2 > SV-N
  93.              IF  TB-NIVEL(IDX-2) = SV-NIVEL
  94.                  PERFORM CHILDS
  95.              END-IF
  96.              
  97.              ADD 1 TO IDX-2
  98.          END-PERFORM
  99.          
  100.          ADD 1 TO SV-NIVEL
  101.      END-PERFORM
  102.      
  103.      CLOSE TREE-FILE
  104.      
  105.      GOBACK
  106.      .    
  107.      
  108.  CHILDS.
  109.      
  110.      IF  "Count" OF TB-NODE(IDX-2) > 0
  111.          SET SW-CHILDS-SI TO TRUE
  112.          
  113.          MOVE 1                         TO IDX-3
  114.          MOVE "Count" OF TB-NODE(IDX-2) TO SV-COUNT
  115.          
  116.          PERFORM UNTIL IDX-3 > SV-COUNT
  117.              ADD 1 TO IDX-T
  118.              
  119.              MOVE IDX-T TO TB-ID(IDX-T)
  120.              MOVE IDX-2 TO TB-ID-PADRE(IDX-T)
  121.              
  122.              ADD 1 TO SV-NIVEL GIVING TB-NIVEL(IDX-T)
  123.              
  124.              MOVE "Child"(IDX-3)       OF TB-NODE(IDX-2) TO TB-NODE-N(IDX-T)
  125.              MOVE "Text"               OF TB-NODE(IDX-T) TO TB-TEXT(IDX-T)
  126.              MOVE "ImageIndex"         OF TB-NODE(IDX-T) TO TB-ImageIndex(IDX-T)
  127.              MOVE "SelectedImageIndex" OF TB-NODE(IDX-T) TO TB-SelectedImageIndex(IDX-T)
  128.              MOVE "ExpandedImageIndex" OF TB-NODE(IDX-T) TO TB-ExpandedImageIndex(IDX-T)
  129.          
  130.              PERFORM WRITE-TRE-REC        
  131.              
  132.              ADD 1 TO IDX-3
  133.          END-PERFORM
  134.      END-IF
  135.      .
  136.  
  137.  WRITE-TRE-REC.
  138.      
  139.      WRITE TRE-REC FROM TB-TREE(IDX-T)
  140.      
  141.      IF  SW-FS NOT = "00"
  142.          INVOKE POW-SELF "DisplayMessage" USING "Error" SW-FS 48
  143.          
  144.          CLOSE TREE-FILE
  145.          
  146.          GOBACK
  147.      END-IF
  148.      .

Y aquí el código de cómo cargar los datos en el TreeView:

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  INPUT-OUTPUT SECTION.
  3.  FILE-CONTROL.
  4.      
  5.      SELECT OPTIONAL TREE-FILE
  6.      ASSIGN TO "TREE.DB"
  7.      ORGANIZATION INDEXED
  8.      ACCESS MODE SEQUENTIAL
  9.      RECORD KEY  IS TRE-ID
  10.      FILE STATUS IS SW-FS.
  11.      
  12.  DATA DIVISION.
  13.  FILE SECTION.
  14.  
  15.  FD  TREE-FILE.
  16.  01  TRE-REC.
  17.      05  TRE-ID                         PIC S9(4) COMP-5.
  18.      05  TRE-ID-PADRE                   PIC S9(4) COMP-5.
  19.      05  TRE-NIVEL                      PIC S9(4) COMP-5.      
  20.      05  TRE-NODE    OBJECT REFERENCE POW-CNODE.
  21.      05  TRE-NODE-N REDEFINES TRE-NODE  PIC S9(9) COMP-5.
  22.      05  TRE-TEXT                       PIC X(50).
  23.      05  TRE-ImageIndex                 PIC S9(9) COMP-5.
  24.      05  TRE-SelectedImageIndex         PIC S9(9) COMP-5.
  25.      05  TRE-ExpandedImageIndex         PIC S9(9) COMP-5.
  26.  
  27.  WORKING-STORAGE SECTION.
  28.  01  SW-FS                              PIC X(2).
  29.  
  30.  01  IDX-A                              PIC S9(4) COMP-5.
  31.  01  IDX-NOD                            PIC S9(4) COMP-5.
  32.  
  33.  01  IDX-T                              PIC S9(4) COMP-5.
  34.  01  TBL-TREE.
  35.      05  TB-TREE OCCURS 0 TO 5000 TIMES DEPENDING ON IDX-T.                        
  36.          10  TB-NODE    OBJECT REFERENCE POW-CNODE.
  37.          10  TB-NODE-N REDEFINES TB-NODE PIC S9(9) COMP-5.          
  38.  
  39.  01  swEof                      PIC X.
  40.      88  swEof-SI                     VALUE "S".
  41.      88  swEof-NO                     VALUE "N".
  42.  
  43.  01  CNT-READ                   PIC S9(4) COMP-5.
  44.  PROCEDURE DIVISION.
  45.      
  46.      INVOKE CmTreeView1 "Clear"
  47.      
  48.      SET swEof-NO TO TRUE
  49.        
  50.      OPEN INPUT TREE-FILE    
  51.      
  52.      IF  SW-FS NOT = "00"
  53.          INVOKE POW-SELF "DisplayMessage" USING "Error OPEN" SW-FS 48
  54.      END-IF
  55.      
  56.      PERFORM READ-FILE
  57.      
  58.      MOVE ZEROS TO IDX-T
  59.      
  60.      PERFORM UNTIL swEof-SI
  61.          IF  TRE-ID-PADRE = ZEROS
  62.              ADD 1 TO IDX-T
  63.              
  64.              INVOKE CmTreeView1 "Add" USING TRE-TEXT RETURNING IDX-NOD
  65.                  
  66.              MOVE "Root"(IDX-NOD) OF CmTreeView1 TO TB-NODE(IDX-T)
  67.              
  68.              PERFORM ICONOS            
  69.          
  70.          ELSE
  71.              ADD 1 TO IDX-T
  72.              
  73.              INVOKE TB-NODE(TRE-ID-PADRE) "Add" USING TRE-TEXT RETURNING IDX-NOD
  74.              
  75.              MOVE "Child"(IDX-NOD) OF TB-NODE(TRE-ID-PADRE) TO TB-NODE(IDX-T)  
  76.              MOVE POW-TRUE TO "Expanded" OF TB-NODE(TRE-ID-PADRE)
  77.              
  78.              PERFORM ICONOS          
  79.          END-IF
  80.          
  81.          PERFORM READ-FILE
  82.      END-PERFORM
  83.      
  84.      CLOSE TREE-FILE
  85.      
  86.      IF  SW-FS NOT = "00"
  87.          INVOKE POW-SELF "DisplayMessage" USING "Error CLOSE" SW-FS 48
  88.      END-IF
  89.      
  90.      GOBACK
  91.      .
  92.      
  93.  READ-FILE.
  94.      
  95.      READ TREE-FILE
  96.      
  97.      IF  SW-FS = "00"
  98.          CONTINUE
  99.          
  100.      ELSE
  101.          IF  SW-FS = "10"
  102.              SET swEof-SI TO TRUE
  103.              
  104.          ELSE
  105.              INVOKE POW-SELF "DisplayMessage" USING "Error" SW-FS 48
  106.              
  107.              GOBACK
  108.          END-IF
  109.      END-IF        
  110.      .
  111.      
  112.  ICONOS.
  113.      
  114.      MOVE TRE-ImageIndex          TO "ImageIndex"         OF TB-Node(IDX-T)
  115.      MOVE TRE-SelectedImageIndex  TO "SelectedImageIndex" OF TB-Node(IDX-T)
  116.      MOVE TRE-ExpandedImageIndex  TO "ExpandedImageIndex" OF TB-Node(IDX-T)
  117.      .            

Adjunto proyecto de ejemplo. El código no está optimizado, no tengo tiempo, se puede sacar fuera código repetido, pero bueno, la idea está ahí y funciona.
Archivos Adjuntos
Tipo de Archivo: rar TREEVIEW.rar (35,8 KB, 22 descargas Quién descargó)



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
Han dicho Gracias: 2
dmosca (24 de agosto de 2017), Joseg (24 de agosto de 2017)
  #8
Antiguo 24 de agosto de 2017, 09:34
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Esta parte del código para la carga:

Código COBOL:
  1.      PERFORM UNTIL swEof-SI
  2.          IF  TRE-ID-PADRE = ZEROS
  3.              ADD 1 TO IDX-T
  4.              
  5.              INVOKE CmTreeView1 "Add" USING TRE-TEXT RETURNING IDX-NOD
  6.                  
  7.              MOVE "Root"(IDX-NOD) OF CmTreeView1 TO TB-NODE(IDX-T)
  8.              
  9.              PERFORM ICONOS            
  10.          
  11.          ELSE
  12.              ADD 1 TO IDX-T
  13.              
  14.              INVOKE TB-NODE(TRE-ID-PADRE) "Add" USING TRE-TEXT RETURNING IDX-NOD
  15.              
  16.              MOVE "Child"(IDX-NOD) OF TB-NODE(TRE-ID-PADRE) TO TB-NODE(IDX-T)  
  17.              MOVE POW-TRUE TO "Expanded" OF TB-NODE(TRE-ID-PADRE)
  18.              
  19.              PERFORM ICONOS          
  20.          END-IF
  21.          
  22.          PERFORM READ-FILE
  23.      END-PERFORM

Queda mucho mejor así:
Código COBOL:
  1.      PERFORM UNTIL swEof-SI
  2.          ADD 1 TO IDX-T
  3.          
  4.          IF  TRE-ID-PADRE = ZEROS
  5.              INVOKE CmTreeView1 "Add" USING TRE-TEXT RETURNING IDX-NOD
  6.                  
  7.              MOVE "Root"(IDX-NOD) OF CmTreeView1 TO TB-NODE(IDX-T)
  8.              
  9.          ELSE
  10.              INVOKE TB-NODE(TRE-ID-PADRE) "Add" USING TRE-TEXT RETURNING IDX-NOD
  11.              
  12.              MOVE "Child"(IDX-NOD) OF TB-NODE(TRE-ID-PADRE) TO TB-NODE(IDX-T)  
  13.              MOVE POW-TRUE TO "Expanded" OF TB-NODE(TRE-ID-PADRE)            
  14.          END-IF
  15.          
  16.          PERFORM ICONOS                      
  17.          PERFORM READ-FILE
  18.      END-PERFORM



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 28 de agosto de 2017, 22:53
IDENTIFICATION DIVISION
Kuk
 Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
enero 2015
Madrid
36 años
03.12.2021 17:22
PROCEDURE DIVISION
Posts: 1.897
Enviado: 613
Recibido: 801
Soluciones: 99
Reputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Pequeño pantallazo para ilustrar un poco de lo que se trata.
Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  TreeView.png
Vistas: 34
Tamaño:  44,4 KB  



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk no ha iniciado sesión   Responder Con Cita
Respuesta

Tags
cargar , guardar , node , nodo , nodos , tree , treeview


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado



La franja horaria es GMT +1. Ahora son las 18:08.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.