Tutorials

Labels
AJAX(112) App Studio(9) 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(178) 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(184) 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(3) 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
Tutorials
Monday, March 18, 2013PrintSubscribe
Upload and Download: Internal Storage

Code On Time web applications automatically handle storage of binary large objects (BLOB). For example, the Northwind sample database contains pictures of each record in the Categories table. The web app displays the pictures in the grid and form views. Clicking on the thumbnail will download the picture.

Pictures displayed from the BLOB field in Categories table.

Open the edit form for a category and edit the record. The control under the Picture thumbnail allows replacing or clearing the blob stored in the field.

Control under the Picture field allows changing or clearing the blob.

Any type of file may be uploaded to the field. However, the file name and type is not stored by the database. When the user tries to download the file again, the user will receive a message similar to the one below.

When a file is downloaded, the file name and type are not preserved.

The generic file name is “CategoriesPicture_1” and the content type is “.octet-stream”.

In order to preserve the file name and type, utility fields will be added to the Categories table.

Adding Utility Fields

Start SQL Server Management Studio. In the Object Explorer, right-click on Databases / Northwind / Categories and press Design.

Designing the Categories table in SQL Server Management Studio.

Add the following columns:

Column Name Data Type Allow Nulls
PictureFileName nvarchar(100) true
PictureContentType nvarchar(100) true
PictureLength int true

Please note that these columns are case-sensitive. If the name of your field is “XXX”, the application framework will attempt to locate utility fields “XXXFileName”, “XXXContentType”, and “XXXLength”.

Save the changes to the table.

Refreshing the Project

Start the web application generator. Click on the project name and press Refresh. Select Categories controller and continue to refresh the project.

Refreshing the Categories controller.

Viewing the Results

Continue to regenerate the web app. When complete, navigate to the Categories page. Select a record, and upload any non-image file.

File Name, Content Type, and Length fields have been automatically updated when a file is uploaded.

Note that the three utility fields have automatically been updated. Click on the thumbnail to download the file. Note that the file name and type have been correctly added.

When attempting to download the file, the name and type are correctly assigned.

Wednesday, February 6, 2013PrintSubscribe
SQLAnywhere 12 Sample Web Application

When Sybase SQLAnywhere 12 database server is installed, it will come with a sample database called “demo. Let’s create a Web Site Factory application from this database.

Installing SQLAnywhere 12

First, download SAP Sybase SQL Anywhere 12 for Windows x64 from the Sybase website if you have not done so already.

Download the file and follow instructions to install the database server.

Creating the Web App

Start Code On Time web application generator. At the bottom of the page, click on Create a new web application link. On the New Project screen, select Web Site Factory.

Selecting Web Site Factory project to create.

Assign a name of “SQLAnywhereDemo”, pick the programming language of your choice, and press Create.

Assigning a name and language, and creating the project.

Press Next to reach the Database Connection page. From the Data Provider dropdown, select “.NET Framework Data Provider for SQL Anywhere 12”. Paste in your connection string in the field below.

Selecting the data provider and pasting in the connection string.

Press Next twice to reach the Reporting page. Check the box to enable reporting.

Enabling reporting for the generated web application.

The next page allows configuration of Custom Membership and Role Providers. Leave the default settings and press Next until you reach the Theme page. Select “Vantage” from the list.

Selecting the 'Vantage' theme.

Hold down Shift key and press Next to skip to the Summary page. Press Generate.

Summary page for the SQL Anywhere project.

When generation finishes, the web application will open in the default browser.

Default Products page for SqlAnywhere demo database web application.

Wednesday, January 16, 2013PrintSubscribe
“When Client Script” Property for Actions

Suppose that you have implemented the Order Form Sample with transactions using a “Status” field. The Status will partition “draft” orders from “committed” orders. However, the user may still navigate to the Orders page and change the values and details of a committed order.

Committed order values can be changed on the 'Orders' page.

Let’s prevent users from activating any Edit action when the Status field is set to “Committed”. This will be implemented with the help of “When Client Script” property. When the specified JavaScript expression evaluates to true, the action will be displayed. When it evaluates to false, the action will be hidden.

Adding Status Field

First, the Status field must be added to the controller so that the field value can be used in the JavaScript expression. Start the web application generator, and click on the project name. Press Refresh, and check the box next to Orders controller. Press Refresh, and confirm.

Refreshing the Orders controller.

On the Summary page, click on Design to activate the Project Designer. In the Project Explorer, switch to the Controllers tab and expand Orders / Fields node. Drop Status (String(50)) node onto Orders / Views / grid1. The field will be instantiated as a data field in the view.

Dropping 'Status' field onto 'grid1' view of Orders controller.     Data field for 'Status' created in 'grid1' view.

Double-click on Orders / Fields / Status (String(50)) node.

Status field of Orders controller.

Mark the field as hidden.

Property New Value
The field is hidden from users. true

Press OK to save.

Hiding Edit Fields

In the Project Explorer, double-click on Orders / Actions / ag1 (Grid) / a2 – Edit action node.

Action 'a2 - Edit' of action group 'ag1'.

Make the following change:

Property New Value
When Client Script
[Status] != 'Committed'

Press OK to save.

Make the same change to Orders / Actions / ag2 (Form) / a1 – Edit action node, and Orders / Actions / ag4 (ActionBar) – Edit/Delete / a1 – Edit, editForm1 action node.

Two Edit actions highlighted in Orders controller.

Viewing the Results

On the Project Explorer toolbar, press Browse. Navigate to Customers | Orders page.

Note that the Edit action is no longer available on the action bar or in the row context menu.

Edit actions on context menu and action bar are no longer available.

In addition, the form will no longer have an Edit button.

Edit button is no longer present in the form.