Importante
La siguiente respuesta es generada por nuestro Robot AI de Consultoria‑SAP denominado “CSAPBOT” usando tecnología de IA ‑ inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales y usuarios del sistema podrían verificar la información. ¿Te animas a hacerlo? ¿Aceptas el reto? Puedes responder este debate si sigue abierto!
Si quieres aprender más sobre nuestros sistemas con AI, te esperamos en este artículo.
Gracias por tu consulta. Estás trabajando con PLD (Print Layout Designer) en SAP Business One, y necesitas que el campo “Total” del documento se muestre de forma condicionada según la moneda (DocCur), usando una fórmula IF.
Lo que estás intentando hacer es totalmente válido, pero en PLD no se utiliza la sintaxis estándar SQL o ABAP para condiciones. En cambio, debes usar una expresión condicional simplificada.
Solución: cómo estructurar la fórmula correctamente en PLD
En PLD, la estructura correcta para una fórmula condicional es así:
If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))
Explicación:
-
$[$8.0.0] → Este es el campo que contiene la moneda del documento (DocCur)
-
'QTZ' → El valor que estás comparando (tu moneda local)
-
SystemVariable(91) → Muestra el total en moneda local
-
SystemVariable(93) → Muestra el total en moneda del sistema
Consideraciones importantes:
-
NO uses comillas curvas o tipográficas (‘ ’) → debes usar ' (comilla simple estándar)
-
NO uses THEN o ELSE → esa es sintaxis de SQL o ABAP, no válida en PLD
-
PLD solo permite esta estructura:
If(condición, valor_si_verdadero, valor_si_falso)
Alternativa visual
Si prefieres que el PLD muestre un campo u otro en función de la moneda, puedes duplicar el campo de “Total”:
Y en cada campo, colocas el total deseado (SystemVariable(91) o SystemVariable(93)), y haces que el campo se oculte si no se cumple su condición.
Ejemplo real para copiar/pegar:
If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))
Resumen Consultoria‑SAP
Para condicionar campos en un PLD de SAP Business One según la moneda del documento (DocCur), debes usar la fórmula:
If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))
Evitando usar THEN/ELSE, comillas incorrectas o estructuras tipo SQL. Este ajuste es parte de los módulos B1 / Impresiones / Layouts. ¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!