Go to the Keystroke POS Home Page

Keystroke POS Version 7.15 Read Me

Current version is 7.15 Build 79 - 12/17/15

Thank you for using Keystroke POS Software.

This file contains a chronological listing of changes made to the Keystroke POS v7.15 program and its modules. New entries to this file are at the top, older entries are towards the bottom. A listing of abbreviations and coding used in this readme.txt file is located near the end of this document.

Besides this ReadMe.txt file, the file WNew715.pdf can be used to review changes made to the current version of Keystroke. WNew715.pdf contains mostly the same information as ReadMe.txt but it groups similar changes together and is rewritten to be read as instructional documentation instead of as a list of changes. It is much easier to read when updating from a previous version. But since it is not in chronological order, the ReadMe.txt file does a better job of showing what has recently changed and should be checked whenever an update is installed.

This document also includes changes made to Keystroke Advanced POS that do not apply to Keystroke POS. In most cases these changes will be marked with the characters (AO) or the words Advanced Only will be used.

- Lines beginning with a hyphen are bug fixes for recently introduced errors.

****** Most Recent Changes *******

****** NEW VERSION NUMBER=v7.15 *******

12/17/15 - v7.15 Build 79


COMMAND LINE - MWGENIUS - The command line switch "MWGenius=" can be used to specify which data file is used to load the settings for the Cayan Genius PIN Pad (default is MWGenius.dat)


- CNF - Pack Alternate Transaction File - If the warning that "At least one record Stored..." came up, the program was doing the opposite of what was selected: Yes was treated as No, Anything else was treated as Yes. Also, the function that was called to move the transactions was not working.

- DBM/VAR - SEARCH - Selecting one of the linked list buttons on the Search, Replace, (or AutoFill) screen would cause the program to lock up (since the buttons are not supported by those functions). It now just ignores the selection.

- KSR - Inventory Analysis - Error 6 - If in item had both Total Qty Sold of 0 for the report period but that did have sales (and returns to end up back at 0) a rounding error could result in an Error 6 - Overflow.

- KSR - Inventory Analysis - 2nd Grouping - The SubTotals for the Section 2 (may be used when 2nd Grouping is set, e.g. By Department) were always printing out as 0. This would then affect the subtotals for the sections above it (e.g. By Vendor).

- KSL/KSR - BARCODES - TOP MARGIN - When printing to a Windows Printer, the Top Margin setting in the .WPD file was not being used with Barcodes (it was being used with printed text). Note that the Top Margin from the form being printed is added to the top margin from the .WPD file so it is not normally necessary to use both.

- KSR - Headings - The heading on a field would sometimes get cut off if the next field was set to print on the next line.

11/05/15 - v7.15 Build 78

TRN - iSC250 RBA 12 - Added support for using the newer operating system program on the iSC250 (RBA 12 instead of RBA 5). With RBA12, the card number is not returned to Keystroke from the device, the masked card number is retrieved from Mercury through KeyPay.

- RECORD LIST - QUICK SEARCH HIGHLIGHTS WRONG ITEM - If a filter is being used (or the list is set to only show Active AR Customers) and the Quick Search finds a record near the end of the list, the program would sometimes highlight the wrong record. This was due the list going back and also displaying previous records in order to fill the list box (no blank lines at bottom). The program no longer does this fill when a filter is being used.

- IMPTRN - UPDATE CUSTOMERS/CONTACTS - If updating an existing Customer or Contact record whose Tax Table was set to "*", the program was changing the database record to having a tax table set to be the same as the Company Default Tax Table (from Defaults in the Configuration Manager).

09/03/15 - v7.15 Build 77

- CNF - EXPORT - Inventory - Filtering on Serial Numbers was not working.

- TRN - SERIAL NUMBERS - If line item highlight was moved from a new line item by pressing the [Down] arrow key (instead of the [Enter] key) and the item was serialized, the program was prompting twice for the serial number(s) to be selected.

- TRN - MICR - Changed the Parsing routine for business checks to allow having both the Check Number and the Account Number surrounded by separator characters (usually only the Account Number has the separator on both ends).

- TRN - DetBox - "Total Discount - Base" (and "- List") were being calculated from the Transaction Total (including Sales Tax) instead of the Transaction SubTotal (minus Transaction Discount if used).

- SUMMARY.EXE - The Summary.exe program would sometimes produce an Error 55.

- SPLITTRN.EXE - The Date= and Time= parameters were not being recognized.

- TOOLBARS - TOOLBARTOGGLE - Turning Off then On a toolbar that was normally visible would cause it to be treated as a pop-up. This caused it to close when the next key was pressed. (Work-around was to mark the toolbar as Locked.)

07/29/15 - v7.15 Build 76


CNF - PACK - If the expected number of records in the file is not valid, the message asking to pack based on the Expected Number of Records instead of the size will now default to No.


- CNF - PACK - Bad record pointers on Comments and Transaction Lines could cause the pack to fail with an Error 63.

- EXPRESS - CNF - Sales Payment Type Setup - the "Gratuity To" button was being displayed in the same location as the Closeout Settings title. It still worked, but was hard to see. (Only appears if the Show Gratuity Field is marked On.)

- KSR - Inventory Database Group By Department - The **No Department** group was not printing all the items. It would only print up to the first item that had something in the field being sorted by.

- KSR - MATRIX - Inventory Analysis report could cause an error 9.

- TRN - SCRIPTING - Nesting Scripts (Running a script from another script) was not adding the items to the transaction in the correct order.

- FMTR - Body Section - After loading a form, text fields in the body section were being displayed as "Form Message". Also, when adding a Form Message to the body section the selected form message was not being saved (editing the field and selecting the message again did work).

- SPLTTRN.EXE - The Date= and Time= parameters were not being recognized.

07/09/15 - v7.15 Build 75


IMPTRN - Added support for ShipOnDate, NotBeforeDate, and NotAfterDate fields. Also supports names without "Date" on the end (e.g. NotBefore) and names with spaces (e.g. Not Before Date).

IMPPOR - Added support for ExpectedDate, NotBeforeDate, and NotAfterDate fields. Also supports names without "Date" on end (e.g. NotBefore) and names with spaces (e.g. Not Before Date).


- TRN - PARAMETERS - DISPLAY - CUSTOMER - If "Enter Customer First" was turned off, then the program was hiding the "Enter Customer after Line Items" field instead of the "Use Simplified Customer Entry Screen" field.

- POR - When editing a Purchase Order, converting it to a Reserved Order was not removing the items from the Open Order list.

- IMPPOR - The line item field "Order Multiplier" was not being recognized so the program was always using the current order multiplier from the inventory item.

- DBLISTS.EXE - Was not working when run from a UNC path (\\Server\ instead of F:\).

06/12/15 - v7.15 Build 74


KSR - Clerk Database - Changed the Clerk Calculated field list to have CLKC: First+Last name as the first field and CLKC:Commission Table Name as the second field so the reports that can be grouped by Clerk or Customer can use this same field to show the Clerk's Name or Customer's Name.


- CNF - Export - Scripts - Was not working if system did not have the old KSRPT.KRF file which had the format for the Export-Script settings screen.

- IMP - Setup - The Import File field was only accepting 40 characters (The max is now 128 characters).

- DBLISTS.EXE - Was not working with UNC paths (\\Server\ instead of F:\).

- TRN/AR - Encrypted Card Swipes - Cards that included Track 3 data (e.g. USBank REI cards) were not parsed out correctly.

- TRN - UPDATE RECURRING PAYMENT - The program was not allowing a payment stored in KeyPay to be updated with only the Expiration Date as the "No Card Number" message was blocking the process. This check is now bypassed when updating a payment.

- TRN - CAYAN GENIUS - Logs - If writing to the log files the program will now include the clerk, register and machine numbers. Also fixed the message written to the Errors.log file which was just showing the word false instead of the actual error message for errors generated while communicating with the Genius device.

05/20/15 - v7.15 Build 73


CLOSEOUT - Parameters - Added the parameter "Default End Time Buffer" (in minutes). When entering the Closeout Manager, the Ending Date/Time is automatically set to be the current time rounded up to the next minute. This parameter can be used to change this to be a longer (or shorter) time. This may be need if other machines are using the same till/register number or there is a very short period from the entry of the last sale and going into the Closeout Manager. In most case this should be left at 1 minute. Note that it can be set to a fractional number (0.5 for 30 seconds or 0.17 for 1 second) but it cannot be set to 0 (it will reinitialize to 1 minute if 0 is entered in the field).

CNF - PRINT BUTTONS - Since button number 0 does not support printing anything on sales transactions, its Form settings are now disabled.

KSR - AUDIT - Details - Changed the label on the Cust# and Vend# fields to be C# and V# to leave more room for the actual number (will now show up to 8 digits instead of 5).

TRN - DETBOX - Added support for User fields from inventory record of current line item.


- IMPPOR - Creating Invoice - If updating an order so that a new invoice was being created and the new invoice was in a different transaction file, then the program would also write the invoice information to the order's transaction file which could cause data corruption.

- DBM - Search/Replace - Formulas - If a field was being replaced by calculating the new value based on the current value (replace field starts with "+" or "/" or "*") then the current value was not being used. If more than one field was being changed, the program would use the value from the field that was changed before it.


- RECORD LIST BOX - When returning to the list after selecting a record (e.g. Printing Individual Statements or selecting a record to print on a report) the program was not always returning to the same record when towards the end of the list and some records were not allowed to be shown (either hidden or due to security).

- TRN - MACROS with GoTo Module start up switch - If the module code used with the /G command line switch was not all capital letters, then the macros file for that module was not being loaded (e.g. /gtrn was not working, /GTRN was).

- TRN - START/END SCRIPT - FILTER (AO) - Removed the ability to select a Line Item field on a script Advanced Restrictions Filter when editing a Starting or Ending Transaction script since there is no line item at that time to filter on.

04/19/15 - v7.15 Build 72


TRN - MACROS - SalesEntryCommand: TransactionSearch - added support for Item=%Prompt% and TransNumber=%Prompt% to force the ConfirmSettings screen to default to those fields.

TRN - AGE VERIFICATION - CALIFORNIA - 2D BarCode - Confirmed support for scanning the 2D barcode on driver's licenses from the state of California.


- EXPRESS - CUSTOM MODULES - If Accounts Receivable was disabled, the program was not showing the Custom Modules function on the Exit menu.

- KSR - TimeClock - Shift - If the minutes in a shift were just less than 60, the program would show the time as 60 minutes instead of adding 1 to the hour and setting the minutes to 00.

- PDF PRINTER - MULTIPLE MONITORS - If using multiple monitors and Keystroke is running in a monitor that is logically to the right of the main screen, then printing to a PDF printer (and sometimes to the screen) would cause an error.

- TRN - Transferred Payments - If a transaction was created from another transaction type (e.g. Sales Order) but was not an Invoice (e.g. Layaway), any payments transferred to it when it was created were not being included in the Tendered amount. Now only transferred payments on transaction types that create another transaction when items are shipped are excluded from the total Tendered.

- IMPPOR - If the POR - Update Parameters - were set to recalculate a new Base Price for the item based on the cost of the line item, then the program was giving an Error 91 which would abort the import.

- IMPROA - INVOICE NOT APPLIED TO - If the file being imported into the Import ROA program specified the dates for the invoices the payment was to be applied to, then the program was not finding the invoices. (Leaving the date field blank so it looked up only by invoice number was working.)

03/27/15 - v7.15 Build 71


- CHGNUMS - Fixed Error 76 when trying to update transaction types not stored in the standard transaction files (from build 59).


CLOSEOUT - CHECK CALCULATOR - Added support for using [Shift+F8] to mark all payments as checked ([Ctrl+F8] also already did this).

DBM - Default Field Formulas - The program now supports multiple operands in the default field formula (e.g. "+M50-.05"). Note that the order is always left to right and the only operators supported are "+-*/M". Parenthesis are not supported.

TRN - Inventory Lookup List - Changed the list to check both the "To View" and the "To Sell" security levels. If a clerk does not have the security to do both, then the item will not be shown. (It used to just check the "To Sell" security level).

TRN - Return to Gift Card Payment (Reload) - If trying to put a return (negative payment amount) on a gift card and it is denied due to "Account Not Issued" then the program will automatically try to process it again as an "Issue" card transaction which will activate the card with the amount of the return.

IMPALTIC - Added support for the DISPLAY=0 switch to disable the window that shows it is running.


- DBM - Summarize History function was not checking the Access DBM security level so anyone was being allowed to run it.

- TRN - UIC SIGNATURE CAPTURE - It was possible for the program to get stuck waiting on the signature to be retrieved.

03/11/15 - v7.15 Build 70


- TRN - GENIUS - GIFT CARDS - From Build 69 - Gift cards now retrieve the payment details from the Cayan server instead of the Genius device. However, the Cayan server is sending the requested payment amount as the Amount Approved instead of the actual approval amount (based on card balance). When using Gift cards, the program will ignore the amount from the Cayan server and use the amount from the Genius device.


CNF - Genius - When the PIN Pad is set to Genius, the program will no longer remove the auth methods on Gift Card triggers since most gift card functions still have to be done using either manual entry or through a separate encrypted card swipe.

POR - Parameters - Line Entry - Added a "Don't check Max Qty on Edit Qty" parameter. If turned on, the program will skip the check that makes sure when the qty field is manually changed, that the new QOH does not exceed the item's Max Qty. Note that the Max Qty will still be checked when creating the default order amount for the item.

STR - INVENTORY UPDATE - Added a parameter to be able to turn off the updating of the Inventory Max Qty field.

TRN - DETBOX.DOC - Added ability to display the "User" fields from the Inventory Item in the Line Item Detail box.


- CNF - Price Formulas - If a formula had the Minimum Based On "$", it was always being displayed as "%" when the formula was edited (and would then be saved as "%" if not switched back).

- TRN - iSC250 - EBT CARDS - Some EBT cards were not being seen as a valid swipe (the encrypted track info is shorter) so the program was always displaying the "Error reading encrypted payment information" message and canceling the payment. The program now accepts shorter track data with EBT cards. {From build 64}

- TRN - GENIUS - Exp Date not Shown - If there was any kind of error (e.g. Signature not entered) with a payment on the Genius device but the payment was approved anyway, then the additional payment information (Exp Date, Card Balance) was not being retrieved.

- TRN - GENIUS - The program was sometimes receiving a blank response from the Genius device. It will now ignore blank responses and try again.

- TRN - MICR - Changed the Parsing routine for business checks to swap the Account Number and Check Number fields if the Account Number is smaller than the Check Number (for Union Bank checks).

- TOGGLE BUTTONS - Single character toggle buttons (like the ones that switch from "$" to "%" on formulas) would display as a "1" or a "0" if another button was selected while on one of these. (Display issue only).

- STR - The "Don't change Current Store when Entering Module" was not working.

02/23/15 - v7.15 Build 69


TRN - Age Verification - DL Swipe - The program will now check the Expiration Date on a driver's license that was swiped using a mag stripe reader (it has always checked with cards that were scanned using a 2D barcode reader).

TRN - AGE VERIFICATION - Confirmed support for scanning driver's licenses from the state of Mississippi.

TRN - Entry Parameters - Added the parameter "Don't check Expiration Date" under the Check Minimum Age section. If this is turned on, then the program will not stop and warn/prevent the use of a driver's license that has expired.

TRN - CAYAN GENIUS - If the response includes a Card Balance, the program will now display it on the payment response screen along with all the other information.


- CNF - Payments List - Adding or Deleting a payment would cause the list to have trouble editing any payments below it. Work-around is to save the list and the go back in after each Add or Delete.

- DATABASE - ADD CUSTOMER - If the default Salesperson on a customer record was Null (and it usually is) and the clerk did not meet the "View Other Salesperson's Customers" security level then they would not be allowed to add a customer. (A default value of 0 was working correctly.)

- TRN - CAYAN - Gift Card Balance Check - If the gift card was not issued, the Balance Check would just cancel, now it displays the CARD NOT ISSUED message.

- TRN - CAYAN GENIUS - GIFT CARD - REDEEM - When set to use the MWGenius PIN Pad, the program was not allowing a gift card payment to be redeemed if it was set up as a Gift Card trigger and was set to not go through the Genius device (Auth Method had Card Swipe set to "None/Wedge") when other payments were.

- TRN - CAYAN GENIUS - Gift Card Balance was not being retrieved when a gift card payment was done.

- TRN - iSC250 - USBank REI Cards - The swipe data is not being passed back from the Ingenico device in the correct format with REI cards from US Bank. The program now checks for this and makes the necessary corrections. (This change was originally in build 68 but that change did not work with live cards).

- TRN - ISC250 - EBT Food - The EBT Amount eligible amount is greater than the standard payment amount, the program will use the standard amount for EBT payments. This allows the EBT amount to be set by entering a new payment amount.

- TRN - EBT - MagTek IPAD / IDTech Sign&Pay - If a card needed to be entered manually for EBT, the program was asking for it to be entered on the screen (which does not work due to encryption) instead of on the PIN Pad device.

- TRN - EDIT TRANSACTION WITH SCRIPTS - If editing a transaction that had items added with scripting, changing the qty on the main item was not updating the qty on the items added by it. This was due to the script info not being reloaded when a transaction is edited. (Note that due to this problem, if a transaction was already edited before this build, the script info will no longer be available so it will still exhibit this problem.)

- KSR/CNF - Script Reports/Export - Comments/Messages - When printing (or Exporting) Scripts, the Message and Comment fields were always showing as blank.

02/15/15 - v7.15 Build 68

- TRN - iSC250 - USBank REI Cards - The swipe data is not being passed back from the Ingenico device in the correct format with REI cards from US Bank. The program now checks for this and makes the necessary corrections.

02/08/15 - v7.15 Build 67


TRN - KEYPAY - EBT CHECK BALANCE - Added support for checking the Balance on EBT payments set to process through KeyPay.

STR - Old Data Files - The message stating that the data "is from a previous version of Keystroke" will appear if there are old data file names mixed in with the current data set (e.g. KSINVNDX.DAT, KSINV1.DAT, KSTRN001.DAT). Because of this, the message has been changed to give more details on why the message is being displayed. If there are old files mixed in with the current data set, they should be removed.


- POR - MultiStore Orders - AutoOrder - If the letter case on the current DataDirectory did not match what was entered in the current stores directory field on the stores list, then the main Qty on a new MultiStore Order would include the current store twice. (For example, if the directory on the store list was entered as "dAta" and the current data directory was "DATA" and a qty of 2 for an item needed to be ordered, the main qty shown on the MultiStore Order would be 2 more than it should have been.)

- POR - Edit MultiStore Orders - The Store Restrictions were not being reloaded when editing a MultiStore Order so the Allotments screen would show all the stores instead of just those the order was restricted to.

- POR - Edit MultiStore Orders - The MultiStore Allotments list was automatically generating a new order qty for stores that the item was not ordered for originally (qty of 0 was being replaced with the currently needed order qty).

- POR - Edit MultiStore Orders - Editing the allotments when some stores were not included on the order could cause the change to be applied to the wrong store.

- TRN - iSC250 - GIFT CARDS - Gift cards were not being seen as a valid swipe (the encrypted track info is shorter) so the program was always displaying the "Error reading encrypted payment information!" message and canceling the payment. The program now accepts shorter track data with gift cards. {From build 64}

- TRN - iSC250 - Signature Receipts - If the Signature Device was set to NONE, then when the signature receipt was printed it would include the lines "Signature Not Captured" and "Device was not Available" even though it was.

- TRN - iSC250 - Gratuity - When going back to enter the Gratuity amount on a payment, the iSC250 device was sometimes being enabled (it is not needed for updating and processing the new payment total).

- TRN - iSC250 - Gratuity - The Gratuity field was not being hidden when the selected payment type did not support it.

- TRN - CHECK PAYMENTS - PRINT BUTTONS - The Enter MICR payment screen was not automatically activating the payment print button marked as "Print Immediately" if the "Skip Tendered Field" was on. Also fixed the size and location of the print button.

01/25/15 - v7.15 Build 66


- TRN - iSC250 - SIGNATURE CAPTURE - If the Signature Capture device was turned off, or if the Capture Signature parameter on the authorization method was turned off, then the signature was not being saved. Either or both of these settings can now be turned off since the prompting for a signature is controlled by the iSC250 device.

- TRN - iSC250 - GRATUITY - If the Gratuity field was turned on but no gratuity was entered, the payment amount would be saved as 0.00 even though it was captured for the full amount.

- TRN - iSC250 - CARDHOLDER NAME - The Cardholder Name was not being saved (from build 64).


- SECURITY LEVELS - MENUS - If a clerk did not have access to a function listed below a menu item and the function had been removed due to other licensing or configuration settings, then the menu item itself was being disabled. (For example, if using Express and the Custom Modules function was not displayed under the Exit menu, then the Exit menu item would be disabled instead.)

- PROD - TEMPLATES - If a template had more than 9 line items on it (including optional items) then the last line item was not being saved.

- DBLISTS - ERROR 13 - Having an invalid filename in the LISTS\ directory (one that was not 8 characters long with the last 3 being numbers) would cause an error 13 when loading the program (to edit Valid Entries Lists).

01/19/15 - v7.15 Build 65


- TRN - iSC250 - Build 64 - The "Error reading encrypted payment information!" message was being displayed on some cards when it should not have been.

- TRN - iSC250 - GIFT CARD ENTRY - The iSC250 type PIN Pads were not displaying the result of processing a Gift Card from the Gift Card Entry screen (not as a payment). Also, the device was not being reset correctly after leaving this screen or after a card was denied.


CNF - Files - Pack - When the pack is completed, the ta-da sound will be played and the "Pack Completed" message will now include the filename.

KSR - Cues - If a report group has a Report Settings that cannot be found, a message will be displayed saying so. If being run with the display off, then the message will be written to the errors.log file.

KSR - Cues - The ta-da sound is now only played after the report group is finished printing instead of after each report in the group is completed.


- KSR - Cues - Reports - If printing a single report to screen, the program was returning to the list of report settings instead of pausing on the finished report viewer.

01/14/15 - v7.15 Build 64


EXPRESS - VAR - AutoFill - Added the AutoFill function back in.

CNF - PIN Pad - iSC250 - Added the parameter "Limit status checks". If this is turned on, then the program will not continually check the status of the PIN Pad while the customer is completing entering the payment information. This can help with problems caused when the PIN Pad is sending the payment information at the same time the Keystroke is checking on its status.

KSR - Customer Activity Report - Removed the settings for ROA payment if AR is disabled.

MERCHANT WAREHOUSE - CAYAN - Changed the displayed text "Merchant Warehouse" and "MW" to "Cayan" due to the change in their company name.

TRN - iSC250 - Decryption Errors - The program now checks the length of the encrypted track data and encryption key returned by the PIN Pad device. If it is not the proper length, then the program will retrieve the information again. If after 3 tries there is still a problem, the payment will be cancelled and a message will be displayed stating that there was an "Error reading encrypted payment information!".

TRN - CHECK READER - Added support for the MICR returned by the EPSON TM-H6000IV reader when the program's Check Reader is set to the EPSON TM-H6000III.


- CNF - DISPLAY SIGNATURE - If the Display Signature Status was on while a cash drawer's settings were saved, that drawer would always turn the internal Display Signature setting On even if the parameter was later turned off. (This same problem also applies to the Keep Port Open setting on the Customer Display and Security Feed devices). Work-around is to go back and resave the drawer settings after the other parameters were turned Off.

- KSR - EXPRESS - Inventory Database Report - If Grouped by Vendor then the program would not print anything (and would bring up the Add Department screen if Print was set to Individual).

- KSR - Reports from Lists to Screen - If a report was set to Print - Individual and the data was coming from a standard list box and printing to screen, it was not returning to the list box automatically so the next line could be selected.

- TRN - iSC250 family of Pin Pads - If the payment used did not require a signature (or if the device does not support signatures), the program was still pausing for 1.1 seconds in the retrieve signature routine before moving on. It now tests the device to see if it is in signature entry mode after the payment approval, if not, it bypasses this routine.

- TRN - DETAIL DISPLAY - If an item's QOH was less then .01 and included more than 15 digits, it would be displayed using scientific notation (0.0123456789012345 = 1.23456789012345E-2) which would usually show only the first part (1.234) which would make it look like the item had more than it did. The detail display now rounds the QOH values to 3 decimal points (0.012) the same as it does when saving a database record.

- TRN - iSC250 - No Payment Date - If there was a payment on the payment list that was set to be processed by KeyPay but not entered via the PIN Pad while other payments were set to be entered through the Ingenico iSC250 the Ingenico payments would not be added to the transaction correctly (including not being assigned a payment date). Work-around is to make sure that the first payment on the list to be processed by KeyPay is also entered with the iSC250 PIN Pad.

- TRN - iSC250 - The program was always displaying the "PIN not received." message if the first payment replaced with "Selected by Customer" expected a PIN number but the actual payment used did not. Work-around is to make a credit card payment be the first payment on the list.

- VAR - Reports - Filtering on the PhysQty being blank ([VRL:PhysicalQty~]) was not working due the to underscore character "_" being substituted automatically for a blank value. The report engine now treats numeric fields set to "_" as Null which allows the IsBlank operator to work on them.

- FMTR - Edit Field - While a Sub Body Field is selected (e.g. MultiStore Order Line item store details) the list of fields was not defaulting to the Sub Body Fields list (you could still press to switch between the different lists).

12/12/14 - v7.15 Build 63


CNF - Signature Capture - the "Display Signature on Screen" parameter is now always displayed since some PIN Pads (iSC250, MWGenius) will capture a signature even if the signature capture device is set to "None".

TRN/AR - KeyPay - Added support for Contactless card entry with the Ingenico iSC250 interface. (Note that ApplePay with Mercury Payment Systems is the only known functional case that uses this.)


- TRN - KEYSTROKE EXPRESS and POS - FOOD STAMP ITEM FLAG - If the Line Item Detail screen was used ([F3] on a line item), the Food Stamp Item flag would be cleared when the information was saved (unless it was explicitly turned on at that point). Note that this problem does not exist in Keystroke Advanced which supports a more flexible system for identifying types of inventory items through the PayCode feature.

- TRN - PIN Pads - [Esc] key not working - While the program was waiting for a device to respond, the [Esc] key was being ignored even after the minimum number of seconds had passed.

- TRN - Payment Hot Keys and Macros - If the PIN Pad was set to either the Ingenico iSC250 or MW Genius and one of the Sales Payments was not available to be used (e.g. marked for ROA only) then pre-selecting a payment by using its Hot Key or a Macro could cause the wrong payment to be selected.

- TRN - iSC250 - Cards that were manually entered on the PIN Pad were not being sent to Mercury Payment Systems as being manually entered which would cause the card to be declined.

12/04/14 - v7.15 Build 62


CNF/KSExport.exe - EXPORT - TRANSFERS - Added the ability to export store Transfers. Use Files - Export - Other Transactions - Store Transfers or (TYPE=OS for KSExport.exe).

DBM - SEARCH & DELETE / HIDE - Changed the "Record is in use" message to be the same as the Record Delete / Hide functions.

POR - Update Inventory Vendor Part Number - When re-saving a purchase transaction, the program will no longer update the Vendor Part Number on an inventory item if the part number on the transaction was not changed. This is to keep the part number from older transactions from changing the current part number when an older transaction is edited.


- TRN - GIFT CARDS - ENCRYPTED SWIPE - If using an Encrypted Card Swipe reader (like the MagTek Dynamag), swiping a card into the Gift Card Entry box was not working (the card entry field was limited to 200 characters and encrypted swipes are usually longer than that). This was caused by a change in build 54 which allowed gift card swipes to go through to the regular text entry field instead of being handled internally. The program now reverses that change while in the Gift Card Entry box so that swiped gift cards go through the card swipe protection routine. Also changed the text field to handle up to 500 characters in case Card Swipe Protection is Disabled (it should not be).

- TRN - ISC250 - If the device sent the card information to Keystroke at the same time that Keystroke was asking for an update on its status, the card information would sometimes be lost and Keystroke and the device could get out of sync (the device would usually say Unable to Authorize). Keystroke now checks the device for the card information immediately before requesting a status update and will also clear unexpected information to help keep the devices from getting out of sync which could cause the interface between the two to slow down.

- KSR - Time Of Day - If the Increment did not evenly go into the Time Interval (e.g. a 3 hour increment but with a Time Interval of 5 hours) then the last 2 periods would be labeled wrong. The program now adds another short period if the extra on the interval is more than a few minutes and makes sure the labels are correct.

- GLLINK - Transfers - The option to link store Transfers was not appearing if the data directory using lower case characters.

11/21/14 - v7.15 Build 61


- TRN - PIN Pads - [Esc] Key - While waiting for a PIN Pad to respond to a command sent to it (which is almost always does even if the response is just an acknowledgement that the PIN Pad received the command) the program was checking the Keyboard buffer in case the [Esc] key was pressed. The problem was it would clear out all the keys while doing this so if an item was scanned with a barcode scanner while the PIN Pad was being changed, some (or all) of the characters from the scan would be lost. The program now monitors the keyboard buffer without changing it while waiting for a response from a PIN Pad. If an [Esc] is pressed and used, the program will then clear out the keyboard buffer.


CNF - PIN Pad - iSC250 - If the program can't connect to the device, it will display a message stating so instead of showing the settings that come from the device as being off.

DBM - RECORD - DELETE - Changed the "Record is in use" message to show the type of record and to say "active" instead of "in use". It will also show the reasons why it is considered still active. (e.g. "Warning: This Inventory Item is still active! QOH=12")

DELTRANS - FILTERS - Added the ability to filter on the transaction's First Payment Date (filter #28).

STR - INVENTORY UPDATE PARAMETERS - Added a parameter to turn On the updating of the Closeout Item flag (default is ON).


- CNF - ASCII Character List - If the character list started with number 33 ("!") then it was being labeled incorrectly as (Null). Only lists that start with number 0 should have the (Null) label on the first line.

- DBM - Contacts - The Record - Hide/Show - Inactive Only function was not showing hidden contacts if their customer record was not also hidden.

- DBM - Hide/Show - The Show Hidden button on the record list box was always starting as "Show Hidden" even when it should have been "Hide Hidden".

11/14/14 - v7.15 Build 60b

- AR - Enter Customer - Looking up a customer by entering an Order Number was not working if the Order Number contained any non numeric characters (it was only allowing numbers to be entered).

- AUDIT - ALL KEYSTROKES - If a key combination (like [Alt+T]) was used to launch the top menu, that key combination was not being added to the All Keystrokes audit entry.

- TRN - INVOICE DISCOUNT - FOOD STAMPS - If the Invoice Discount field was used with Food Stamps (or any restricted payment that was not taxable) then the program would sometimes still include a small amount of tax when it should have been $0.00.

TRN - PinPad - [Esc] Key - PinPads that use a serial interface will now ignore the [Esc] key being pressed by the clerk until after a minimum number of seconds (usually 3).

- TRN - ISC250 - The program was always using the "Capture Signature" setting from the first payment type used for the PIN Pad payment entry instead of from the payment type that was selected on the device (e.g. Gift Cards were still asking for a signature to be entered even if the parameter in KPGift was turned off).

- TRN - ISC250 - When a payment was declined, Keystroke would get stuck waiting for the device to respond that it was showing the declined message (which it never does). Keystroke no longer waits to confirm that a message actually gets displayed.

- TRN - ISC250 - Reset - The device was sometimes responding with an unexpected message when being reset, this would cause the reset function to take much longer.

- TRN - IDTECH SIGN&PAY - Added code to force the destruction of an internal memory object in order to free up internal resources.

- TRN - CHECK READER - Epson TM6000 - Changed the code used to request the check be read to align with the latest Epson ESC/POS standard (now ends the command with chr(0) instead of chr(48)).

- PROD - The total cost of a production was being rounded in some places as Money (usually 2 decimal points) and in other places to 4 decimal points instead of to the Cost setting (which is usually 2 but may be set to 3 or 4 decimal points). This could cause rounding errors when updating the avg cost on the inventory items.

- TOOLBARS - BUTTONS - The parameter for Default - BorderRadius was not being used requiring all buttons that had a border but wanted to use a different radius on the corners (other than the global default of 20) would need to use the BorderRadius tag on each button instead of just being able to put it in the default section for the toolbar's buttons.

11/05/14 - v7.15 Build 59



CNF - PARAMETERS - Added the parameter "Disable Credit Payments (AR Module)". If this is on, then features related to Accounts Receivable will be hidden or disabled. If this parameter is turned on, the following will happen:

CNF - Sales Payments - Payments marked as Credit (e.g. "On Account") and those set to only be "Available on ROA Payments" will be hidden. Also, when using the "Payment Type" button, the "Credit (AR)" selection will not be available.

TRN - The Payment List will not include those with their "Type" set to "Credit". The Credit Memo function has been removed.

AR - The AR Module will be removed from the Exit Menu. In Keystroke POS the AR Module button on the pop up Main Menu will be disabled. Note that since the Navigation Menu in Keystroke Advanced POS is customizable, it will not be automatically changed. The buttons can be changed easily by right clicking on a button and changing its name/function. If a macro is used to go to the AR Module, it will display the "Accounts Receivable is Disabled" message and will not switch to that module.

KSR - The Sales menu will not show the Receivables and ROA Payments report options.

CNF - The "Disable Credit Payment (AR Module)" parameter is stored and read from the common configuration data file ("KSCNF.DAT") even if the register has been set up to have its own configuration file.

EXPRESS - New data sets will default to having the "Disable Credit Payments (AR Module)" parameter turned on. However, in Express it is labeled as "Enable" and so will be displayed as Off. The limited AR functionality available in Express can be enabled by turning On the "Enable Credit (AR) Payments parameter. (Note that Keystroke Advanced should be used if full AR functionality is needed.)


CNF - SALES TRANSACTION TYPES - DIRECTORY - In order to share a transaction of a particular type between data sets (or stores), a new parameter "Directory" has been added to the Sales Transaction Types setup screen. This parameter should only be used on transaction types where it makes sense to do so (e.g. "Gift Registry"). Also, since sharing a transaction file will also cause the file locking for all transactions in that directory to be shared, it is recommend that the file be stored in a separate directory for all data sets (e.g. "F:\KEYSTROK\SHARED\"). (Note that there will also be a KSTRNHDR.DAT file created in that location since it is used for file locking.)
When the Directory is changed, the program will prompt to move the transactions from the old file to the new one. If the file already exists in the new location, the transactions will be added to it. This feature is available so that two separate files can be combined into one. But care should be taken as it is possible to duplicate transactions if the same ones already exist in the new file.
If this parameter is used, make sure that the location is included in normal backup routines. The path entered in the Directory field can be a relative path based on the directory that the standard transaction files are stored in.
The Next Number From setting can be set to a different transaction type that is not being shared (even one that is not enabled). This will allow a different set of numbers to be used by each store that is sharing the those transactions to make it easier to recognize which store they originally came from.

----AR - DISPLAY ORDER NUMBER (Advanced Only)----

AR - DISPLAY INVOICE ORDER NO (AO) - The [Shift+F9] key combination can now be used to switch the ROA entry screens from showing the Invoice Number to showing the Invoice's Customer Order Number field ([Shift+F9] is also used to switch back to showing Invoice Number). When showing the "Order No" field, the invoice search functions will be based on the Invoice Custom Order Number field instead of the Invoice Number field.

AR - Show Invoice - The Show Invoice screen is now larger so it can display the Order No field from the Invoice (if there is one) and also can show 4 more line items at the same time.


AUDIT PARAMETERS - On new data sets the following audit parameters will now default to On: "New Transaction Saved (SM/PM Only)", "Line Item Changed/ Deleted (SM)", "Transaction Started (SM Only)".


- CNF - PARAMETERS - The "Ignore PCI Requirements" and "Allow Mixed Case in Passwords" parameters were being read from the register's configuration file instead of the shared file (which are usually the same, "KSCNF.DAT", but registers can use their own unique file if set up that way).

- KSR - Purchase Trans Lines - The program was trying to populate the "PTL:MultiStore Allotments" field even if the transaction type was not a MultiStore Purchase Order.

- TRN - Customer History - Using the Transaction Browse function (e.g. [Ctrl+ PgUp]) was clearing the display data for customer history even when the customer did not change (it should only clear it when it does). Note that once the data has been cleared, it is not reloaded it until either exiting the customer entry box ([F8]) or a line item is changed/entered, or transaction is loaded vie that Search or Edit/Print functions.

- TRN - EDIT TRANSACTION - Transactions were not always being saved when edited if the only changes were to fields on the Complete Sale screen (e.g. changing only the "Order No." field and then saving would not save the new Customer's Order Number).

- Error 55 - Prompt for Transaction File Path - If the Clerk Login screen came up while the program was prompting for the path to the requested transaction file, an Error 55 would result after the File Path function was closed. (Usually canceling the error would allow the program to continue normally.)


- PROD - Conversion from v6 - Productions converted from v6x (or before) were storing the Total Cost as 10X more than it actually was. A program (FIXPROD.EXE) is available from Tech Support to go back and update the total cost on all productions/templates in order to fix data that has already been converted.

- PRINTSAL - If the Print Button was not found (either didn't exist or wasn't able to be used do to other parameters) then the program was using the last print button stored in the FORMS.DAT file (even if it was for a different transaction type).

- STR - PARAMETERS - The "Don't change Current Store when Entering Module" was always being used as On even when it was Off. This would cause the Current store data set (i.e. Store From) to be based on the Store Number from the Name/Address settings of the data set in use when entering the StoreLink module.

10/20/14 - v7.15 Build 58

TRN - Ingenico iSC250 PIN Pad - All devices using the Ingenico iSC250 interface will no longer allow the clerk to cancel a request to the PIN Pad when waiting for the customer to enter something (other than swipe card). Due to a slow response time when the computer tells the device to cancel, the Red Cancel button on the device should be pressed instead. (If needed, the clerk can still cancel by pressing [Esc] 5 times). Also added a check when enabling the card swipe to wait for the device to show that it has switched to that mode before proceeding.

- DBM/VAR - Search Screens - The change screen buttons were not working on the search function (for both the Search functions in DBM and the AutoFill function in VAR). Work around was to use [Ctrl+Tab] to instead.

- TIME CLOCK - Biometrics Reader - There was a potential conflict if both the Clerk Login and the Time Clock function were running since both use the Biometrics Reader (if installed). The program will now track this and disable (and then re-enable) the reader with each function that uses it to avoid the conflict.

- TRN/AR - MW GENIUS - Gift Card Declined - Program was not recognizing the message sometimes sent back when a Gift Card was declined and would display the result as "Invalid Response" instead of just "Payment DECLINED". This was a display issue only.

- TRN - KeyPay - Voice Auth - An App Code of 5 characters was not being sent to KeyPay for future processing but was being accepted by Keystroke. The program will now accept and process 5 character approval codes (even though they should always be 6 there is a potential for a processor to use 5 characters).

- TRN - KeyPay - Voice Auth - The program was displaying the Partial Auth message when a Voice Auth payment was entered. Also, it now ignores the Skip Approved Message parameter on Voice Auth entries.

- TRN - iSC250 - The configuration of the payment list could sometimes cause the Selected By Customer payment to always default to 0.00 instead of the amount left to be tendered.

- TRN - ISC250 - Gift Card Entry - If the PIN Pad was set to "Ingenico iSC250" then the Gift Card Entry function was always using that device instead of first checking the Auth Method on the Gift Card Entry settings. (i.e. it was still forcing the card entry to go through the PIN Pad even if the authorization method had the swipe set to "None - Keyboard Wedge".)

- TRN - MWGENIUS - An extra "Manually Entered Payment" line was being added to the payment list (from build 57).

09/30/14 - v7.15 Build 57


DBM - CLERK DATABASE - Program will no longer allow the current clerk to be deleted or hidden.

TRN/AR - iSC250 - If using the iSC250 PIN Pad, the program will now look at the Settings ID on the KeyPay Auth Method assigned to the each payment and will create a "Selected By Customer" payment for each group of payments that have a different Settings ID. The new Pay List Prefix field can then be used to identify each one of these groups.

CNF - KEYPAY AUTH METHOD - Pay List Prefix - This can be used to add information to the payment name that appears on the Select Payment list when completing a sale (or ROA Payment). The text entered in this field will be added to the beginning of the payment name, but putting the "&" character at the beginning of the prefix will cause it to be added to the end of the payment name instead. Note that this feature is designed to be used with the iSC250 PIN Pad when different merchant accounts are used for different payments (e.g. MOTO vs. Retail).

TRN = UIC-PP795 - PIN Pad/Signature Capture device - Added support for the OK Amount parameter that can be enabled through the Authorization Method.


- AR - EDIT ROA PAYMENTS - CHANGE DATE - If the Date of a previously saved ROA payment was changed and the last invoice it was previously applied to was in a different transaction file, then the program was writing a copy of the ROA payment to that file. This would cause data corruption to the record it over wrote and, if that file was packed, the ROA payment would appear twice in the correct file.


- CNF - AUDIT - Security Levels - Audit entries were not being created when security levels were changed.

- POR - LINE ITEM ENTRY - ITEM NOT FOUND - If "Cancel" was selected (or the [Esc] key was pressed) from the Item Not Found message box, the program was not resetting some of the internal values for the line item (like the current field, the Inventory Record Number, and some flags). It now completely restores the line item back to the way it was before the lookup routine was called.

- POR - DELETE FILLED ORDERS - The program was not removing filled line items on Purchase Orders when the Delete Filled Orders parameter was on. (From change in Build 56 for updating vendor info).

- QUICK ARCHIVE - An Audit Entry was not being recorded when a Quick Archive Backup was done and the Audit Entry for Restore was being done before the Restore so it was being overwritten.

- STR - Reports - Store Transfers - The Print Comments parameter was not available.

- DETBOX.DOC - Sales Transactions - The field numbers were not listed correctly for 3 of the comment fields, the correct field numbers are: 150=Transaction Comment, 151=Customer Comment, 152=Contact Comment.

09/15/14 - v7.15 Build 56


TRN/AR - EMAIL - If the email address is blank, the program will prompt for one to be entered. The entered email will be used for the current process but it is not saved. To edit the customer's email address, [Esc]/Cancel out and edit the customer's record and then try the email button again.

TRN/AR - KEYPAY - Improved the display of certain error messages from KeyPay instead of just showing "Denied".

TRN/POR - Scanned Line Item - The program now records if a line item was scanned (based on the speed of the data entry). This is stored with the line item in the Flags field in bit value 2097152 (&H200000).

TRN - Print Buttons - If an error occurs while trying to print a form, then the program will ignore the Print and Continue parameter and stop on the Save button so the clerk can have a chance to try and print again.

ABOUT BOX - Added a button to display the Payment Guide (PA-DSS Implementation Guide for Keystroke POS pdf file). Also, added this button same button to the messages displayed when the Clerk Database is initialized and when data prior to v6.30 is converted.


- TRN - CHECK AUTHORIZATION THROUGH KEYPAY was not working due to internal encryption of account information (from build 51).

- TRN - Recurring Invoices - If a payment was processed through KeyPay by the Recurring function and the payment was approved but for a lesser amount, (i.e. a Partial Auth) the program was saving the payment for the full amount instead of the amount approved. Note that if the payment is not for the full amount, the transaction will saved as On Hold so it can be fixed up later.

- TRN - Recurring Invoices - Partial Auth - If a payment was approved but for a lesser amount, the program was displaying the Partial Auth message which would halt the recurring function from processing until the message has acknowledged. The program will no longer display the message since the partial auth transactions are saved as On Hold so they can be fixed up later.


- KSR - Filters - Dates - If the Calendar function ([F6]) is used to select a date for a filter, the program was pasting in the selected date using the standard date format (with "/") which is not allowed. It will now paste the date in using periods (e.g. "08.25.14").

- KSR - Company Logo - If the system was set to print a company logo on reports, then if a report was printed but not to a Windows printer, the program sometimes caused a blank piece of paper to print from the default Windows printer when the program closed.

- POLE DISPLAY - If a problem in the Customer Display generated an error message, the program could get stuck in a loop trying to display the new message on the pole display while the error message was being displayed. The program no longer checks for pole display messages while displaying an error message.

- POR - UPDATE INVENTORY VENDOR INFO - If the Delete Filled Orders parameter was on, then fully receiving a line item on a new Purchase Order was not updating the Last Purchase Date and Qty fields on the Inventory Vendor Info list.

- TRN - ISC250 - If a payment type was set to authorize through KeyPay but not use the PIN Pad then the program was still using some settings and routines from the ISC250 (Check Balance button may be shown, extra Swipe Card and Resetting PIN Pad messages, etc.).

- TRN - Line Item Entry Parameters - If the field for "X for Pricing applies to All" was blank and the cursor never went to that field, then saving the Line Item Entry Parameters would turn the parameter On (it can easily be turned back off by using the parameter function again).

- TRN - CREDIT MEMOS - If not using Advanced POS, the program was still using the default payment type that can only be set using Advanced POS. It now uses the same default payment type set for AR when not using Advanced POS.

- TRN - SCRIPTING - If a change to the Qty on a line item caused its script to add another line item, the program would display the new line time twice (covering the original item). This was a display issue only and did not affect the items or totals for the transaction. Also the display would eventually correct itself as other entries were made.

- TRN - CREDIT MEMOS - PAYMENT LIST - SECURITY - The program was only allowing payments with a Security Level Number greater than the clerk's security level number to be used. It now also allows payments where the levels are the level same.

- KSBACKUP - .LST File - If a password was passed in with the command line, then the password for the zip file was being listed in the .LST file as well.

- STR - Reports - Transfers - Transfer Comments (and Line Comments) were not able to be printed.

08/15/14 - v7.15 Build 55


CNF/TRN - Signature Capture - MW Genius - Added support for the Merchant Warehouse Genius PIN Pad device to be used as a standalone Signature Capture device (e.g. for On Account payments). Note that when the Pin Pad setup is saved as MW Genius, the program will automatically set the Signature Capture to MW Genius as well if no other Signature Capture device is currently configured.

LOGO - KSCNF.DAT - MW Genius - If the configuration file (KSCNF.DAT) is from a previous build and the Pin Pad is set to MW Genius, then the Signature Capture device will also be set to MW Genius if it was not already set to another device.

DBM - RECALL - Changed the Name field in the list of deleted records to use the Lookup Name instead of the Business Name for Customers, Contacts, and Vendors.


- TRN - USE SCALE - If the Inventory Item's Item Weight field was 0, the weight returned from the scale was not being used to update the line item's Qty.

- POR - UPDATE VENDOR INFO - (FROM BUILD 50) - Re-instated updating of Inventory Item's Vendor Info when saving a Purchase Invoice created from a Purchase Order. Except it will not update the Vendor Last Order Date and Last Order Qty fields.

08/07/14 - v7.15 Build 54


- OUT OF MEMORY ERROR - TCP/IP communications (like that used with KeyPay) were creating a new communications structure each time but not removing the structure when done. This would cause multiple structures to be left in memory and eventually could cause and Out of Memory error.

- POR/TRN - A tag-a-long script (or Deposit item) would sometimes cause an Error 10 when creating the new line item.


AR (AO) - Finance - Parameters - Billing Periods - Added a parameter for the Aging periods to be "Monthly" instead of a fixed number of days ("# of Days). If set to Monthly, the number of days in Period 0 will be the current day of the month (on 7/21 is will be 21), Period 1 will be the number of days in the prior month (30 for June) and Period 2 will be the number of days in the month before that (31 for May).

KSR (AO) - Receivables Aging - Will use the new Monthly Billing Periods feature from AR if turned on.

CARD SWIPE PROTECTION - GIFT CARDS - The program now excludes swipes that begin with ";6050" from this protection so the card can be used in then Enter Customer box. (";6050" is track 2 only for cards issued by MPS).

CNF - Hardware - Scale Setup - Added a Test button to test current settings.

CNF - Show Gratuity Field - This setting is now available when the Auth Method is left at None. (Previously the External auth method needed to be used to set up a non-processing payment with Gratuity enabled).

KSR - INVENTORY DATABASE - Added a parameter for "Parent/Child Items Only" to only include inventory items that have a Parent, or are a Parent of other items.

TRN - MACROS - MWGENIUS - Select Payment - Added support for payment numbers for MWGenius payments: ( -1 = Selected by Customer, -2 = Manually Entered Payment, -3 = Split Tender, -4 = Swipe Confirm Amount ). Note that the ToolBar Editor will not display these options, just select any other payment and then edit the number in the Macro.

MACROS - OPENDRAWER - Added support for a parameter to be added to this command to open a specific Drawer Number or to be presented a list where the drawer can be selected. This is only supported if Till Tracking is Enabled (otherwise it will just open the current drawer). To open a specific drawer, use PopUp=OpenDrawer(#), where # is the drawer number. To have the program ask the clerk to select from a list of available drawers, use PopUp=OpenDrawer(Select). Note that this function uses the drawers available on the current machine only (based on Machine Number).

TRN - Parameters - Customer Entry - Added a button to set the "List Field" which controls how the Customer Lookup List is first sorted when brought up from the Enter Customer box. The default is "Current Field" which will base the sort on which field you are in when the list is brought up.

TRN - IDTECH Sign&Pay - Manual Entry - The program will now check the "Show Exp. Date Field" on the payment type and the "CVV2 Verification" parameter on the authorization method and not ask for them during manual entry on the Sign&Pay device if they are Both Turned Off. (Note: The device does not support the entry of just Exp Date or CVV2. Both must be entered if either one is turned on.)


- AR - MWGenius - Selecting "Manually Entered Payment" from the payment list was not working if the payment below the first payment replaced by the Genius payment entries was not also a payment that would be processed by the MW Genius device.

- AR - MW Genius - The first payment type used with MW Genius needed to have an Auth Method attached to it so the program would know to use the Payment Info button instead of just the manually entered payment fields (note that the auth method was never actually used).

- KSR - AutoRun Report Cues - Matrix Items - A report that printed Matrix Items would require a clerk to be entered even if the Matrix Items were set to "Print - All" (it should have only asked for the clerk if set to "Print - Individual").

- KSR - AutoRun Report Cues - If a report required the Enter Clerk box to appear, the AutoRun flag was being turned off which could cause the rest of the reports in the cue to not work properly.

- KSR - AutoRun Report Cues - If the display was off (Display=0 on the command line) and a report needed the Enter Clerk box to proceed, then the program would get stuck in a loop waiting for the clerk to be entered which could not happen since there was no display. The program no longer asks for the clerk it be entered if the display is off.

- POR - Switching Transaction Type - Using the Special-Transaction Type menu function was not switching the qty columns to the default mode for the new transaction type. (Using the Hot Key (e.g. [Ctrl+I]) to switch was working correctly.)

- TRN - Parameters - Customer Entry - The "Default Field" was always being set to "Number" when the Customer Entry Parameters screen was brought up. (Setting it to another value was working, but it would be changed back to "Number" each time the parameters screen was used.)

- TRN - Copy Recurring Transaction - When copying and editing a recurring transaction with a payment that needed to be processed, the program was not updating the payment amount until after the "payments need to be processed" message was shown. This would cause the amount tendered information visible in the background to appear to be not correct.

- TRN - Credit Memo - MWGenius - If the default payment type was set to a payment used by MW Genius, then an error would result when using the Credit Memo function in Sales Manager.

- TRN - Verifone Everest PIN Pad - PIN Based Debit Cards - The Card Swipe was not being passed on so the card was processing as Manually Entered and therefore would be denied since Manual PIN Based Debit is not allowed.

- FMTR/SCRNS - These modules were always running in Eval Mode when program was running as Keystroke Express POS.

07/11/14 - v7.15 Build 53


PAIDOUTS - Reasons List (AO) - If the Reason selected from the Paid Outs Reasons list does not have a default amount, then the program will now go to the Amount field instead of skipping it.

RECORD LIST BOX - Quick Search - If the matching record is towards the end of the list, the program now displays the last part of the list and moves the highlight down to the matching record instead of always having the highlight be at the top of the list and very few (or no) other records displayed. When this happens, the last line of the list box will be blank to show that it is the end of the list.

RECORD LIST BOX - Show Hidden - if after selecting Show Hidden the list box is not full, the program will now display any prior hidden records so it is easier to see that they are there.

CLOSEOUT - Deposits Used Report - Added the ability to print a line for any missing payments (invoices where the total received is not the same as the invoice total). These should normally not appear but can in cases of data corruption or if payments were deleted without the transaction being updated.

CLOSEOUT - PURGE PAYMENTS - When the Purge Payments function is manually run from the Closeout menu, the program will now ignore the Last Purged payment date (it will keep running backwards through payments until no more are found or the function is cancelled). Also, it will also display the results message no matter what the Save On parameter is set to.

TRN - MWGENIUS - Max Payment Amount - When using the MW Genius Pin Pad, the program will now use the Max Amount and Payment Formulas from the first payment replaced by the Genius "Selected by Customer" payment. For the "Split Tender" and "Manually Entered" selections on the list, the program will still allow the full invoice amount but will now default to Maximum Payment amount determined by the first payment type replaced by Genius.


- FORMS - HIDDEN COMMENTS - If a line item had only hidden text in its comment, then the program was printing a blank line on the form instead of no line at all. (Note the text in comments can be hidden (not printed on forms) by placing the text between the vertical bar characters ("|").)

- POR - MultiStore Orders - Printing a form for an individual store was not working if the store was set to create Purchase Invoices instead of Orders.

- TRN - Ingenico i6550 - was not recognizing the card swipe correctly (from encryption added in build 51).

- TRN - MWGENIUS - The "Split Tender" and "Manually Entered" payment selections were not checking the "Default to $0.00" payment parameter (which comes from the first payment type replaced by the Genius payments).

- IMPORTAR - The command line sort category character was case sensitive (e.g. /Cc would not work, /CC did).

- CLOSEOUT - PURGE PAYMENTS - Would not find any payments to be purged if there were no payments after the date/time that payments were to be purged from. Workaround is to enter a current payment (either on an invoice or a 0.00 paid out).

- LOGO - Product ID - If a new product ID is entered in order to update license files in a data directory, then the program will now always copy in a new set of license files first to guard against cases where the previous files had a problem.

06/23/14 - v7.15 Build 52


TRN - CUSTOMER ENTRY - CONTACTS - Added a "List Contacts By" parameter to set what field to sort the Contacts List on when brought up from the Customer Entry box.

TRN - Simplified Customer Entry - If the customer entry parameters default field is set to Code or Email then it will start in those fields instead of the Phone # field.

TOOLBARS - If there are more than 100 toolbars, then only the first 50 are now kept in memory, beyond the first 50, any toolbar that is not initially visible will be created as it is used (this may cause a slight delay when displaying those toolbars).

TRANSACTION SEARCH - MACROS (AO) - Added support for Contact=%Current% in the Transaction Search Macro parameters. This is similar to Customer=%Current% but will also restrict the display to only the current Contact (if there is one). Note Customer=%Current% is automatically done if Contact=%Current% is used (e.g. "Customer=%Current%, Contact=%Current%" and "Contact=%Current%" work the same).

RECMRG - The file name being merged from will now be KSTR0001.REC (if KSTRN001.REC does not exist).

STR - Transfer Forms - Added Manufacturer and AltID# to list of fields that can be printed on Store Transfer forms.


- AR - STATEMENTS - Printing with Invoice Detail could cause an Error 9 or a 2 Billion error (from build 50, workaround is to turn off Invoice Detail).

- AR - STATEMENTS - If a customer had 63 invoices since their Last Open Invoice Date then either an error could be generated or a line of bad characters might be printed on the statement.

- DATABASE - CHECK BOX FIELDS - The program was checking for a Valid Entries list on toggle fields when it should not have been (since they can only be On or Off anyway).

- TRN - Contacts - If a customer had contacts but all were hidden, the program was still prompting for a contact as if the customer did have active contacts.

- TRN - Display Parameters - 1st Column - List would not close by canceling it (had to select an entry).

- RECMRG - MERGE= - Was not working if the " TO " syntax was not uppercase (e.g. "REC to NVC" was not working, "REC TO NVC" was, both work now).

- STOREMRG - Hidden Records - Database Records that were marked as Hidden were not being updated.

- EXPRESS - Using the [Tab] key (or equivalent) to change the sort of a record list box was allowing the list box to be sorted by a field that is not supported by Express (Inventory - Manufacturer/AltID#, Customer - WebID).

05/28/14 - v7.15 Build 51

PAYMENT CARD INPUT - Information received for processing payments (Card Swipe, Account Number, Expiration Date, Card Holder Name) is now kept encrypted while memory as much as possible to help reduce exposure of this information by Memory Dump programs used to gather this type of information. However, there are times when this information is not yet encrypted so it is still very important to make sure malware that would try to capture this data does not exist on the system in the first place. Using Encrypted Card Readers is the best way to protect card data as it is then always in an encrypted state when travelling through local computer system.

CARD SWIPE PROTECTION - While card data is being received, the program now encrypts the data as each character is received. This is in addition to encrypting the final swipe after the last character is received (which was already being done).

PRINT BUTTONS - EMAIL - If the "Print and Continue" parameter is turned on, the program will briefly display (for 1 second) the "Email Sent" message and will then proceed on with the transaction. (Change from build 39 where it was not displaying the message at all.)

TRN - Print to PDF - If the PDF file being created already exists, Keystroke will try to delete it first to avoid creation errors with the PDF printer.

- KSL - Labels - Delimited - Printing labels with more than 1 across to a delimited file was not working correctly (the field delimiters were not being added correctly).

- STR - Levels Report - Delimited - Printing the Inventory Levels report to a delimited file was not working correctly (the field delimiters were not being added correctly).

- KSR - EXPRESS - Sales Payments report - the Cancel button was being displayed lower on the screen then it should have been.

- TRN - Select Payment - If a macro was used to add a payment to a transaction but the clerk did not have the security to do so, the program was getting stuck in a loop. It now displays the Access Denied message and cancels the payment request.

- Calendar - clicking on a day's box was not selecting it unless the number in that box was clicked on (now the blank space in the box can be clicked on).

- TRN - DATAPORT - TRANSACTION CLEARED - The CheckPoint label for Transaction Cleared was being left blank.

05/13/14 - v7.15 Build 50


COMMAND LINE - MWGENIUS - The command line switch "GeniusIP=" can be used to specify the network address of the MW Genius PIN Pad device that the program will use (overrides entry stored in Windows Registry).

CNF - PIN Pad - Added the Ingenico iSC250 and iSC350 Encrypted PIN Pad (for use with Mercury Payment Systems). The device must have the Ingenico Tellium RBA application installed on it. Only the serial (COM:) interface is supported. The device itself can use either a RS232 serial cable or a USB cable with their USB to serial driver ("Jungo driver"). This device has a full color screen, Signature Capture, and the ability for the customer to enter the payment info before the transaction is completed. Since the interface was written to the Ingenico RBA interface, any Ingenico device with this application loaded on it should work with the Keystroke iSC250/350 interface but only these two were tested and checked with Mercury.

CNF - PIN Pad - When set to use the Ingenico iSC250/350, the parameters for the supported card types will be displayed. These setting are stored in the PIN Pad itself. If using multiple registers, each register will need to use the Hardware - PIN Pad function to have Keystroke turn the settings on (or off) on each device (or the devices can be preconfigured before installation).

CNF - PIN Pad - When set to use the Ingenico iSC250/350, the parameter "Enable Manual Entry Mode" will be displayed. If this is on, then when the customer is asked to "swipe card" the device will display the "Enter Card" button on the screen which will then allow the card information to be typed in using the device's numeric keypad. The information will then be encrypted the same as a swiped card. This setting is stored in the PIN Pad itself. If using multiple registers, each register will need to use the Hardware - PIN Pad function to have Keystroke turn the setting on (or off) on each device.

TRN - Ingenico iSC250/350 PIN Pads - Added support for PIN Pads using the Ingenico RBA interface. If one of these devices is used, the customer can swipe a credit card at anytime (as long as the amount left to be tendered on the transaction is not 0.00). When using one of these PIN Pads, the payment list displayed at the end of the sale will be altered by hiding all payments set to authorize through KeyPay and use the PIN Pad. A single "Selected by Customer" payment will be added in the position of the first payment that was hidden. Once the payment information is returned from the device, the program will automatically select the first payment type that matches what was entered on the PIN Pad (note that individual credit card brands are not identified by the PIN pad, only the type - Credit/Debit/Store (Gift/Prepaid)/EBT Cash/EBT Food. Also, if the customer has already started entering the payment information when the payment list would appear, the "Selected by Customer" line will be automatically selected. Payment entry on the device may need to be configured directly on the device (e.g. whether a signature should be entered after approval). Please contact Ingenico or your supplier for more information on making such changes.

CNF - Signature Capture - Added the Ingenico iSC250/350 PIN Pad with Signature Capture. AR/TRN - Signature Capture - Added support for the Ingenico iSC250/350 PIN Pads with Signature Capture. Note that this interface is only used for payments that require a signature but are not entered through the PIN Pad (e.g. "On Account"). Payments like Credit Cards automatically request and return the signature as part of the payment entry routines built into the PIN Pad.

CLOSEOUT - REPORTS - Removed page break before Sales Summary when printing to the screen so both it and the Cashout Report appear on the same page (was already printing on same page when printing directly to printer).

CNF/TRN - PRICE TABLES - FORMULAS - Added the parameters "Force Price" and "Ignore Base Price" to price formulas. Keystroke uses a best price method to determine the price of an item. To do this, it calculates the price from every formula that the customer/item qualifies for and then uses the lowest one. However, if any of the formulas has the "Force Price" parameter turned On, then the program will use that price and stop looking at any other price formulas. If the "Ignore Base Price" parameter is On, then the program will use the formula's price even if it is higher than the Base Price of the item (or the Sale Price if the item is marked as On Sale). However, it will continue to look at other price formulas and if any of them give a lower price then that lower price will be used.

TRN - IDTech Sign&Pay PIN Pad - Now allows manually entered EBT cards.

TRN - NVC FORMS - Changed the name of the line item "QOH" field to "QOH Total" and added a new "QOH" that is the QOH from the inventory item's QOH field at the time the item was read in. Note that since QOH is constantly changing these numbers can very depending on when the line item was loaded for the current printout.

EXPRESS - Record List Box - Removed the Show Hidden button (since there is no Hide function in Express).


- KSR - Receivables Reports - The Customer - Print Comments flags was always acting as if it was on even if it wasn't.

- POR - MAX QTY - Checking the Max Qty was not working correctly when editing a purchase order.

- POR - Update Inventory Vendor Info - The program was updating the Vendor Information when saving Purchase Invoices that were created from Purchase Orders. Since this information is updated by the Purchase Order in this case, the Purchase Invoice no longer does it (which would cause the Last Order and Last Qty values to come from the last saved Invoice instead of the Order). Also, the Last Qty was being set to the Qty left On Order instead of the TotQty ordered.

- TRN - IDTech Sign&Pay PIN Pad - If a payment type was set for Manual Entry only and the clerk used the program to then cancel the request (instead of canceling from the PIN Pad) but then did not proceed to do anything else with the PIN Pad, after about 3 minutes the PIN Pad would send a time out message but since the program was not longer looking for a response, an error would be generated. The program now resets the PIN Pad when the clerk cancels the manual entry request.

- ONE MACHINE PER CLERK - The message saying that the clerk was already in use would sometimes only flash briefly on the screen before the program returned to the clerk login box.

- LOGO - The Disable button on the "Maintenance is about to Expire" message was not working if the license information was coming from the data directory instead of the program directory.

- TOOLBARS - If a toolbar was popped up while an item was scanned in, the amount of time it takes to close the toolbar could cause the first character scanned in to be processed out of order (appear in the middle or end of the scanned text) due to the other characters arriving before the first character was done closing the toolbars. The program now processes the character and then closes any pop-up toolbars.

04/22/14 - v7.15 Build 49


- USB:HID DEVICES - Memory Problems - The program was not releasing the memory handles used to access USB:HID Devices (IDTech Sign&Pay PIN Pad, cash drawers, pole displays). This would cause the program to eventually run out of handles which would cause memory errors or object not defined errors.

- POR - MultiStore Orders - The Open Orders list was not being updated in the individual stores. (This fix was made in build 48 but the readme.txt entry was missing when released).


AR - ROA Payments - Payment and OK buttons are now disabled until a customer has been entered.

DBM - Vendor Catalogs - The list of Existing Vendor Catalogs is now sorted by Vendor Name. [Tab] or [F9] can be used to change the list to show Vendor Number first and resort the list. Note that the list is always sorted alphabetically even when sorting by number (1, 10, 2 not 1, 2, 10).

KSR - Don't Print If Empty - This parameter will now be ignored if all the sections below it are set to print "None" (since this would cause the section to never print).


- CNF - PIN Pad - The Ok button was not being shown if there was no PIN Pad set up ([F10] could still be used to save).

- DATABASE - Add Record - If one of the fields was being preset from a search not found routine, then fields linked to it would not change with it (since the links are broken due to the text in the fields not being the same). The program will now preset all fields linked to the field being preset when the Add Record screen appears.

- DBM - Record Merge - Inventory - the "No Fractional Qty", "Fixed Cost" and "Max Qty" fields were not being merged. The following fields were being merged and should not have been: TotalVarQty, TotalTransferedQty, FirstRecvdDate, FirstSoldDate, LastTransferedDate, LastQtyOrdered, LastQtyReceived, COGSAdjustment, ExpectedDate, VendorLastPurchasedDate, and VendorLastQtyOrdered.

- DBM - Add Mode - Clicking the buttons to change from one database screen to another were not working when adding a new record.

- DBM - Vendor Catalogs - If the list of all vendors was brought up and then cancelled, the box for entering the vendor number was also being cancelled.

- DISPLAY SIGNATURE - Pressing a movement (e.g. Up Arrow) or zoom (+) key while the signature window was being created on the screen could cause an error 91.

- TRN - Payment - Access Denied - If a clerk did not have the security to add a payment to a transaction, pressing a toolbar payment button would cause the program get stuck on the Access Denied message.

- TRN - Credit Memos - The security level on each payment type was not being checked by the enter Credit Memo function in the Sales Manager.

- TRN - Manually Entered Weights were not checking the qty entered against security levels or settings.

- TRN - DataPort - If Line Item Merge was on, then the program was not sending out updated transaction information through DataPort when a new line item was entered and then merged into an existing item.

- TRN - Transaction Numbers - When a transaction was converted to another transaction type due to being fully tendered before it was ever saved, the program was not checking the "Keep Number when Converted" parameter and so was assigning a new number to it.

- TRN - Customer History - Item Exists Warning - If the program was set to check if an item is already on a pending transaction for the current customer, then selecting Yes to remove an item from the current transaction that was also on an existing transactions was not working.

- FullScreen Mode - Program was putting the title bar back on the window when updating the title bar's text.

- SCRIPTS - Editing a script would give an error if more that 10 Sales Transaction Types were enabled.

- SOUNDS - Assigning a Sound switch to be blank was not working, the program would still play the system beep (i.e. SoundBadKey= would still make a sound).

- TOOLBAR BUTTON EDITOR - If the toolbar filename in use was changed by the toolbar button editor (which it does if the default toolbar file was in use). then the program would revert back to the default toolbar file when changing modules. Once the program is close/opened this no longer happens since it is no longer using the default toolbar file.

04/01/14 - v7.15 Build 48


AR - Captured Payment - If a payment is captured (e.g. processed through KeyPay) then the Payments button will be disabled since once a payment is captured, it cannot be changed.

CNF - COM Port Settings - Entering a non-standard baud rate will display a message stating so.

REPORTS - Added "SYS:" fields for Machine Number, Register Number, and Clerk Number / Security / Initials / First Name so they can be printed and used on filters.

TRN - Restricted Payments - When entering a restricted payment, the program will no longer allow the default to be more than the amount remaining to be paid (applies when another payment has already been entered). Note that the payment list will still show the full amount that could be entered if other payments had not already been applied.

TRN - KeyPay - Added more error trapping routines when displaying the results from a payment processed through KeyPay.

SCRIPTS - Filters (AO) - Added the ability to filter on fields in the "SYS:" list (note that some of the fields don't apply to scripts).

CONTRACT PRICING - Removed support of the "NumDecPoints" parameter in the ContPric.INI file. The ContPric.exe program now gets the number of decimal points from the configuration file (KSCNF.DAT) in the data directory.


- KSR - Sales Tax - Weighted Cash - The totals for the report were not correct.

- KSR - Sales - Payments - If a payment was not marked to be "Available On Sales", an Error 9 could result when printing the Sales Payment - Individual report.


- CNF - Cash Drawer - if the file DRAWER.DAT did not exist, an Error 53 would result when entering the Hardware-Cash Drawer function.

- KSR - COMMENTS - Comments could not be printed for lists that did not have their own section on the report. (e.g. Customer Comments on Sales Transaction reports).

- KSR - Tax Table/District/Code Reports were not including transactions that did not have any line items on them.

- POR - MultiStore Orders - the warning about the store's created transaction having been changed when editing a MultiStore Order was always appearing when a line item was deleted. Also, it was not appearing if Delete Filled Orders was turned on or when Invoices instead of Orders were created.

- TRN - Customer Entry - Security - The program was not checking the "Valid Customer NOT Required" security level when exiting Customer Entry.

- MACROS - RUNMENU - The RunMenu= command was not working with menu options that showed shortcut keys (e.g. "RunMenu=Special-Auto Order" was not working due to the "Shift+F8" showing on the menu).

- STR - Update Inventory - Error 75 would be given when trying to remove deleted matrix items.

03/11/14 - v7.15 Build 47

- LOGO - Converting transaction files from previous versions was not working correctly. The program would get stuck in a loop generating new transaction files. (from build 45)

- BUTTONS - Selecting a button in the program (not a touchscreen button) was sometimes causing the button to be clicked twice.

- TRN - Age Check - the Over Age button was not working.

- TRN - SCRIPTS - Scripts that added multiple items were not putting the new line items in the correct order.

- CHGNUMS - Variance - Was not updating Open (unposted) variances correctly (stored in files VAR#.DAT).

03/04/14 - v7.15 Build 46

- AR - Selecting the Info button on the ROA entry screen would cause an Error 91 if not using MW Genius (from build 45).

02/28/14 - v7.15 Build 45


TRN - PIN PAD - IDTECH SIGN&PAY - The program will now reset the PIN Pad (takes 2 seconds) if the command to enable the card swipe fails (can happen if the USB port or device goes to sleep).

TRN - Prompt to Convert Transaction Type - If a transaction type is marked to Always convert (e.g. "On Hold") then the program will now display the "Transaction has been fully tendered, convert to Sales Invoice?" message before entering the Print Transaction box (if it has been fully tendered).

TRN/FMTR - Clerk's Email - Added the ability to print the Clerk's Email address on a sales invoice form.


- EXTRACT.EXE - Was not reading settings from Extract.dat (command line switches were working correctly). From Build 41.


- DBM - Vendor Catalogs - Fixed Error 9 when accessing the catalog database screen.

- TRN - MWGENIUS - If the clerk cancelled the payment while the Genius device was waiting for the signature to be entered then the payment was not being saved even if it was approved. It will now confirm to proceed without the signature and then proceed to save the payment (but with no signature).

- TRN - MWGENIUS - Audit - Void/Reverse functions with MW Genius were not creating Payment Processing Audit Entries.

- TRN/AR - Credit Memos - MWGenius - Setting the default payment type to a payment mapped to the MW Genius device was not working. Also changed the labels on the Confirm Amount screen to match use for ROA payment entry.

- TRN/AR - Credit Memos - MWGenius - The program was not blocking negative amounts on ROA Payments or Credit Memos until after they were processed by MW Genius.

02/19/14 - v7.15 Build 44


KSR - AUTORUN REPORTS - When running a report from the command line (e.g. KSR CUEID=2) the program will now prompt for the clerk to be entered if a selection list appears (e.g. Select Customer). Note that most autorun reports don't use selection lists.

TRN/CNF - MWGENIUS - Added the parameter Skip Approved Message. If marked ON, the Payment Authorization Summary screen will be displayed for only 1/2 a second and will then clear itself (same as if [Enter] was pressed). However, if there is Cash Back from the payment, then the message will display as usual.


- DATABASE - Percent Calculator ([Ins] from Price Fields) was not working.

- DATABASE - TAX TABLES - Adding a new tax table above the "* Default (Local) Tax Table" line was not working correctly (the program will now add the new table just below the first line instead).

- CNF - PIN Pad - MWGenius - If the "A valid Keystroke Payment ..." message was displayed, the program would get stuck in a loop that kept redisplaying the message each time it was closed.

-TRN/AR - MWGENIUS - The payment list would show blank lines instead of the MWGenius payments if there was not at least one payment on the list after payments mapped to MWGenius.

- TRN/AR - MWGENIUS - Split Tender - If the amount was changed and then the OK button was clicked without first leaving the amount field, the original amount was used instead of the new amount.

- TRN - MWGENIUS - Credit Memo - If the payment list was brought up, it could only be closed by selecting a payment ([Enter]), trying to cancel the list was not working.

- TRN - MWGENIUS - For payments that are not mapped to MWGenius but are below the first one that is on the payments list, using its HotKey or a touchscreen button to select the payment type was not working correctly.

- KSR - Report Variables - Report Variables that did not use Multiplication or Division where not being calculated with the section where they were first used (they were working for sub totals and grand totals).

- POR - Security Level - The "Add Items to Received Order" security level was not blocking being able to add an item via the lookup list or by using the [F3]-edit function.

- PROGRAM BUTTONS - Clicking on a button would sometimes bypass checking the current field or recognizing the new value of the current field. For example: Manually Entering the card Expiration Date using MM/YY format and then clicking the OK button (instead of using a key or other toolbar button) was not reading the expiration date when processing the payment.

- TOOLBARS - If a toolbar overlapped another toolbar and clicking a button caused the toolbar to close, it was possible that the button that was covered would also be clicked.

02/07/14 - v7.15 Build 43


LOGO - Audit Parameters - The Transaction Deleted/Recalled audit parameter is now set to ON with new data sets.

CNF - Audit Parameters - The Transaction Changed and Transaction Deleted/Recalled audit parameters are now grayed out if they are marked as On (keeping them from being marked Off). Note: These can be turned off by using a security level less than 0 but it is not recommended and may be illegal to do so.

POR/CNF - Security Levels - Added a new Purchasing security level: "Add Items to Received Order". If editing a Purchase Order that has already created a Purchase Invoice, the program will check this security level before allowing any additional line items to be added to it. (Default value is 7).


- AR - Editing and resaving an ROA payment would sometimes give an Error 13.

- POR - MultiStore Orders - The "Save Changes" message that pops up when exiting the MultiStore Allotments grid was not saving changes even if [Yes] was selected (Workaround is to always use [F10] to exit the Allotments window).

- POR - MultiStore Orders - If an inventory item did not exist in one of the other stores and was then created by copying the item from the Master store, the program was only copying one data record (inventory items always have 2 records). This would cause corrupted data if the items were late edited. Packing the inventory fixes the problem for items that were not already corrupted.

- POR - MultiStore Orders - If the MultiStore Allotments grid was popped up manually then the program would no longer pop it up automatically until a new transaction was loaded.

- TRN/AR - MWGENIUS - The program would generate an Error 13 when receiving the response from the MWGenius device (from build 42).

- TRN - Merge Same Items - If an item had a deposit item attached to it, only the deposit item was being merged into existing line items.

- STR - Parameters - The program was not checking the "Change Parameters" security level. It will now gray out the "Parameters" function on the menu if this security level is not met.

01/28/14 - v7.15 Build 42


APPEARANCE - BORDERSTYLE - If the BorderStyle is set to Colored Flat or Modern then the 3D effect around the main display window will not be used. Note that if the toolbars have a border it is hard to tell the difference.

DATABASE - NEW CONTACT - The proposed new contact code can now go out to 5 characters if the standard 4 characters are all used up.

DATABASE - VALID ENTRIES LIST - Added support for a Match All line so that the program will not display the "Not Found on Custom Entries List!" message. If a line on the Valid Entries list is 2 asterisks ("**") then the program will except any input as valid. Note, this line will only be used to match entries where no other match is found. Also, the Valid Entries lookup list will not display it (but the editor will).

AR - MWGENIUS - Added support for using the MWGenius device to accept payments in Accounts Receivable.

TRN - MWGENIUS - Added support for using the MWGenius device to accept payments on Credit Memos.

TRN - MWGENIUS - Added the option "Split Tender" to the list of payments that can be selected at the end of a sale (in addition to "Selected by Customer" and "Manual Entry"). If "Split Tender" is selected, the program will prompt for the payment amount to be entered before sending the payment request to the Genius device.

TRN - MWGENIUS - If the "Manual Entry" payment is selected, the program will first stop to confirm the amount.

TRN - MWGENIUS - Force Duplicate - Changed the processing of payments to always check for duplicates. If Cayan declines a payment because it thinks it may be a duplicate, the program will now ask if you want to force the duplicate. If Force Duplicate is selected, the payment process will be started again without the duplicate checking. (This is necessary since Cayan considers any payment for the same amount with the same card on the same day to be a duplicate, even if on a different transaction or payment line).

CNF/TRN - MWGenius - Added support for a Discount given based on the payment type. It is recommended that the discount be applied as a Payment. However, as with the Gratuity and Donation settings, if a line item is used then it must be Non-Taxable and Not Discountable.

TRN - Payments - The Select Payment list box will be automatically displayed again if the payment just entered does not fulfill the minimum payment requirement for the transaction.


- COMMANDLINE - RUNAS=EXPRESS was not working correctly when used with KEYSTROK.EXE. (Note that is usually better to start the program with EXPRESS.EXE anyway.)

- MOUSE DOUBLE CLICK - Double Clicking the mouse to select an item from a list would sometimes select the button in the window underneath the list.

- KSR - Inventory Analysis - Inventory and Department sorts by "Percent Mark Up" and "Percent Mark Down" were mixed up (selecting one would sort by the other).

- KSR - Tables - Sales Payments - Was only including payments that were marked as "Available on Sales".

- KSR - Inventory Purchase Analysis - The "Use Adjusted Cost" parameter was not working.

- POR - Parameters - Line Items - The "Load Cost From" button was setting the "Merge Same Items" setting and the "Merge Same Items" was not working.

- POR - Amount Column - If there was No Purch Tax column, then the line item scroll bar was covering part of the Amount column.

- POR - Copy Items to Invoice - If a blank line existed on a Purchase Order then the program was copying the line item to a Purchase Invoice (since Qty Ordered and Received were the same). This could create a Purchase Invoice that would appear to be blank. It no longer copies blank lines from a Purchase Order to a Purchase Invoice.

- TRN - GIFT CARD ENTRY - Manually entering a card number and then clicking on a button was not recognizing that a card number had been entered. Workaround is to use the [Enter] key (or on screen button) after entering the card number or click on the amount field first.

- TRN - MWGenius - Was not auditing payment requests made through MW Genius device.

- TRN - Return To Gift Card - If the Change Back setting on the payment was set to "None", the program was not allowing a return to be paid back to a gift card.

- TRN - Pay Formulas (Restricted Payments) - Payments that had pay formulas for Eligible Items that marked items that were NOT Eligible (e.g. Lottery tickets) were not using the restricted amount when the payment was entered. (The restricted amount was only being displayed on the payment list).

- TRN - Age Check - Entering the customer's age by swiping a driver's license was not working. Workaround is to turn on the "Disable Card Swipe Protection" parameter.

- TRN - Scanning Lot Numbers - Scanning in a serial number to be used with a Lot# Qty was not working (the program would not find the scanned number on the list of available serial numbers). Note, selecting the serial number from the list of available serial numbers was working correctly.

- TRN - Payment Audit - Audit Entries for Gift cards and MW Genius payments included blank characters which would cause the audit report to not show all the information when printed to screen. Note, printing to file would still show all the information.


FMTR - Increased Body Length on multiple pages - Added the field flag "Skip Line after First Page". Turning on this flag will cause the program to skip that field and all other fields on the same line after it on all pages except the first one. The program will also move up all fields after it and increase the Max Body Length. This allows lines in the Header section to be skipped on extra pages so that more line items can be printed.

STR - PARAMETERS - Added the parameter "Don't change Current Store when Entering Module". When entering the StoreLink module, the program changes the Current Store (the data set being used) to the first store on the list of Stores. If this parameter is turned ON, then it will search the list of stores for the one that has the same Store Number as the data set that was in use when entering the module. If a match is found then the current store will default to that data set (otherwise the first one on the Stores list will be used).

STR - PARAMETERS - Added the parameter "Security Level to Change Current Store". If this is set (Null is the default which means not set) then the program will disable the Store-Current menu function if the value of the Clerk's security level isn't this number or lower. With this function disabled, the clerk will not be able to change the "FROM" store for Store Transfers.


- TOOLBAR EDITOR - If the toolbar filename in use was changed by the editor (which it sometimes is when saved) then until Keystroke was closed and reloaded, it would revert back to the old toolbar file when changing modules.

- STR - Current Store - Some functions where leaving the Current Store set to whatever the function needed instead of setting it back to what it was before the function was started. (Only the Transfer Edit/Copy and Current Store functions should have been changing the Current Store.)

- STR - Parameters - sub menu was using old style standalone menu list.

01/09/14 - v7.15 Build 41


BORDER STYLE - If the BorderStyle is set to "3D Flat" or "Modern" style then the Transaction Screens will draw flat vertical bars between the line item columns instead of ones with a 3D effect. Also, both the Transaction Screens and Record List boxes will not have the 3D effect around the column titles.

CARD SWIPE PROTECTION - Keyboard input is now monitored for information that appears to come from a card swipe reader. This is to help guard against a Keyboard Wedge type card reader being used to scan information into fields that should not be receiving it (swipes should only be made into Card Number entry fields). If the stream of characters is determined to be a card swipe, then the program will capture them and not forward them to the standard entry routines. If the current input field supports card swipes, it will retrieve the swipe in full instead of as individual keys. Any routine that does not support swipes will simply ignore it. A stream of characters will be captured if it starts with a semi-colon ";" or percent sign "%" and the characters are received within 1/10 of a second of each other. If the full stream is more than 12 characters then it is captured as a card swipe, otherwise it will be fed back into the input routines as standard keyboard input.

CNF - PARAMETERS - Added a new Global Parameter "Disable Card Swipe Protection". If this is On, the program will not monitor and capture keyboard input that appears to be card swipes.

TRN - Card Swipe - Added support for MagTek USB Encrypted card swipe readers. These work the same as the older non-encrypted card swipes but protect card information by encrypting all sensitive data. The program was tested with MagTek part number 21073062. Please note that the device must be in "USB keyboard" mode (and can be switched from "HID" mode via MagTek web site). Also, it is possible to purchase these in "Legacy" mode which means NO ENCRYPTION!. Please confirm that your device is running in encrypted mode!

TRN - MWGenius - Swiped Gift Cards can now be Issued, Reloaded, and Balance Checked using a card swipe (before only manually entered gift card numbers were supported). Note that only encrypted card swipes should be used in order to limit merchant exposure to card data liabilities imposed by the PCI council.

TOOLBARS - KEYBOARD - LOCKED TAG - For the toolbar named "Keyboard", the default value for "Locked" is now "On" (when this value is "Off", if the toolbar is popped up by another toolbar then pressing any other key or mouse click will close the toolbar). Note, the default setting only applies if the "Locked" parameter is not included. The toolbar can still be set to "Locked Off" by including the setting in the toolbar.


- AR - ROA Payments - The Invoice SubNumber (a letter when using Sales Orders) was not being saved with ROA payments. This could cause problems when editing ROA payments. Also, the letter could not be printed with the ROA payment reports.

- DATABASE - Valid Entries List - If an entry was selected from the Valid Entries list then the program was checking the entry again against the list. This would sometimes cause a slight delay and could also cause a different entry to be selected if more than one of the same item on the list had the same primary field (noticeable when an entry would update multiple fields).

- KSR - Script Reports - The menu item for Inventory - Scripts was not being displayed.

- POR - Import Line Items - was not checking the security level for setting Received Qty to more than Order Qty.

- POR - VENDOR - Show Comment - the Comment window was showing the Red X (Close/Cancel) icon when it should not have been.

- REPORT VIEW - ENTER CLERK - If the Enter Clerk box was on the screen and a report viewer was closed, the program would be stuck on the Enter Clerk box.

- TRN - Switch Transaction Type - The "Cannot Switch Transaction Type" message which displays due to payments existing on the transaction was checking the "Delete Filled Line Items" parameter instead of the "Display Payments parameter.

- TRN - Parameters - Customer Entry - If the Default Field was set to Email, it would be set back to Number when entering the Customer Entry Parameters box.

- SHOW SUMMARY ([Ctrl+F5]) - The Show Summary function would lock up if the first line on the list was selected (the label for the section, e.g. Daily, Monthly, etc).

- VAR - History - If more than one Matrix Item for the same stock number was used on the variance, only the first one would appear on the History report.

TOOLBAR EDITOR - Added the parameter "Locked" to the toolbar settings.

EXTRACT/STOREMRG - STATUS FILES - When Extract and StoreMrg are run they will now create a file to record when the program started and when it finished. The file names are ExtStrt.log, ExtEnd.log and ExtAbrt.log (for Extract) and SMrgStrt.log, SMrgEnd.log, and SMrgAbrt.log (for StoreMrg). When the program starts it will create a new "Strt" file and delete the "End" and "Abrt" files if they exist. When it finishes it will create the "End" file if it finished normally or the "Abrt" file if the program was aborted. Each file will contain the date and time on the first line, then the command line used to run the program, then the version and build on the last line.


- DELUTIL - FIX ROA INVOICES - If an On Account payment was added to an invoice because it did not have any payments on it, the new payment was marked as being an ROA balancing entry when it was just a normal payment. This would result in it not showing up on the payment report unless the Show ROA Balancing Entries parameter was turned on.

- DBLISTS.EXE - When creating a new list for Vendor City or Zip the program was adding an extra blank line between each entry in the list.

- IMPALTIC - The character for the sort category had to be uppercase (e.g. "/Cc" was not working and had to be "/CC".

12/17/13 - v7.15 Build 40


MENU FONT SIZE - The MenuFontSize= setting in the WS#.INI files now supports the name of the size (Small, Normal, Large, XL, and Scale) as well as the numeric value of the actual size. This allows the setting to be a ratio of the standard menu font size on each machine.

MENU FONT SIZE - When a new data set is initialized, the program will now automatically create a WS.INI file with the MenuFontSize=Large entry.

CNF - Appearance - If Menu Font Size is set, it will now be saved as the setting name (Large, XL, etc.) instead of the actual numeric font size.

CNF - Appearance - Colors - Split the "Custom Program Elements" button into "Toolbar Elements" and "Custom Elements".

CNF - Colors - Added the Toolbar Element colors "TB Button Hover Frame" and "TB Button Selected Frame". Hover is used when the mouse is over a toolbar button and Selected is used when it is clicked. The default colors are button shadow (set by Windows, usually gray) and Red (Except for Express where the defaults are ExpressYellow and a brighter version of ExpressYellow).

DATABASE - Valid Entries List - The Valid Entries list now always uses the Quick Search feature no matter what the configuration parameter or ScrollLock key is set to. Also changed the display to show the information in columns.

TRN - Switch Transaction Type - If the current transaction has payments on it but the new transaction type does not support payments, then the program will not allow the switch to the new transaction type.

POR - Parameters - Line Entry - Added the parameter "Matrix Items - Preload Grid with Order Qty". If this is on, when the grid pops up to enter the qty to order (or receive) for a matrix item, any matrix item that has its own Order Qty field filled out (with a positive number) will have that qty already entered on the entry grid.

DBLISTS.EXE - Changed several display properties so that it is more visible when loaded with a specified list (as is done when Keystroke calls it from the Valid Entries Lists).

DELUTIL - FIX ROA INVOICES - If an invoice does not have any payments on it, its amount due will be set to the transaction's total and an On Account payment will be added and attached to it.

DELUTIL - FIX ROA INVOICES - The log file "FixAR.txt" is now saved to the data directory.


- KSR - Inventory Calc Fields - Vendor - The Inventory - Calculated fields for the Vendor currently being printed (VendorNum, VendPartNum, etc.) were not printing the correct information.

- KSR - Inventory Analysis - If 2nd Grouping was used and set to sort by an extended sort (not Code or Name), then the "** No Department **" (or Category or Location) section was not being printed.

- KSR - Inventory Analysis - a bad date on a transaction could cause an Error 6 when updating the message bar for which date is currently being looked at.

- POR - Matrix Items - Order by Case (Main Item) received by Individual (Matrix Item) was not working. If the Inventory Item's Order Multiplier field is a negative number, then the program is suppose to not ask for the individual matrix items when the product is ordered but will then ask for them when the product is received.

- POR - SWITCHING PURCHASE ORDER TO PURCHASE INVOICE - When switching from a transaction type with open items (Purchase Order) to one that doesn't support them (Invoice) the program was still allowing the switch. It now displays the "Can't switch transaction type due to Open Order line items." message and blocks the switch form occurring. Also, when switching transaction types, if there are open order items then it will display the Order/Recvd mode instead of the default mode for the new transaction type.

- POR/TRN - Matrix Comment - The Copy Inventory Comment parameter was not copying in the comment from the individual matrix items.

- TRN - Gift Card Payments - No Overpay - When using a payment set to be processed as a gift card, the program was not checking the "Change Back - None (No Overpay)" setting on the payment type.

- TRN - Switch Transaction Type - If the switch to a different transaction type was blocked due to back ordered items the program was still filling in the shipped qty for the items. It will now leave the shipped qty as is if the switch cannot be done.

- TRN - MWGENIUS - If the connection to the MWGenius is lost while waiting for a customer to enter a payment, the program will now try again for 2 more times and then display a message that the connection was lost and ask whether to try again or cancel.

- TRN - MWGENIUS - Added an additional Error Handler when initializing payment requests with Cayan when using the MW Genius device. The program will automatically try again the first time an error is received but will then display the error if it occurs again. From the error message the request can be tried again or cancelled.

- TRN - MWGENIUS - Payment HotKey - Use of a Payment Hot Key while in the Select Payment list was not working correctly if using MW Genius.

- TRN - MWGENIUS - Payment was not being accepted if sign on Sales Tax amount was not same as transaction (which could be opposite when exchanging items and some were taxable and others non-taxable).

- VAR - If the RunMenu= macro command was used the menus would be grayed out. (Pressing [Alt] would reactivate them).

- TOOLBARS - POPUPS - Pop up toolbars were not always automatically being turned off when a key was pressed.

- TOOLBARS - TOOLBARONTOP - The toolbar was being turned on but not always being made the top most toolbar. Work-a-round is to change the order of the toolbars in the toolbar file so the On Top toolbars are at the end of the file (are last on the toolbar list when using the Toolbar Editor, this can be changed by changing the Toolbar Number field).

- TOOLBARS - TOOLBARTOGGLE - When a toolbar is turned on by the ToolbarToggle command, it will now also be set as OnTop so that it is not hidden by other toolbars.

12/01/13 - v7.15 Build 39d


PRINT BUTTONS - EMAIL - If the "Print and Continue" parameter is turned on, then the program will not display the "Email Sent" message but will just proceed on with the transaction.

POR - Reserved - Changed the used of the Reserved Purchase transaction hot key to both switch to Reserved and to switch back to either the default transaction type (on new transactions) or the original transaction type (when editing a transaction).

POR - MACROS - Added support for "PurchaseEntryCommand: ToggleReserved" which will switch the Transaction Type to Reserved and back again (same as pressing [Ctrl+R]).

POR - Vendor Entry - Reduced the size of the "Enter Vendor" box by removing blank lines and making the Ok and Cancel buttons shorter.

POR - SERIAL NUMBERS - Auto-Fill - Increased the speed of automatically filling out the list of serial numbers with incremented values ([Shift+F8]).

STARTUP SWITCH - TimeClockOff - Added the startup switch "TimeClockOff". If set, then the TimeClock function will be disabled/hidden.

CNF - Appearance - Themes - Improved the way the program handles color changes when themes are selected and when exiting the Select Theme list box.

TRN - LINE ITEM ENTRY - The Qty/Price/Amount fields will display as Blank instead of 0 when the current line is below the last line on the transaction and nothing has been entered yet.

TRN - MERGE LINE ITEMS - Items that were entered using a Deli Scale barcode (Variable Weight) will not be merged together.

TRN - MWGenius - If the requested payment amount is $0.00, the program will display a message saying it cannot process $0.00 payments and will cancel payment request.

IDTECH SIGN&PAY - Added more error trapping to initializing and displaying message on the IDTech Sign&Pay PIN Pad device.

TOOLBAR BUTTONS - When a button is pressed the top and left side of the highlight border now shifts down and right to match to the movement of the text and foreground graphic.

RegKS.exe - Replacement utility for RegDlls.bat to update the Registry for the current versions of the .dll and .ocx files used by the program. The new .exe elevates itself to "Run as Administrator" and a UAC message will appear confirming this when run on the latest operating systems.


- COLOR DISPLAY - The tinting of List Box Record List Box and the Calendar windows was not working correctly when another window was popped up on top of them.

- CNF - EXPORT - Purchases - program was not asking for which type of purchase transaction to export or allowing a date range to be entered. This was then not allowing the function to continue.

- CNF - Gift Card Triggers - Using the list of Inventory Items to select the gift card trigger range would cause on error.

- DBM - After using some of the menu function (e.g. Setup-Default, or Record- Undo) the program would be stuck in the current field until the menu was used. (Workaround to get it working again was to simply click on the menu and then off of it or press [Alt] then [Esc].)

- MATRIX ITEMS - The name generated by combining the Matrix Code with the Category's Element Names was not working if the element codes were not all uppercase (case should not matter).

- TRN - MWGENIUS - Added an additional Error Handler when waiting for payment results to trap download errors from the Genius device and the MW Server.

- TRN - SCRIPTS - If the clerk was changed while a script was running, the program would sometimes get stuck in a loop.

- TRN - MWGenius - The program was always using the customer's Address, Zip, and Name when starting a payment transaction with MW Genius. It now only does this when starting a Manually Entered payment transaction since an invalid Zip would cause the payment request to fail.

- TRN - If an inventory item is rejected (e.g. age limit) then the program was jumping to the complete sale screen instead of simply removing the line item.

- STR/POR - If the matrixing file (KSMTX.DAT) was missing a warning would appear, the program no longer does this if Matrixing is not turned on.

- RECMRG.EXE - Was not using any of the command line parameters (would only work with data in DATA\, KSTRN001.REC in program directory, and merge all transactions to the same type).

11/11/13 - v7.15 Build 38


TOOLBARS - Clicking any toolbar button will now automatically close all other pop up toolbars (those not always visible) that appeared after the toolbar that was clicked had been shown. Also added a new tag for toolbars in the toolbar file - [Locked] if set to true then the toolbar will not be closed when a button on another toolbar is pressed (the Keyboard toolbar should have this tag).

TOOLBARS - POPUPS - All pop up toolbars will be turned off automatically whenever a key is pressed (or an item scanned). To keep a toolbar from doing this, add the element tag [Locked]True[/Locked] to the toolbar file in the section for that toolbar.

UPDATES - TOOLBARS - If an Update includes a change to the standard toolbar file that is in use, then the program will automatically copy the new standard toolbar file to the data set in use as long as the current toolbar file has not been changed (based on the files size and date).

LOGO - Added an Exit button to the Clerk Login screen.

CNF - Appearance - Themes - The program now reads both Themes.krf from the FILES\ directory and Themes.xml from the program directory. Themes.krf should not be edited as it can be updated whenever the program is updated or reinstalled. All changes should be made in Themes.xml. Also, changes should only be made to new theme names as the ones that exist in the program's Themes.krf file take precedence.

CNF - APPEARANCE - Color Themes - The program will now redraw the toolbars each time a color theme is selected.


- REMDUPES - Fixed Error 91 when first loading (from a previous build).

- CHANGE MODULES - ERROR MESSAGE - If an error was displayed while changing modules, it was possible for the program to continually try the Change Modules routine instead of giving up.

CNF - Appearance - [F8] can be used to pop up list of Toolbars (same as pressing the Toolbar File button).

- MACROS - RunMenu - Was not working correctly if the menus and options had been rearranged due to the license being run (function is based internally on menu position in Advanced).

- RECORD LIST BOXES - Filters where not working with Date or Toggle fields.

- TRN - Credit Memo - The print buttons (if any) were moving down one line each time a customer was entered.

11/01/13 - v7.15 Build 37


- TRN - MWGENIUS - The Payment Mappings were not working. They were all being mapped to whatever the first mapped payment was.

- TRN - IDTech Sign-N-Pay - Changed around the code that cleans up the resources used for communicating with the IDTech Sign-N-Pay Pin Pad to help eliminate memory problems.


AR - PARAMETERS - Added the new parameter "Restrict Customer List to Active AR Only". If this is On (and it is by default), the Customer Record List will only show customers that have a Credit Limit greater than $0.00 or an Amount Due of $0.00.

CNF - Appearance - Colors Custom Program Elements - added six new color settings ("TB Button ...") to be used on toolbars.


LOGO - CLOSEOUT PARAMETERS - When creating a new Configuration File, the program will now set the "Purge Payments On Save" parameter to "Never" since new installations should only be using authorization methods that don't ever store any complete account information.

POR - Cost/Price list - Improved the look of the Cost/Price List ([Ins] from line item Cost column) by allowing the width to change based on the magnitude of the amounts shown.

RECORD LIST BOX - Filter - Now supports the NOT operator ("!"). For example, Credit Limit: !0 means Not 0.00, Name: !Paul means all that don't have Paul in the Name field.

RECORD LIST BOX- Enter Filter - if the field is set to a numeric or date type field, the label "Contains:" is changed to "Equals:" since that is what it does (note that the way it works did not change, just the label is more accurate now).

TRN - MWGenius - Added support the Payment Approved and Payment Declined sounds.

TRN - MWGenius - Added support for logging requests and responses to MW#.LOG in the data directory (where # is the machine number). To turn this on, add TestMode=12 to the command line (4 logs Responses, 8 Requests, 12 Both).

TRN - KeyPay - Added code to track when response messages from KeyPay are being formatted for display on the screen. If this takes too long due to not being formatted properly, the program will display what it has instead of getting stuck trying to figure out the message.


- CLOSEOUT - Purge Payments - If another machine entered the Closeout before Purge Payments was run by a machine that was already in there, then the other machine would not recognize that Purge Payments was run (it was checking the Last Purchased date when entering the module instead of just before running the Purge Payments function).

- CNF - Appearance - Colors - A highlighted color that was not a standard color but was a Themed color was not showing the Themed color name. It now shows these in Parenthesis (e.g. "(Grey 50%)") to identify that it is not a standard name and the name itself cannot be used to identify the color in other parts of the program.

- DBM - TOOLBARS - Some of the RunMenu= commands weren't working (Record-Undo, Field Merge, etc.).

- TOOLBARS - Changed the way the border on toolbar buttons is drawn to help reduce resources used when toolbars are reloaded (which is done when entering a module).

- TOOLBAR BUTTONS - If a menu was pulled down, then the clicking on a toolbar button would not work the first time (it would just exit the menu, clicking again would then work).


- IMPPOR - Would give Error 91 while initializing the program and loading Vendor screens. Workaround is to rename the DBScreen\DBSV*.DAT files so they aren't there when IMPPOR loads (then rename them back so other programs can used them).

10/21/13 - v7.15 Build 36


- TRN - Scripting - Roll Up Cost/Price - The Roll Up Cost and Roll Up Price parameters were not working. In most cases the totals will still be correct since the Price and Cost are left on the item being added. {From Build 35}.


LOGO - New Data Sets - The Sales Parameter Confirm Qty now defaults to Off.

DATABASE - Required Field Message - When saving a database record and a required field is blank, the program will now include the name of the field (the Label just before it) in the message stating that it must be filled out.

DBM - Search/Replace - Fields linked to tables can now be set to blank using the Replace function (use to block this since it only allows entries that exist in the linked table).

TRN - COMPLETE SALE - The display of the Complete Sale Box now does a better job of removing blank space from the box based on fields that are not being displayed.

TRN - Edit Line Item Detail - If the Enter key is pressed from the first field that cursor starts on in the Edit Line Item Detail screen, the program will now activate the Ok button (save and exit) instead of going to the next field.

TRN - MWGENIUS - Manually Entered Cards - The Name, Address, and Zip fields will now default to information from the customer's record.

TRN - PARAMETERS - ENTRY - Added a description next to the "Customer Entry..." button to show when the Enter Customer box will appear.

TRN - PARAMETERS - DISPLAY - Added the "Customer Entry..." button (same as what was already in the Entry Parameters, just two ways to get to it).


- DATABASES - If editing a database record and the only change was to add (or remove) a space in front of existing text, then the program was not recognizing that a change had been made and wouldn't save it.

- LOGO - Default Clerk - When entering the Logo screen from another module, the program was still using the Default Clerk (it should only be used when first entering the program).

- KSR - Report Cues/Settings - The Copy command was not working ([Ctrl+C]) but the Cut command was ([Ctrl+X]).

- TRN - Enter Customer - Going back to the Customer Entry screen was not showing the Customer's Age. Also, the Contact information was not being shown and the Last Purchase and Age fields were not being shown in the correct location.

- TRN - MWGENIUS - Manually Entered Cards - If the payment was approved, the Partial Payment message would appear showing that the approved amount was $0.00 when it was actually the full amount.

- TRN - MWGENIUS - Manually Entered Cards - If the MerchantWare web site did not load, the program would get stuck for a very long time even after closing the payment window. It now recognizes when the payment window is closed and quits trying. It also will time out if any step in opening the payment window takes more than 10 seconds.

10/10/13 - v7.15 Build 35


SCANNING OVER MESSAGES - To avoid accidentally using a barcode scanner to dismiss a message or settings box, the program will now ignore an Enter key that is pressed with in 2/10s of a second after a regular text character. Also, this only happens when at least 3 regular text characters are received while on the same button (which is then assumed to be coming from a scanner).

LOGO - INITIALIZE DATA FILES - If there are no primary data files in the data directory (KS*.DAT) then the program will ask to initialize all data files instead of one at a time. Clicking Yes will skip asking on each file. Clicking No will ask on each file as it did before.

LOGO - Price Formulas - The default Price Formulas on a new data set now have their starting/ending dates set to Null (no date limitation).

AR - Customer Entry - [Shift+F8] can be used to bring up the Edit Finance Charge screen for the current customer.

EVAL LICENSE - TRN - PARAMETERS - ENTRY - Script Buttons - The program will now allow the Starting, Ending, and Non-Inventory scripts to be saved even if the program is running in Evaluation Mode.

CNF - Tax/Commission Formulas - Changed default ending date to 12/31/30 (was 12/31/20).

CNF - Tax Districts - List now shows tax percentage for each district.

CNF - MW GENIUS - When the PIN Pad is set to MW Genius, the program will set the Auth Method on all Gift Card Triggers to None so that they will processed through the MW Genius device. (There is a message stating when this will happen and it can be cancelled.)

KSR - Sales Tax Table/District/Code - If Tax Table, Tax District, and Tax Code are all set to None, this report does not print anything. When first going into the report parameters screen, the program will check if these are all set to None and set Tax Table to print if they are.

KSR - Keystroke POS - If the license for Scripting is not enabled, the program will not display the menu option Inventory - Scripts for printing scripts as a report.

Report Editor - Will no longer ask to Save Changes if no changes have been made.

STARTUP - ReportsDir= - Added support for the startup switch "ReportsDir=" to specify where Report and Label form files are loaded from (default is "REPORTS\").

POR - Purchase Tax - If the "No Purchase Tax" parameter is turned on but the "Editable Tax" is also turned on, then the program will now show the tax fields on the Complete Purchase box.

TRN - MW GENIUS - Added support for negative payment amounts (Refunds).

TRN/POR - Improved the updating of the Qty on line items added by a Scripted (or Tag-along) Item when the Qty on the main line item is changed.


- MENUS - When backing out of a menu function, the program was sometimes not highlighting the correct menu options to show what was selected to get there in the first place.

- STARTUP - If the program fails to load the Toolbars Library (K7TOOLS.OCX), it will now automatically run RegDlls.bat and then retry loading the library. If it fails a second time, an error message will be displayed and the program will close.

- POR - MS Orders - If an item didn't exist in one of the stores then the Qty is set to Null. The program should have treated this the same as 0. Instead, it was not recognizing the Null value and was creating a Purchase transaction for that store for that item with a Qty of -999999.9 (from the internal value for Null).

- POR - FORMS - The field "Amount Due-Received" was always printing as 0.00.

- POR - Transaction Browse Previous - was being blocked if a previously saved Purchase Invoice was on the screen and the clerk did not have the Edit security or Purchase Invoices.

- POR - Security Levels - The security levels to control which transaction types can be with each menu function based on the ability to Create New, View/Print, or Edit were not working correctly.

- POR - Transaction Browse - the program was not checking if the clerk had security to View/Print or Edit the current transaction type. It now checks and if the clerk is not allowed to do it, the program will beep instead of searching for the Previous/Next transaction.

- STR - Cost on Transfer List - The record list of saved Transfers was showing Total Cost even if clerk did not meet the View Cost security level.

09/25/13 - v7.15 Build 34

*** Cayan Genius Payment Terminals ***

Added a new payment terminal from Cayan called the Genius Customer Engagement Platform by Cayan (or MW Genius). Currently the actual device is a customized Verifone MX915 but the same interface will be used by other hardware devices in the future (as long as they are setup for use as MW Genius). The device is not directly attached to the computer. Instead it is attached to the local area network via an ethernet cable. All communication is then done via TCP/IP between the workstation, the device, and Cayan. Before Keystroke will recognize the device, it must be setup correctly in the Configuration Manager's Hardware - PIN Pad function. Set the PIN Pad Type to MW Genius and then select the Setup button.

On the MW Genius Setup screen, enter the Merchant Business Name, Business Key, and Site ID (all provided by Cayan). Then map the MW Payment Codes to the desired Keystroke Sales Payment Types (press [Enter] to select the payment type for each code). Then enter the IP Address for the Genius device.

Each MW Genius device must have a unique IP Address and must be paired up to the correct workstation. For this reason, the device needs to be switched from Dynamic IP to Static IP Address mode (see device manual for instructions). Do not use the device in Dynamic mode as this can cause the address to change without notice and then Keystroke will no longer be able to communicate with it (or may end up communicating with a device sitting next to a different workstation).

The MW Genius has the possibility of accepting a wide variety of payment types. Once a payment is completed it will report back which payment type was used via its own predefined set of codes. Keystroke must then convert (or map) this code to the appropriate payment type set up in Keystroke. This is done via the Payment Mappings entered on the MW Genius Setup screen. To map a payment code, select it from the list and then select which Keystroke payment type it should be mapped to. Note that all MW payment codes must be mapped, even if the code will never be used. If support for a new payment code is added to the Genius device by Cayan, it will also need to be added to the payment mappings list by pressing [Ins].

The Gratuity and Donations and buttons are used to specify how these extra amounts will be added to the transaction. They can either be added as the payment number specified or as a line item using the specified inventory stock number. It is highly recommended to always set this up even if you don't plan on using it. It can be set to None but the program will warn about this and it can cause confusion when completing a sale. Note that if Line Item is used, the Inventory Item must be Non-Taxable and Non-Discountable (blank Price Code).

With the exception of the "Genius IP Address", the information entered on the setup screen is stored in the file MWGenius.dat located in the current Data Directory and is shared by all workstations set to use the MW Genius PIN Pad. The file is in XML format and can be edited via a text editor. However, the "Business Name", "Business Key", and "Site ID" values are encrypted (but not with a very strong encryption method). The "Genius IP Address" is stored in the system registry since a different IP Address needs to be entered for each workstation to match the device it will be using.

TRN - MW Genius - Keystroke will recognize that MW Genius is being used and when entering a new payment in Keystroke, will hide all the payments mapped to a MW Genius payment and add two new payments called "Selected by Customer" and "Manually Entered Payment". The position of these payment on the payment list is determined by the position of the first mapped payment. (To change the payment order, use Cut/Paste in the CNF-Tables-Sales Payment Types function.) Any HotKeys, Macros, or Buttons that are used to bring up any of the payment types mapped to MW Genius will activate the "Selected By Customer" payment instead.

When either of these payments is used, Keystroke will start the payment process by communicating with Cayan about the payment. It will then send the Transaction ID information to the either the MW Genius device (for "Selected by Customer" or to the MW Transport Payment Entry Web site (for "Manually Entered Payment"). The Genius device (or MW Web Site) will them be used to complete all the payment entry, authorization, and capture processes directly with Cayan. Once completed, the device (or web site) will inform Keystroke about the status of the payment. If the payment was approved, Keystroke will add the payment to the transaction based on the payment mappings.


CNF - Hardware - Pin Pad - If the device selected uses OPOS, then the list of ports will no longer include COM: ports (with these devices, Keystroke communicates with OPOS, and OPOS communicates with the device).

TRN - PARAMETERS - Display - Moved all the Customer Display parameters to the Customer Entry screen available from the Entry parameters screen.


- IDTECH SIGN&PAY PIN PAD - Improved messages and prompts used when canceling a card swipe request or manually entered card request from the program (pressing [Esc]). Also fixed some random errors that were occurring when using the device (especially when canceling requests).

- INVENTORY - ERROR 75 - Serial Numbers - If the internal field that stores whether or not an inventory item has a list of serial numbers (or selected comments) was not valid, an Error 75 would result when trying to read in the list of serial numbers.

- TRN - Default Payment Type - The Payment field on the customer record was being ignored when setting the default payment type on sales. {from build 32}.


- AR - DELETE ROA PAYMENT - When deleting an ROA payment that had a credit memo associated with it, the program would sometimes not update the Customer's Amount Due field on their database record. (Note that other routines automatically recalculate this value so it will self correct in most cases).

- DBM - INVENTORY - Search and Replace was not allowing the Price Code field to be set to blank (note, the tilde character ("~") is used to set a field to blank in Search and Replace).

- KSR - Audit Report - Details on Recalled Database Records was always showing as Matrix Item.

- POR - Receiving - Which One - The Which One list was not showing the last record (it was there but had to scroll down to see it).

- POR - MultiStore Orders - When editing a Reserved MultiStore Order, switching of the reserved flag was not changing the transaction date to the current date.

- TRN - Item Not Found - If an item was entered that could not be found on top of an existing line item, the existing line item was always being blanked out even if the new non-inventory item was not suppose to be accepted.

- TRN - MICR Check Payment Entry - the Print Buttons were always showing but the Auth, OK, and Cancel buttons were not.

- IMPROA - AUTOAPPLY - If AutoApply=On was used and the payment amount was not fully applied, the credit memo created would be for the full amount instead of the amount left to be applied.

09/05/13 - v7.15 Build 33


RECORD LIST BOXES - SORT BY - The Sort By button is now 3 buttons instead of 2. The left and right arrows still work the same (to change to the previous/ next sort, same as [Shift+Tab] or [Tab]). The Center button now drops down a list of the available sort columns. Selecting an item on this list will change the record list box to be sorted by that field. Note that that [Alt+S] can also be used to display the list and then the hotkey for one of the sorts can be pressed. For example, while on an Inventory List, pressing [Alt+S][M] will sort the list by manufacturer.

POR/STR - Store Setup - MultiStore Orders - Changed the labels for the parameters used by MultiStore Purchase Orders. Also Added the parameter "Create Purchase Invoice instead of Order". If this is On then MultiStore Orders will create already received Purchase Invoices in the store instead of Purchase Orders.


KSR - Inventory Database - Roll Child Into Parent - Now displays the Stock Number of the item currently being checked. Also, [Esc] can now be used to jump out of the routine that rolls child records up into the parent (to help with circular references (a parent record that has one of its child records listed as its parent)).

LOGO - If the program warns about license files not being valid, then it will now automatically bring up the Product ID entry screen after the valid (but evaluation copy) license files are copied in.

POR - SerialNumbers - AutoFill Sequential Numbers - After entering 1 numeric serial number, [Shift+F8] can be used to fill in the rest of the serial numbers needed (program will copy to the next line and add 1 to each number).

POR - RECEIVING - WHICH ONE - Changed the columns and added column headings for the Which One feature in the Special Receiving function.

TRN - PAYMENTS - Pressing [Enter] on an existing payment will now always display it in View mode instead of Edit mode (Use [F3]-Edit for Edit mode). (Note: [Enter] can still be used on payments with an open Gratuity amount).

TRN - QUOTES - PROFIT COLUMN - If the Database Setting: "Show Mark-Up Instead of Profit Margin" is on, then the % Profit column will now show the % Mark-Up instead of % Profit. Note that the the dollar amount for Profit an Mark-Up is the same. The title on the Profit column can be changed to Mark-Up (or whatever you want) using the Sales Transaction parameters.


- DISPLAY - RESIZING - If the screen was resized multiple times, the program was not always resizing on the final size. Also made change to speed up the resizing of dialog boxes.

- COMMAND LINE - Command Line Parameters were always being passed into Keystroke as all UPPERCASE. The program now preserves the case of the characters used on the command line.

- CLOSEOUT - Check Calculator - Buttons at bottom were not being displayed correctly.

- CNF - EXPORT - FILTERS - If more than one filter was entered, they can be combined by either AND or OR. However, the screen that displays the export parameters was listing AND as OR, and OR as AND.

- DATABASE - INVENTORY - SERIAL NUMBERS - When adding a new inventory item, the Serial Number list was not editable.

- DBM - Search & Replace - Setting the Parent Number and Vendor Number fields to be replaced with a "0" was being ignored.

- KSR - AUDIT REPORT - Delete Database Records was always displaying as "Rcl Record" instead of "Del Record".

- POR - MultiStore Orders - Line Item Sort - The qty allotments for each line item were not being moved with the line items when the Line Item Sort function was used.

- POR - Editing - If the transaction type currently displayed on the screen was different then the transaction being edited, then the clerk number and transaction date would sometimes get changed to the current clerk and date.

- POR - File Not Found - Once an inventory report was run, the program would sometimes give a warning that it could not find KSINV.TMP (the temporary snapshot file for inventory reports) even though it is not neeeded.

- TRN - ARCHIVING - Archiving was not working with transaction types marked to "Copy Shipped Items to New Sale" (e.g. Gift Registry).

- TRN - KeyPay - Min/Max Payment Amount - The Min/Max Amount restrictions on payments with an Auth Method set to use KeyPay were not being checked when the payment screen was first brought up (they were being check if a different amount was entered).


IMPROA - Auto Apply ROA Payments - The Import ROA payments utility now supports the ability to automatically apply an imported payment to the customer's open invoices (as opposed to always creating an open credit memo or having to specify which invoices to pay in the import file). To turn this feature On, add AutoApply=ON to the command line. Note, if an ROA payment in the import file includes invoices to be paid, then this setting is ignored for that payment.

IMPROA - Added support for a simplified file format for the file to be imported. The program will automatically use this format if only 2 fields exist on the line being imported. The format is:
CustomerCode, Amount
All other fields will use the default value and no invoices to be paid can be specified.

IMPROA - Added the REF= command line switch to specify what the ROA Payment's Reference should be set to if the reference is not included (or is blank) in the import file. Example: Ref="Added from ImpROA".

DELUTIL - UPDATE ROA/INVOICES - Added the ability to remove any payments previously created by this utility (marked with a reference of "Fixed by DELUTIL"). Also added a new interface to select which of the 3 checks/changes should be run: "Remove previously created DELUTIL payments", "Check Amount Due on Invoices", and "Check ROA Payments". Also added the ability to set which transaction file to start with by entering the "Starting Date". The program will then start with that transaction file and move forward (it use to start with the current transaction file and move backwards).

PRINTSAL.EXE - Added support for printing Signatures.


- DELUTIL - UPDATE QTY ALLOCATED/LAYAWAY... - If the Sales Invoice transaction type was marked to update Qty Allocated and or Layaway Qty then this function was updating these fields based on Qty Ordered instead of the difference between Qty Ordered and Qty Shipped on the line item.

- STOREMRG - Calculation of AvgLeadTime was sometimes off by 1 day. Also, if the original AvgLeadTime value was more than 10 years it will be reset to 0 before calculating a new value.

08/30/13 - v7.15 Build 32

- TRN/CNF/AR - IDTech Sign&Pay - The way card information was being sent back to Keystroke changed on the new IDTech Sign&Pay devices (Rev. B). This would cause Keystroke to not recognize that valid data had been entered (or swiped).

- STR - Locked Files - After updating inventory items (either by the Inventory Update function or saving a transfer) it was possible for the data files to remain locked.

- STR - Error 76 after Change Clerk - After running the update inventory function with update Matrix Items turned on, if the Clerk Login screen appears the program would generate an Error 76 for a blank data filename.

07/24/13 - v7.15 Build 31


STARTUP SWITCH - Alternate Codes - Added the startup switches AltICDir=, AltCCDir=, and AltVCDir= that can be used to specify the location of the Alternater Codes files for Inventory, Customers and Vendors.

CNF - PACK - HIDDEN ITEMS (AO) - Added the parameter "Push Hidden Records to End of Lists" to the Pack - Database function. If this is on, then records that are marked as Hidden will have character number 254 [Alt+254] added to the beginning of the sort characters used to sort the list (the actual database record is not changed). This will cause all the hidden items to be at the end of the record list when it is sorted by a text field (does not affect numeric lists). Note that the Show Hidden items button must be on in order to see them. This parameter can be used when there are thousands of hidden records that are causing record list boxes and reports to run slowly due to still working with (but not showing) the hidden records. Note that this can be undone and/or redone at any time by packing the file again. Also, records that are recently hidden (after the last pack) will not be affected.

RECORD LIST BOXES - If Show Hidden is on, [Ctrl+H] can be used to add (or remove) character #254 to (or from) the beginning of the Quick Search field.

REPORTS - Note - If Hidden Records have been "Pushed to End of Lists" and "Include Hidden Records" is Off, adding the block character ([Alt+254] to the End Range on a report will enable the report to finish faster if it is being sorted on a text field (it will end when it gets to the first hidden item instead of having to look at all of them before ending).

ROA RECEIPTS - Added the ability to print Customer Email and Alt Email addresses so ROA Receipts can be used with KeyMail.

TIME CLOCK RECEIPTS - Added the ability to print the Clerk's Email address on Time Clock Receipts so they can be used with KeyMail.

TRN - TRANSACTION SEARCH MACRO (AO) - Added the ability for the Transaction Search macro to prompt for the Customer's Order Number. If used, then the program will only display transaction's that have an "Order No" that matches what was entered. To use, add the following to the SalesEntryCommand:
, CustomerOrderNumber=%EnterText%

STARTUP SWITCH - LICENSE TYPE - Added the startup switch RunAs=POS which can be used to force an Advanced POS license to act like a Keystroke POS license for demonstration purposes. The switch can be placed on the command line or in the WS*.INI file(s).


- AR - When viewing a previously saved ROA Payment and the using to view a transaction's detail, the amount due column on the ROA entry screen for that transaction was then showing the current Amount Due for the transaction instead of the amount before the currently displayed ROA payment was applied.

- CNF - PACK - MULTISTORE PURCHASE ORDERS - When packing a transaction file, the line items on MultiStore Orders were not being retained (but the Purchase Orders they created worked correctly). Also, Reserved MultiStore Orders were no longer being recognized as a MultiStore Order.

- KSR - Inventory Database/Analysis reports - When copying the snapshot of the KSINV.DAT file, the program had the potential of overwriting another real KSINV.DAT file. It now copies the file to KSINV.TMP instead.

- KSR - Inventory Analysis - From Command Prompt - If an Inventory Analysis Report was run directly from the command prompt (using KSR.EXE or /GKSR) then the program was not finding all the inventory items.

- POR - Auto Order - Matrix Items - was not working correctly with individual matrix items.

- POR - Entering a Non-Inventory item when the "Desription Check" parameter was turned off was displaying the Max Qty message.

- TRN - Transaction Browse - Gift Cards - If a previous transaction that had a gift card was loaded, the program would display the "Transaction Has Been Changed" message when trying to unload it if the gift cards were set to display as line items but report as payments.

- XML CODE - The program will no longer tokenize the % character when writing xml files so that the files are easier to edit with a text editor.

- MENUS - If an error was generated when trying to display a menu, the program was not allowing the Cancel button to continue on.

- STR - INVENTORY UPDATE - Fixed Error 52 if both the "Update Matrix Items" and "Remove Delete Items" parameters were turned on.

07/08/13 - v7.15 Build 30


REPORTS - INVENTORY DATABASE BY DEPARTMENT - If there are a lot of inventory items and departments, then printing the Inventory Database report grouped by Deparment can take a long time. The program will now try to speed this up by using a temporary list of the inventory items sorted by department (this list is called an index). Since it can take a some time to create this temporary index, the program only does it when the data set has more than 1000 inventory items, 20 departments, and the ratio of inventory items to departments is less than 2000. Note that this feature also works the same when grouping by Category and Location as well.

COMMAND LINE SWITCH - The creation of the special Dept/Inv index for the Inventory Database report can be controlled by the command line switch: DeptInvSort=On and DeptInvSort=Off. Setting this switch to On will cause the sorting of the inventory by deparment even if the data set does not meet the minimum requirements for this feature (too few deparments/inventory items). Setting this switch to Off, will disable the sorting of inventory by deparment (report will always run as it did before). Note that this is a command line switch only and cannot be added to an WS*.INI file.

REPORTS - Inventory Analysis with the 2nd Grouping turned on - Improved the way the program recognizes if an inventory item belongs to the department (or whatever the seconnd grouping is) that is currently being printed. This allows the report to print faster.

REPORTS - PDF File Name - If the Report is run from a Saved setting, then the "&" token in the Printers Port setting will be replace with the name of the Saved Setting. If the report was not run from a Saved Setting, then the Description from the Report Form used to generate the report is used.

CNF - Tables - When exiting the Price Tables, Tax Tables/Districts, and Commission Tables functions, the program will now automatically check the formulas for the table and remove any orphaned formulas (those that have a blank table or a table that no longer exists). This is very fast and should not be noticed. (Note that for Taxes it is checking agains the District and not the Table).

DATE ENTRY - Added the ability to specify the format of the date at the end of the date field in order to override the global date format settings entered in the Configuration Manager. The codes supported are MDY, DMY, and YMD. For example, if the "Day/Month Date Format (Non US)" parameter is On, the entering 05/02/13 will be Feb.5, 2013 but 05/02/13MDY will be May 2, 2013 and 05/02/13YMD will Feb.13, 2005.

TRN - SALES TAX - If the "Always round Up" parameter on a tax formula is on, then the program will now round any remainder of 1/100th or higher instead of 1/10th or higher as it did before.

TRN - Transaction Search - Added the ability to Copy a transaction to a new transaction by pressing [Ctrl+F3] or [Ctrl+C]. This is similar to using the Transaction Copy function but allows the Transaction Search parameters to be used to help find the transaction to be copied.

TRN - PARAMETERS - ENTRY - Added the parameter "Display additional Age Required message" under the Check Minimum Age parameter. If this is turned on, then before the screen where the customer's birthdate/age is displayed, an additional locked message will first be displayed so that the clerk cannot proceed without confirming that they have recognized the message. This is done by requiring that [Esc] be pressed before proceeding (similar to the "Lock on Item Not Found" message).


- CNF - EXPORT - DATABASES - No data was being exported if the Clerk did not have a security level of 0 and the "Include Hidden Records" parameter was not turned On.

- CNF - PRINTERS - MAIL: Parameters - the Settings ID field on the MAIL: Parameters screen was always starting out as blank instead of showing the current setting. Also changed the Printers list to show the MAIL: parameters if any of them are set.

- TRN - TRANSACTION SEARCH - Program would generate an Error 6 if a transaction number higher than 2147483647 (2 billion) was entered. Note that transaction numbers cannot be higher than this number and so the system should not be set to use 10 digits numbers (9 digits should be the max.).

- TRN - Transaction Search - If the a transaction had a lot of line items and the list was scrolled down to view the last ones, switching to a different transaction would not display its line items if it did not have as many as the previous one. The program will now set line item and payment list back to the top each time a transaction is displayed.

- STR - UPDATE INVENTORY - If the parameters were set to Update Comments then the program was blanking out the comments in the other stores instead of copying them over from the master.

- STR - LEVELS REPORTS - Data other than QOH was not being loaded for Store #0 so if any of the other Inventory Store fields were used, it would print the value from the store that preceeded it.

- STR - Line Item Entry - The Description field was limited to 30 characters (is now 32) and the Class field was limiteed to 10 characters (it is now 16).

06/18/13 - v7.15 Build 29


APPEARANCE - Improved the functionality if the TintPerc option that shades the background boxes. This option will now be used with the Colored Flat and Colored 3D border styles (as well as Modern). Also changed the default value from 66 to 80 (not as dark).

CNF - Security - Added new security levels for Vendor Catalogs - View List (default is 9) and Vendor Catalogs - Copy Item (default is 8). Note that even if the clerk can't view a Vendor Catalog Purchase Manager can still copy an item through line item entry if the clerk meets the Copy Item security level.

DBM - SEARCH - Added support for using Is Blank ("~") on numeric fields which can be used to find records where the field is set to Null.

REPORTS - Added support for using tokens in the the printer port filename (the program use to only support the tokens when printing forms). Note that the "&" token is replaced with the Report Name (instead of the Transaction Number).

PRINTERS - TO FILE - Added the following tokens that can be used in the printer port name. The tokens are replaced for each print job with the current information. The new tokens are:
%D (Current Date in YYMMDD format),
%T (Current Time in HHMMSS format, 24hr)
These are in addition to &, %R, and %M that where already supported.

SCRIPTS - Increased the number of characters that can be entered in the Range fields to 20 (use to be 10).

SCRIPTS - Increased the length of the Name field for each script to 20 characters. Also changed the list box on the Scripted Item screen to always show the entire script type instead of only the first 20 characters.

UTILITIES MENU - Changed the name of the "DOS Shell" function to "Command Prompt" since that is what Windows calls it.

VENDOR CATALOGS - Selecting the Catalogs button from the Record List Box will no longer ask that the vendor be selected if only one catalog file exists (it will proceed using the vendor for that one file).

VENDOR CATALOGS - MultiStore - When copying an inventory item from a Vendor Catalog to the Inventory Database, if the Vendor Number matches with the new Vendor Number field on any of the Stores in the MultiStore Setup, then the program will keep the StockNumber of the item instead of creating a new one. If the stock number already exists, the program will display a message to either cancel the copy or to create a new stock number. Note that the file KSSTORES.DAT must be able to be found in order to check the vendor numbers.


- LOGO - v6 Data Conversion - Print Buttons - Converting the file that stores the print buttons (FORMS.DAT) to v7.15 was not working when converting version 6x data files.

- LOGO - INITIALIZE CONFIGURATION FILE - If there was no configuration file (KSCNF.DAT) the program was not initializing a new one correctly. Workaround is to copy KSCNF.DAT from a another data set.

- KSR.EXE - When running reports from the command line, the program was ignoring the Start= and End= switches.


- CALCULATOR - Clicking on a line in the Utility Calculator was not switching to that line. Instead, it was clicking one of the buttons depending on which of the four columns (value, operator, equal sign, total) was clicked on.

- CLOSEOUT - Limited Screen - If using the limited screen in Closeout (clerk does not have security for full functionality) and a payment name was clicked on, then the program would get stuck and have to be shut down (clicking on the amount column for the desired line was working correctly).

- DBM - Record Delete - pressing [F10] was deleting the selected record instead of exiting the list.

- KSR - CUES - EXPORT - The Export Report Cue function was not saving the Reports for the cue into the export file.

- TRN - SCRIPTS - ERROR 6 - If Roll Up price was used and one or more of the items had a Web Price of Null (blank) then an Error 6 could occur.


TOUCHSCREEN EDITOR - The "Stretch Buttons" check box is now always visible when editing a toolbar and now works when the toolbar is resized by dragging one of its borders with the mouse. Note that holding down the Ctrl key while dragging a border also stretches the buttons (except if this check box is on then holding the Ctrl key does the opposite).

STR - UPDATE INVENTORY - Added parameters to update the "Parent Stock Number" and "Use Scale" fields (default is On, the parameters were added so they can be turned off).

STR/POR - MultiStore Setup (AO) - Added a Vendor Field. This will be used in a future release to create a Purchase Order for an individual store from a Store Transfer.


- KS2QB - The program was prompting for the Date Range and running the Keystroke Data retrieval (GLLink) twice.

05/22/13 - v7.15 Build 28


POR - SAVE TRANSACTION - When viewing a previously saved Purchase Transaction and the Save button was used to clear it from the screen, the program no longer goes through the save procedures if no changes have been made.

RECORD LIST BOXES - Made the buttons (e.g. Filter) smaller to make room for additional ones.

PICTURE WINDOW - Added code so the picture window (database pictures, Toolbar screen shots, etc.) would return focus back to Keystroke.


- AR - INVOICE OR PAYMENT NOT FOUND - When searching for invoices or payments, the program would sometimes not be able to find the one it was looking for if another invoice or payment had a date that was between 0.086 and 0.0086 seconds from the the one the program was searching for (from v7.10 build 32).


- KSR - INVENTORY ANALYSIS - When 2nd Grouping was set, the program was finding the closest match instead of an exact match. This would cause items whose department was hidden, deleted, or the code was changed to be placed in the next department. It now places these items in the NO DEPARTMENT group.

- KSR - Sales - Closeout Reports - If the Don't Print if Empty parameter was On, then the totals for each payment type were being doubled.

- POR - PRINT INDIVIDUAL STORE PURCHASE ORDERS - Using the keyboard to move around any of the buttons on the Print Individual Store Purchase Orders box was activating the button (as if [Enter] had been pressed) instead of just going to the next field.

- POR - RESERVED MULTISTORE ORDERS - While in the Vendor Entry box, the program was not switching between MultiStore Orders to Reserved correctly.

- RECORD LIST BOXES - The font on the buttons was not the correct one.


STR - EDIT TRANSFERS LIST BOX - Added the column to show Total Price of the items being transferred (in addition to Total Cost).


- STR - SPLIT TRANSFER FILES - The program was not able to split the files that store Storelink Transfers (e.g. KSST0001.dat).

- PROD - SPLIT PRODUCTION FILES - The program was not able to split the files that store Productions (e.g. KSPD0001.dat).

- CONTPRICE.EXE - Viewing the customer's database record ([F3]) was always showing some of the fields as blank even if they weren't (mainly address info).

- STR - EDIT TRANSFERS LIST BOX - The Sort By buttons were not being displayed.

05/16/13 - v7.15 Build 27

- LOGO - DATA CONVERSION - COLORS - If set to use a different configuration file (not KSCNF.DAT by using either /C or Config= startup switch) then the program was not converting the color settings correctly if the other data files have already been converted to v7.15. Workaround is to reset the colors after this happens by going to the Configuration Manager - Settings - Appearance - and pressing [Shift+F8].

v - POR - MultiStore Allotments - If the MaxQ column was being displayed and any of the values were negative (or Null) then the Total would show as a large negative number.

- POR - Reserved MultiStore Orders - Editing a Reserved MultiStore Order was displaying the message "Warning: Could not remove Open Order" message. This message should not be displayed since Reserved Orders don't create Open Orders in the first place. (This is a display issue only, the message(s) can be ignored in this case.)

- TRN - Transaction List - If there were no records in the last transaction file, the "No records exist" message would appear, selecting the "Enter Date" button would cause the Empty List to display instead of asking for the date.

- MACROS - If the program was forced closed by clicking the X in the upper right corner of the program window while a macro was running, the error checking in the macro engine was blocking the final closing of the program causing it to get stuck in a loop.

- IMPORTER - TAB DELIMITED - When importing a tab delimited file, if the last two fields in the record are both blank then the last field would be imported as a Tab character instead of as blank.

- CONTPRICE.EXE - Selecting the Help - About menu function was giving an Error 13.

- CONTPRICE.EXE - Viewing the customer's database record ([F3]) was sometimes displaying the wrong data (display issue only).

05/14/13 - v7.15 Build 26


VENDOR CATALOGS (A0) - While in the list of Vendors (either through Query or Lookup the program will now display a "Catalog" button at the top of the list box (but only if there is at least one Vendor Catalog available). The button will be enabled whenever the currently highlighted vendor has a Catalog file. Selecting the button (or pressing [Ctrl+Shift+F8]) will bring up that vendor's catalog.

VENDOR CATALOGS (A0) - While in the list of Inventory Items (either through Query or Lookup) the program will now display a "Catalogs..." button at the top of the list box (but only if there is at least one Vendor Catalog available). Selecting the button (or pressing [Ctrl+Shift+F8]) will bring up a box asking which Vendor Catalog to look at. Once a vendor is selected, the program will bring up that vendor's catalog.

VENDOR CATALOGS (A0) - Switching Catalogs - When a Vendor Catalog is being displayed, the only way to switch to a different Vendor's Catalog is to back out of the current list and then go back in using a different vendor. Note that the Purchase Manager and Database Manager lock onto the current Vendor. In the Database Manager, use the "Database-Vendor Catalog..." menu to change to a different vendor. In the Purchase Manager, you must change the Vendor on the current purchase transaction. An alternative that works everywhere in the program is to use the Query-Inventory function which does not lock on to a single vendor.

POR - Parameters - MultiStore - Added the ability access and edit the Stores List normally entered in the StoreLink-Stores-Setup function. Selecting the "Edit Stores List" button will bring up the list of stores from KSStores.dat and allow changes to be made.

STR/POR - Store Setup - Added the button "MultiStore Order Form" which can be used to specify a Form/Printer to print an Individual Purchase Order for that store when a MultiStore Order is saved.

POR - MultiStore Orders - Print Store Purchase Order. When a MultiStore Order is saved, the program will now display the "Print Individual Store Purchase Orders" box showing all the stores that both are set up to print individual Purchase Orders AND are used by the current MultiStore Order. The box will first show a list of all the stores that can be printed. The "Print Selected" button (or [F10] key) can be used to print the separate Purchase Order Form for each one of these stores. Stores can temporarily be removed from the list before printing (or added back in) by selecting them. This allows just one store to be reprinted when needed by removing all the other stores (or use the "Skip All" button and then add the store(s) back in that should be printed). Note that this box will appear every time a MultiStore Order is saved (new or existing). The printouts can be skipped simply by using the "Cancel" button or hitting [Esc]. Note that the printouts are made by internally loading the Purchase Order from the store's data set so this can also be a good way to confirm that the Purchase Order created in the individual stores is what was expected.


CNF - DATABASE SETTINGS - Added a new parameter for Inventory Percent Fields; "Start Calculator in Mark-Up Mode" (instead of Percent Profit Mode).

STARTUP SWITCHES - "ToolbarsDir=" - Added to the ability to specify the location of the Toolbars (e.g. TB.DAT) and Macros files (e.g. MacrosSM.DAT) by using ToolbarsDir= in the WS.INI files or as a command line switch. The default location is the "TOOLBARS\" directory below the data directory. If a relative path is used, it will be completed based on the Program Directory.

LOGO - MACROSSM.DAT - The program will remove the hotkeys [Ctrl+Shift+F8], [Ctrl+Shift+F9], and [Ctrl+Shift+F10] from the MACROSSM.DAT file since these keys are either now used for other functions in the program (or may be in the future). These hotkeys where originally set on sample macros that usually where not being used. If it is desired to still use these hotkeys in the Sales Manager Macros file, they can be reentered (the program will only check for and remove them once).

LOGO - DATA CONVERSION - If an error occurs when moving old v6 data to the V6DATA\ subdirectory, the program will now stop and ask if you want to try again instead of halting the program.


- TRN - Payment HotKeys were not working. Workaround is to use a Macro with the SalesEntryCommand-EnterPayment and assign it to the hot key that should be used.

- LOGO - V6 DATA CONVERSION - Fixed Error 76 after moving .V6 files. Workaround is to create a Catalogs\ directory below the data directory before starting the conversion.


- CNF - Form Messages - The list box was only showing the first 52 characters of each form message. (Form Messages and hold up to 128 characters, this was a display issue only.)

- KSR - Purchase Reports - Fixed error when trying to run a Purchases report when MultiStore Purchase Orders have been enabled.

- POR - Changing the Transaction Type while in the Enter Vendor box was not updating the columns on the screen correctly. This would also cause problems with entering qtys in the MultiStore Allotments function.

- POR - MuliStore Orders - A memory error could be given if not all line items were ordered for all stores.

- POR - MuliStore Orders - Resaving a MultiStore Order with more than one line item would cause the orders in the individual stores to be corrupted.

- TRN - Quick View on Transaction List - If Quick View was turned on, changing to a different transaction file would cause it to appear to be turned off.

- TRN - Line Item Detail - Changes made in the Line Item Detail box to the following fields were not being saved: Extended Description, Category, and Location.

- TRN - Invoices created from Quotes - In releases prior to v7.15 build 23 it was possible that the line items on an Invoice that was created from a Quote would have the Shipped Qty set to 0 or some number other than the Order Qty. In most cases this is not allowed since Invoices usually don't support Order/Ship mode. This would cause a warning message when the invoice was reloaded to view or edit it. The program will now automatically set the Shipped Qty to be the same as the Order Qty in this case.

- TRN - Parameters - Macros - If the number of Macros was reduced by deleting one or more, the program was still saving the same number of macros to the file MacrosSM.dat (repeating the last macro to make up the difference).

- MACROS - Enter RunMacro= command - The list of available macros that appears when entering the RunMacro= was not showing the last macro (and sometimes would hide several macros).

- BUTTONS - Sometimes when a button was pressed, the display was not being updated to restore it back to its un-pressed state.

- DOLU - Was not working using Prod ID method. Workaround is to use Path= pointed to license files.

05/02/13 - v7.15 Build 25


- LOGO - Data Conversion - Print Buttons - Converting the file that stores the print buttons (FORMS.DAT) to v7.15 was not working if the file was originally created in v7 (files updated from v6 or before worked correctly).

- KSR - Inv Analysis - The "Roll Child Into Parent" parameter was not working correctly. While it was hiding the child items, it was not adding their totals to the parent item.

04/29/13 - v7.15 Build 24


CODE MATCHING - Added additional wild cards for matching a formula code (or Code Mask) to a field's value (for example, a price formula code of "BK*" matches all inventory items that have a price code that starts with "BK"). In addition to this Starts With pattern, the program now supports an Ends With pattern, a Is Blank pattern, and a wildcard for individual characters. The Ends With pattern is made by putting the "*" at the begining (e.g. "*01" matches all codes that have "01" as the last characters, like "SW01" and "A01"). The Is Blank pattern uses the tilde character ("~") to match fields that are blank. The wildcard for individual characters is the question mark ("?") which can be used to match any single character:
"?" matches all 1 character codes
"??" matches all 2 character codes (but no 1 character codes).
"B?01" matches all 4 character codes that start with "B" and end with "01".
"?C*" matches all codes that have a C as the second character.
Note that only one "*" should be used at a time but multiple "?" can be used.


RESERVED MULTISTORE ORDERS - Added the ability to save a MultiStore Order as a Reserved Order (doesn't update inventory or create any Purchase Orders in other stores). Once the screen is set to MultiStore Order, selecting the Reserved transaction type will switch it "MultiStore Order - Reserved" (instead of the standard Reserved type). When saved, it will be saved with standard Reserved Orders but when retreived, the program will recognize that it is a MultiStore Order. Note that the Vendor Name on the transaction has the characters "*MS*" added to help differentiate the two types of reserved orders when viewing them on the transaction record list. A MultiStore Order marked as Reserved can be switched back by changing the transaction type back to MultiStore Order ([Ctrl+M]).

Added the ability to limit which stores are used when entering items on the current MultiStore Order. Pressing [Ctrl+Shift+F9] will bring up the MultiStore Order Restrictions entry screen where a Group Mask, Filter, and manually selected list boxes can be used to determine which stores should currently be in use. Note that this should normally be done before items are entered on the transaction but does not have to be. If necessary, it can be changed several times while entering the transaction. Any items that have already been entered for a store will remain even if the store is excluded later on.
- The "Group Mask" field is used to enter which stores will be used based on the Group field assigned to each store. The program will compare the Group Mask field to each store's Group field using the same Code Matching used by price and tax formulas.
- The "Filter" button can be used to enter additional and/or more complex restrictions if needed. Only stores that match both the Group Mask and Filter will be included.
- Stores can also be manually switched from Included to Excluded (and back) by highlighting the store and pressing [Enter] (or double click with the mouse). Stores that would normally be in one list but have been manually forced to the other list will show an "*" in front of the store's name.

AUTO ORDER - Added a button for MultiStore Order Restrictions. This brings up the function to limit the number of stores that will be used by the current MultiStore Order (and therefore the AutoOrder function).

- MACROS - Added the following Purchase Entry Commands for MultiStore Orders: - EditMSAllotments - same as [Ctrl+F9].
- EditMSOrderRestrictions - same as [Ctrl+Shift+F9], brings up the
- MultiStore Order Restrictions parameters box.
- SetMSOrderRestrictions - Allows the GroupMask to be set directly by the Macro.


POR - Macros - Added support for PurchaseEntryCommand: VendorEntry (same as [F8]), EnterItem, and EnterPayment (same as using HotKey on payment).

POR/TRN - The message "Warning could not remove Back Order" (or "Open Order") is displayed, it will now also be written to the Errors.log file.


- CNF - COM PORTS - Using a COM port number higher than 9 was not working (max is now 99).

- TRN - PIN Pads were not communicating after Customer History button used - Using the Customer History button on the Enter Customer screen was causing the program to leave its printing status in To Screen mode which could then cause other devices that use print routines for communications to not work correctly (e.g. UIC Pin Pads).

- POR - Converting a Reserved Order to a Purchase Order was displaying the "Warning: Could not remove Open Order" message. This message should not be displayed since Reserved Orders don't create Open Orders in the first place.

- POR - MultiStore Orders - Resaving a MultiStore Order was erasing the indexes pointing to the Purchase Orders created in each store so they were no long able to be found (packing the transacton file would bring them back).


- AR - Billing Period - The warning about setting the billing period back to a previous time was not allowing previous dates to be used.

- CNF - Hardware - Customer Display - When saving a Customer Display Control File, the program now limits the file name that can be entered to 8 uppercase characters since this the limitation of what can be used anyway.

- DBM - PICTURES - When switching from a database that does show pictures to one that does not, the program was leaving the last shown picture on the screen.

- KSR - Print to Excel - Comments were not being sent to the Excel file.

- TRN - Parameters - Entry - Starting and Ending Script button were sometimes displaying and getting stuck on the "Item Not Found" message.

- TRN - Script Restrictions - Filters - Filters were not working on fields from the Customer and Contact sections.

- POR - Vendor Catalogs - The Which One? feature was not working, would give an error 52.

- TRN - UIC PP795 Pin Pad - If the Manual button on the UIC PP795 Pin Pad's screen was selected while waiting for a card swipe the program was not responding correctly. It now treats the Manual button the same as the Cancel button and goes back to the payment entry screen so the clerk can manually enter the card.

- POR - Update $0.00 Vendor Cost - If the "Don't Set Last Cost to $0.00" parameter was on, then the program was not updating the Vendor's Cost on an item if the Vendor's Cost was currently $0.00.

- POR - MultiStore Orders -Auto Order - If the current data set did not have the same store number as was listed on the Store Setup List or if on the Store Setup List its Data directory was not entered as all uppercase, then the Auto Order function was counting the qty for that store twice for the line each line item.

- TRN - Signature Capture On Screen - Clicking the Clear Signature button was bringing the Keystroke Window to the front, which could hide the Signature Entry window.


STR - Store Setup - Added a Group field. This can be used to classify the store for use on filters and MultiStore Puchase Orders.

STR - Store Setup - Changed the name of the MultiStore Purchase Orders flag from "Exclude from" to "Never use on".


- IMP.EXE - Vendor Catalogs - Importing Vendor Catalogs from the command prompt was not working.

04/16/13 - v7.15 Build 23

AR - Email Statements - When printing statements to either "Balance Due" or "All Customer" the "Email...Sent Successfully!" message will not be shown. Also, when either an email error or successful message is displayed, the program will now show which customer the statement was for.

- AR - Signature Capture - AR was not recognizing the following signature capture devices: MagTek IPAD, ID TECH Sign&Pay, Topaz, and On Screen.

- AR/TRN - Signature Capture - In some cases, an error communicating with the Signature Capture Device could cause the payment to not be saved properly in Keystroke (if the payment was captured, it would still exist with the payment processor and entering the payment again could cause as charge to be doubled).

- LOGO - Print Buttons - On new data sets (when FORMS.DAT is first created), the file Print Buttons file was not valid so no Print Buttons would be available.

- POR - Vendor Catalog - Removed ability to look up by Stock Number (not valid since the Stock Number gets reassigned when the record is copied to the main inventory database).

- TRN - Non-Inventory Items on Quotes - When a Quote was converted to an Invoice, any Non-Inventory Items (Stock Number 0) where having their Shipped Qty set to 0. This would cause a warning message to be displayed since Invoices don't support the Order/Ship mode. The program will now only set the Shipped Qty to 0 on Non-Inventory items if the transaction type supports Order/Ship mode.

- TRN - KeyPay Payments - If the balance on an account is $0.00, some processors would return a payment request as Approved but for $0.00 which Keystroke would interpret as Approved for the full amount. Keystroke will now recognize this situation and display the message "Not Approved ($0.00 balance)" and return and set the payment amount to $0.00.

04/11/13 - v7.15 Build 22


SCRIPTS (AO) - Advanced Restrictions - Filters - Added a filter button to the Advanced Restrictions for each script. If used, only scripts that match the filter will be run. Filters are entered the same way as on reports.

POR - Vendor Catalogs (AO) - Added support for copying new inventory items from a Vendor Catalog. If an item is not found, the program will check the "Catalogs\" directory for a file based on the Vendor's Number (e.g. "C:\KEYSTROK\DATA\CATALOGS\123.DAT" for Vendor Number 123). If the file exists, it will then search for the item in that file. If the item is found the program will ask "Copy from Vendor Catalog?" and then copy the inventory record from the Vendor Catalog file to the standard Inventory file. Note that the Vendor Catalog files are the same format as the standard inventory file (they can be added in simply by copying KSINV.DAT from another data set to CATALOGS\###.DAT where ### is the Vendor Number. However, most often they will created by using the Keystroke Importer module (see below).

DBM - Vendor Catalogs (AO) - If any Vendor Catalog files exist, then the "Vendor Catalog..." choice will be available under the Database Menu to view and edit these files. When this function is selected, the program will ask that the Vendor Number be entered to determine which file to work with. The lookup function ([Ins] or [F2]) can be used to bring up a list of all vendors. If the vendor number entered/selected does not have a Catalog file, then the program will prompt to create one. (Note: Normally these files will be created through the Keystrok Importer module, see below.) The "Existing" button can be used to select the vendor from a list of the available files.


CNF - Appearance - If a setting is set back to its default, the entry in the WS.INI file will be removed. For example, if Toolbar File is set from "B1Ovl.DAT" to "TB.DAT" then the ToolBarsFile= line in the WS.INI file will be deleted. (The default settings can be found in the FILES\WS.INI file.)

DBM - Customers/Contacts - Added the ability to set the List Sort and Record Sort to Email.

KSR - Receivables Reports - If the Customer - Don't Print if Empty parameter is on and either the form or the parameters are set to not print all the detail, then the program will now check for any Non-Zero balances (finance charges, credit memos, or open invoices) and use that to determine whether or not to print the customer. Note that this is slightly different than printing Balance Due customers as this will print a customer with balance of 0.00 where offsetting amounts are still open (e.g. a $1.00 credit memo and a $1.00 open invoice) while printing only customers with a balance due would not.

STARTUP (AO) - Added the new startup switch: "VendorCatalogsDir=". This can be used to specify an alternate location for the Vendor Catalog files (the default is "Catalogs\" below the Inventory Data directory).

STARTUP SWITCH - PreloadToolbars= - If the ToolbarsFile= startup switch is used, then the program use to preload the toolbar so it could be used to respond to any messages that may appear during startup. The program no longer does this so the toolbar files does not need to be loaded a second time after the startup sequence has finished. If pre-loading the toolbar is needed, adding "PreloadToolbars=Yes" to either the WS.INI or command line will cause the program to load it early (and then again at the end of the startup process).

LOGO / ABOUT SBS - If system is an evaluation copy with serial number 9999, then the serial number will display as "Trial Only" on the main Enter Clerk box and "Eval Only" on the About SBS box.


- POR - MultiStore Orders - If the Inventory Item did not exist in one of the other stores, the program was still allowing it to be ordered. It now asks if the item should be created in the store by copying it from the master store. If this is cancelled, then the program will not allow anything on that store's allotments line to be changed.


- CNF - Appearance - If the Menu Font Size was set to "Scale" the Appearance function was displaying the setting as "XL" when reentering the function.

- DBM - Contacts - the List Sort and Record Sort parameters were not being saved for the Contacts database.

- LOGO - If the ToolbarFile= switch was used, then the Toolbar Background color was initially black when the program was first starting up. Then, once all the data files have been checked, the Toolbar Background color would be changed to its correct setting. It now uses the default Toolbar Background color (usually gray) at first and then reloads the toolbar with the correct settings once they have all been read in. (Note that unless the new PreloadToolbars=Yes startup switch is used, this no longer applies).


IMPORTER - Added support for importing Vendor Catalogs (AO) - These work the same as importing inventory but the Vendor Number must be specified when the import is run and the data will go to the Vendor's file in the CATALOGS\ data directory. When the program asks for the Vendor Number, the lookup key ([Ins] or [F2]) can be used to select the Vendor from list of existing Vendors.

IMPORTER - Added new command line switches to support Vendor Catalogs (see DOC\IMP.DOC for more information).


- TSE - If the ToolbarsFile= switch is used, then the program will no longer save the TBAdv.dat and TBPOS.dat toolbars as TB.dat.

- UTILITES - Print To PDF - When using a command line utility with the display turned off (e.g. /NoDisplay, or Display=Off) and printing to a PDF file, the program was giving an "Error creating PDF File" message. It can now create the PDF file even with the Keystroke display window turned off.

03/22/13 - v7.15 Build 21


CNF - Appearance - Made some colors changes in Themes.xml. Also, the program will now replace the current Themes.xml in the program directory with the new one if the current one has not been changed (same date and size as the original).

POR - MultiStore Orders - Changed the warnings about editing a MultiStore Order when the orders it created have been changed. The warning is now only displayed when the first change is made to the MultiStore Order instead of as when the MultiStore Order is first loaded for editing. Note that a MultiStore Orders should not be changed once any of the Purchase Orders it created has been changed.

TRN - Display Change Amount - Changed the color of the text used to display the Change Amount. It now used the Alert Text color from the Custom Program Elements colors list (instead of always being a dark red color).


- POR - MultiStore Orders - Automatically setting the Qty was not working correctly with Store 0.

- POR - MultiStore Orders - AutoOrder - Was only working with Matrixed Items.

- POR - MultiStore Orders - If an item's Allotment List had Store 0 as the first store, then the allotments were not being saved for future reporting or editing (but the individual store Purchase Orders were still being created correctly).


- KSR - Inventory Analysis - The "Analysis Totals - Calculated" fields were always blank (or 0). Also values from the Departments section were 0 when used in report variables printed in the Grand Totals.

- TRN - Edit Line Item - The program was not allowing -Edit Line Item while on a new line item.

03/12/13 - v7.15 Build 20


Every time Keystroke starts it checks the data files to make sure they are from the current version/build. Some files will be automatically converted but for major changes (like a new version) the program will first check the Transaction Files and will display a prompt before converting the data files. For this version (v7.15) most of these conversion are minor and quick but do make the files incompatible with previous versions. The conversions done are: Expand size of FORMS.DAT and PRINTERS.DAT to support new and future enhancements. Fix up ColorNum entries in DETBOX (TRNDET*.DAT, PORDET*.DAT, and VARDET*.DAT) and TransactionSearch (*.xml) display files to match the new Colors list. Set StatementMethod to "Print" on all customers. Rearrange some of the internal data fields on Customer and Contacts and Index the Email field.

KSCNF.DAT - The Color Settings in Keystroke have been changed. The list of color elements is different and each one can now be set to any color instead of the 16 predefined colors that use to be available. Also, the new list has a separate entry for the Text color and the Background color instead of combining them together as it did before. This change requires the colors in the KSCNF.DAT file to be stored in a different format so the file will be converted automatically when it is first used and most of the colors will reset to their default values (only Main Background and Toolbar Background are retained).

CUSTOMER DATABASE SCREENS (AO) - (DBSCREEN\DBSC*.DAT) Added the fields "Print Stmnts" and "Email Stmnts" to main customer database screen. If the database screen has been customized, it may need to be changed again as these fields will always be placed even if something else is already there.

KSCNF.DAT - The Accounts Receivable parameter for the "Print Forms For" and "Email Forms For" buttons will be set to "Print Customers Only" and "Email Customers Only" respectively on new and converted data sets,

IMPORTER - *.KSI files from previous versions will have their entries for the Customer Database fields 80,81,82 moved to position 82,83,84 (these fields are Comment, City+ST+Zip and First+LastName and were moved due to the addition of PrintStatements and EmailStatements).

REPORT FORMS - If the field Customer - First+Last Name is used then the report is converted to move this field from #80 to #82.

-----Keystroke Mail Module (KEYMAIL)-----
KEYMAIL is the name of the new Keystroke Mail Module which is a program the acts as a communications server. It is designed to work with Keystroke for sending electronic messages (Email). The set up and use of this program is very similar to KeyPay. Once set up, Keystroke can use it to send emails by using the printer port "MAIL:". (See WhatsNew.doc for more information on the KeyMail program).

PRINTERS - PORT - MAIL: - Added a new Printer Port, ("MAIL:"), that will send the output to the Keystroke Mail Module ("KeyMail"). The set up for this port is very similar to the authorization method for KeyPay. In most cases the Parameters fields can all be left blank as Keystroke will get the information each time it is used from the file "KMStatus.tmp" which is created by KeyMail. Printouts sent to a "MAIL:" port must include the email information at the beginning so only properly formatted Forms should be used with it.

PRINTER PORT=MAIL: - When sending a printout to KeyMail , Keystroke will search the beginning of the printout for the email header information (e.g. TO=, SUBJECT=) and then strip this data out of the print job so that only what is following the email instructions is sent as the message (body) part of the Email. The email information is entered in INI format (label then an equal sign then the information). The labels supported are "TO=", "SUBJECT=", and "ATTACHMENT=". Only the "TO=" tag is required but "SUBJECT=" should also be included. Keystroke ships with several example forms (filenames begin with "EM").

HTML FORMS - Emails are sent as either Plain Text or as HTML. Plain Text messages are simpler but the way they are displayed will change depending on the Computer and the Email Reader (and its settings) of the person receiving the email. The differences vary but the main changes will include the Font, Size, Margins, and spacing of the message. This can make a message that contains numeric data (like a receipt or statement) very hard to read. To have better control of how the email is displayed, HTML can be used instead of Plain Text. (Please see the forms included with Keystroke for samples and ideas on how this is done).

HTML Forms - When sending an email to KeyMail, the program will first scan the message for the html tags , and (case does not matter). If they are found but no
tags are found after them, then the program will add a
tag at the end of every line in the BODY section and will replace spaces with the " " token. This allows a form that was formally used for printing to a printer to be used for email simply by adding a few HTML tags to the beginning and end of it.

HTML Forms - Keystroke will replace all line draw characters (ASCII character numbers 179 through 218) with the Unicode character code for them (e.g. the double line character "=" (#205) will be replaced with "═") this allows the characters to be displayed correctly by a wider variety of email readers.

HTML Forms - Embedded Graphics - If an email uses and has an img src=" tag and the filename the image uses does not contain "http:" then the program will embed the file in the email. Note that the path to the filename must be accurate based on where KeyMail is running from, which may be different than where Keystroke is running from.

-- Other Changes made to enable Emailing Forms --
CUSTOMERS - Added the fields PrintStatements and EmailStatements. These are used by Accounts Receivable to determine which forms buttons to use for each customer when printing statements. (These are actually the same as the already available StatementMethod field but are broken out into the individual available values instead of being combined together). The fields are also available for reports/export/import as field numbers 80 and 81.

AR - Statements (AO) - Added 3 more form buttons that can be used when printing statements as well as settings to specify which type of customers use the form buttons. The first 3 forms are controlled by the "Print Forms For" setting and the second 3 forms are controlled by the "Email Forms For" setting. These can be set to: "None" = Forms are not printed, "Print Customers Only" = Only customers with the "Print Stmnts" parameter turned On will use the forms, "Email Customers Only" = Only customers with the "Email Stmnts" parameter turned On will use the forms, "Both Print and Email Customers" = Customers with either parameter on will use the forms, "No Print/Email Customers Only" = Only Customers with both Print and Email turned Off will use the forms. and "All Customers" = All Customers will use the forms no matter what their "Statements" parameters are set to.

CNF - PRINT BUTTONS - Added the parameter "Requires Email Address". If this is on and an email address is not available then the button will not be shown (similar to not meeting the Security Level for the button). This allows the program to display an Email button when an Email address is available and a regular print button when an Email address is not available. To set this up create 2 with the same button number. Place the one that requires an Email address above the one that doesn't. If an email address is available then that first button will be available otherwise the second one will be . In the Sales Manager there is now a parameter to "Enter Customer after Line Items" that should be turned on if using Email print buttons.

CUSTOMERS/CONTACTS - The Email field is now indexed so Customers and Contacts can be looked up by Email and Reports can be sorted by the Email field. This requires a conversion to the both the Customer and Contact data files.

CNF - DATABASE PARAMETERS - UNIQUE INDEXES - Added the parameter Customer Email to the "Unique Indexes" parameters.

TRN - CUSTOMER ENTRY - Email - Added the ability to enter a customer by entering their Email address in the Email field.

TRN - New Data Sets - When initializing a new configuration file (KSCNF.DAT) the program now sets the Sales Transaction parameter for Display Customer Email to On.

TRN - ENTRY PARAMETERS - Added the parameter "Enter Customer after Line Items". If this is on and it is a new transaction and the customer is the same as the default customer, then the Enter Customer screen will be brought up when entering the Complete Sale box. Also changed the name of the parameter "Don't Confirm Customer" to "Skip Ok button on Customer Entry".

TRN - CUSTOMER ENTRY PARAMETERS - added the new setting "Use Simplified Customer Entry Screen". The is option is hidden if "Enter Customer" in not turned on. If this setting is turned on, then the Simplified Customer Entry box will automatically appear instead of the standard Customer Entry box.

TRN - SIMPLIFIED CUSTOMER ENTRY - A new Simplified Customer Entry box is now available. It can be brought up either automatically or by using the [Ctrl+F8] key combination (or through a Macro button). This box has a limited number of fields and is designed for use with Email receipts and/or Loyalty programs. The [F8]key (or clicking the "Standard Entry Mode" button on this screen) can be used to switch to the full Customer Entry box.

DBM - Customers - Added a simplified database screen that is automatically brought up when a new customer is being added from the Simplified Customer Entry screen in the Sales Manager. This is screen number 9 and is only available in Add mode.

TRN - MACROS - SalesEntryCommand: - Added support for "CustomerEntry" as a command to pop up the Customer Entry Screen in either Full or Simplified mode (e.g. SalesEntryCommand: CustomerEntry, Style=Simplified).

This is new function replaces the Colors function in previous versions. The Appearance function is used to edit some of the parameters that determine the way Keystroke looks. The Colors settings are stored in the current configuration file (KSCNF.DAT) while all the other settings are stored in either the WS.INI (shared by all) file or the WS#.INI file (particular to this Register Number). When saving the settings, the program will update only one of the two files. If the setting already exists in the WS#.INI file then it will update that file only. If not, then it will update the WS.INI file (unless the setting is the default and then it will not add it to the WS.INI file). This function is designed to make it fast and easy to change some of the most popular settings provided by the WS.INI files. However, there are a lot more settings and choices for their values available by editing the WS.INI files directly (see FILES\WS.INI for a complete list of the settings supported by those files). The settings currently available in the Appearance function are:
- Window Title - The text displayed in the Title Bar and Windows Task Manager (default is "Keystroke POS" or "Keystroke Advanced POS").
- Screen Mode - Sets whether the program takes up the full screen or is displayed in a smaller window. "Normal" will base the program's window location and size on the Left, Top, Width, Height settings in the WS#.INI file. "Maximized" will take up the whole screen but still show the title bar. "Full Screen" is similar but does not show the title bar. Note, the current Screen Mode (and position/size) is always saved by Keystroke as the program closes. As with most other Windows programs, the Screen Mode can be changed quickly from anywhere in the program by clicking on the title bar or pressing [Alt+Enter]>.
- Border Style - Sets the appearance of the title bars and borders for the individual windows inside of Keystroke (does not change the style of the main Title Bar and Border as that is controlled by Windows). "Windows Themed" is also referred to as "XP" and is the default. However, if Windows is set to not support themes, then the Classic style is the default and setting it to "Windows Themed" will display the same as "Colored 3D".
- Toolbar File - Used to select which file is to be used to generate the toolbars displayed throughout the program. The toolbar file that is in use is always stored in the TOOLBARS\ directory below the Data directory. The default file is TB.DAT but this can be changed by using this button. The button will display a list of the standard toolbar files shipped with Keystroke (in the FILES\TOOLBARS\ directory below the Program Directory). As each toolbar file is highlighted, a sample screen shot of it will be displayed (if one exists). The graphic displayed is the .JPG file from the FILES\TOOLBARS\ directory with the same filename as the toolbar file. When a toolbar file is selected, the program will switch to using that toolbar file name (if the file does not already exist in the data directory, it will be copied from the standard files directory at this time).
- Menu Font Size - "Normal" uses the font size set by Windows, "Small" is 20% smaller, "Large" is 20% bigger and "XL is 50% bigger. "Scaled with Window Size" will base the size on the Keystroke Window size. Note that the default font used for Menus has a minimum size built into it so the Small setting may not make any difference.
- Font Scale - Sets a ratio that changes the size of the font used within Keystroke. "Normal" uses the default setting which is .85. "Small" is .75, "Large" is .95, and "XL" is 1.0. Using a larger font setting can make text easier to read but can also cause it to be chopped off or crowded due to other fields around it.
- Colors - The buttons inside of this box can be used to change the colors used by the Keystroke program (see below).
- Sounds - Used to change the sound played by certain events throughout the program. Pressing the [space bar] while on the list of sounds will play that sound, [Del] will remove the sound (sets it to blank), [Shift+Del] or [Shift+F8] can be used to reset the sound to its default. [Ctr+Z] or [Ctrl+BackSpace] sets the sound back to its original setting. Selecting a sound setting will bring up the Windows File Browser where a new sound file can be selected. From here you can Right+Click and select Play to hear the sound played through the system's Media Player. Note that the default location of sound files is now the SOUNDS\ directory below the FORMS\ directory. The program will still use a sound file from the FORMS\ directory if it can find it there.

--COLOR THEMES (Themes.xml)--
The "Color Themes..." button brings up the Color Themes list box. Selecting an item in this list box will cause one or more (or all) of the current color settings to be changed. What appears on the list (and what each setting does) is controlled by the file "Themes.xml" which is located in the program directory.
This file can be manually edited to change the list of themes that appear as well as what each theme does. Colors that are not included in one of the themes will not be changed. To have a theme set a color back to its default value, set the color to "Default" (without the quotes). If the Themes.xml file is deleted, the program will copy the original back in (from FILES\Themes.krf).
Which color buttons are available on the Appearances box can be controlled by the Themes.xml file. If there is a Themes.xml file but no themes are in it, then the "Color Themes..." button will be hidden. Adding the line: [Theme Name="NoEdit" /] just above the first theme in the Themes.xml file will cause the other Color buttons to be hidden. This allows colors to be locked to only the color settings available in the Themes.xml file. To completely lock down the colors, remove all the other themes (leaving only "NoEdit") in the Themes.xml file.
The format for entering colors in Themes.xml is to use the feature name as it appears on the Edit Colors list (without spaces) as the tag and the color as the value for the tag.
The attribute BaseTheme= can be added to any them to establish a common set of color settings that can then be overridden by the rest of the theme. This is used to name a theme to load first and then the selected theme will be loaded. For example: [Theme Name="Forest Greens" BaseTheme="Default"]

The other buttons in the Colors box are used to set the color of individual elements within Keystroke.
- Main Background - Sets the background color of the Keystroke modules (the area behind the data entry and message windows).
- Toolbar Background - Sets the color of the area that the toolbars sit on. In most cases the toolbars cover this up so it is not seen, but in cases where there are spaces between the toolbars, this area can be seen and should use a color compatible with the toolbars.
- Title Bar Background - Sets the color of the Title Bar at the top of each data entry window within Keystroke (the program's title bar is set by the Windows operating system).
- Title Bar Text - Sets the color the letters inside of the title bar. (Note that some Border Styles have the Windows operating system draw the title bars so changing these Title Bar color settings inside of Keystroke will not make a difference. In these cases, the two Title Bar color buttons will be hidden.)
- Windows Theme Elements - This button will bring up a list of all the color settings used by Keystroke in its data entry and message windows.
- Custom Program Elements - This button will bring up a list of all the additional color settings that can be changed. The settings on this list are not used directly by the Keystroke program but may be used by any display files (usually in XML format) that are displayed while inside of Keystroke. Examples of these are TRNDET1.DAT which controls the Line Item Detail display window and TRNSRCH.XML which controls the transaction detail display of the Transaction Search function.
- Information about the currently selected colors is displayed in screen flags at the bottom. The information shown is Color Name (not displayed if color does not match a predefined name), Digital Value, Hex Value, and RGB value of the color. Note that Black is often shown as 65793, &H10101, RGB(1,1,1) since the color 0 is sometimes not recognized as an actual color.

Keystroke has several different ways to select a color to be assigned to a color setting. This includes lists of predefined colors as well as a Color Picker where any color can be chosen. After changing a color, the setting can be reverted back by pressing [Ctrl+Z] (or [Ctrl+BackSpace][). Pressing [Del] will set a color setting back to its default value (color used when first initializing the data set). Pressing [Shift+F8] will set all the colors back to their default values. Also, Copy/Paste ([Ctrl+C]/[Ctrl+V]) can be used to copy a color from one item to another.

To make it easier to quickly select a color, Keystroke provides several lists of predefined colors. When loaded from the Appearance function these lists are displayed separately but when loaded from the Color Picker all colors are included in one big list. The keys [Tab] and [Shift+Tab] can be used to switch between the lists. The lists that are available are:
- NAMED THEMED COLORS - When a color element is first selected, Keystroke will first display the Named Themed Colors list. This is a list of colors that are commonly used and are grouped together by common themes. The first and last section of this list are primary colors while the rest are groups of colors that have a similar Hue.
- SYSTEM COLORS - This is a list of the Windows System color elements that can be used by Keystroke. Selecting one of these colors does not actually select the color that is displayed but selects the Color Name. When a Keystroke color setting is set to one of these Color Names, then the color that is actually displayed is retrieved from the settings in the Windows Operating System (changing the color in Windows will also change the color in Keystroke). The default settings in Keystroke use these Color Names so that the colors in Keystroke will match those of other programs used on the computer.
- NAMED WEB COLORS - This is a long list of colors commonly used by web sites and other programs (with a few additional colors added to it). This is list shows additional information about each color in columns for the Red, Green, and Blue values that generate the color (limits are 0 to 255). The list also displays the color value as Hue (0 to 359), Saturation (0 to 100%) and Luminance (0 to 100%).
This list is sorted alphabetically by the Color Name but can be resorted at any time by clicking on the column title or pressing the [Ctrl] key plus the first letter of the column title (e.g. [Ctrl+H] to sort by Hue). Resorting the list can help group similar colors (especially when sorted by Hue, Saturation or Luminance). Since a lot of the colors share similar settings, the sort orders are remembered and stacked on top of each other (e.g. [Ctrl+H] then [Ctrl+S] will sort by Saturation and then Hue within colors of the same Saturation).
Note that while only the Named Web Colors list shows the addition columns for Red, Green, Blue, Hue, Saturation, and Luminance, all the lists have this information and can be resorted by using the [Ctrl] + key combinations.
The color currently assigned to the setting being changed will be included on the color lists. If the current color is available on the predefined list, then the Color Name will have letters "(current)" added to the end of it. If the current color is not available, then it will be added to the top of the list with the Color Name of (current).

A new Color Picker routine has been added (replacing the old one provided by Windows). This function can be accessed by right clicking or pressing [F3] on the color list ([F2]/[Ins] also work). It can also be brought up directly (bypassing the Select Color list) by pressing [Ctrl+F3] from anywhere that [Enter] would normally bring up the Select Color list.
- The Color Picker displays 6 color selection boxes. Each box is based on the current color and then shows variations of the other 2 settings for that color. The top 3 boxes are based on fixed Blue, Green, and Red values while the bottom three are fixed Luminance, Hue, and Saturation (respectively). For example, if the current color is Olive (RGB(128, 128, 0) than the upper left box shows all the variations of Red and Green for Blue=0 while the next box shows all the variations of Green and Blue for Red=128. Clicking anywhere in these boxes will set the color and then change all the boxes to reflect the new selected color. Note: The best way to pick a color compatible with the current color is to select it from the Sat/Lum box in the center of the screen.
- The program always uses RGB as the based so changing an H, S, L will calculate the new RGB value and then display the corresponding HSL values. There can be rounding errors in this. Also setting L to 0 sets all to 0 (black) no matter what the other settings are.
- When the color picker first opens it increments the values of the color choices in steps of 16. The Zoom feature can be used to reduce this down so the increments are 8, 4, 2, or 1. The zoom factor is the opposite of this (1X is increments of 16, 16X is increments of 1). The zoom factor can be changed by either selecting the Plus and Minus buttons or by pressing [Ctrl+Plus] and [Ctrl+Minus] on the Number Pad portion of the keyboard.

The value of a Color field in an XML file used to display information in Keystroke (e.g. Toolbars, Line Item Detail Box, Transaction Search, etc.) can now use the colors set in the Edit Colors function in the Configuration Manager. To use one of these colors, set the color in the xml file to be the name as it appears on the list but with spaces removed and the word "Color" added to it. For example to set a font to display as whatever the "Special Text 3" color is set to, use: "SpecialText3Color". Also, the number of the entry can be used as displayed on the message bar (e.g. Special Text 3 can be reference as: -44.

BORDER STYLES - SHADING BACKGROUND WINDOWS Keystroke now supports the shading of the windows that are behind the current data entry or message window. The new Modern border style automatically does this but it can also be enabled on the other border styles as well. The way the shading is done is controlled by 2 separate settings: PercTint and TintColor. Both settings can be changed by using them as startup switches (either on the command line or in the WS.INI files).
- PercTint= - All the windows behind the current window can be shaded to help draw attention to the current window. The PercTint= parameter determines the amount of shading that is done. Setting to 100 (which is the default) will cause no shading, less then 100 will darken the background information, and number larger than 100 will lighten information not included in the current window.
- TintColor= - Same as PercTint except this is a color to merge the background screen with. It accepts any color. Use a light color to lighten, a darker color to darken. (Default is -1 = not used). This can be combined with PercTint to both change the shade and the color.

Note that most of the changes made to add this functionality require the system to have both the Keystroke Advanced POS and the MultiStore licenses. Please see WhatsNew.doc for a more detailed description of how to use the new MultiStore Purchase Orders features.

POR - Parameters - MultiStore - (AO) - If the system includes the MultiStore license and more than one store has been set up in the Store Link module, then the MultiStore Parameters function will be available under the Transaction- Parameters menu in the Purchase Manager. This function can be used to turn on MultiStore Purchase Orders, set the default transaction type to MultiStore Order, set whether or not the Inventory Max Qty field is included on the MultiStore Allotments screen for each line item. and to set the Security Level required to edit the Re-Order Qtys (MinQty, OrderQty and MaxQty fields) from the MultiStore Allotments screen.

POR - MultiStore Orders - [Ctrl+M] = The hotkey for changing to the MultiStore Order transaction type is [Ctrl+M] (or the Special-Transaction Type menu can be used). However, the transaction type cannot be changed to, or from, a MultiStore Order once a line item has been entered on the purchase transaction.

POR - MultiStore Order - Uses a new data entry screen called MultiStore Allotments. This screen will automatically appear as line items are entered on a MultiStore Order. It can also be brought up manually by pressing [Ctrl+F9] or [F3] from any column the line item (or [Ins] from the Qty field). It will also automatically pop up each time the cursor enters the Qty field. (Use [Ctrl+F3] to bring up the Inventory Database Screen, or [F3]again from inside the Allotments Grid.)

POR - MultiStore Orders - When entering a MultiStore Order, the program will always run as if the Line Item Entry Parameter - "Confirm Qty" is On.

POR - MultiStore Orders - Matrix Items - When entering a MultiStore Order, the Matrix Grid will always be in single selection mode but will immediately pop back into the matrix grid after each matrix item is selected (press [Esc] when done electing Matrix Items for the current Inventory Item).

POR - MultiStore Orders - The MultiStore Allotments screen available in MultiStore Orders can be used to change the MinQty, OrderQty, and MaxQty fields based on the security level of the clerk. The security level required to do this is set in the Parameters-MultiStore function.

POR - MultiStore Orders - The list of stores that can be used on MultiStore Orders (and the information on how to access their data sets) is retrieved from the KSSTORES.DAT file in MultiStore Data directory (usually the DATA\ directory below the Keystroke program directory. The settings in this file are made through the Setup Stores function in the Store Link module.

STR - Stores-Setup - (AO) - Added the new field "Exclude from MultiStore Purchase Orders". This is used by the Purchasing Manager when displaying the MultiStore Allotments list.

POR - MultiStore Orders - The Transaction Number on MultiStore Orders uses a different counter then the other Purchase transaction types. The transaction number on the master MultiStore Order will also be used on any Purchase Order that is saved to the individual stores. The program uses this number to apply any changes to the individual store's Purchase Order that are made on the master MultiStore Order. This number should be set to a number range different than what is already in use at the individual stores. The setting is changed by switching to the MultiStore Order transaction type and then using the Transaction-Number/Date function and selecting "Yes" to change the number counter for future purchases.

POR - MultiStore Orders - Matrix Items - If a matrix item has not been initialized in one of the stores, then the Allotments list will show Null Symbol on that store's row. The [F3] key to edit function can be used to initialize the matrix item in that store (and apply any required changes).

POR - AutoOrder - Added support for use with MultiStore.

STARTUP SWITCH - MSDataDir - Added the startup switch MSDataDir (default is MSDataDir=DATA\). This directory is the location of the MultiStore data files (e.g., KSSTORES.DAT, KSST*.DAT (store transfer files), etc.). In previous version these files were always stored in the DATA\ directory below the program directory (which is still the default). This switch can be used when it is more convenient to have these files stored in a different location. WARNING - Every data directory that is part of a single MultiStore system must have this parameter pointing to the same physical location.


BUMP KEYS - DATES - While in a date field, the Bump Up/Down keys ([Ctrl+Up], [Ctrl+Down]) can now be used to add or subtract one day from the date currently being displayed.

COMMENTS - The title bar of the comment box will now show which type of record the comment is for.

INLINE CALCULATOR - The operator for Margin ("M") was only working with an capital "M", it now works with both lower case and upper case ("M" or "m").

SCREENS - Changed the technology used to draw the group boxes (frames) that are sometimes placed around similar fields to reduce the screen flicker that sometimes occurred when moving from field to field.

MENUS - Added additional error checking when displaying Menu Lists.

RECORD LIST BOXES - FILTER - Added a "Whole Word Only" parameter to the Contains filter available in Record List Boxes ([Shift+F2]). If this is on, then the program will check the characters before and after the matching characters in the record. If the preceding or following character is a number or a letter then that match will not be counted. Note that this parameter is not available when filtering on certain field types (numbers which are always exact match anyway) or if checking for blank.

RECORD LIST BOX - FILTERS - Improved support for filtering on Date fields. The program will now convert the text entered in the filter to a date and the program will then only display records that have that same date in the field being filtered on.

RECORD LISTBOX - Added an "Enter Date" button to the No Records Exist message when the Previous and/or Next file buttons are available. Selecting this button will bring up the Enter File Date box allowing the program to jump directly to the file that contains the specified date.

ERROR MESSAGES - Changed the title of the catch all error message to be "Keystroke POS" instead of "Keystroke for Windows".

TCPIP COMMUNICATIONS (Used with KeyPay) - Improved the error checking and logging so a break in the communications with KeyPay will log the error and do a better job of not losing the current transaction.

STARTUP - /G Switch and Registration Check - The program will no longer skip the registration check (shows "Help Us Help You" message if not registered) if the /G switch is used (go directly to another module). However, if AutoRun=1 is used then it will still skip this message since it is mostly likely part of a script or batch process.

MACROS - EDIT - @ToggleFlag - The list of variables that appears when the @ToggleFlag function is selected is now limited to those variables that support the @ToggleFlag command.

TOOLBARS - If a toolbar button does not have a macro then the text on the button is used as its macro. However, the program will now ignore the text if it is "New Button" so that new buttons will not cause unexpected results if pressed.

DATABASE PARAMETERS - UNIQUE INDEXES - Added parameters to have the program check that the Customer Phone and Customer Web ID fields are checked for other customer's with the same entry.
- V7 CONVERSION (from v6.xx) - If "Split Transactions On" was set to "Size Only", then it will now be set to whatever the best fit is for the data instead of always defaulting to monthly.
- TAX FORMULAS - Since "Round on Each Item" should normally be On when "Included in Price" is On, the program will now turn it On/Off when "Included in Price" is changed (unless it has already been set to be different.
- EDIT PRICE FORMULAS - Changed the maximum number of decimal points on the Minimum Sale field to match the current settings for the type of value it is representing (Qty and Weight use 3 decimal, all others are based on the Money Decimal points set in the Parameters function).
- EDIT PRICE FORMULAS - MIX AND MATCH - Changed the maximum number of decimal points on the Qty field from 2 to 3.
- PRINTERS - PORTS - Added the port "PDF:". A printer set to use this port will create a .PDF file instead of sending the output to the printer (or displaying it on the screen). When the port is selected, the program will ask for the filename to send the printout to. The path on the filename is relative to the Keystroke Program Directory. The tokens %M, %R, and & can be used to have the program automatically generate different filenames depending on the Machine Number, Register Number and Transaction Number. Note that when printing a form, if the "Print To Screen" parameter is turned on then a .pdf file will not be created.
- PDF PRINTER PORT - The PDF printer port does not support line draw characters and changes them to dash and plus characters. It is better to use a graphic as the background on the form.
- PRINT BUTTONS - Increased the maximum length of a Print Buttons name from 16 to 32 characters. (This required a conversion of the FORMS.DAT file).
- FORMS PRINTING - Output Filename - Added support for tokens %M (Machine Number) and %R (Register Number) in the port name of a printer when printing a form. This is similar to the & token which is replaced with the transaction number. These new tokens are to be used when printing forms to a file that will then be used by other programs and there is a need to keep the forms printed from different registers separated.
- FORMS PRINTING - While the program is printing a form, the name of the form will now be displayed in a message box in the middle of the screen instead of only on the message bar at the bottom of the screen.

- INVENTORY - The Percent Profit Calculator always starts in the same mode as the database setting "Show Mark-Up instead of Profit Margin". In previous releases, changing the mode while in this function (by pressing [F9]) was also changing the parameter. It no longer does this and reverts back to the mode based on the parameter next time it is used.
- INVENTORY - The Serial Number List is now titled "Selectable Comments" if the item is not marked as serialized.
- INVENTORY - Record List Box - Can now press [Ctrl+Shift+F9] to display the Serial Number (or Selectable Comment) list for the current item.
- INVENTORY - Added support for the MaxQty and OrderInterval fields.
- MATRIX TABLES - Changes made to Matrix Tables are now logged in the MtxChngs directory even when not in the Database Manager (previous to this, only changes made while in the Database Manager were being logged).
- CLERK - If the current Clerk's security level is greater than 0, they can no longer edit any information on clerks with a security level less than their own (but they can still view the information).

- INVENTORY DATABASE - If grouped by is set, the report will run a bit faster as it now checks if the item matches the "Group By" setting before spending any additional time loading/analyzing the record.
- SECTION NAMES - On reports that have Customer/Contact or Vendor information available from a transaction being reported on will now label that section as TransCustomer, TransContact and TransVendor to help avoid confusion where another section could already be name Customer/Contact or Vendor.
- RANGE - The Range fields on reports only accept up to 12 characters. If the End Range field is entered by selecting from a Record Listbox and the new entry would be more than 12 characters, the program now makes the 12th character be last possible character which is character #254 (a box) to make sure all records will be used.
- PAGE BREAKS - If "Sub-Total when Value Changes" is On, then the "Separate w/ Page Breaks" parameter will start a new page after the sub-total prints instead of with each item printed.

- AGE VERIFICATION - Added support for North Carolina 2D barcodes. Also confirmed support for the driver's licensing from the following states: Washington, West Virginia, Hawaii, Texas, Indiana, Florida, and Alabama.
- SCRIPTS (also in Purchasing) - When a script adds another line item, the line item screen will now be updated while the script is running so the item may be seen in the background (the program use to wait until the script was finished before updating the displayed line items).
- STARTING/ENDING SCRIPT - When selecting items from a list and prompt for Qty is on, if the Max Qty is set 0 then the program will exit the script after the first item is selected. To have it keep asking for items, set the MaxQty to a large number (e.g. 9999).
- PIN PADS/SIGNATURE CAPTURE - Added support for the IDTECH Sign&Pay PIN Pad / Signature Capture device which uses End to End encryption with Mercury Payment Systems (merchant account with Mercury must be set for E2E/MToken). - DETBOX.DOC - Added ability to display fields for Profit based on Last Cost and Fixed Cost in the line item detail box.
- PARTIAL AUTH CAPTURED PAYMENTS - If a payment is processed through the Keystroke Payment Module (KeyPay) and it is approved for an amount different than what was requested, the program will mark it as a Partial Auth payment.
- SECURITY LEVEL - Added a security level under Sales Manager for "Delete New Partial Auth Payment" (default=8). This allows a clerk to delete a Partial Auth Payment that has not yet been saved even if they don't have the "Edit/Delete Captured Payments" security.
- CUSTOMER NAME ON PAYMENTS - The Customer Lookup Name will now be saved with each payment so it is available on reports. Added the field Customer Lookup Name to the list of payment fields on Reports and Forms. (Note that this field will be blank on payments saved prior to this version.)
- SIGNATURE CAPTURE - If a signature is requested but not received, the program will now clear any keys in the keyboard buffer before displaying the "Signature NOT Captured" message.
- AUDIT PAYMENTS - The program will now save an audit entry when a payment is manually deleted from a sales transaction (if the "Transaction Deleted/Recalled" audit parameter is On) or if a payment on a sales transaction is changed (if the "Transaction Changed" audit parameter is On). Note that these audit entries are made before the transaction is saved. If the transaction is not saved (changes are aborted/lost) then the audit entries will still be there even though the removal or change of the payment was never saved.

- DEPOSITS USED REPORTS - Added a new report which lists payments that may have contributed to the Deposits Used amount printed on the Sales Summary report. Note the this amount is actually just a calculated figure of the difference between the total sales and the total payments. This amount should be caused by payments where the invoice is part of the closeout but the payment is not (or the payment is part of the closeout but the invoice is not) due to their Date, Register Number, have been Deleted, or the Payment Type no longer exists. The report is turned on using the Closeout-Parameters-Report Settings buttons. Turning on either the "Deposits Used (when needed)" or the "Deposits Used (always)" parameter will cause the Deposits Used report to be printed with the other closeout reports. The "(when needed)" setting will only print the report if the Deposits Used amount on the Sales Summary report was not 0.00 (note that if the Sales Summary report is not printed then the "when needed" report will not print).

PURCHASING - DETAIL DISPLAY FILE - Changed the setting for the Detail Display file to be separate for each transaction type. The setting is changed under Parameters-Display (and Parameters-MultiStore).
- INVENTORY MAX QTY - If Max Qty on an item is set, then the program will limit the Qty ordered on purchases to not have the resulting QOH exceed this limit. The resulting QOH is calculated as the current QOH, plus the Qty currently On Order, plus the new Qty being ordered. When the Qty is automatically set the value is adjusted without warning. If the Qty is manually edited on the line item, the program will display a warning before changing the Qty to the amount to match the Max Qty limit.
- INVENTORY ORDER INTERVAL - If the Order Interval on an item is set, then when that item is added to a purchase transaction the program will display a warning message if the item has already been ordered within the specified number of days. The warning message asks whether or not to remove the line item.
- AUTO ORDER - Added the setting "Ignore Inventory Order Interval". If this is set the inventory item's order interval field is not checked and items may be included even if they have already been recently ordered.
- RECEIVING FUNCTION - Added the ability to use the Alternate Search functionality of the inventory database to locate an Open Order on a field other than the current field. For example, if a Product Code is entered in the Class field, the program will first search the Class field on the Open Order list, when the item isn't found, it will then search the Inventory database where the Alternate Search settings should allow it to find the item based on Product Code, the program will then search the Open Order list for that inventory item based on Stock Number.
- LINE ITEM DETAIL BOX - Added support for using [Right+Click] to select which PORDET#.DAT display file to use and [Left+Click] to automatically switch to the next PORDET#.DAT file.
- DEFAULT TO PURCHASE ORDERS - Changed the name of the Display Parameter "Order-Recvd Mode" to "Default to Purchase Orders" since that is what it was mainly used for.
- DEFAULT SCREEN MODES - Added the ability to set the default screen mode (what columns are displayed) for each transaction type (except MultiStore Orders which only support a single Qty column). The setting is changed by using the Screen Modes button in the Parameters-Display function.
- NEGATIVE PURCHASE INVOICES - If there are no payments on a negative purchase invoice, the program will no longer automatically add a "Change Made" payment (it will just leave the Purchase Invoice with no payments on it).
- SECURITY LEVELS - Added Purchase Manager security levels for changing the Number and Date on purchase transactions.
- UPDATE PARAMETERS - Added the Update parameter "Update Transaction's Clerk when Editing". If this is on, then when editing a transaction, any change (or function that can create a change) will cause the clerk for the purchase transaction to be set to the current clerk (the one that made the change) instead of the original clerk (the one that created the transaction).
- SCREEN MODE ON EDIT - When the Transaction-Edit function is used to bring up a different transaction type than is currently being displayed and the new type does not support the current display mode, the program will now switch to the default mode instead of the next available display mode.
- EXPECTED DATE - Changed name as listed on fields lists from DateExpected to ExpectedDate.
- DUPLICATE SERIAL NUMBERS - If the "Unique Indexes"-"Inventory Serial Numbers" parameter is On, then the program will now check for duplicate serial numbers when entering them on receiving purchase transactions and returns on sales transactions. It will also check against the current list on the inventory item as well as any serial numbers already entered on the transaction for the same item.

- CREDIT MEMOS (Advanced Only)
- PARAMETERS - Added parameters for entering Credit Memos in the Sales Manager. The parameters include a separate payment type, and check boxes for "Prompt for Payment Type" and "Display the Customer's Current Balance Due". Also added the ability to display the "Amount Of Over-Payment" (above balance due) which can then be used to give back change.
- POSITION OF PAYMENT ENTRY BOXES - The program now remembers the position of Payment Entry Boxes for Credit Memos separate from the standard position used when entering a sales transaction.
- BILLING PERIOD - Added "Prev. Month" and "Next Month" buttons to quickly change the billing period. These buttons will change the period to be the first and last days of the month.
- ROA PAYMENTS/CREDIT MEMOS - Added support for Comments on ROA Payments (and Credit Memos).

- SERVICE ITEMS - The QOH and TotalVariance fields will now be updated on Service Items when a variance is posted.


- NUMBER FIELDS - After editing a numeric field, the program was displaying the new number using the maximum number of decimal points for that field but was not changing the internally saved number to match the decimal point limitation (This was only on non-monetary fields. Price, Cost, etc. fields were already saving the number based on the maximum number of decimal points set for them).
- ROUND - Was not working if fixed decimal was turned on. It will now add a period after the new number when needed.
- COMMENTS - SCROLL BAR DISPLAY - Fixed the scroll bar properly showing that the cursor has reached the end of the comment.
- DATES - 4 DIGIT YEAR - If a date field was changed to use a 4 digit year, the program was still converting it internally to 2 digits which could cause the century to be changed. It will no longer do this if the date is more than 20 years in the future or 80 years in the past.
- RECORD LIST BOX - INVENTORY/MATRIX - Filter on any of the User fields was not working correctly.

- TAX TABLES - The warning about deleting a tax table was not showing the tax table code and name correctly.
- TAX TABLES - If using asterisk ("*") in the tax table codes, the program was not allowing a more specific tax table to be created if another tax table matches the new code (SC would be blocked if there was already an S* table). This check now allows all but exact matches to be created.
- EXPORT - Filters - The field numbers displayed in the list box were 1 higher than they should have been.
- EXPORT - Payments Received/Made - Payments that had been deleted were being included in the export.

- MATRIX TABLES - EDITING - If the file MtxChngs.tmp in the MtxChngs\ sub-directory was locked, the program was trying to proceed with allowing Matrix Tables to be edited instead of waiting for the file to be released.
- VENDORS - The Vendor record list boxes where sorting by Lookup Name but displaying Company Name. They now display Lookup Name. Also added support to display the list by Company Name and Rep Last Name.
- ADDING RECORDS - The program was sometimes requiring a new blank record to be saved since some numeric fields would show as having been changed when they had not.
- SEARCH AND REPLACE - The program was not allowing some fields to be updated (for example Customer-Email).
- INVENTORY - SCRIPTS - If adding a new inventory item, the program will now prompt to save the record before bringing up the Scripts function.
- CONTACTS - When adding/editing Contacts and switching between data screens, information entered on one screen was not being copied to the other screen unless it was first saved.

- INVENTORY - SALES ANALYSIS - Fixed Error 3 if Roll Child into Parent was On.
- EDITING - pasting in information from other programs (including some Keystroke functions like Calendar and Calculator) was not working.
- NEGATIVE SIGNS - Negative signs where sometimes being converted to minus operators. This would mainly affect relative dates where -10D would be interpreted as subtract current value from value of date 10 days from now instead of just insert date 10 days before now.
- REPORT VIEWER - Setting the startup switch ReportWindowsState=2 (or 1) would cause an Error 384 when the report viewer was trying to display.
- CUSTOMERS - Sorting by Customer-LastName was not working.
- CUSTOMER ACTIVITY - Transaction where not being printed if the date range spanned more than one transaction file.
- CUSTOMER ACTIVITY - If the "Include All Open Items" parameter was on, then the program was searching for ROA Payments based on the customer's Oldest Open Invoice Date even if that date was after the report's starting date.
- EXCEL - The program was not including the Headings from the SubTotal lines on reports printed to File-Excel.
- MACROS - When printing a report to the screen from a cue or macro the program was sometimes leaving blank report viewer on the screen when the report was closed.

- DISPLAY - The window used for On Screen signature capture is not attached to the Keystroke windows and can be moved to outside of its area. This was sometimes causing it to be covered up by the Keystroke screen. Also, remnants of its buttons were being left on the Keystroke screen.
- SIGNATURE CAPTURE TO SCREEN - The window that the signature is entered in will now be included in the Task Bar so it is easier to get back to it from another program. Also fixed the display of the buttons (note that the buttons are clickable only, you cannot tab to them).
- WTH GRATUITY PAYMENT - If signature capture is turned on, the program was prompting for the signature each time the payment was processed. If the signature was then not entered, the original would be replaced with the No Signature entry even if a signature already existed. The program will no longer prompt for the signature again once one has been entered on the payment. Also added a Signature Button to the KeyPay payment entry screen. This will appear when there is already a signature attached to the payment.

- DISPLAY - 1ST COLUMN - When the first column was set for Entry by AltID#, the label "ID:" was not being displayed so it would look like the entry mode was Description.
- TRANSACTION BROWSE - PREV TRANSACTION INVALID - Using the previous transaction function again after the program has already searched for and not found any earlier transactions would sometimes cause an invalid transaction to be loaded.
- SERIAL NUMBERS - When editing a transaction that had already created another transaction for items shipped with serial numbers on them, resaving the transaction would sometimes put the serial numbers that had already been shipped back on the inventory item. For example, a Sales Order with qty 4 ordered of a serialized item where qty 2 are shipped first, and then the rest shipped at a later time would put the first two serial numbers back on the inventory item's serial number list.
- SECURITY LEVELS - The Security Level check for setting the Qty of a line item to 0 was not working (it was allowing this to happen even if the clerk did not have the security to do so).
- RELOAD LINE ITEMS - Component Items - The Reload Line Items function was not updating component items. Also, it was not checking the Roll Up Price and Roll Up Cost parameters and so the Price/Cost on the main scripted item would just be the amount from its inventory record and would not include the price/cost of its components.
- MACROS - Set PriceTable - The "@SET PriceTable=" macro command was not working while in the Customer Entry box.
- VOICE AUTH - If a credit card was manually entered on an encrypted Pin Pad device and the authorization failed, the card information was being erased forcing it to be entered again if a Voice Auth was then used.
- CUSTOMER - SHOW HISTORY - The title section of the report was repeating information. Also, cleaned up sections that for transaction types where there were no transactions.

- START/END SCRIPTS - Using an Add Item from Range script on a Starting/ Ending script was not keeping track of the number of items selected so the Min/Max settings were not working correctly.
- ROLL UP COST - The parameter for CostRolledUp was not being saved with transaction line items so that field on reports/export was always printing as not set even if cost was rolled up.
- PRICE FORMULAS - COMPONENT ITEMS - Component items (from scripting) where being included in the total purchase amount for a price code which could cause items to be discounted when the price code total had not yet met the minimum (due to the original base price of the component items).

- PRINTING - Printing old purchase transactions would sometimes show the Clerk Name and Initials as being the current clerk instead of the clerk that originally entered the purchase transaction.
- AUTOORDER - If an item's Order Qty was set to reorder a value that was less than the minimum qty, the program was sometimes including the item on the order but with a qty of 0 (it no longer adds items to the order if the order qty is 0).
- ORDER DATE/TIME - The Order Date/Time field was sometimes displaying as blank instead of the current Date/Time.
- EDIT MATRIX ITEM - Editing a Matrix Line Item's record (-Edit on the line item) was resetting the Order Qty like it was being added to the Purchase Transaction instead of just editing the Matrix Item's database record.
- EXTENSIONS MENU = The Utilities-Extensions menu functions were not working.


- QUICKBOOKS - STORE TRANSFERS - The program will now include the Parameters - Class setting from the GLLINK.DAT file from each store that is involved in the transfer. If any of the stores have anything in the Class field, then all the posting to QuickBooks will include this field even if it is blank in some cases.
- SAGE BUSINESSWORKS - Changed the default filename for Sage BusinessWorks to GXLFER.CSV (instead of GLXFER.DAT) to match the requirements for BusinessWorks 2012.

- SETUP - Added line numbers to the list of fields to make it easier to use.

- EDITING - Copy/Paste Fields - Added the ability to copy and paste transaction fields (use to work only with text fields).
- EDITING - Max Body Length - Added a new parameter under Body Length for Max Body Length. This can be used to increase the length of the body section when multiple pages are needed. Since the Summary section is only printed on the last page, this setting is used to allow the line items to continue printing down into the area of the page normally used by the summary section. When setting this parameter, you must leave 2 lines for the "Continued on next Page" message (if paper length is 60, set this setting so it stops before line 58). If a form is printed with a number of line items that end up using this setting, the program will ensure that at least 2 line items always print on the last page. If Max Body Length is left at 0 (or any number less than the Body Length), then the Body Length setting will be used instead.
- EDITING - Field Flags - New Page - Added a new flag called "Start New Page after this field". If this is on, the program will print the "continued" message and go to the next page and continue printing from the top of the new page (it will not reprint the Header section as it does normally). This flag was added for MultiStore Purchase Orders so the detailed delivery information for each store can be printed on the last page. (see MSP1LU.POR for an example).
- SAVING - When saving a form, the filename is now limited to 8 characters since that is all that is stored in the Print Buttons setup file. The path and extension are fixed based on the form type being edited.
- STATEMENTS - Added the ability to print Invoice Shipping fields on statements.

- EDITING - Added the ability to move a group fields to the right (or left) using: [Ctrl+M]-move Right, and [Ctrl+U]-move Left. The program will move all fields that are located to the right and below the current cursor position.
- SAVING - When saving a database screen the program will now ensure that label fields are not linked to data fields (which could cause an error 63 when merging record data).

- NEGATIVE QTY - If the qty entered is negative then the program will now display a message stating that negative qtys are not allowed and then set the Qty back to what it was before.
- OUT OF STOCK - If the "No Out of Stock Transfers" parameter is on, then the program will now sum the total qty for all the line items that are the same as the current line item before checking against QOH.
- DATA DIRECTORY - The MultiStore extensions (including StoreLink and the other utilities that come with it) no longer support data being stored in the Program Directory, only in the DATA\ directory below the program directory (e.g. C:\KESYTROK\DATA). Data should never be stored in the program directory anyway so this should not be a problem for most installations.
- UPDATE INVENTORY - The parameter for updating the Base Price field is now also used for updating the Qty Pricing (XFor) fields as well.


- LEVELS REPORTS - The "In Stock Only" and "Exclude Service Items" parameters were not working.

- COLUMN ORDER - The order of the columns would be different when loading the data depending on what the last sort order was. This would cause problems if ever sorted by Base Price.

- AMOUNT DUE - If converting from one transaction type to another the amount due on the transaction would not be correct if the transaction types had different settings for Update Customer Amount Due. Note that RECMRG.EXE should not be used for converting transactions anyway. The RecChrg.exe program is the correct product to use for copying a batch of transactions to another transaction type.

- SIGNATURES - Signatures attached to Sales Payments were not being extracted.
- ROA COMMENTS - Comments attached to ROA payments were not being extracted.

- License Issue - Storemrg.exe was not checking the license files correctly. It now properly blocks its use if the license does not include the MultiStore Utilities.

- SCREEN REFRESH - Some changes to buttons and toolbars were not always updating the screen right away (changing the size of the window to force a redraw fixes the display).
- TOOLBARS - Graphic Files - If a graphic file was coming from a subfolder of the KSImages directory, then "KSImages\" needed to be in the path when it really should not be.

- Posting with more than one negative amount was not posting correctly.

************************ END OF VERSION CHANGES/FEATURES ********************

** Program changes made prior to v7.15 **
** Changes prior to 03/12/13 - 7.15 build 20 are in the file README71.TXT **
** Changes prior to 09/21/11 - 7.10 build 10 are in the file README7.TXT **
** Changes prior to 03/05/08 - 6.50 build 10 are in the file README63.TXT **
** Changes prior to 02/02/09 - 6.30 build 10 are in the file README62.TXT **
** Changes prior to 01/26/07 - 6.20 build 10 are in the file README61.TXT **
** Changes prior to 03/28/06 - 6.10 build 10 are in the file README6.TXT **
** Changes prior to 05/03/05 - 5.20 build 21 are in the file README52.TXT **
** Changes prior to 05/10/04 - 5.10 build 10 are in the file README51.TXT **
** Changes prior to 01/03/03 - 5.00 build 20 are in the file README5.TXT **

MODULES: (Description of Codes used in this document)




Logo Screen



Sales Manager



Database Manager



Variance Module



Purchase Manager



Report Manager



Label Manager



Account Receivable



Configuration Manager



Closeout Manager




TouchScreen Editor



v4.2 Report Manager



v4.2 Label Manager



Store Link



General Ledger Link












Forms Editor




Keystroke Payment Module



Keystroke Mail Module



Keystroke POS software is owned by Specialized Business Solutions ("SBS") of Long Beach, CA and is protected by United States and international copyright laws (Copyright (c) 1987-2012. All rights reserved).

For more information about Keystroke POS or other products published by Specialized Business Solutions, call (800)275-4727 or (970)262-1720 or visit our web site at www.KeystrokePOS.com

******* The most recent changes are listed near the top of this file *******

Keystroke POS Point of Sale Software

Home | Products | Support | Dealers | Downloads | Search | Contact | Questions?
Tech Support | F.A.Q. | Updates