Blog

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Tuesday, March 10, 2015PrintSubscribe
Specifying Default Size On Charts

Charts presentation style will display as many reasonably-sized charts as possible on each device size. By default, each chart is of size “small”, which means that the chart will use 1/3 of the available space in each dimension on large screens.

The default charts for Orders page will attempt to show three charts in each dimension on large screens.

On medium-sized devices, the charts will use 1/2 of the available space.

Small charts on medium-size devices will show two in each dimension.

The smallest devices will display only one chart at a time.

Small devices only show one chart at at time.

The user is able to change the size of the charts using the context menu in the top right corner of each chart. “Large” is only available on large devices, and “Medium” is only available on moderately sized devices and tablets.

The user is able to change the size of the charts using the context menu in the top right corner of each chart.

The developer is also capable of specifying the default size for each chart by adding the keywords “medium” or “large”. Suppose that the Orders controller has manually specified charts matching those that have been automatically created. The highlighted tags below will specify the default sizes for those charts.

Data Field Tag
CustomerID pivot1-col1-sortdescbyvalue-columnstacked-top5 pivot1-medium pivot4-row1-top10-other-sortdescbyvalue-pie3d pivot4-large
EmployeeID pivot2-col1-sortdescbyvalue-area-top7 pivot5-row1-top10-other-sortdescbyvalue-column
OrderDate pivot1-row1-date-all pivot6-row1-line-date-all
RequiredDate pivot2-row1-date-all pivot7-row1-column-date-all
ShippedDate pivot3-row1-date-all pivot8-row1-area-date-all
ShipVia pivot3-col1-sortdescbyvalue-column-top5 pivot9-row1-top10-other-sortdescbyvalue-donut

Upon regenerating the app and refreshing the page, notice that the default sizes have been applied. The first chart is of “medium” size and now takes 2/3s of the screen on large devices.

The first chart has size of "medium" and takes 2/3s of the screen.

The “large” fourth chart takes the whole screen.

The fourth chart is "large" and takes the full screen

Tuesday, March 10, 2015PrintSubscribe
Specifying Titles and Axis Labels on Charts

Every chart that has been automatically or manually defined will display a title. This title will be composed using the row, column, and value fields and their properties that have been specified for the chart. For example, suppose we create a curved line chart on Orders page of the Northwind sample app that uses OrderDate for rows, EmployeeID for columns, and the sum of Freight for values.

Data Field Tag
EmployeeID pivot1-col1-top3
OrderDate pivot1-row1-line-curve-date
Freight pivot1-val1-sum

A line chart showing sum of freight by employee over Order Date that shows the default title.

The data for the chart can be seen below.

The data for a line chart showing sum of freight by employee over Order Date that shows the default title.

The title states that the chart shows top three “Employee Last Name”. The value is the sum of “Freight” and the rows are grouped by “Order Date”. While the title may reveal all the necessary information, the title can be better. Let’s manually specify the title by adding the following tag. Note that the tags do not need to be on any particular data field, as long as the correct pivot ID is specified. Open the Project Designer. In the Project Explorer, switch to the Controllers tab and double-click on Orders / Views / grid1 / EmployeeID data field node.

The EmployeeID data field of the Orders controller in the Project Explorer of Code On Time app generator.

Add the highlighted tag:

Data Field Tag
EmployeeID pivot1-col1-top3 pivot1-title:"Sum of Freight By Employee"
OrderDate pivot1-row1-line-curve-date
Freight pivot1-val1-sum

Save the data field and regenerate the app. When the page comes up in your browser, navigate to the Orders page. Note that the new title has been applied.

The line chart now displays the new, custom defined title.

The new title will also be displayed above the chart data.

The data for the chart shows the new, custom defined title.

By default, the axes do not have a title applied. One can use the “haxistitle” or “vaxistitle” properties to manually specify a title for the horizontal or vertical axis, respectively. Let’s specify the following axis titles:

Data Field Tag
EmployeeID pivot1-col1-top3 pivot1-title:"Sum of Freight By Employee"
OrderDate pivot1-row1-line-curve-date pivot1-haxistitle:"Order Date"
Freight pivot1-val1-sum pivot1-vaxistitle:"Freight"

The new chart will display the specified labels on each axis.

The chart also displays custom axis labels.

The chart data will not be changed.

Sunday, March 8, 2015PrintSubscribe
Grouping Date Values in Charts

When using a date as a row in a chart, it is necessary to form groups for each date value. Otherwise, a row will be created for each date. This excess of rows will render the chart useless:

Data Field Tag
OrderDate pivot1-row1-line

A line chart with too many date values as rows.

The data behind the chart looks like the following:

The data for a chart with too many date rows.

Instead of listing each date as a unique value, the dates should be placed into buckets in order to provide a clearer view of the data. For example, let’s group the dates by quarter. Add the “quarter” keyword to calculate the quarter of each date.

Data Field Tag
OrderDate pivot1-row1-line-quarter

The chart is now easier to read.

A line chart showing count of orders by quarter.

The data for the chart looks as follows:

Line chart showing orders by quarter.

However, notice that we have lost information about the year. To solve this problem, we need to group the dates by year first, and then by quarter.

Data Field Tag
OrderDate pivot1-row1-line-year pivot1-row2-quarter

The chart now displays quarters per year.

Line chart showing orders over quarters by year.

The data is shown here:

Data for chart showing orders grouped by year and quarter.

However, what happens when the data is filtered to produce a different subset of data? The chart may become useless again.

The filter has caused the chart to display only a single point.

The single row is displayed below.

Only a single row is displayed in the data.

In order to solve this problem, an automatic grouping function can be used. By specifying a group of “date”, the server will make several attempts with various groups. The chart with a number of rows closest to 25 will be selected and displayed to the user.

Data Field Tag
OrderDate pivot1-row1-line-date

The function has decided to use year/month/week as the most optimal solution for the currently applied filter.

The auto date grouping decided to use year/month/week.

The data can be seen below.

The data for the chart.

When the filter is cleared and all data from the Orders table is displayed, the group mode will try to maintain the number of rows. The function has elected on using year/month.

All data is visible in the chart.

The new data can be seen here:

All data is visible in the table.

A full list of available groups is displayed below.

Keyword Description Example Value
date An automatic function that will attempt several combinations of groups and select the result that has a number of rows closest to 25.  
timeofday Takes the hours, minutes, and second of the date. 12:30:45
minute Takes the minute from the date. 30
halfhour All dates with minutes less than 30 will be grouped into the hour group. All dates above 30 will be grouped into the half-hour group. 1:30
hour The hour will be used as the value. 1:00
day Uses the day of the month. 31
dayofweek Uses the day of the week. The value will be formatted according to the current culture. Saturday
dayofyear The day of the year. 156
weekofmonth The week of the month. The value is derived from the first letter of the word “Week” in the current culture’s language, plus the number. W3
week The week of the year. W16
month The month of the year. The values will be formatted according to the current culture. January
quarter The quarter in the year. The value is derived from the first letter of the word “Quarter” in the current culture’s language, plus the number. Q1
year The year. 2015
Continue to Map Chart Type