Cómo dividir valores de un campo donde exista un caracter en Crystal Reports

Por barry kaye
Divide los campos de datos en un caracter específico en Crystal Reports.

Dividir el valor de un campo alfanumérico a un caracter específico en Crystal Reports es bastante sencillo. La premisa es dividir el campo en dos partes con la posición numérica del carácter deseado. Puedes capturar el valor de cada pieza en una fórmula independiente mediante las funciones de cadenas integradas. La primera parte será capturar los campos desde la primera posición hasta la posición de división. La segunda parte capturará desde la posición de división más uno hasta la última posición de la cadena.

Paso 1

Abre una nueva fórmula y define las variables de cadena. Nota: // define comentarios

stringVar s := 'abcdefghijklmnopqrstuvwxyz'; // s = constante o valor del campo de datos stringVar c := 'm'; // c = cualquier caracter de s para definir la posición de la división numberVar L := length(s); // L = tamaño de s (última posición) numberVar i := instr(s, c); // i = posición numérica del campo c (ejemplo: m=13)

Paso 2

Continuando con las variables del paso 1, define la primera parte de la división utilizando las variables como argumentos en las funciones de cadena preestablecidas.

// mid toma la cadena (s) desde la posición de partida numérica (1) hasta la posición de fin (i)

mid(s,1,i)

Paso 3

Sigue con las variables del paso 1, define la segunda parte de la división utilizando las variables como argumentos en las funciones de cadena preestablecidas

// mid toma la cadena (s) desde la posición de partida numérica (i+1) hasta la posición de fin (L)

mid(s,i+1,L)

Paso 4

Decide cómo usar las partes divididas definidas.

1) Muestra un carro de retorno en la posición de división resultante

// CHR(13) es el caracter ASCII del carro de retorno

mid(s,1,i) + chr(13) + mid(s,i+1,L)

2) Muéstralos como dos campos separados.

  • Nombra la fórmula como Part1 y una copia como Part2
  • Mantén las declaraciones de variables en cada fórmula
  • Mantén mid(s,1,i) en Part1
  • Mantén mid(s,i+1,L) en Part2
  • Coloca Part1 y Part2 en un reporte independiente