Example of Bootstrap Dropdown menu in Kendo Grid

After some trial and error I got a bootstrap dropdown menu working in a Kendo grid using code like this:

<blockquote>columns.Bound(theitem => theitem.ID).ClientTemplate
(“<a href=’/” + @”\#” + “/Items/Items_Update/” + “#=ID#” + “‘ class=’btn btn-xs btn-info’ rel=”nofollow”><i class=’icon-pencil’></i></a> ” +
“<div class=’btn-group’>” +
“<button type=’button’ class=’btn btn-default btn-xs dropdown-toggle’ data-toggle=’dropdown’>+<span class=’caret’></span></button>” +
“<ul class=’dropdown-menu dropdown-menu-right pull-right’ role=’menu’>” +
“<li role=’presentation’><a role=’menuitem’ tabindex=’-1′ href=’/” + @”\#” + “/Items/Items_Update/” + “#=ID#” + “‘ rel=”nofollow”>Edit</a></li>” +
“<li role=’presentation’ class=’divider’></li>” +
“<li role=’presentation’><a role=’menuitem’ tabindex=’-1′ href= ” onclick=’window.open(\”Items/OutputPDF/” + “#=ID#” + “\”” + “,\”_blank\”);return false;’ rel=”nofollow”>Download</a></li>” +
“</ul>” +
“</div>”
).Filterable(false)
</blockquote>

Now, I can show a Kendo grid/ list and have a dropdown menu on each row in the grid that I can use to take actions on grid items.

SliQ Invoicing and Windows 10 Support

SliQ Invoicing works on Windows 10 as well as all earlier non-server versions of Windows from XP, through Vista, Windows 7, 8 and 8.1.

If you are taking up the offer of a free upgrade to Windows 10 from Microsoft and downloading Windows 10, during installation choose the option to keep your applications and personal data.

The Windows 10 upgrade process makes some identification changes to PCs. You may find that SliQ Invoicing Plus reverts to a trial copy as a result. If SliQ does display its trial notice dialog, press the Register button on the trial notice dialog SliQ displays when it starts and re-enter your unlock code to get back up and running. You can get your unlock code emailed to you via this web page:

http://www.sliqtools.co.uk/get-copy-of-unlock-code.aspx

We haven’t experienced any problems so far upgrading any of our PCs to Windows 10 with the exception that one of our older printers no longer worked. As no default printer was then selected in Windows 10, SliQ was unable to do a print or a print preview. If this is the case, go into Windows Settings and set a default printer. SliQ will then print and do a print preview OK. You can access Windows 10 Settings by clicking the new Start button at the bottom left of the screen and choosing Settings then accessing the Device and Printer settings option.

InstallShield Express Major Upgrade

I’ve switched to Installshield 2014 Express as my installer package of choice. I was using an older Premier version that mysteriously broke and looked around for other installer packages. Eventually however, the dependency management and scanning capabilities of Installshield won me back and I purchased Installshield Express as I only wanted to produce Simple MSI installers.

To produce a new installer in Installshield Express I needed to force a major upgrade to uninstall any older versions produced using my old installation package. After some experimentation to ensure that any later installer produced with Express could also upgrade older Express installers, I decided I would always use a major upgrade for every installer version I produced from then on. Other than including the relevant files and so on in the InstallShield project there are 5 key items you need to take account of when producing a major upgrade:

1. The product version number.

You need to increment this for each new installer you produce.

2. The Product Code.

This needs to change for every new installer you produce.

3. The Upgrade Code.

This should remain unchanged AND should match the Upgrade Code for any pre-Express installer.

4. The Package Code .

This needs to change for every new installer you produce.

5. Add an Upgrade Path to the Project if you don’t have one already

Dealing with these items one by one …

1. Product Version Number

In the Installation Designer, click Organize Your Setup->General Information, then enter your new Product Version Number.

product-version-number-organize-your-setup

2. The Product Code

In the Installation Designer, click Organize Your Setup->General Information, then click the {…} button in the Product Code row.

product-code-organize-your-setup

3. The Upgrade Code.

DO NOT CHANGE THIS!

upgrade-code-organize-your-setup

4. The Package Code

In the Installation Designer, click Releases, then click the Express node in the middle panel and click the {…} button to generate a new Package Code.

releases-package-code

5. Make sure you have an Upgrade Path …

In the Installation Designer, if you haven’t already done so, click Organize Your Setup->UpgradePaths then in the middle panel, right-click Upgrade Paths and add new path.

In the new upgrade path, enter the min and max versions. You can leave the min version blank but still set Include Min Version to Yes. Set the Max Version appropriately to limit the versions the installer will upgrade.

upgrade-path

Then build the installer and run. The installer should then uninstall any previous version of the software with the same package code whether the old installer was created with an older InstallShield or with InstallShield Express.

For help with major upgrades in other versions of InstallShield, see: http://www.sliqtools.co.uk/blog/technical/installshield-major-upgrade/

and

http://www.sliqtools.co.uk/blog/technical/installshield-major-upgrade-two-entries-in-add-remove-programs/

SliQ Invoicing Plus V5 Released

Version 5 of SliQ Invoicing Plus has been released. This is a major new version of SliQ Invoicing Plus and is released almost two years after V4. Over 100 additions and modifications have been included in version 5 based on feedback from customers.

The top user-requested features included in V5 are a built-in spellchecker when editing invoices and a stock control system for tracking stock level and helping automate raising orders for low stock items. V5 now also includes the ability to define HTML email templates, allowing users to add logos and formatted signatures to emails sent from SliQ, e.g. when emailing invoices to customers.

A number of smaller features have been added to increase flexibility, e.g. it is now possible to automatically insert date information into line item descriptions on recurring invoices. In V5 it is also possible to configure the date ranges used on ageing reports on statements to bring them in line with invoice payment terms if desired.

Existing customers can upgrade from any earlier version of SliQ Invoicing at the reduced upgrade price shown on our sales page. Any purchaser of V5 will be able to download any updated V5 release, e.g. 5.1, 5.2 etc. will be free updates for those who have already bought V5.

To find out more about the changes in V5, see our Release History page.

How to Capture a Screenshot and Send it via Email

There are many ways to capture a screenshot, save the captured image to disk and then attach it to an email. Some versions of Windows come with built-in image capture tools such as the Snipping Tool in Windows 7.

Another alternative is to use SliQ Screen Capture. This is a free, very simple tool from SliQTools that provides easy options for capturing screenshots of your complete desktop, the current application running in Windows or even a control within an application. By default, when a screenshot is captured, SliQ Screen Capture opens the captured image in Microsoft Paint. In later versions, Microsoft Paint includes a Send in e-mail option that quickly allows you attach the image to an email.

If you want to use SliQ Screen Capture to send a screenshot by email, take these steps:

1. Download and install SliQ Screen Capture from this page:

http://www.sliqtools.co.uk/screen-capture-utility.aspx

2. Run SliQ Screen Capture.

SliQ Screen Capture always sits on top of all other windows. You can still work with other applications but SliQ Screen Capture stays visible so you can click on one of its capture image buttons.

3. Click on the window of which you want take an image.

For example, if you want to take a screenshot of a window in SliQ Invoicing, click on the window in SliQ Invoicing Plus with your mouse.

4. In SliQ Screen Capture, press the Capture Foreground Window button.

The button is highlighted with a red square in the following picture.

capture-foreground-window-as-image

Then wait for Microsoft Paint to launch.

5. In Microsoft Paint, open the File menu and choose the Send in email option.

paint-send-in-email-file-menu

A new email window should then open with the captured image attached.

6. Edit the email as normal – enter the email address you want to send the picture to, the subject and email message – and press the Send button to send the email.

If you are looking for help on taking a screenshot on an Apple Mac, see this blog post: http://www.sliqtools.co.uk/blog/apple-mac/apple-mac-how-to-take-a-screenshot/

SQL Server Express: Login failed for user X: Error 18456

After creating a new SQL server login with a password in SQL Server Management Studio and then adding a user with the same name as the login to a database, I was having a lot of trouble getting my code first entity framework model to connect to the database. Every time I tried to specify the connection for a context then get a list of objects from the context, I got a SQL exception indicating that the login/ password did not work and could not be logged into the database.

After some research, I found that by default SQL Express only works with Windows Authentication for logins and you have to configure the server to work with both Windows Authentication and SQL Server logins with passwords. To access the configuration setting, right-click the topmost tree node (the server name) in SQL Server Management Studio and show the Server Properties.

In the Server Properties dialog, click the Security settings node in the Select a page panel, then under the Server authentication settings, check the SQL Server and Windows Authentication mode. Then press OK to close the dialog.

sql-server-properties

To get SQL Server Express to pick up the new setting you need to stop and start the server. To do this, again right-click the server name in SQL Server Management Studio and choose Restart from the popup menu. OK and dialogs that come up asking for permission to restart the server. You should then be able to create a connection string to use with an entity framework context using the server name, login/ user id and password you have set. The connection string will be of the form:

Data Source=<server name>;Database=<Database name>;User Id=<Login>;Password=<Password>

Configuring Email Read Receipt Options in Outlook

Microsoft Outlook allows you to configure options for how read receipt requests are handled. When you receive an email for which the sender has requested a read receipt you can configure Outlook to ignore the read receipt request, always automatically send a read receipt or ask you email by email whether to respond with a receipt or not.

To configure the read receipt options, choose the Options option in the Tools menu.

The, in the Outlook Options dialog, choose the Email Options … button near the top of the Preferences tab.

outlook-email-options

In the Options dialog, then press the Tracking Options … button.outlook-email-tracking-options

Finally, in the Tracking Options dialog, choose the desired option before pressing the OK button.

outlook-ask-for-read-receipt

For more Outlook tips, see Configuring the Default Email Account in Microsoft Outlook.

ASP.NET MVC : Accessing String Resources in CSHTML files

When writing web pages in ASP.NET MVC, the standard way of outputting label names is often unsatisfactory as you end up with a label that follows a variable name, e.g. including a line like:

@Html.LabelFor(model => model.PadNumberLength)

ends up showing a label:

PadNumberLength

where you really want:

Pad Number Length

There are a number of other ways of changing the label, e.g. you could put a DisplayName attribute on the property in the model, e.g.

[DisplayName("Pad Number Length")]
public int PadNumberLength { get; set; }

However, especially if you have come to ASP.NET MVC programming from a desktop environment such as Winforms or WPF, the most natural way to get a label name is from a resource file. This also makes it easier to localise your pages in the future.

An ASP.NET MVC project contains a Resources file under the Properties node in the solution explorer. You can put all your string resources in this file. To access the resources in a CSHTML file, include the following HTML helper in your solution:

public static MvcHtmlString ResourceString<T>
    (this HtmlHelper<T> html, string ResourceName)
{
    var Manager = new ResourceManager(typeof(Properties.Resources));
    return MvcHtmlString.Create(Manager.GetString(ResourceName));
}

This means you can then write labels such as:

<label>@Html.ResourceString("PAD_NUMBER_LENGTH")</label>

that output the resource strings from your Properties.Resources file.

Easy Way of Examining Exception Details in Visual Studio

When an exception is raised while debugging an application in Visual Studio, a dialog like the following appears showing a number of options to get more detail on the exception, e.g. the stack trace and line number on which the exception occurred:

One way of digging into the exception to find out more details is to click on the View Detail … link in the dialog. This shows a watch window like view that lets you tunnel into the exception fields.

However, an easy way of scanning all the exception details, is to click the Copy exception detail to the clipboard option, then paste the copied data into Notepad. You then get all the available exception details in a form you can easily scroll through or even search.

WHY BOTHER WITH PURCHASE ORDERS?

Firstly what IS a purchase order?

 

It’s a wripo imagetten record of types, quantities, and agreed prices of any goods or services that you buy in for your business from external suppliers.

When the supplier accepts the purchase order, it forms a contract between you. This means clarity for both you as the buyer and the supplier as seller because:

You, the buyer have clearly and specifically communicated your requirements and intention to buy

The seller is then protected in terms of recouping money owed for goods or services supplied.

 

Here’s 5 good reasons to use them:

1. You are organised – instead of trying to remember phone conversations or search through various emails, both you and your supplier can find all the details relating to your purchase in one document such as prices, quantities, contact details and delivery address etc.

2. More efficient – especially if you have electronic versions of your purchase orders, you can easily manage your expenditure on your computer rather than rifling through reams of paperwork, which may or may not have been filed in the right place!

3. Avoid mistakes! There should be minimal mix ups or misunderstandings relating to what you ordered or the prices agreed if it’s all there in writing for everyone to see. It’s a legally binding document.

4. Easily keep track of orders – as each purchase order has a unique number, your supplier can quote this number on their delivery note so you can match up the goods with your order when you receive them.

5. Keep in control of your accounts – you will have the figures for all your purchase expenditure at your finger tips. If you use accounting software, you can transfer this information into your accounts at the click of a mouse. This will help you be in control of the money which has gone and is due out of your business and help keep on top of cashflow.

The example above, illustrates the kind of information you should include on your purchase orders. You can create your own templates or use simple accounting software to automatically create and edit your purchase orders.