I think a workaround might be to make a new (or modify existing) BAQ to use the EmployeeID as a parameter. If your BAQ returns the proper results in the designer when you type the employee as a parameter, you’ll get the same results in the code. Of course, you could just have your BAQ built to get only the current EmployeeID record right out of the gate by using BAQ special constant CurrentEmployeeID and bypass the parameter altogether.
For the dashboard, modify it to be blank. Then open the dashboard and customize it. Add a blank UltraGrid and then use dynamic query adapter to populate it (get EmpId and pass as parameter). We’d basically be leveraging the dashboard as a free form (thanks to @josecgomez for this idea) and handling the rest manually.
Here is some code I use to call a BAQ with parameter and feed it to a grid (in your case you’d get Session.EmployeeID - I think that’s what it’s called):
//---- Setup printer list-----
DynamicQueryAdapter dqa = new DynamicQueryAdapter(oTrans);
dqa.BOConnect();
QueryExecutionDataSet qeds = dqa.GetQueryExecutionParametersByID("Printer_By_Company_CC");
qeds.ExecutionParameter.Clear();
qeds.ExecutionParameter.AddExecutionParameterRow("COMPANY",((Ice.Core.Session)oTrans.Session).CompanyID,"nvarchar",false,Guid.NewGuid(),"A");
dqa.ExecuteByID("Printer_By_Company_CC",qeds);
//MessageBox.Show(dqa.QueryResults.Tables["Results"].Rows.Count.ToString());
if(dqa.QueryResults.Tables["Results"].Rows.Count > 0)
{
//SET TO GRID HERE........
PrinterGrid.DataSource = dqa.QueryResults;
//PrinterGrid.DataSource = dqa.QueryResults.Tables["Results"]; this works too