26 May 2010
My Fav Blogs
My all time favourite (a toss up by SSW rules & How to report bugs effectively)
How to Report Bugs Effectively
by Simon Tatham, professional and free-software programmer
SSW Rules to better
Scott Hanselman : Tools List
Beth Massi's blog (excellent stuff)
Non IT Related
Belfast food reviews
19 May 2010
New Selection Editor Tips
None Slip editing enhancements (this update is mainly enhancements to slip editor although a few bugs have been fixed).
- Entry of Irish Lotto Results from SIS (fixed)
- Entry of 49s Results from SIS (fixed)
- Settling of Fav/2nd Fav (fixed)
Enhancements to bet slip editor
- Warnings on no rule4 applied before payout
- Warnings on amended result before payout
- Warnings on Stewarts Enquiries or Objections before payout
See bottom of document for screenshots.
The new results viewer is much easier on the eye
- Dead heats/Co Favs etc... highlighted in yellow
What you will notice
- Some new shortcut keys (so it may take a bit of getting used too)
- Switching sports (e.g. Ctrl + L is much faster)
- Filtering when typing selection names is much faster
- Numbers editor defaults to forty nines upon login, and then last edited numbers game, for subsequent ctrl + N calls until you log back out.
Ctrl + E will return you to text entry textbox at any time (without having to refresh coupon)
Tip: You would use this if you had clicked elsewhere, and wanted to go back to editing another selection
If using the arrow up and down to enter a selection, use "+" key on keyboard to add that particular selection (rather then the enter key)
Entering Dogs/Horses by time & number (of fav)
Tab over to the time filter text box
- You can filter time by entering exact time (e.g. 3.05) or if you just enter 3 (it will show all races between 3pm & 4pm – and you can use up down arrow to select). If only one race is shown the Market list box will go green.
- If more than one race matches your search criteria use the up down arrows (or mouse) to select appropriate race.
- Once you are happy with the race click [Space] or [Tab] and enter your numbers of favourites
- 2 3 (will select numbers 2 & 3)
- 2 f (will select number 2 & the favourite)
- 2 2f (will select number 2 & the second favourite)
How was this achieved in code?
- Enhanced reading from database (using stream data instead of database tables)
- Local caching of data, to prevent database calls, if stream data is not updated
- Enhanced filtering during editing using LINQ instead of dataview
Screenshot | 1 (Amended result + no rule 4 warning)
New Results Viewer
18 May 2010
DatagridView : Sort Generic List on any property (minimal code)
Okay so it using reflection and mightn't have order log n speed, but so what if you are sorting collections with normally less than 50 items.
I handle the Column Header Mouse Click
Get the data property name.
Then use some reflection to sort the generic list. (before this I had to use select case, and sort by knowing the property name in code, but when I add new properties this was a pain to maintain).
Private Sub SelectionsCollectionsDataGridView_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles SelectionsCollectionsDataGridView.ColumnHeaderMouseClick
Try
Dim col = Me.SelectionsCollectionsDataGridView.Columns(e.ColumnIndex)
Me.selectedMarket.SelectionsCollections.Sort(Function(p1, p2) p1.GetType.GetProperty(col.DataPropertyName).GetValue(p1, Nothing).CompareTo(p2.GetType.GetProperty(col.DataPropertyName).GetValue(p2, Nothing)))
Me.SelectionsCollectionsBindingSource.CurrencyManager.Refresh()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical)
End Try
End Sub
24 Apr 2010
In Running Betting
bizTech Software are pleased to announce in-running betting is now available in arkle bet POS.
- Display in running on arkle betting screens in your shop.
- Edit in running bets on arkle ePos, and view full price change history, in your ePos and online.
- Prices automatically update and suspend in real time.
Sports Available
- Football
- Match betting, next goalscorer, correct score, match handicaps.
- Snooker, Tennis, Golf (and more sports coming soon).
23 Apr 2010
Cleaning Cyberview Scanner
Scanner Cleaning
Perform the following cleaning procedure periodically every week, whenever black lines appear on the scanned image or scanning errors occur.1. Grab the Scanner Cover by the tips of the input and output guides, or alternatively, by the Front and Back borders on each side.
|

2. Either use one or two hands
i.
|
|

3. Lift-up the Scanner Cover.
|


i.
|


4. Place the Scanner Cover away from the scanner.

5. Locate the two Feed Roller Lock-Levers as shown (only right side shown).
|

|


6. Place both thumbs on the Feed Roller Lock-Levers grooves and push-backward to rotate them.
|



7. Rotate the two Lever-Locks until the Lever-Tail is oriented upward (only right side shown).
i.
![clip_image018[1] clip_image018[1]](http://lh5.ggpht.com/_ryhpuUH2sy8/S9GPcyLEKAI/AAAAAAAAADU/RjsCIBNUu7Q/clip_image018%5B1%5D_thumb.gif?imgmax=800)

|


8. The Feed-Roller will be released when the 2 Lock-Tails are in the upward position
9. Grab-up both Lock-Tails.
i.
|
|

ii.
|

10. Lift the Feed Roller straight up by holding the two Lock-Tails.
i.
|



ii.
|


11. Take-away the Feed Roller.
|


12. The Glass of the Image Sensor will swing up and be fully exposed.
13. Open a new Cleaning Wipe bag provided and gently swipe the impregnated wipe over the entire glass surface from side to side.
i.


|
|

14. Examine closely the surface of the Image Sensor Glass for cleanliness and rub with a fingernail on difficult-to-remove spots.
15. Put-back the Feed Roller by holding the Lock-Levers Handles vertically, then engaging them into their slots. Ensure the toothed gear wheels mesh correctly.


|
![clip_image033[1] clip_image033[1]](http://lh6.ggpht.com/_ryhpuUH2sy8/S9GPy03FM-I/AAAAAAAAAF0/F0fYZexnyS4/clip_image033%5B1%5D_thumb.jpg?imgmax=800)
16. Once engaged in their slots, turn the Lever-Locks toward the front.
i.
|
|




ii.

17. Pushdown the two Lever-Tails until they reach the horizontal position.
|


18. The two Lever-Tails should be pushed-down toward the front; otherwise, the Feed Roller will pop off during operation of the scanner.
19. Replace the Scanner Cover.
i.
|


5 with one hand
![]() |

5 or alternatively, with two hands
20. The scanner is now ready to operate.
22 Apr 2010
Arkle ePos Datafeeds
- Super Soccer (all markets, including results)
- Bruce Betting (all markets, including results)
- Bet Byrne (all markets, prices only, no results at present)
* Please note you will need to sign up with the odds provider and a cost may occur.
Also for each shop connecting there will be a charge of £10 per month, to cover bizTechs cost of hosting the data.
6 Apr 2010
Disable Close Button .NET WinForms
I've also put a copy down below of the bit I used. I modified Cory Smiths code a little, so you don't have to remember to handle the resize event (a maximise or minimise for some reason renables the close button). On my modification I automatically add a handler for this in the Class CloseButton.
Public Class CloseButton
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal revert As Integer) As Integer
Private Declare Function EnableMenuItem Lib "user32" (ByVal menu As Integer, ByVal ideEnableItem As Integer, ByVal enable As Integer) As Integer
Private Const SC_CLOSE As Integer = &HF060
Private Const MF_BYCOMMAND As Integer = &H0
Private Const MF_GRAYED As Integer = &H1
Private Const MF_ENABLED As Integer = &H0
Private Sub New()
End Sub
Public Shared Sub Disable(ByVal sender As System.Object, ByVal e As System.EventArgs)
' The return value specifies the previous state of the menu item (it is either
' MF_ENABLED or MF_GRAYED). 0xFFFFFFFF indicates that the menu item does not exist.
Dim frm1 As Form
frm1 = sender
Select Case EnableMenuItem(GetSystemMenu(frm1.Handle.ToInt32, 0), SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
Case MF_ENABLED
Case MF_GRAYED
Case &HFFFFFFFF
Throw New Exception("The Close menu item does not exist.")
Case Else
End Select
End Sub
Public Shared Sub Disable(ByVal form As System.Windows.Forms.Form)
' The return value specifies the previous state of the menu item (it is either
' MF_ENABLED or MF_GRAYED). 0xFFFFFFFF indicates that the menu item does not exist.
Select Case EnableMenuItem(GetSystemMenu(form.Handle.ToInt32, 0), SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
Case MF_ENABLED
Case MF_GRAYED
Case &HFFFFFFFF
Throw New Exception("The Close menu item does not exist.")
Case Else
End Select
AddHandler form.Resize, AddressOf CloseButton.Disable
End Sub
End Class
FAO Cory Smith, if you don't want your code on here contact me and I'll remove it.