TestPage1
test;⎕USING;ctx;cust;custQuery;orderQuery
⎕USING←'' 'Microsoft.Jasper,C:\Programmi\Microsoft Codename Jasper CTP\Binaries\Microsoft.Jasper.CTP.dll'
⎕SHADOW'ctx'
ctx←DynamicContext.CreateDynamicContext⊂conn
⍝ direct access
⎕←{⍵.CategoryName}foreach ctx.Categories
⍝ simple query
⎕←↑{⍵.(ProductName UnitPrice)}foreach ctx.Products.Where'it.ProductName = ''Chai'''⍬
⍝ find by key
cust←ctx.Customers.FindByKey⊂,⊂'AROUT'
⎕←cust.(CustomerID CompanyName)
⍝ composite query
custQuery←ctx.Customers
custQuery←custQuery.Where'it.Country = ''USA'''⍬
custQuery←custQuery.OrderBy'it.CompanyName'⍬
custQuery←custQuery.Select'it.CustomerID, it.CompanyName, it.City'⍬
⎕←↑{⍵.(CustomerID CompanyName City)}foreach custQuery
⍝ relationship navigation in query
orderQuery←ctx.Orders.Where'it.Customer.CompanyName = ''Around the Horn'''⍬
⎕←↑{⍵.(OrderID OrderDate)}foreach orderQuery
⍝ Z←{B}SEshw string;D;K;M;N;T;V;obj;objs;Filter;⎕IO;_CtpPor;nsFilter;upper
⍝∇SESHOW str -Lists all syntactic occurrences of<str> in the matrix of names specified in B
⍝ return the functions/operators/multiscreenpackages names(whole path)and the referred rows
⍝ may be side effect (session manager display) produced by function SEmsg
⍝ B:[1]bool 1=case insensitive [2]:limit list [3]:list to be searched
⍝ If B is not there then the list is all the functions and operators in the workspace
⍝ If ⊃B[3] is '↓' then the calling tree starting from B is built
⍝ If ⊃B[3] is '*' or # then search extended to namespaces(i.e. objects of all loaded groups)
⍝ If B is a two-el nested vector, then ←→ 0 V B where V is the list of
⍝ names to limit the search into. Useful to limit the scope of '↓'
⍝ ALSO multiscreen packages are searched in; when found, the result contains [!
⍝ . is considered a syntactical separator
⍝ <string> can contain . ; e.g. '#.Alm.' or '.MFU' or '.MFU.' or 'MFU.nCI'
⍝ when <string> is terminated by ]? then references to column_indexes are searched
⍝ NBThis is a CamelCase22
Does APL font within a sentence work? ¯3+¨⌊(2↑3↓⍇1 1),X[⍋X] Yes it does!