• Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 8 meses, 4 semanas por juanjo.mauriz.
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)

Como pasar un SetFilter con dos valores, siendo uno de ellos un espacio



  • juanjo.mauriz
    Participante
    juanjo.mauriz

    Hola, buenas noches.

    Resulta que estoy creando un report, de facturas y del cual extraigo datos de la tabla “Cust. Ledger Entry” para hacer una trazabilidad y saber si esta pagada o no.
    Mi sorpresa es que quiero poner un filtro del campo “Document Situation” que es un combo con opciones, este es el código original de la tabla…

    field(7000001; “Document Situation”; Option)
    {
    Caption = ‘Document Situation’;
    OptionCaption = ‘ ,Posted BG/PO,Closed BG/PO,BG/PO,Cartera,Closed Documents’;
    OptionMembers = ” “,”Posted BG/PO”,”Closed BG/PO”,”BG/PO”,Cartera,”Closed Documents”;
    }

    Yo pongo el filtro de la siguiente manera…

    MovCliente.SetFilter(“Document Situation”, ‘ |Cartera’); <————- Hay un espacio en blanco para los que no tienen asignado una situación específica.

    Ya que solo quiero mostrar lo que este vacío o en Cartera y desestimar el resto de procesos.

    Pues no quiere ir este filtro, porque cuando lo compilo y lanzo el código cuando llega a este punto me dice el siguiente mensaje:

    El filtro ” |Cartera” no es válido para el campo Situación documento de la tabla Mov. cliente. El lado izquierdo de los operadores ‘|’ no puede estar vacío.

    Pero da igual si lo pongo a la derecha o a la izquierda, que siempre me dice lo mismo que no puede estar vacío, pero no está vacío ya que hay un espacio en blanco.

    No se que puede ser.

    Agradezco cualquier iluminación, porque llevo alguna que otra hora intentando entender que puede ser el fallo.

    No pongo código, porque solo quiero saber como filtrar el dato, solo eso y claro, que funcione bien y no de error.

    Espero vuestros comentarios.

    Saludos y gracias!!!

    #1020730

    Laura Nicolàs
    Superadministrador
    Laura Nicolàs

    Hola Juanjo

    Tendrias que ponerlo así:

    CustLedgerEntry.SetFilter(“Document Situation”,’%1|%2′,CustLedgerEntry.”Document Situation”::” “,CustLedgerEntry.”Document Situation”::Cartera);

    %1 se reemplazará con el primer valor después de la coma.
    %2 se reemplazará con el segundo valor.

    Salut!
    Laura Nicolàs

    #1020733

    juanjo.mauriz
    Participante
    juanjo.mauriz

    Buenos días Laura.

    Eso es exactamente lo que tenía que hacer y que funciona perfectamente.

    Interesante el “::”…

    Saludos y muchas gracias!!!

    #1020739
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)

Debe iniciar sesión para responder a este tema.