Formato Crystal de Entrega

crystalreport
Etiquetas: #<Tag:0x00007f435adbaed0>

#1

Buen día compañeros,
Espero se encuentren bien. En esta oportunidad les escribo porque tengo un formato en Crystal orientado a la impresión de series y lotes. Tengo una fórmula para que en el caso de series me imprima el número de serie y en el caso de los lotes el lote y su fecha de vencimiento. Esta fórmula la estoy condicionando con el campo OITM.ManSerNum.
Todos eramos felices, hasta que se agregó un artículo cuyo método de gestión es “Ninguno”. El layout me muestra solo los que sean series o lotes y estos no los trae en el reporte.
Creo que la solución va en ampliar la fórmula para incorporar aquellos que tengan método de gestión ninguno pero no encuentro la tabla. Si coloco lote es ManBtchNum y si es serie ManSerNum pero creo que esos valores (0,1 y 2) están en otra tabla que no consigo (he buscado en el SDK Help y no logro encontrarlo).
Muchas gracias de antemano por su ayuda.
Saludos,


#2

Hol@ @Connie:

Buenas tardes, podrías compartirnos tu consulta? En cuanto a los campos que mencionas tengo mi duda, ya que son campos de caracter, con solo un valor ‘Y’ u ’ N’. En todos los casos siendo esta la situación, como usted dice ampliaría la selección de artículos a todos aquellos que el ManBtchNum y el ManSerNum tengan un valor ‘N’.

Saludos :raised_hand_with_fingers_splayed:t5:


#3

El dato lo tienes en OITM
borrar1 no tiene nada activado
borrar2 numeros de serie
borrar3 numeros de lote

image


#4

Hola @oscarezh, mi consulta es la siguiente:

if {OITM.ManSerNum} = 'N' then 'Código: ' & {OITM.SuppCatNum} & ' / Marca: ' & {OITM.U_XXX_MARCAS} & ' / Presentación: ' & {OITM.U_XXX_PRESENT} & ' / Lote: ' & {OBTN.DistNumber} ELSE if {OITM.ManSerNum} = 'Y' then 'Código: ' & {OITM.SuppCatNum} & ' / Marca: ' & {OITM.U_XXX_MARCAS} & ' / Serie: ' & {OSRN.DistNumber} ELSE ' '


#5

Hola @meqs, así es lo tengo en la OITM, lo que estoy viendo es que debo ampliar mi fórmula para incluir los artículos con método de gestión ninguno. Déjenme ver como hago y les comento. Gracias por su ayuda!


#6

Creo que también debo tener un error en los vínculos de las tablas porque estoy vinculando ODLN con OITL y DLN1 con ITL1 y esta a su vez con OSRN y OBTN. Creo que esta relación me está dejando por fuera los artículos que no son gestionados por series o lotes y por eso me los excluye al poner un campo de estas tablas…


#7

Hol@ @Connie:

Efectivamente, en tu otra parte de la query debe estar filtrando de tal manera que te excluye los artículos no gestionados. Por que en el código que propones, si un artículo no fuera gestionado, te aparecería en tú opción de impresión de lote, ya que si no es gestionado {OITM.ManSerNum} = ‘N’

Saludos :raised_hand_with_fingers_splayed:t5:


#8

Hola @oscarezh, ya arreglé la fórmula pero igual siguen si aparecerme en el reporte los artículos con método de gestión ninguno…cuando dejo descripción, cantidad, etc. de la DLN1 aparecen todos pero cuando incorporo un campo relacionado con series/lotes desaparecen los de gestión ninguno…


#9

Hol@ @Connie:

Bueno lo más seguro sea algún inner join en tu consulta que al no encontrar valores para los articulos de gestión ninguno, los excluye. Si gustas nos compartes el código completo y vemos que se puede hacer.

Salud@s :raised_hand_with_fingers_splayed:t5:


#10

Hola @oscarezh,
Saqué de la formula todos los campos comunes a todos los artículos y dejé solo los relacionados con lotes / series. La fórmula es la siguiente:
if {OITM.ManBtchNum} = ‘Y’ then ’ / Lote: ’ & {OBTN.DistNumber} & ’ / Expiración: ’ & {OBTN.ExpDate} else
if {OITM.ManSerNum} = ‘Y’ then ’ / Serie: ’ & {OSRN.DistNumber} else
if {OITM.ManSerNum} = ‘N’ and {OITM.ManBtchNum} = ‘N’ then ’ '
Allí lo que quiero es que no me coloque nada si el artículo tiene método de gestión ninguno…
Muchas gracias


#11

@oscarezh me faltó decir que no funcionó :joy: …es decir, aparecen los artículos por lote, serie y los otros no…:cry:


#12

Hol@ @Connie:

Si dejas solo esto if {OITM.ManSerNum} = ‘N’ AND {OITM.ManBtchNum} = ‘N’ te muestra los artículos no gestionados?

Verifico que valores tienen los artículos no gestionados los campos OITM.ManSerNum y OITM.ManBtchNum? (SELECT {OITM.ItemCode}, {OITM.ManBtchNum}, {OITM.ManSerNum} FROM OITM )

El código yo lo dejaría así:

 IF {OITM.ManBtchNum} = ‘Y’ AND {OITM.ManSerNum} = ‘N’ THEN ... 
   ELSE
   IF {OITM.ManBtchNum} = ‘N’ AND {OITM.ManSerNum} = ‘Y’ THEN ...   
   ELSE

O de esta forma

  IF {OITM.ManBtchNum} = ‘Y’ AND {OITM.ManSerNum} = ‘N’ THEN ... 
  ELSE 
  IF {OITM.ManBtchNum} = ‘N’ AND {OITM.ManSerNum} = ‘Y’ THEN ...
  ELSE 
  IF {OITM.ManBtchNum} = ‘Y’ AND {OITM.ManSerNum} = ‘N’ THEN ...

Salud@s :raised_hand_with_fingers_splayed:t5:


#13

Hola @oscarezh,

Si coloco solo esto en la formula me muestra los gestionados
Si coloco el código como me muestras posteriormente no me trae nada. Creo que tiene que ver con los campos que estoy llamando número de serie, número de lote, etc…que los estoy llamando desde la OSRN y OBTN y los vínculos los tengo a través de la OITL - ITL1. Como los artículos no gestionados salen de dicha relación no aparecen…pero no se de que otra forma vincular…
Es decir creo que ya el error no lo tengo en la fórmula sino en los campos que llamo. De hecho hice pruebas colocando campos solo de la OITM y si me muestra info de todos. Cuando coloco los campos DistNumber de la OBTN y de la OSRN ya desaparece de la lista de artículos los no gestionados…


#14

Hola @Connie:

Buen día, bueno entonces el tema se encuentra en tus otros campos.
Y si toda esta consulta que tienes la sigues manteniendo solo para lotes y series, pero a continuación creas otra consulta para los productos no gestionados

if {OITM.ManSerNum} = ‘N’ AND {OITM.ManBtchNum} = ‘N’

y unes ambos resultados con un UNION

Salud@s :raised_hand_with_fingers_splayed:t5:


#15

Hola @oscarezh, muchas gracias por tu apoyo e interés en ayudarme. Ahora me está ayudando un compañero a revisar, en cuanto tenga la solución te aviso.
Saludos


#16

Hola @oscarezh,
A la final utilicé el comodín de llamar a un amigo…se resolvió a través de un query y no utilizando las tablas enlazadas como lo tenía yo…Comparto el query por si les es de utilidad…Hay unos campos de usuario propios del caso:

select o1.docentry,o2.itemcode,O1.DOCNUM,O2.ITEMCODE,O4.ItemName,O2.Quantity,O2.UomCode,(case when ISNULL(o4.ManSerNum,’’)=‘Y’ then 1 else o2.Quantity end) ‘Cantidad’,
(case when ISNULL(o4.ManBtchNum,’’)=‘Y’ AND isnull(o4.MngMethod,’’) = ‘A’ then ‘Codigo: ‘+ISNULL(o4.SuppCatNum,’’) +’ /Marca: ‘+ISNULL(o4.U_XXX_MARCAS,’’) + ’ /Presentacion: ‘+ ISNULL(o4.U_XXX_PRESENT,’’) + ’ /Lote: ’ + ISNULL(o8.BatchNum,’’) + ’ /Expiracion: ‘+ convert(nvarchar(max),o9.ExpDate,103)
when ISNULL(o4.ManSerNum,’’)=‘Y’ then ‘Codigo: ‘+ISNULL(o4.SuppCatNum,’’) +’ /Marca: ‘+ISNULL(o4.U_XXX_MARCAS,’’) + ’ /Serie: ‘+ISNULL(o7.IntrSerial,’’)
else ‘Codigo: ‘+ISNULL(o4.SuppCatNum,’’) +’ /Marca: ‘+ISNULL(o4.U_XXX_MARCAS,’’) +’ /Presentacion: ‘+ ISNULL(o4.U_XXX_PRESENT,’’)
end) ‘Descripcion’

FROM
odln o1 inner join dln1 o2 on o1.docentry=o2.docentry
inner join ocrd o3 on o1.CardCode=o3.cardcode
inner join OITM o4 on o2.itemcode=o4.itemcode
left join oitl o5 on o1.docentry=o5.docentry and
o1.docnum=o5.docnum and
o2.itemcode = o5.itemcode and
o2.baseLine = o5.AllocateLn and
o2.BaseType = o5.AllocateTp and
o2.BaseEntry = o5.AllocatEnt
left join sri1 o6 on o2.itemcode = o6.itemcode and
o2.objtype = o6.basetype and
o2.docentry = o6.baseentry and
o2.WhsCode = o6.WhsCode
left join osri o7 on o6.SysSerial=o7.SysSerial and o2.itemcode=o7.itemcode
left join ibt1 o8 on o2.ItemCode = o8.itemcode and o1.objtype=o8.BaseType AND O1.DocEntry=o8.BaseEntry
left join obtn o9 on o8.itemcode = o9.itemcode and o8.BatchNum=o9.DistNumber


#17

Hol@ @Connie:

Buenas tardes, que bueno lo haya solucionado, recuerde marcar su respuesta como solución para dar por cerrado el post.

Saludos :raised_hand_with_fingers_splayed:t5:


#18

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.