Muchas gracias José Luis,
Antes también lo usaba así. Llamando por el número de la columna.
Pero eso conllevaba 2 problemas:
1º Que cambien el orden de las columnas.
2º Con el tiempo, al leer el código, saber que columna es la que estoy modificando, ya que sólo veía oBrw:aCols[ nCol ]
La mejor solución que encontré es llamar a las columnas con oBrw:Debe (Siendo "debe" el cHeader de una columna)
Hasta aquí todo perfecto y funcionando de maravilla.
El problema ahora, es que he tenido que migrar al Inglés todo el sistema (gracias Antonio por el contacto de los tractuctores).
Resultado, ahora la columna se llama Debit y cuando llega a la línea con oBrw:Debe, aparece el error.
Solución:
He incluido en TXBrwColumn el DATA cHeaderLang. y en este valor guardo el nombre de la columna en Español.
La sustitución de oBrw:Debe por oBrw:aCols[ nCol ], se realiza en el METHOD OnError( uParam1 ) como indicó Antonio.
En este método se llama al METHOD oCol( u ) y este es el que con un aScan busca el nombre "u" entre los cHeader que tiene oBrw:aCols
He modificado el método oCol, añadiendo que si el resultado del primer aScan es 0, volver a buscar con aScan, pero esta vez sobre el data cHeaderLang
- Code: Select all Expand view RUN
nAt := AScan( ::aCols, { |o| Upper(o:cHeaderLang) == Upper(u) } )