Jump to content
  • 0

dynamic portal filtering


dialogica

Question

Posted

Beste forumleden,

 

Ik heb een tabel (Dagboek) waarin observaties worden neergeschreven over cliënten (client, t), die behoren tot een groep (groep, t), en die dateren van een bepaalde datum (cDatumObvTimestamp, c).

 

Ik wil in een portal (relatie: Dagboek Gr_Gr, X) kunnen filteren op elk van die velden.

Dat lukt, maar er zijn 2 problemen.

 

1. Bij gebruik van meer dan 1 filter, krijg ik resultaten in het portal alsof er een OR operator tussen de twee voorwaarden zit, en dat zou natuurlijk AND moeten zijn.

2. Ik zou graag een filter toevoegen met een datum-bereik (van... tot....; de veldnaam gDatumVan is daar al op voorbereid ;-).

 

Iemand een idee?

 

Ik voeg onderaan de calc bij die de filtering in het portal voorziet.

(Ik ben geen IT-er, maar een taalkundige, dus dat zal er wel aan te zien zijn, vrees ik).

 

Yvan

 

 

+++++

 

Case ( not Dagboek Gr_Gr::gFilterHoofdschakelaar ; True ;

 

Let ( [

fg = Dagboek::gGroepFilter ;

cl = Dagboek::gClientFilter;

dt = Dagboek::gDatumVan;

deGroep = Dagboek Gr_Gr::groep;

deClient = Dagboek Gr_Gr::client;

deDatum = Dagboek Gr_Gr::cDatumObvTimestamp;

 

res_groep = FilterValues(fg;deGroep);

res_client = FilterValues(cl;deClient);

res_date = FilterValues(dt;deDatum)

] ;

 

Case (

not IsEmpty ( res_groep ) ; True;

not IsEmpty ( res_client ) ; True;

not IsEmpty ( res_date ) ; True;

not IsEmpty (res_groep) and not IsEmpty(res_client) and IsEmpty(dt); True;

not IsEmpty (res_groep) and not IsEmpty(res_date) and IsEmpty(cl); True;

not IsEmpty (res_date) and not IsEmpty(res_client) and IsEmpty(fg); True;

not IsEmpty (res_date) and not IsEmpty(res_client) and not IsEmpty(res_groep ); True;

 

 

)

)

)

3 answers to this question

Recommended Posts

  • 0
Posted

Logical Operator probleem opgelost.

Door logica operators toe te voegen.

Dat wil wel eens helpen :D

 

Nu nog van datum naar datum-bereik.

Graag tips.

 

Alvast bedankt.

 

Yvan

 

+++++++++

//client

Case (

IsEmpty ( fc ) ; True ;

not IsEmpty ( FilterValues ( fc ; deClient ) )

)

 

and

 

//groep

Case (

IsEmpty ( fg ) ; True ;

not IsEmpty ( FilterValues ( fg ; deGroep ) )

)

 

and

 

//rubriek

Case (

IsEmpty ( fr ) ; True ;

not IsEmpty ( FilterValues ( fr ; deRubriek ) )

)

 

and

 

//datum

Case (

IsEmpty ( fd ) ; True ;

not IsEmpty ( FilterValues ( fd ; deDatum ) )

)

  • 0
Posted

Ik heb een werkende oplossing gevonden voor een datum-bereik-filter.

Tot zover een filter die perfect werkt: in het portal komen alleen de records voor die voldoen aan het datum-bereik.

Het enige wat ik nu nog wil doen, is dit datum-bereik onderdeel maken van de verschillende case() voorwaarden uit het vorige bericht, zodat het datum-bereik een van de filter parameters is (naast en/of in combinatie met rubriek, client).

 

En ik zie het niet.

Iemand?

 

Alvast bedankt!

Yvan

 

+++++++++

 

Let (

[

x = If ( IsEmpty ( R212::gDatumVan ) ; Date ( 1;1;1 ) ; R212::gDatumVan ) ;

y = If ( IsEmpty ( R212::gDatumTot ) ; Date ( 12;31;4000 ) ; R212::gDatumTot )

] ;

 

R212::cDatumObvTimestamp ≥ x and R212::cDatumObvTimestamp ≤ y

 

)

  • 0
Posted

Ik denk dat je de Case-statements voor cliënt, groep en rubriek gewoon met een AND achter de datumcondities (binnen de Let) kunt zetten:

 

 

Let (

[

x = If ( IsEmpty ( R212::gDatumVan ) ; Date ( 1;1;1 ) ; R212::gDatumVan ) ;

y = If ( IsEmpty ( R212::gDatumTot ) ; Date ( 12;31;4000 ) ; R212::gDatumTot )

] ;

 

R212::cDatumObvTimestamp ≥ x and R212::cDatumObvTimestamp ≤ y

 

and

 

//client

Case (

IsEmpty ( fc ) ; True ;

not IsEmpty ( FilterValues ( fc ; deClient ) )

)

 

and

 

//groep

Case (

IsEmpty ( fg ) ; True ;

not IsEmpty ( FilterValues ( fg ; deGroep ) )

)

 

and

 

//rubriek

Case (

IsEmpty ( fr ) ; True ;

not IsEmpty ( FilterValues ( fr ; deRubriek ) )

)

 

) // einde Let

 

 

HTH Peter

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...