Ok enough about Tasks.
You mention trying to use an Entity Grid or a Ticket Lister, but your filtering options with those Widgets can be limited. So let me draw you back to something I mentioned in my previous post: Reports in Table mode.
Using a Report to supply parameters to another Report
Reports can be filtered in many ways as well, and it depends on the Report Type you are using such as Ticket, Order, Entity, or Transaction Reports. You can also combine certain Reports and use @{REPORT::,}
to create lists that feed into a subsequent Report.
For example, you could list Customers that have an outstanding balance, and feed that list into a Ticket Report that is filtered to show those Ticket having a certain Date Tag.
Or vice-versa, you could list Tickets to show those which have a Tag containing a date of Today or in the the past, and feed that list into an Entity Report that is filtered to show Entities with an outstanding balance.
So the first step would be to come up with a suitable Report that shows the data you want to see. And then you can turn on Table mode to be able to interact with that Report. Here is an example that shows Ticket Payments:
[Ticket Payments:0.01,1,3,3,3, 1.5, 2, 2, 2, 2, 2]
@{REPORT TICKET DETAILS:T.Id.desc::,}
>|TID|Date Time|Customer|Table|Ticket Total|Cash|CC|CA|PAY TTL|+/-
|{REPORT TICKET DETAILS:T.Id:T.Id==$1}|{REPORT TICKET DETAILS:T.Date,T.Time:T.Id==$1:{0} {1}}|{REPORT TICKET DETAILS:EN.Customers:T.Id==$1}|{REPORT TICKET DETAILS:EN.Tables:T.Id==$1}|[=F(TN('{REPORT TICKET DETAILS:T.TotalAmount:T.Id==$1}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:((PT=Cash) OR (PT=Cash USD)) AND T.Id==$1}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:((PT=Credit Card) OR (PT=Credit Card USD)) AND T.Id==$1}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:(PT=Customer Account) AND T.Id==$1}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:T.Id==$1}'),'0.00;(0.00); ')]|[=F((TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:T.Id==$1}')-TN('{REPORT TICKET DETAILS:T.TotalAmount:T.Id==$1}')),'0.00;-0.00; ')]
>> | | | |GRAND TOTALS|[=F(TN('{REPORT TICKET DETAILS:T.TotalAmount.Sum}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:((PT=Cash) OR (PT=Cash USD))}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:((PT=Credit Card) OR (PT=Credit Card USD))}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum:(PT=Customer Account)}'),'0.00;(0.00); ')]|[=F(TN('{REPORT PAYMENT DETAILS:P.Amount.Sum}'),'0.00;(0.00); ')]|[=F((TN('{REPORT PAYMENT DETAILS:P.Amount.Sum}')-TN('{REPORT TICKET DETAILS:T.TotalAmount.Sum}')),'0.00;-0.00; ')]
That ^ produces something like this:
Letās look at how @{REPORT:::,}
lists can be used to feed data from one Report into another. This line creates a comma-separated list of Ticket IDs:
@{REPORT TICKET DETAILS:T.Id.desc::,}
Those IDs can be fed into subsequent Reports using a $variable
which is referenced by $1
in lines like this:
{REPORT TICKET DETAILS:T.Id:T.Id==$1}|{REPORT TICKET DETAILS:T.Date,T.Time:T.Id==$1:{0} {1}}
^^^^^^^^
{REPORT TICKET DETAILS:EN.Customers:T.Id==$1}
^^^^^^^^
Can you come up with a Report that shows the data you really want to see? If not, try making a mockup in Excel or Word or whatever to indicate exactly how you want it to appear.
The almighty #Table
Report
We can turn on Table mode with a simple change of the Header line. This is our Header:
[Ticket Payments:0.01,1,3,3,3, 1.5, 2, 2, 2, 2, 2]
When we add a #
to the beginning of that Header as follows, we activate Table mode:
[#Ticket Payments:0.01,1,3,3,3, 1.5, 2, 2, 2, 2, 2]
^ Table mode Activated!
In Table mode, we have access to Row and Cell data ā¦
All of sudden, we have the ability to pick out Rows and Cell data and invoke Automation based on the Cell data, but we also have control over what is displayed by way of Sorting, Filtering and Grouping.