Keystroke POS Go to the Keystroke POS Home Page Keystroke POS

Keystroke POS Version 7 Read Me

Current version is 7.00 Build 74 - 10/25/11

Thank you for using Keystroke Point of Sale.

This file contains a listing of changes made to both Keystroke Advanced POS v7.00 and Keystroke POS v7.00 program and its modules made since the release of v7.00 Build 19 (beta release) on 02/14/10.

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

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

*IMPORTANT FIXES*

- TRN/AR - Signature to Screen - Displaying a signature on the screen (either manually or automatically) was leaving the standard data output port set to screen. This would cause other devices (Cash Drawer, Customer Display, Security Feed) to not receive any information if they were set to use a standard port (LPT, COM, FILE). Devices going through special drivers (including OPOS) were not affected.

- CNF - FILES - BACKUP - Old Standard (PKZip) - The settings screen was missing the "New Files Only" parameter so the "Include Subdirectories" parameter was controlling it and the batch file that ran the PKZip command was never including subdirectories.

- DBM - Matrix Items - If editing the Matrix Database directly in the Database Manager (not going through an inventory item) and the Reset Avg Cost to Null procedure was used (by setting the cost on one of the items to Null), then the program was setting the cost to -2billion instead of Null. (Workaround was to only set the average cost when accessing the matrix item through inventory.)

*OTHER FIXES*

- AR - Bad Reference Numbers on "Always Masked" payment. If the default payment in AR did not have the "Always Masked" parameter on but the payment type that was used did, then the Reference field would not decrypt correctly when editing the ROA payment (or printing the reference on reports or statements). Note that this is a display issue only, the payment would still be captured, saved, and applied correctly.

- KSIL#.DAT - QOH Lookup - If there was a large gap between the highest StockNumber and the lowest StockNumber (over 100,000) then items with lower stock numbers were not being found in the KSIL#.DAT files when using the Multistore QOH Lookup function ([Shift+F5]) in Keystroke.


10/14/11 - v7.00 Build 73

- POR - When back calculating the cost of items from the extended cost, the program was using the Max Decimal settings for Price instead of Cost.

- IMPPOR - Looking up Inventory Items - The program is suppose to only lookup the inventory item once on each line item as it is imported. It does this when it reads in the first searchable field (StockNumber=, ProductCode=, etc.). However, the program was not flagging the line as already having done this search so it was repeating it for every searchable field that was being imported. This could cause it to select the wrong item since importing CLASS= (or a similar field) would often have several matches and the program would just select the first one on the list.


10/04/11 - v7.00 Build 72

- TRN - SubTotal Tax Districts - The SubTotal Tax Districts on forms (receipts/invoices) was not working (from build 71).


08/24/11 - v7.00 Build 71

*CHANGES*

AR - Negative Payments - While in general, negative ROA payments should not be entered (and were completely blocked starting in v7.00 build 65) the program will now allow them if the payment type being used does not have an Authorization Method assigned to it.

TRN - Customer Entry - If the parameter to display the Customer Note field in a message box is turned on, then the Contact Note field will now also be displayed in a message box (if there is one).

TRN - KeyPay - EBT Payments - Added the ability to enter the Expiration Date from an EBT card when processing through KeyPay and the card number is being entered manually. This is based on the "Show Exp. Date Field" parameter on the Sales Payment Type.

CNF/TRN - Authorization Methods - KeyPay - EBT - Added a Check Balance button to the KeyPay authorization method if the type is set to EBT. If this parameter is on then the payment entry screen will include a Check Balance button.

TRN - Transaction Copy - The program will now display a message before copying a transaction from the Transaction-Copy function. This is to help the clerk recognize that the Copy (and not the Edit/Print) function was used.

*FIXES*

- AUDIT - KEYSTROKES - If the clerk was changed, the audit entry for the keys recently pressed would be recorded as being entered by the new clerk instead of by the old clerk.

- INVENTORY - Serial Numbers - When editing the list of serial numbers from an Inventory Item, Inserting a Line, Deleting a Line, or resorting the list was not displaying the new list correctly so it was difficult to tell which serial numbers were really there.

- KSR - Audit Report - Keystrokes - When the [Alt] key was pressed by itself, the report was showing it as "[-56]" instead of as "[Alt]".

- POR - Serial Numbers - When resaving a purchase invoice that has changes to the information on the line items, serial numbers that were added by the purchase invoice were sometimes being removed from its inventory items.

- POR/TRN/STR - When editing a transaction, if the serial numbers in the line item comment were manually changed by editing the comment, the changes were sometimes not being saved to the serial number list on the inventory item when the transaction was saved.

- TRN - Audit - When a previously saved transaction was edited and saved as a different transaction type, the audit entry was being recorded as a new transaction instead of changing the old transaction to the new type.

- TRN - Customer Entry - Comment box - If all the display fields are turned on, the customer comment box was being squeeze down in size to show no information. It will now always show at least 2 lines.

- TRN - Sales Orders - If shipping a Sales Order and the required payment was not made for the Invoice being created, the program would prompt for the transaction to be saved as the QuickSave Transaction Type but then would not allow the transaction to be saved (it was still requiring a payment to be made).

- TRN - Tax District Sub-Totals - If Tax District Sub-Totals were being printed on a form and more than one district was not marked to be Sub-Totaled then the program was adding to the printed subtotal amount for each one of those districts. The program now calculates the first Tax District subtotal to be the difference between the Transaction Subtotal and all the other Tax District Subtotals.

- INGENICO 6550 - The Ingenico i6550 does not clear the last signature from its memory so pressing "Accept" without signing returns the last signature. Keystroke will now guard against this by not accepting the exact same signature twice in a row.

*CHANGES TO UTILITIES*

- IMPTRN/IMPPOR/PRINTSAL - These stand-alone utilities were failing the license check if the system was licensed only for Integration Utilities or E-Commerce Utilities.


08/01/11 - v7.00 Build 70

** SERIAL NUMBERS / LOT NUMBERS (Advanced Only) **

SERIAL NUMBERS - Added the ability for each serial number to represent more than a qty of 1. In this case, while the term Serial Number is still used, it is considered to be a Lot Number since Serial Numbers usually represent a single item and don't require a Qty entry. This is done by adding a code to the end of the serial number entry (the "Lot# Qty Code") followed by the Qty (received, sold, or QOH).

CNF - Parameters - (Advanced Only) - Added the parameters "Lot# Qty Code" and "Add to Serialized Entry". The "Lot# Qty Code" is used to specify the characters in a serial number that label the Qty for the serial number (changing its use to that of a Lot# instead of a true serial number). When working with serial numbers, the program will check the serial number entry for the Lot#QtyCode, and if it exists will use the numbers after the code as the Qty (or QOH) for that Lot# (e.g., "AB153X Qty 4.5"). The "Add to Serialized Entry" parameter is used to automatically enter the Lot#QtyCode when a new serial number is being added. If the code exists on the serial number line but no characters follow it, then the number "1" will automatically be added to it. Serial Numbers without the Lot#QtyCode will work as they always have.

SERIAL NUMBER LIST - When displaying the list of serial numbers, the program no longer shows a line number on the the line after the last line. Also, if the last serial number is deleted (or blanked out) then the line above will will then be the last line.

*OTHER CHANGES*

DATE FIELDS - Using the lookup key ([Ins] or [F2]) from a date field will now bring up the Calendar with the date the field was set to instead of always starting on the current date.

ERROR.LOG - When an entry is added to the ERROR.LOG file, it will now also include any Trace information at the end of the entry. Trace information is maintained by the program to track what path was taken to get to the current function. This can be disabled by adding Trace=0 to either the command line or WS#.INI file.

LOGO - Online Product Registration - The "Help Us Help You" Registration message that appears if license has not yet been registered now includes an Online Registration button. If selected, the default browser will be brought up to the registration form at KeystrokePOS.com.

LOGO - PCI Compliance Message - This message will now include a list of the payment types that are causing it to appear (those that are set to use an out-of-date and non-secure authorization method).

CNF/POR - Security Levels - Added the Security Level "Receive Serialized Item w/o Serial Number". If the clerk does not match this level, then a serial number must be entered to match the total qty of serial numbers being received. (Default value is 6).

CNF/TRN - Sales Transaction Parameters - Complete Sale - Added a new parameter, "Give Change on Partial Shipment". If this is on, then when a transaction is creating another transaction due to items being shipped and the payment amount received is greater than the amount being shipped, then the program will give back change instead of just keeping the excess payment as a deposit for the rest of the transaction.

POR - Dates - The "Expected On", "Not Before", and "Not After" date fields now default to create a future date if the year is not specified. For example, if the current date is 8/1/11 and "9.15" is entered, these fields will set the date to "09/15/11" instead of "09/15/10" (which is what would happen on any other date field). Another example, entering "7/4" will give "07/04/12".

TRN - Payments on Sales Orders - When entering a payment that is marked for No Overpay (Change Back is set to None), the program will now allow for a payment amount that is more than what is being shipped (the balance will be kept as a deposit). The program will still restrict the total payment to be not mores than the amount remaining on the total order.

TRN - Age Verification - The program will play SoundBeep (default is DING.WAV) when the Age Verification screen comes up. The sound can be changed (or removed) by using the new SoundAgeVerification= parameter in the WS.INI file.

TRN - Display Signature - On screen receipt of signature now shows the customer number and name when available.

*IMPORTANT FIXES*

- POR - Serial Numbers - When resaving a purchase invoice that has changes to the information on the line items, serial numbers that were added by the purchase invoice were sometimes being removed from the inventory items.

- NAVMENU - Editing Buttons - The built in Navigation Menu Button Editor was not saving the XML text correctly so that the entire Navigation Menu would no longer appear if a button was changed with it. (Workaround is to manually edit the file NAVMENU.DAT).

- MTX - Matrix Tables - When an existing Matrix Table was saved, the size of the Matrix Code used for that table was not being set correctly. This would cause the name of the matrix item to not appear correctly and would cause the Pack-Remove Orphaned Matrix Items to delete the items that used that matrix table. (Workaround for previous builds is to delete the table and then add it back in.)

- LOGO - Matrix Tables - If the MTXTBL.DAT is from a release prior to v7.00 build 70, then the program will automatically check and correct the Matrix Code Length for each matrix table as the program loads. Once this is done, the file will be stamped as v7.00.70 and will not be checked again.

*OTHER FIXES*

- ASSIGN MACHINE NUMBER - If the buffer file "B7#.TMP" was locked, Keystroke would abandon the current machine number and try to assign another one. Now the program will try several times to access the buffer file and if it still cannot, it will display a message saying so and then ask how to proceed.

- CALENDAR - Fixed the use of [F10] to exit with the highlighted date.

- KSR - Inventory Sales Analysis - Sorting Department by one of the extend sort fields (e.g. Gross Profit) would cause the program to display a "Record Category [] not found!" message when printing the No Department entry (report still runs correctly, just shows the No Department name as blank).

- KSR - If a filter was too long to print on a single line, only the second half of the filter was being printed.

- KSR - Inventory Database - Including Serial Numbers when printing to a Delimited-Excel file was causing an error.

- NavMenu - Labels on the Navigation Menu were working the same as buttons. Therefore clicking on the title "Keystroke Advanced POS" would run the macro "SendKeys=Keystroke Advanced POS".

- POR - Import Line Items - If the cost being imported was not the same as the current cost on the line item (either because a different cost was imported or the cost was imported but the cost on the inventory item has changed), then the line item was being added as a new line item instead of updating the existing item. Change the program to only check the Stock Number, Class (for matrixing), and the Comment field to determine if a line item matches.

- TRN - Import Line Items - Fixed problem with matching Price to existing line item (same fix as POR but for Price instead of Cost).

- TRN - Sales Tax - Returns on Sales Orders - Sales Tax was not being calculated on line items with a negative amount when the items were being shipped (worked correctly when total is based on Order Qty (e.g. Invoices)).

- TRN - Print Buttons - if the default print button was not available (due to transaction type or security level) then the program would sometimes generate a memory error when searching of the next best button.

- TRN - Restricted Payment with Transaction Discount - If the Transaction Discount field was used, the Restricted Payment Total displayed on the the Line Item screen (usually FoodStamp) was not correct (the discount was being applied twice). This was a display issue only. The totals listed on the payment list in the Complete Sale screen were correct.

- VAR - Remove Un-Confirmed Line Items - When posting a variance that had Un-Confirmed line items (physical qty was blank) and Remove was selected from the Un-Confirmed Line Items warning screen, the program was not always removing all the un-confirmed items (it would not remove ones that immediately followed another un-confirmed item).

- WRITE AUDIT ENTRY - Changed the routine that switches to the transaction file when writing an audit entry to not generate a file is locked error when the KSTR####.DAT is already marked as being in Read only use by another program.

*FIXES TO UTILITIES*

- IMPTRN - If the UpdateBy= parameter is used and the transaction is not found, the program would sometimes get stuck in a loop searching for it.


07/08/11 - v7.00 Build 69

*FIXES*

- TRN - Mix and Match Price formulas - If more than one Mix and Match price formula was entered, in some cases only the last one would get used.

- TRN - Recurring Payments - When authorizing a recurring payment through KeyPay, the program was sending invalid data for the Cardholder Name. Merchant Warehouse would then give a blank response to the request, but processing through Mercury would still work since that field is not used.

- TRN - Recurring Payments - When copying a payment from a recurring transaction to a live transaction, Keystroke was not passing the correct information to KeyPay if the Clerk Number on the recurring transaction was not the same as the one on the payment being copied.


06/29/11 - v7.00 Build 68

*NEW FEATURES / CHANGES*

ERRORS.LOG - Added a new column of information to be printed. Column 3 will now show the name of the program/module that generated the error.

SYSTEM CHECK - CLERK MESSAGES - Changed the system check routine to only check a clerk's record for new messages if the clerk data file (KSCLK.DAT) has changed (based on its date/time).


06/28/11 - v7.00 Build 67

*IMPORTANT FIXES*

- LOGO - Error 75 (from build 66) - The program was generating an Error 75 when reading in a PRINTERS.DAT file that was either converted from v6 or was newly generated. (A workaround exists where the file can be edited by hand to change the characters "6.50" at the beginning of the file to "7.00".)

- CLOSEOUT - Error 55 (from build 66) - The Closeout-Parameters function would give an Error 55 if any print buttons were defined.

*OTHER FIXES*

- AR - Ingenico 6550 - The display was always showing "Register Closed" even when a card swipe was being requested.

- TRN - Parameters - Dataport - Changes made to Dataport parameters were not being used until another parameters function was saved or the module was reloaded.

- TRN - the SoundPriceIsZero sound was not being played if the Confirm Qty parameter was on.


06/24/11 - v7.00 Build 66

*NEW FEATURES / CHANGES*

SHOWSTATUS - Moved TransDir to below DataDir so both would have more room.

TRN - Price is $0.00 - When the program automatically moves to the price column due to the line item's Price being $0.00, the program will now play the sound set by the SoundPriceIsZero= switch (but the sound is not played if the program is set to Confirm Price every time). This sound will also play when the "You must enter a price for this item" message is displayed. (Since the default for this sound is no sound, these change will only be noticeable if the SoundPriceIsZero= switch is entered in the WS.INI file).

TRN - Restricted Payments - Changed the amount displayed next to Restricted Payments (those with Eligible Items formulas) to be the total amount remaining that can be paid with the payment (use to show the total amount on the transaction regardless of other restricted payments were already entered).

TOOLBARS - [FontScaleMode] - Added a new FontScaleMode ("8") for Scale based on Program Window Size (instead of "1" which is based on the font size used by the Keystroke data entry window). This should be used when other toolbars are popping up/down and causing the size of the data entry area to change (and therefore the Keystroke Font Size to change).

WS.INI - Added a new sound switch "SoundPriceIsZero=". The default is blank (no sound).

*FIXES*

- WINDOWS PRINTERS - When running under Windows 2008 Server, the list of available Windows printers was showing all printers from all clients. The program now only shows the printers available to the current session. This also fixes the problem with using an "*" in the printer name which would sometimes match up to a printer that was not available to the current session and therefore cause errors.

- CNF - Files - Move - The Move Transaction Files function was showing the number portion of the transaction file names with only 3 digits when it should have been 4.

- MOVED TRANSACTION FILES - If the program prompts for the location of a transaction file, it was not recording the new location. This would cause it to then have to ask for the location again.

- CLOSEOUT - If running with the limited closeout display and the count entered was not the same as the payment total, the program was not displaying the Over/Short warning message if the Over/Short amount was less than 50 cents ($0.50).

- FORMS - Print To Screen - The zoom factor was not being reset each time a new window was displayed. This could cause the size of a new window and the text in it to be hard to read (depending on what was printed just before it). This was noticeable when the Display Signature parameter was on and Print to Screen was used on the receipt form.

- KSR/EXPORT - Purchase Payments - The reference field on Purchase Payments Made were always printing out as blank on reports and exports.

- KSR - If a numeric field was too small to print in the space provided and the field was marked as "Don't print if 0", then it was printed as "--" instead of "******".

- POR - Scripting - Components - When the qty (either ordered or received) on a scripted item was changed, the program was running the script again instead of just updating the qty on its component items.

- POR - Scripting Matrix Items - When a script was run from a matrix item, the program was leaving the current line item as one after the original item instead one after all the items that were entered (either by the script or multiple matrix items).

- RECORD LIST BOX - When viewing a list that has had records deleted it in, and the program tries to go to the End of the List, the program would sometimes show the list as EMPTY LIST. (For example, when the [End] key was pressed or when the program tries to start with last item). Workaround was to pack the file that was having the problem.

- TRN/AR - Fixed Error 91 when bringing up Change Clerk box if Pin Pad was set to Ingenico en-1000 or Ingenico i6550 and the device was not hooked up (or was not working).

- TRN - External Auth Method - Payments with an "External" authorization method were not showing the Reference field.

- TRN - Ingenico PinPads/Signature capture - Added more error checking to be displayed when system is set to use an Ingenico PinPad and/or Signature Capture device but the device does not exist (or OPOS drivers have not been installed).

- TRN - UIC-7990SE - Manually Entered EBT - The program was not turning off the card swipe on the UIC-7990SE when switching to a manually entered EBT card number so the PIN Entry routine was not working.

- TRN - Detail Display Screen - If a field was marked with Flags=16 (Use Thousands Separator) then it was sometimes displaying with too many decimal points.

- TRN - Parameters - Display - When entering this function, the following parameters would always be marked as On : Phone2, Fax, Country, Contact, Age, Total Purchases, and Last Purchase. Not saving or turning them off and then saving did save the parameters correctly, but they would show as On if the function was used again.

- TRN - Payment Authorization - Checks - If the Authorization Method for Checks required the Driver's License, Birthdate, or State Code then the authorization was not going through. (From build 65, these fields were not being passed to the authorization routines).

- TRN - Recurring Payments - When copying a payment from a recurring transaction to a live transaction, Keystroke was not passing the correct information to KeyPay if the Clerk Number on the recurring transaction was not the same as the one on the payment being copied.

- TRN - Starting Script - If a line item was added from a starting script it was added to the second line, leaving the first line blank. (Workaround was to turn on Replace Scripted Item parameter on script).

- TRN - Transaction Search - The End Date parameter was not including transactions on the day of the End Date (time used internally was 0:00 am instead 11:59:59 pm). Workaround is to set it to 1 day past what was wanted.

- TRN - Transaction Search - If the date range went across multiple transaction files, only transactions from the first file were being displayed.

- TOOLBARS - Editing Buttons - The [Defaults] node (if used) under [Buttons] was being lost when a toolbar button was changed.

*CHANGES TO UTILITIES*

KSBACKUP.EXE/KSRESTOR.EXE - Recompiled to 32 bit version and changed to use ZIP.EXE/UNZIP.EXE from Info-ZIP (instead of PKZip.exe/PKUnZip.exe) so it now works with 64 bit operating systems.

ZIP.EXE/UNZIP.EXE - Keystroke now includes the programs ZIP.EXE and UNZIP.EXE from Info-ZIP (for use with KSBackup.exe and KSRestore.exe). The open source licensing and other information about these programs can be found in the DOC\Info-ZIP directory or at www.Info-ZIP.org.

*FIXES TO UTILITIES*

- DBLists - The DBLists.exe program, (which is used to edit the Valid Entries Lists) was not resizing itself correctly when displayed with Windows Themes.

- DBLists - An Error 76 was sometimes being generated when the program was being loaded.


06/01/11 - v7.00 Build 65

*IMPORTANT FIXES*

- MTX - Matrix Tables - The length of the Matrix Code was not being updated when the table was saved. The program will now recalculate and save the correct Matrix Code Length when it first uses a Matrix Table that has its length still set to 0. (Matrix tables from v6 that have not been changed would already have the correct length saved with them).

- CNF - Pack - Matrix Items - Matrix Items would be lost (pack function would consider them orphans) if the pack function was set to "Check for Orphaned Matrix Items" and if the item's matrix table was created in v7 (matrix tables converted from v6 did not have the problem). The problem was due to the Matrix Code Length being left at 0 on new matrix tables.

*PHONE FIELDS*

CNF - Settings-Database - Added the parameter "Phone fields Search on Numbers Only". If this is on, then the program will ignore any non-numeric characters (not "0123456789") in the Phone field when sorting and searching by that field. Since the program presorts databases in "Indexes", if this parameter is changed, the Customer, Contact, and Vendor databases should be packed to rebuild these indexes using the new setting (the program will display a message when this happens). With this parameter on, phone numbers can be entered in just about any format (both on the database record and as text to search for). For example, the customer phone could be saved as: (970) 262-1720 and the customer can still be found by entering 9702621720 (or even 970.262-1720).

LOGO - When initializing a new configuration file (or converting from v6), the program will turn On the "Phone fields Search on Numbers Only" parameter.

DATABASE - Alt Code Links - If the new "Phone fields Search on Numbers Only" parameter was on, then Customer and Vendor phone fields that are set to Link to the Alt Code list will now check this parameter and post/update the numbers only version of the field to the altcode list.

*CARDHOLDER NAME*

TRN - ParseCardNumber - The routine that parses out account information from credit cards now supports retrieving the Cardholder Name information from the Track 1 portion of the card. Note that Track 1 must first be enabled on the card reader. Also, it is preferred that Track 2 be sent to payment processors so even if Track 1 is turned on, Track 2 should still be left on.

TRN - If the Cardholder Name is captured when entering a payment, it is now saved with the other payment information and is available to be printed on reports and forms.

TRN - SIGNATURE CAPTURE - The windows that display captured signatures will now also display the CardholderName just above the signature (if the name was retrieved from Track 1 of a card swipe).

TRN/FMTR - PaymentLoop-CardholderName - Added the ability to print Cardholder Name for each payment type (PaymentLoop-CardholderName). This is only available on payments that where entered with a card swipe that included Track 1 data.

FMTR/TRN/AR - Cardholder Name - Added the Cardholder Name field to the list of available fields to be printed on forms. On Sales Transaction forms (".NVC") this is similar to PaymentLoop-CardholderName but is not in the payment loop. Instead, it will print the name from the latest payment entered that has a Cardholder Name attached to it.

*PRINT SIGNATURE ON INVOICES*

TRN/FMTR - SIGNATURE - Added the ability to print the "Signature-Captured" field on Sales Transaction Forms (".NVC"). The Signature will come from the latest payment entered on the transaction that has a Signature attached to it. If a signature field is added to a form, the field flag will automatically be set to 65536 ("Print as Signature"). If this flag is not set, a lot a strange characters will be printed. When the signature is printed, it will be enclosed by a box that is the same width as the Signature-Captured field on the form and 1/4 as high. The signature can be printed when printing To Screen or to a Windows Printer, otherwise it will be skipped.

AR/TRN/FMTR - SIGNATURE - Added the ability to print the Signature-Captured on Payment Forms (".PAY") and ROA Receipt forms (".ROA").

AR/FMTR - SIGNATURE - Added the ability to print the Signature-Captured from Invoices and ROA Payments in the body section of Statement Forms (".SMT"). In these cases, invoices will print the signature from the earliest payment attached to them instead of the last (since the first payment is usually the On Account payment).

*NEW TRANSACTION SEARCH FUNCTION*

TRN - TRANSACTION SEARCH - A new Search function has been added to the Transaction menu. This function can be used to easily search all transaction types based on Date, Customer, Transaction Number, and even Inventory Item. This search function starts with a settings screen where the parameters to base the search on can be entered (similar to a parameter screen for a report). After entering the desired information, pressing the Search button will cause the program to build a list of all transactions that match the search conditions. From this list, selecting a transaction ([Enter] or [F3]) will load the transaction in Edit/Print mode (same as using the Transaction Edit/Print function).

TRN - TRANSACTION SEARCH - Added support for specifying the Transaction Letter (aka SubNumber) in the Transaction Number field. For example, if there are transactions 33A, 33B, 34A, and 34B, then entering 34 will display 34A and 34B, entering 34B will display 34B only, and entering an A will display 33A and 34A.

TRN - TRANSACTION SEARCH - ITEM ID - This field works the same as entering an item on a transaction. It is used to select the item that must exist on the transactions to be displayed. (Normally only Transaction Number or Item ID will be entered, not both).

TRN - PARAMETERS - SEARCH - The default transaction search parameters can be set through the Transaction - Parameters - Search menu function.

TRN - TRANSACTION SEARCH - Transaction Preview - The Transaction Search function displays a preview of the currently highlighted transaction in the window above the list box. This display is controlled by the file TrnSrch.xml located in the Data directory. This is a standard XML file and can be edited to change the information that is displayed and how it is presented. The information that is available is based on the same lists used to create Sales Transaction Reports and uses the list I.D.s of: STH/STHC (Sales Transaction Header), STL/STLC (Sales Transaction Line Items), SPR/SPRC (Sales Payments Received), CST (Customer), and CON (Contacts). The field numbers can be found in the file DOC\DBNAMES.DOC.

TRN - TRANSACTION SEARCH - Transaction Preview - The lists of line items and payments will automatically include a scroll bar if all the items do not fit on the screen. The lists can then be scrolled by clicking on the scroll bar. The line item list also supports the use of the keys: ([Ctrl+Up/Down/PgUp/ PgDn/Home/End]).

*OTHER CHANGES*

AR - Customer Entry - (Advanced Only) - Moved the Invoice Number field to above Client Number so it is easier to move back and forth between them. Also, if either Invoice Number or Customer Number is entered with a period in front of it, then the program will automatically take what is entered after the period as being entered in the other field. For example, entering .123 in the Invoice Number field will look up Customer Number 123 the same as if you had first gone to the customer number field and entered 123 there.

AR/TRN - The program no longer accepts a negative payment amount to be entered on an ROA Payment or Credit Memo. (It would usually not be able to save them anyway and they could cause problems with credit card processing.) If a negative payment does need to be entered, it should be done by creating an invoice in the Sales Manager (invoice total can be $0.00) with the negative payment on it and then an On Account payment to balance it out.

CALCULATOR - Added the ability to use [Shift+F10] to print to the report printer. (Same as selecting the Print button).

CNF - Sales Transaction Types - If the Update-Customer-Last Purchase date parameter is turned Off on Invoices, the program will now warn that it should be On. (Turning it off can cause problems with Accounts Receivable).

CNF - PACK - When any of the main data files are packed, the program will now store in the file the date/time it was Packed and what Keystroke License (Serial Number) was used to Pack the file. This is to help with support issues.

KSR - Time Of Day Report - Changed the Time Intervals displayed on the report so that the program now supports entering 0:00am to 11:59 pm as well as times that overlap midnight (8:00 am to 2:00 am).

LOGO - Dealer License - Software licensed to a Keystroke Dealer will now display the Dealer Only message as part of the background on the logo screen instead of popping up a message box that had to be clicked on.

LOGO - The main data files will now have the Keystroke Serial Number of the system that created them and the date they were first created stored inside the file. This is to help with support issues.

PRINTERS - DRIVERS - EOF File - When finishing printing (from the Calculator or a Comment box) the program will now check the FORMS\ directory for a file with the same name as the printer driver but with the extension ".EOF". If the file is found, it will be sent to the printer just before the printer is closed. This is primarily designed for sending a Cut Code to a receipt printer but could be used for anything else that needs to be sent at the end of every print job sent to that printer (from the Calculator or Comment Box).

TOOLBARS - Added a new value to the [Docked] tag (16) to specify that the toolbar floats over other toolbars (or the program screen) and is not included in the position of other toolbars or the main window. To specify that a toolbar floats over everything else add 16 to any other docked values that may be used (for example [Docked]24[/Docked] means to Dock at Bottom (8) and Float (16), (8+16=24)).

TOOLBARS - BUTTON EDITORS - If a reserved character is entered in the Button Text or Macro fields, the program will convert it to the HTML token for that character when writing to the XML file: (">"="&GT ",<"="&LT", "&"="&AMP", "%"="&#37"). This is so other XML editors can be used on the toolbar file (TB.DAT) without being confused by these reserved characters being inside one of the fields.

TRN - Complete Sales Screen - Added the fields "Order Date" (and Time), "Ship Date", "Not Before Date", and "Not After Date". "Order Date" is the Date/Time the order was originally placed. "Ship Date" is the date the order is expected to be shipped (or delivered). "Not Before" and "Not After" are just notes to be printed on the order and do not change how the program handles the transaction. The fields can be turned On/Off in the CNF-Settings- Sales Transaction-Complete Sale function.

TRN/FMTR - Added the ability to print the "Order Time", "Ship Date", "Not Before Date", and "Not After Date" fields on sales forms.

TRN - DATAPORT - Added information at the top of the exported file to show the Keystroke Version and Serial Number.

TRN - DATAPORT - Changed the name of the "Order Number" field to "Customer's Order Number" to make it easier to understand which field it is. This change may require a change to another program if it is using the Dataport output. (However, the Keystroke functions that import this type of data support either name.)

TRN - Macros - @Set PriceTable/PriceCode - Added the ability to set the Price Table used on the current transaction (and the Price Code on the current line item) directly instead of having to use a macro that had the key presses necessary to set it through the Enter Customer box (or Line Item Detail box). The clerk must meet the "Change Price Table/Code" security level or it will just be ignored.

TRN - Payment Hot Keys - If a payment hot key is pressed (or a payment toolbar button is used) and the amount left to be tendered is $0.00, the program will now prompt for a $0.00 payment amount instead of just going to the Ok button.

TRN/POR - Scripting - When a script adds a line item to a transaction, it will now add it to the line below the current line instead of as the last line item. This only matters if going back and inserting a line item. In most cases the last and next line are the same.

STARTUP SWITCH - Added the Command Line and WS.INI file switch: "NoAR=". If this is set to On, then the routine that recalculates the amount due on a customer will not reset the customer's Oldest Open Invoice or Amount Due fields. (This routine is called from the Receivables Aging Report and when AR-FinanceCharges/Statements are run). This should be used in Multi-Store situations where a computer may not have access to the customer's entire history and so the calculated values may not be accurate.

STARTUP SWITCH ("COM=") - Added the Command Line and .INI file switch "COM=". This is used to tell the program which Com control to use when working with a serial port ("COM#:"). For communicating with a serial port, the program usually uses MSCOMM32.OCX for output only (e.g. pole displays), and SAXCOMM8.OCX if input is expected (e.g. Scales). The new switch can be used to force the program to always use either MSCOMM32 ("COM=1") or SAXCOMM8 ("COM=2"). This should only be used in cases where a system is not working correctly with one of these two communications controls.

*OTHER FIXES*

- AR - Fixed Error 91 when bringing up Change Clerk box if Pin Pad is set to Ingenico en-1000 or Ingenico i6550.

- BIOMETRICS - If the biometrics reader must be used instead of entering a password when confirming a clerk, the font on the message "Biometrics Scan Required" was so small it was not readable.

- CNF - Hardware - Signature Capture - UIC-PP795 - The [Test Device...] button was not working.

- CNF - Price Formulas - If the "Mix and Match" parameter was on and the system was set to "Fixed Decimal Point" and if the formula price was a whole dollar amount, then it was getting factored down to cents (10.00 would change to 0.10).

- CNF - TOOLBARS - It a Toolbar's settings were changed, the toolbar data file was not being update correctly (the End Of Line characters where being dropped after the [/Toolbar] tag). This would cause the toolbar after it to not be able to save its settings. If this happens, the toolbar file ("TB.DAT") should be edited with any text editor and the [Enter] key hit between the "[/ToolBar][ToolBar"...] (so they end up on separate lines).

- CLOSEOUT - Audit - Deleting a closeout was not creating an audit entry, (but it was creating an audit entry when saving an existing closeout that had its ending date changed, even though it should not have). Also, the closeout audits were not recording the closeout's date.

- DATABASE - Default field text when adding a record - If the default text on a field started with a plus sign "+" then the text was not being assigned to the field even if the field was not linked to another field. The program now checks to make sure the field has both a plus sign and a link to another field when initializing a new record. (Workaround for older releases is to add a space in front of the plus sign on the default record).

- DATABASE - INVENTORY/MATRIX SAVE RECORD - If any of the profit fields on a screen are marked to be editable, then the program was always asking to save the record even if no changes had been made (due to rounding of the number of decimal points on these fields).

- FORMS - Print To Screen - The length of the on screen paper that a form was printed was not being set. This cause it to use the length of whatever was last printed to the screen (which was only 2 to 5 inches if the display signature function had previously been used).

- KSR/CNF - Payments Received and ROA Payments were always showing their "Has Signature" field as 0 even if there was a signature (did not cause any additional problems, the text on the report/export for this field was just wrong).

- KSR - Audit Report - Audit Entries for Deleting a Transaction ("Trn Del") were always being listed as Recalling a Transaction ("Trn Rcl"). Same problem also existed for Closeouts ("Cls Del"). Time Clock Entries also had a similar problem but would show all as ("Chg TmClk") instead of ("Del TmClk") and ("Add TmClk").

- KSR - Cues - If a Clerk's security level did not meet the "Access Report Manager" level but they did have reports available that they could run (due to security level on the report being set) then the program was not allowing them to run the first report on the list of available reports.

- KSR - (Filter On) - Some of the report settings buttons were not showing the (Filter On) message below them when a filter was on. (Display issue only, filters were still working properly.)

- KSR - Vendor Activity Report - The report was not including Purchase Orders and Reserved Orders even when the Sections settings had them turned on.

- KSR - Weighted Cash Method and Variable Calculations - Increased the number of decimal points used when calculating the percentage paid (and when calculation report variables) to 12 decimal points in all cases. The program use to use as few as 4 decimal points which would cause some of the Weighted Cash reports to have rounding errors (up to a few dollars depending on the amount of the original transaction).

- PAYFRM.DAT - If this file was initialized but TRNPMNTS.DAT was not (already existed), then the program was always initializing it with no formulas. The program will now check the Sales Payments file and if Payment #7 exists and it is marked as having Eligible Items formulas, then PAYFRM.DAT will include the Food Stamp pay code formula.

- POR - AutoOrder - Filters - Filtering on any of the Date fields was not working.

- POR - Line Item Entry - Item Not Found - If a line item entry causes the Item Not Found message to appear and [Yes] is selected to add the new item to the database, an Error 6 would sometimes result if the "Update-Calculate New Price" parameter was marked On.

- POR - SCRIPTS - If a script was attached to a Matrix Item and the Multi-Entry mode was used to add several matrix items at the same time to the transaction, the script was only being run for the last item.

- POR - SCRIPTS - The Roll Up Cost parameter was not working correctly. It was not rolling up the cost of the component item. Also, it was updating the Last and Avg Cost fields of the component's Inventory Record (which it should not have done since they are always 0.00).

- RECORD LIST BOXES - Filtering on a Date or Time field was not working correctly.

- TOOLBARS - BUTTON EDITOR - When loading a button's settings, if the current setting for any of the drop down lists was the last setting on the list, then the default (first) setting would be selected instead.

- TRN - Back Calculate Qty (Deli-Scale mode) - If the qty is back calculated based on the total amount for the line item, the program was marking the item as having a fixed price so future changes to Price Table/Code would have no effect. (Workaround in some cases was to use the Special Menu function "Reload Line Items".)

- TRN - DATAPORT - The setting "When Transaction is "Cleared"" was not working.

- TRN - Detail Box - The fields Discount from List and Discount from Base Price were calculating the amount based on the current Order Qty and not the Total Qty Ordered for the line item so when editing an invoice it was always showing as 0.00.

- TRN - GIFT CARD TRIGGERS - If the Trigger By on a Gift Card Trigger was set to "None" but the underlying setting was "Based On" a field that was not numbers only, then it was still being triggered when an item with nothing in its "Based On" field was used. For example, if Based On was set to Product Code but the Start field was left blank, the setup screen would show "Trigger By - None" but an item with a blank Product Code would still trigger the gift card.

- TRN - KeyPay - If processing a payment through KeyPay took more than the maximum time (usually 90 seconds) then Keystroke was timing out with a "Lost Connection" method even if KeyPay was still sending messages back to Keystroke to update it on the status. (This would usually only happen if KeyPay was using PCCharge and the KeyPay license was invalid and multiple requests were being made).

- TRN - PIN PADS w/ KeyPay - If the payment is set to have a PIN entered, then the program was still attempting to authorize the payment if No PIN had been entered due to the PIN Pad timing out.

- TRN - Initialize Pin PAD = Error 429 - If the program was set to use an OPOS Pin Pad and the OPOS drivers were not installed, then an Error 429 could result.

- TRN - Payments stored in alternate transaction files (as is used with Recurring Transactions) were not able to be edited or deleted if dated before the Transaction Lock date (the program now allows this).

- TRN - The Previous Transaction and Next Transaction buttons were displaying too far to the left.

- TRN - Price Formulas - Formulas with minimums based on "Price Code $ Amount" or "Transaction Sub Total" were checking against the total with other discounts already applied instead of against the totals if no other discounts were applied (it now checks Base Price Subtotals instead of the actual Subtotals).

- TRN - Quick Save - If Quick Save was set to Sales Invoice (which is not recommended). Then when an invoice was trying to be saved that was not fully tendered, the program would say so and ask if it should be saved as a Sales Invoice. But this would bypass the check to make sure the minimum payment had been met since the program was assuming the Quick Save transaction type would not have a minimum payment (which is what is recommended for the type being used by Quick Save). When this happens, the program now rechecks the minimum payment after switching to the Quick Save type.

- TRN - Payments with Conversion Factors - The program was rounding payments that used conversion factors to the default payment amount whenever the payment entered was within about 1 dollar of the default amount (should do this when within 1 cent).

- TRN - Restricted Payments (Food Stamps) - if a different payment type was entered first, and then a restricted payment was selected, the program was showing the eligible total to be paid based on the line items instead of limiting the amount to be the amount left to be tendered on the transaction.

- TRN - Totals Displayed on Sales Orders - If the "Copy $ Shipping to Invoice" parameter was on, then when shipping items from a Sales Order, the line item entry screen was always displaying the additional shipping amount as "$0.00". This was a display issue only, the correct amount was displaying and being used on the Complete Sale Screen.

- TRN - Verifone 1000se - The program no longer sends the "disable card swipe" code to the Verifone 1000se (it doesn't have a card swipe and just ignores the message anyway).

- SCREEN REDRAW - Changed some code used to highlight the current field in database screens that was causing some of the fields to flash every time a key was pressed.

- TOOLBARS - EDIT BUTTON - If the button's Text matched any portion of the button's Macro, then when the Text was changed, the Macro was being changed instead.

- VAR - Audit - Audit entries where not being created when a posted Variance was Deleted or Recalled.

*CHANGES TO UTILITIES*

IMPTRN - Added support for importing (and looking customer up by) the Customer WebID field (Customer WebID=). Also added support for importing the OnlineCustomer flag for Customers ("Customer - Online Flag=").

IMPTRN - Added support for setting "Customer Flags=". This combines all customer flags in a single variable ("Order # Required"=1, "Online Customer"=2, "Preferred Customer"=4, and "Residential Address"=8). Also added support for "Contact Flags=" (which currently only uses "Residential Address"=8).

IMPTRN/IMPPOR - Flags - Added support for setting individual flags on any of the importable flags fields (must be plural, meaning the one variable is supporting multiple flags). This is done by setting the variable to the value of the flag(s) to be changed preceded by a Plus ("+") to set or a Minus ("-") to clear. For example, on customers, the flag number for "Order # Required" is 1, "Online Customer" is 2, and for "Residential Address" is 8. So to turn On "Online Customer" and "Residential Address" and turn Off "Order # Required" without changing or knowing any of the other flags, put the following lines in the file to be imported:
- CUSTOMER FLAGS=+10 (or could be listed separately as =+2 and =+8)
- CUSTOMER FLAGS=-1
The importable flags are "CUSTOMER USER FLAGS=", "CUSTOMER FLAGS=", "CONTACT USER FLAGS=", and for Line Items: "Flags". For IMPPOR, only the Line Items: "Flags" is currently available.

MAPFILE.EXE - If no mapping file is specified, then the fields will be copied as they are. (The purpose of this is to change the delimiter being used.) With no MapFile specified, all fields will be treated as text so if using Quote/Comma delimited, all fields will be enclosed in quotes (usually numeric fields are not).

MAPFILE.EXE - Added support for Delimiter=4{###} to specify a custom character to delimit the fields by. The character that follows the 4 is the character to be use (e.g. Delimiter=4& would separate each field with the ampersand character). The character can also be specified by using its ASCII number enclosed in braces. (Delimiter=4{124} to delimit with the pipe ("|") character, Delimiter=4{13} to delimit with carriage returns.)

*FIXES TO UTILITIES*

- IMPTRN - UpdateBy= - If updating transactions and the TypeName= field in the transaction file came after the field that was being used to find the matching transaction, then the program was searching for any transaction type but was not searching the alternate transaction files. It now correctly searches the file that each type is stored in. Note that if searching for a particular transaction type, it is best if the TypeName= field is the first line being imported.


05/02/11 - v7.00 Build 64

- TRN - Price Formulas - Once a price formula was used to set an item's price, the program was marking that price as fixed and not adjusting based on any further changes to the transaction. Also, formulas with minimums based on a subtotal were not being checked if a price formula without a minimum (or one based on the line item) applied to the item (from build 63).

- TRN - Price Formulas - Formulas that used Happy Hour pricing would not lock in the price so if the current time was no longer in the happy hour window, the price on an item entered during happy hour would go back to the regular price (from build 63).

- TRN - AUDIT ENTRIES FOR KEYPAY PAYMENTS - The audit entry on payments processed with KeyPay were not including the response text (just the AuthCode or "Failed").


04/15/11 - v7.00 Build 63

DATEENTRY - Added the ability for Date fields to support Null (shows as Null Symbols) but the field must be marked to support it (if not it will show as " / / "). For fields that are marked to support Null, you can still get the blank date by entering 0 and today's date by entering a space.

CNF - Price Formulas - Changed default Start and End dates from " / / " and "12/31/20" to Null (no start / end dates).

TRN/CNF - MIX AND MATCH PRICING - Added the ability to use Price Formulas to set XForY pricing on similar items when purchased together. The program will still use the standard XForY pricing on the inventory item as well as regular price formulas and will assign the best price to each inventory item. However, care must be taken that this does not create an overall total for the sale that is less than intended due to an item counting in an XForY pricing with other items but then the item itself getting a lower price due to its own XForY pricing or other price formulas. In general, items that are available for the MixAndMatch pricing should not be included in other types of pricing.

CNF - Price Formulas - Added the parameter "Mix and Match (X item For $Y total)". If turned On, the Price Formula is used to set the total price when a minimum number of similar (based on Price Code) items are purchased on the same transaction. For example, setting the price code to "CCS" (for Coca-Cola product, Can, Single) and then turning on this flag and setting the Qty to 4 and the Price to $2.00, will allow any combination of 4 or more single cans of Coca-Cola products to automatically be sold at the price of 50 cents each. Note that when this parameter is on, that the fields on the screen will change slightly (some fields that can't be used are hidden, and others will appear or be moved).

CNF - Price Formulas - Mix and Match - Added the parameter "Apply to All once Qty is met". If this parameter is On (which it is by default), then once the minimum qty is met, all items that match the price code will receive the same price based on the Price/MinQty. For example, if 5 cans of Coke products are purchased, and the formula is 4 for $2.00, then all cans will be $0.50 each for a total of $2.50. If this parameter is Off, then only multiples of the Min Qty will receive the packaged price. For example, if the normal price of a can of a Coke product is $0.75 then purchasing 5 would give a total of $2.75. Depending on how the items are listed on the transaction this may be (4@$0.50 and 1@$0.75) or (5@$0.55) or some other comparable combination.

CNF/TRN - Sales Payment Types - If the Open Drawer parameter is On, then a second parameter "Open Drawer on $0.00 payment" is now available. If this is turned On, then payments with an amount of $0.00 will also open the cash drawer.

CLOSEOUT - MANAGE REGISTERS - (Advanced Only) - Added the ability to Add ([F2]/[Ins]) and Delete ([Del]) entries on the list of registers. Also, as changes are made, the list will automatically resort based on register number.

KSR.EXE - Prompt for Date Range - When running a Report Cue from the command prompt (using KSR.EXE or the /GKSR switch) the program will now prompt for the date range if none of the Start/End command line switches are used. (A report for today's date can still be run without the Date Range screen appearing by adding START=" " to the command line).

LOGO - USERS.TMP - Cleaning this file up can take a long time if Keystroke is already in use by other machines. The program will now only clean this file once a day (which should be the first machine to use it so the process will run faster).

POR/FMTR - Vendor Note field is now available to be printed on Purchase Forms.

POR/FMTR - Purchase Forms - Added the ability to print "QOH-Before" and "QOH-After" fields for line items.

TRN - Customer Entry - Search by Contact Code - If text is entered in the Customer Code field and a matching customer is not found then the program will now search the contact database for a match in the Contact Code field (but only if the Alternate Search by Customer Code parameter is on).

TRN - Process Recurring Charges - If set to "Add Item" the Location is now the line number that the new item is inserted into when location is set to "First Item", "Last Item" or "Specific Line Number". (It use to insert the item after the specified location in these instances). Because of this, the "Add new line before location" parameter will now only show when the settings are "Add Item" - "Current Location" or "Specific Inventory Item".

TRN - PROCESS RECURRING CHARGES - Added the [Yes to All] button to the Confirm Transaction message.

- CNF - ToolBars - If a toolbar is changed to be visible in the Configuration Manager, then all the toolbars will be reloaded since the positions may change due to the toolbar now being displayed.

- COLORS - Many of the names for Colors when read from a text file (.INI, .XML, etc.) were not working correctly and would either give the wrong color or would give an error (e.g. "Blue", "Navy", "Yellow", "Chartreuse", etc.). Also, the colors "BrightWhite", "LightMagenta", and "LightRed" were not being recognized and so the color "Black" was used. (See the file DOC\Colors.txt for a list of the supported colors (this is a tab delimited file).)

- MTX - Entering a matrix code that was too long was still being treated as a valid matrix item if the first part of the code (the length it should have been) was a valid code.

- TOOLBARS - The routine that calculates the amount of space used by the frame that holds the toolbars has been improved to work with bars that do not start in the same position but whose size should still be added together.

- TOOLBARS - Editing Buttons - If a toolbar button was changed, then any toolbar that was not currently being displayed could be lost.

- POR - Line Item Detail Box - Several of the fields were always showing as blank or 0 (from build 61).

- TRN - Check Authorization with KeyPay - The entry screen for entering Check information was always showing the MICR entry with KeyPay even if it was set to use Driver's License.

- TRN - Gift Cards - When entering a gift card as a line item and the current transaction total is negative, the program was defaulting the amount to $0.00 instead of the amount to balance the transaction. (It now sets the default amount on the gift card so the return amount can be credited to the gift card as either an Issue or a Reload).

- TRN - Returns - The Security Level for Entering Returns (negative qty) was not being checked when the Qty column was changed.

- TRN - Returns on Sales Orders - If the payment amount needed on a return was negative then the program was sometimes giving a Max Payment of $0.00 instead of defaulting the payment to the amount to be given back.

- TRN - Process Recurring Charges - If the settings were to add/replace a line item and the line item did not exist on a recurring transaction, then the program was not processing any of the transactions that came after it.

- TRN - Process Recurring Charges - If a "Change to Line Items" was set to "Add Item" and the location was set to "Specific Line Number" but there weren't that many line items on the transaction, then the program was skipping that transaction. It will now just add the item to the end of the transaction instead of skipping it.

- TRN - Process Recurring Charges - If KeyPay was not running and "No" or "Cancel" was selected from the message that says so and asks to try again, then the program was still trying to process all the transactions instead of quitting the function.

- TRN - PROCESS RECURRING CHARGES - Deleted transactions (customer name set to "* * * DELETED * * *") were not being handled correctly. Instead of skipping the deleted transaction, it was skipping all the transactions after it.

- TRN - PROCESS RECURRING CHARGES - The Confirm Transaction message was showing the number of line items as 1 more than was on the transaction.

- TRN - PRINT BUTTONS - If the print button numbers were not in the same order as they are listed on the setup screen then it was possible that a payment would default to the wrong print button.

- TRN - Transaction Total - If the number being displayed was negative and took up exactly 3 characters (with the negative sign) then it was displaying as blank (could only happen if the decimal digits on Money was set to 1 or 0).

- TRN - Shipping Field - If editing a transaction that creates another transaction when items are shipped (Sales Order) and the transaction type is changed to one that does not, then if the Shipping amount was entered manually for the transaction to be created, it will now copy the new Shipping amount to the transaction's original Shipping field.

- TRN - XFor and MixAndMatch Pricing were not working with negative quantities (returns).

- IMPTRN - New customers were only being added if the import was set to look them up by customer name.

- PROD - Comments on Production Templates would cause an error when a template was saved.


03/29/11 - v7.00 Build 62

LOGO - Payment Authorization Methods - When entering the program, the authorization methods on the sales payment types will now be checked. If any of them process credit cards through a third party program (ICVerify, PCCharge, etc.) then the program will display a PCI Compliance Message warning that the authorization method is not secure and KeyPay should be used instead.

KSR - Audit Report Settings - Added the "Turn All On" and "Turn All Off" buttons to the Audit report settings screen. Note that if they are all left off, then program will automatically turn all except "Keystrokes" back on.

REPORTS and DETBOX - DECIMAL POINTS - MONEY(-97) - Same as the -99 and -98 tokens for number of decimal points of Price and Cost but uses the Money setting.

SCRIPT - Macro - Changed the name of the type "Keyboard Macro" to "Macro" since it can be used to run all types of macros and macro functions.

POR - Editing Transactions - Vendor Invoice Number - If the program is set to stop at the Invoice Number field when entering a new transaction, it will now also stop there when editing a transaction if the Vendor Invoice Number field is blank.

TRN/POR - NumLineItems - The program will now save a field in the transaction header for NumLineItems that can be used on reports and exported. (Transactions previously saved will show this number as 0 since it was not being saved before).

- CALENDAR ([F6]) - Was not returning the selected date into the current field (from build 61).

- DBM - Field Name List (used by the Search and Default functions) was always using the Inventory field list no matter what database was in use. This could cause the search function to not work properly.

- LOGO - USERS.TMP - This file was growing by 32 bytes each time the program was started. The larger this file is the longer it takes finish the "Assigning Machine Number" routine which is run each time a module is loaded. Fixed the file always growing problem and also changed the program to automatically reset the size of this file if it is more than 320 bytes and no one else is using the program.

- TRN/LOGO/CNF - DUAL PROCESSORS - Turned off the multiple threading capabilities of these modules as some machines were getting screen draw delays that appeared to be caused by sync problems between multiple threads when using dual processors.

- TRN - If using Alternate Search by Stock Number or AltID# and the text entered evaluates to 0, then the program will skip the alternate search on the numeric fields Stock Number and AltID#.

- TRN - Non-Inventory Items - When loading an existing transaction that had Non-Inventory Items on it (Stock Number 0), the program was searching for an inventory item that had a stock number of 0. While there should never be one, if there was, it would find and use the information from that item. It no longer does the lookup on Stock Number 0.

- TRN - Sales Tax - If "Tax By" was set to anything other than price and the price of the item was set to $0.00, then the tax was not being calculated. (Workaround is to turn on the "Ignore Non-Taxable Pay Flag" on the tax formula.)

- TRN - Processing Recurring Transaction w/ KeyPay - Payments that were created by the Process Recurring Transaction function that were processed through KeyPay were not able to be voided through KeyPay (would get a payment not found message from KeyPay).

- TRN - Process Recurring Transactions - If only one transaction type was eligible for the From Trans Type list than the From Trans Type settings box was coming up empty and the transaction type could not be selected. (Work around is to temporarily enable another recurring transaction type so the correct one can be set).

- TRN - Matrix Items - Long Description - If a line item on a transaction is a matrix item and the Long Description saved with the transaction is blank, then the program will create the Long Description based on the item's matrix code. (This happens with transactions saved prior to v7.00 where the data files did not support saving the Long Description on line items).

- TRN - Scripts - The Macro "RunMenu=Special-Sort Line Items" was not working when included in the Ending script.

- TRN - Transaction Total - If the number being displayed took up less than 4 characters, then it was displaying as blank (could only happen if the decimal digits on Money was set to 1 or 0).

- TRN/IMPTRN - The following fields were not being saved on transactions (used on reports only): CustomerCode, CustomerGroup, ContactName, ContactGroup.

IMPTRN - Customer - Which One - Added the parameter "NoWhichOneCust=" to disable the Which One feature when looking up customers (will select the first match if this parameter is On). Please note that this leaves the potential for the wrong customer record to be changed and the wrong customer to be assigned to the transaction so its use should be avoided in most cases.

- IMPTRN - Customer Info - If a transaction was being updated and the UpdateBy parameter used was not based on customer, then any customer fields read in prior to the lookup of the transaction would be lost (while the program now handles this, as a general rule, fields that cause a lookup should always come before those that do not).

- INIMERGE - If the DATAFILE includes the use of line items (has the "**END LINE ITEM" tag) then the program was resetting all the tokens to blank after each line item. This would cause tokens from the header section to only work on the first line item. The program now retains the tokens from header section and only resets the ones that follow the "**START LINE ITEM" tag.


03/08/11 - v7.00 Build 61

KSR - PRINT TO FILE - DELIMITED - When setting the file name and Delimited is set to something other than "None" the program will now display a toggle field where "Include Heading Fields" can be turned on. If this is on, then the "Heading" fields as defined on the report form will be included as the first record of the file.

KSR - PRINT TO FILE - DELIMITED - EXCEL - Added a new option when printing to a delimited file to create a Microsoft Excel file (.xls format). Some report forms will need to be edited in order to make the field layout easier to use in Excel (especially those that use grouping and multiple sections). The best results will be from forms that put all the information in a single section and have the column titles entered as headings for each field in that section.

AR - Warning Messages about status of ROA payments in data files are now written to the Error.log file for future reference.

DBM - Search functions - Setting the Hidden Field to true (1, T, Y, etc.) will also tell the program to search through Hidden records as well (otherwise hidden records are always skipped).

DBM - Search functions - Fields on multiple database screens can now be included in the search. (Note that the Replace function can still only make changes to fields on the current screen).

TAX TABLES - When searching for a Tax Table that matches the specified code, the program will now pick the table that has the best match (most specific match) instead of the first match it finds on the list. (For example, if the Customers Tax Code is "804" and the Tax Tables list includes codes: "8*", "805*", and "80*", then the program will now use the 80* table (best match) instead of the 8* table (first match).

TRN - MACROS - Added the macro command "SalesEntryCommand: EnterPayment". This command can be used to enter a new payment a sales transaction. The syntax is "SalesEntryCommand: EnterPayment, Number=#" (where # is the payment number to be used. This command is preferred over using a SendKeys macro with the Payment's Hotkey as it only works when on the Line Item and Complete Sale screens and will be ignored at all other times.

TRN - MACROS - Added the macro command "SalesEntryCommand: EnterItem". This command can be used to enter a line item on a sales transaction. The command also includes what field the item should be looked up by and what the text is that identifies the item. This command is preferred over using a SendKeys macro to enter a line item as it only works when in the line item entry mode and will be ignored at all other times.

MACROS - When the macro command "SalesEntryCommand: EnterItem" is selected from the list of available macro functions, the program will then bring up a list of the fields that can be used to identify an inventory item and will then bring up the Inventory Records List so the item can be selected from there. Once an item is selected, the macro command will be filled out based on the choices made. Note that the Inventory List will always start out sorted by Description, this does not have anything to do with what entry field is used by the macro. An inventory item does not have to be selected, [Esc] can be pressed and then the item's lookup text can be entered by hand or scanned from a barcode in the macro text editor box.

TRN - Customer History - If the "Warn if Existing Transaction" Customer History parameter is on and the transaction type is Sales Invoice, then if a sales invoice already exists for the customer, another special message screen will appear stating that a previous transaction has been found. This screen can only be cleared by pressing the Escape Key. This is to ensure new items aren't accidentally added to an old invoice. (This parameter should probably not be used on Sales Invoices anyway.)

TRN - DELETED TRANSACTIONS - The place holder transaction that shows a transaction was deleted (blank transaction with Customer Name set to "* * DELETED * *") can no longer be edited. (It can still be deleted.)

TRN - ENTER WEIGHT - Increased the size of the weight entry box to allow up to 8 characters (was 5).

TRN - Transaction Menu - Added a separator line below the "Clear" function on the Transaction Menu.

TRN - Transaction Menu - Recall function - changed the hot key to "A" (from "R").

- CLOSEOUT - Cash Calculator - fixed Error 9 that sometimes occurred when printing the cash calculator.

- CNF - Settings - Defaults - The lookup list for Customer Number and Vendor Number fields on the Defaults Settings screen were not working (would generate an Error 13).

- DBLISTS.EXE (Valid Entries Lists) - Inserting a new line would sometimes drop the last entry on the list.

- KSR - Audit - Database Record Changes - made with versions prior to v7.00 build 55 were not printing correctly.

- POR - Copy Transaction - Was always copying to the same transaction type as the original transaction (should copy to the current transaction type) and was not setting the Received Qty's to 0 when copying to a Purchase Order and not setting the Received Qty to match the Order Qty when copying to a Purchase Invoice.

- POR - DetBox - if only one of the fields being displayed was field number 68 or higher and it was the first field to be displayed, then it was being displayed as blank.

- POR - Merge Same Line Items - This parameter was not working if Matrixing was enabled. (From build 57).

- POR - The Security Levels for Sales Transactions - "Enter Returns" and "Line Item Qty can be 0" were being checked and Purchase Transactions even though they are only for Sales Transactions.

- TRN/POR/VAR/STR/PROD - The "Inventory Lists Remember Position" parameter was not working correctly if the sort order on the Inventory Record List was changed. The program will now correctly highlight the last selected item even if it was selected under a different sort order.

- TRN - Customer History - If a Sales Transaction Type's Entry parameters had any of the Customer History parameters turned on and then the Start Date was later set to blank (for OFF) then the Sales Manager would still check those that were originally turn on.

- TRN - DataPort - If the "After Transaction is Saved" Export parameter is on, the program will wait to write this information until 1 second after the last time the .KFO file was written to. This was done to give the program watching for the .KFO files time to process the previous file since the "After Transaction is Saved" file is often different than the previous ones (Change is always 0.00 among other things). In most cases the 1 second will already have passed so there will be no delay.

- TRN - Edit BackOrder - If the BackOrder list was empty, and the Transaction- Edit-BackOrder menu was used, then program would generate an error.

- TRN - Non-Inventory Items - The Edit Line Item detail screen was not showing the cost fields if the clerk's security level was above 0. Also, changed it to not show the QOH fields since they were always 0 on non-inventory items.

- TRN - PriceList (lookup from Price Column) - If the clerk did not have the security to view cost, the list would sometimes not display correctly. Also, Matrix Items that had a specific Cost and/or Last Cost would display the Last Cost as Avg Cost and Avg Cost as Last Cost.

- TRN - Process Recurring Charge Settings - The "Changes to Transactions" settings were not being used if the Setting was not saved (Processed only).

- TRN - Process Recurring Charge Settings - The "Changes to Transactions" settings would be lost on all settings if any of the Delete/Cut/Paste keys were used on the list of Recurring Charge Settings.

- TRN - Rental Items - Serial Numbers - If a Rental Transaction is Cleared that has Rental Items with Serial Numbers on it that have not been saved, then the Serial Number were not being put back on the Inventory Item.

- TRN - Sales Orders - Shipping - If the shipping amount from the sales order was automatically being spread across multiple orders, then the shipping amount was not being rounded to the nearest penny (or whatever the maximum number of decimals for Money was set to).

- TRN - Shipping - When a Sales Order is being filled (no open items left) and the "Copy $ Shipping to Invoice" parameter is on. the program will now use the total payments transferred to make sure the entire shipping amount gets used up by this last invoice.

- TRN - Sales Orders - If a Sales Order was edited so that the amount already paid was now more than the total, the Complete Sales screen was not showing the overpayment as Change.

- TRN - Sales Orders - When editing a Sales Order that is not shipping anything and either the "delete filled line items" or "Shipping field" parameters where on, then the Complete Sale screen was not showing the correct "Remaining"/"Change" amount.

- TRN - Sales Orders - When editing a Sales Order and change needed to be given back (usually due to changes made to the Sales Order), the program was always just given it back as cash. It now checks the payments on the transaction and if they don't allow Cash as Change, then it will now display an "Overpayment" message and will then bring up the enter payment screen for the required Change Back payment type.

- TRN - Security Level "Print/Save Blank Sales" was being ignored by the Quick Save ([Shift+F10]) function. Also, this security level was being used by the Select Transaction Type function in several places even though it should not have been.

STR/STRUPDATE - Update Inventory Parameters - Added the ability to turn Off updating the Fixed Cost field (default is On).

STR/STRUPDATE - Update Inventory Parameters - Added the ability to turn Off updating the "User" fields (UserInfo1, UserNumber1, etc.). Default is On.

FMTR - The Body Section of Forms can now include fields from the Header Section. Except Loops like (Tax/Payment loops) which will not print correctly. When using the Forms Editor, while in the Body Section and displaying the list of available fields, use the [Ins], [F2], or [F9] keys to toggle the list between Body Fields (line items) and Header fields. (Also increased the size of the displayed list to make it easier to use.)

- INIMERGE.EXE - Was only working with uppercase command line switches. Also, the Filter= switch was not working.

- INIMERGE.EXE - Fields that were blank were using the value from the same field listed previously in the source file.

- SCRN - Push Buttons - The Edit Field box was not allowing the name of the button to be changed (had to edit it on the screen using the [backspace] key and then reentering the text to be displayed as the name for the button).


02/09/11 - v7.00 Build 60

KSR - Analysis Reports - If not grouping by Department then the program will no longer take the time to sort the departments for the report.

KSR - Inventory Analysis - If "Group by Contact" is turned on then the Detail button under 1st grouping will set the detail for the Contact section as well. (If Customer Detail is set to Summary then it will actually print the Customers as Detailed and the Contacts as Summary).

POR - Changed the "Save as Order" message to be "Convert Reserved Order to Purchase Order?".

TRN/POR - DETBOX - Added the field AltID# to the line item detail display box (TRN=#153, POR=#116).

- POR - Extended Amount - Changing the Extended Amount on a line item was not back-calculating the Qty or Cost for that line item correctly.

- POR - Complete Transaction box - If converting a Reserved Order to a Purchase Order, it was always going to the Select Payment list instead of the Ok button when no payment was required.

- TRN - XFer Pricing with Price Formulas - If a Price Formula had a Minimum based on Price Code Totals then the program was not rounding the total to the nearest penny. This could cause payments to not prompt for the full amount needed (total of $11.192 would ask for $11.19 and therefore payments would be short by $0.002). Program now correctly rounds total to $11.19 so payment amount fully tenders the transaction.

- TRN - Customer Entry - If the Display Parameters for Customer Entry had Name turned on but the Address field turned off, then the Name was being displayed in the wrong location (and therefore not visible) and if contact information was displayed then the Contact Name was hiding the Price Table fields.

- SUMMARY - The last set of database records added (those with the highest numbers) were not having their summary data recorded by the Summary function. If the Show Summary or ExpSum function are being used, then the Summary program should be run again for all dates that are needed in order to ensure the data for all database records is in the summary files.

- IMPPOR - Importing a Purchase Invoice when the default type was Purchase Order would cause two duplicate Purchase Invoices to be created (from build 53).


02/01/11 - v7.00 Build 59

LOGO - 1 User License - Register/Till numbers other than "1" can now be used with the 1 User license.

CNF - PARAMETERS - 1 User License - The "Enable Till Tracking" and "One Clerk Per Machine" parameters are no longer hidden when using a 1 User license.

CLOSEOUT - 1 User License - The program will no longer hide the register number on a 1 User License if either "Enable Till Tracking" is on or the Register Number is not 1.

TRN - Print Buttons w/ Payment Threshold - If the Payment amount is greater than the transaction amount (change being due back) then the program will compare the Alt Button Threshold to the transaction amount instead of the payment amount.

- TRN - Print Buttons w/ Payment Threshold - The Payment Threshold for an Alternate Print Button was not working if it was a positive number (from build 57).

- TRN/POR/etc. - Detail Display Box - If more than one field was marked as a Wrapped field (Alignment="W" - used by Comments), only the last one was being displayed.


01/28/11 - v7.00 Build 58

CNF - (Advanced Only) - Added an "Alt Code Links..." button to the Database Parameters function. Selecting this button will bring up a window where fields on the Inventory, Customer and Vendor databases can be linked to the Alt Codes list.

DATABASE - Alt Codes Links (Advanced Only) - If any fields are marked as Linked to the Alt Codes list then as a database record is saved, it will add the text from the linked field(s) to the Alt Code list (if it is not already there). Also, if the old text exists on the Alt Code list, then it will be removed.

CNF - Alt Codes Links (Advanced Only) - Indexed fields (e.g. Product Code) are marked with an "*" and work slightly different than the other fields. Since indexed fields are already searched, adding them to the Alt Code list is not necessary. Instead, the program will add the previous text to the Alt Code list when the field is changed (instead of the new text). This allows the program to automatically create a list of the old values in case they are still needed. For example, if the Product Code field is on the Alt Codes Links list, then if a UPC code changes on an item, the old UPC will be copied to the Alt Code list when the item is saved. That way if an item with the old code is scanned, the program will still find it (sometimes referred to as "Superseded Part Numbers").

KSR - Matrix Sales/Purchase History - Added the ability to Group By - Department/Category/etc. Also added the ability to print Customer/Contact (or Vendor) information with each line item.

PAID OUTS - PRINT BUTTONS - You can now edit the [Ok] button on the paid out screen by using Print Button Number 0. If button number 0 is included on the list of Paid Out Print buttons, it will replace the standard Ok button. The Hidden and Security Level parameters can then be used to remove it. Also, setting up the form buttons will then cause a print out to be made even when the [F10] key is used. If the Print Buttons are set so that the Ok button does not appear, then [F10] will cause the first print button on the screen to be used. (If there are no print buttons, then the Paid Out function will not proceed as only the Cancel button would be available.)

POR - Update Alt Codes for Vendor Part Num - If the Update-"Add to AltCode List" parameter is Off, then the program will check the AltCodeLinks settings to see if Inventory AltCodes are linked to V1PartNum. If they are, then the Vendor Part Number on the purchase transaction line item will be used to update that item's Alternate Code List.

- CLOSEOUT - EDIT PAID OUTS - Re-saving a previous paid out would generate a new one instead of overwriting the original.

- GLLINK - Inventory Items on Variances that were Hidden were posting the blank department instead of the department assigned to them. (In looking up the item from the variance in the Inventory database, if the item was hidden then it was not found so a blank department code was used to post the variance for that item.)

- KSR - Inventory Sales/Purchase History - The parameter to enable the printing of Transaction Comments was not being displayed.

- PAID OUTS - Print Buttons were not working (from build 57)

- TRN - XFer pricing was not working if the Price Code field on the inventory item was blank.

SCRNS - Added code to only prompt for a screen to be saved when changes have been made.

- CHGNUMS - Fixed Error 52 when the "Read From File" parameter was on.

- CHGNUMS - The log file was not correct. It was showing the Old Number twice instead of the Old Number followed by the New Number.

- RECMRG.EXE - RecMrg.exe was not updating Inventory Data.

- STR - Transfers - Transferring an item to a store that did not already have that item in their Inventory database would cause the QOH posted to the store to be double the qty that was transferred.

- LICID.EXE - Changed the installation program LICID.EXE to copy the default license file over the top of the current ones before updating with the new license information. This is done in order to avoid conflicts with license files from previous versions.


01/19/11 - v7.00 Build 57

AR - Select ROA Payment - will now start at the end of the list if sorted by date.

AR/POR/TRN - Select Transaction - Changed it so changing the sort order ([F9], etc.) while in the transaction records list stays on the same record (same as databases).

CLOSEOUT - MANAGE REGISTERS - (Advanced Only) - Added the function "Manage Register" (or "Manage Tills" if Enable Till Tracking is on) to the Closeout Menu in the Closeout Module. This function will display a list box of all the Register numbers that currently have a Next Closeout Start Date/Time and the Starting Drawer Amounts for each register listed. Selecting a Register will bring up a box where the Next Closeout Start Date/Time and the Starting Drawer Amounts for each payment type can be edited. (This Data is stored in the REGISTER.DAT file.)

CNF/CLOSEOUT - Security Levels - Added the security level "Closeout - Use the Manage Registers (or Tills) function". The default value is 6.

DATABASE - Clerk Passwords - When editing a clerk and changing the security level to an administrative level, the password must first be changed or it will fail the password check (this is because the old password is not actually loaded therefore it cannot be checked).

POR - Scripts - Added support for scripts on Purchase Transactions.

POR _ Parameters - Entry - Added the buttons "Non-Inventory Item Script...", "Starting Script...", and "Ending Script...". These are the same as the ones in the Sales Manager (in fact, the Sales scripts can be set from here and vice versa).

PAIDOUTS - (Advanced Only) - Added the ability to select the Reason and Amount from a list of "Paid Out Reasons". Use the [Ins] (or [F2]) key to bring up the list.

CNF - Defaults - (Advanced Only) - Changed the Paid Out Reason setting to a button that will bring up a list of Paid Out Reasons that can then be edited. The data is stored in the file PAIDOUTS.DAT which is a simple ASCII delimited file that could also be edited from an outside program.

CNF - Defaults - (Advanced Only) - Added the parameter "Display list of Paid Out Reasons". If this is on, then the paid out function will immediately pop up the list of Paid Out Reasons instead of requiring the [Ins] key to be used.

CNF/TRN - Payments - Alternated Print Button - Added support for setting the "Threshold to us Alt" parameter to a negative number. If this is done then the amount being printed will be compared to the Threshold amount without first making the amount positive (which is what happens if the threshold amount is a positive number). This allows a different receipt to be set up for returns. (In most cases, the Threshold should be set to -0.01 to default returns to the alternate print button.)

SCRPT - Scripts - Multiple transaction types - Changed the Use On parameter to support multiple transaction types (instead of just one). For example, a single script could be set to run on Sales Orders an Sales Invoices but not Quotes.

SCRPT - Purchase Transactions - Added the ability to mark a script for "Use On" purchase transactions.

TRN - Age Check with D.L. Swipe - Added support for Michigan's Driver's Licenses which are slightly different than the standard swipe format.

- AR - Statements - Comments were only printing the first line instead of the entire comment block.

- DBM - Search/Delete - The program was sometimes getting stuck on a deleted item and would just keep re-deleting it until [Esc] was pressed.

- Help - About Screen - was showing the version date as the date the license files were created instead of the date of the release.

- KSR - Audit Report - Database Record - The description of which record was changed was blank when Contact or Vendor records were changed.

- KSR - Filter Settings - If a report section had a Filter entered on it but was then set to Print - Individual - the report settings would then show the "(Filter On)" message on the main settings screen below that section's button even though the filter would not be used (a section's filter is ignored when the section is set to Print - Individual).

- POR - Creating Invoices for Orders - Every time a purchase order was saved that had no open line items on it, any line items that existed that had a Total Order Qty of 0 on them would be transferred to a new invoice even if no other changes were made (it now only does this if something was changed on the order before saving it).

- SCRPT - If the Edit Script box was brought up more than once at a time (which is possible due to the ability to edit them from anywhere), then the boxes would conflict with each other. The program now keeps each Edit Script box separate from any other Edit Script box that may be running.

- TRN - Gift Cards - Fixed an error 9 (could also be reported as a 2 billion error) when processing a gift card as a line item that is saved as a payment. (from build 24).

- TRN - Gift Cards - Check Balance - If the Balance button was used and then another button was used to process a gift card through KeyPay, the program would give the "Recurring Payment not Found" response.

- TRN - KeyPay - Voiding Payments - if a payment was entered under a different transaction type than it is now under when being voided, KeyPay would not be able to find the original payment to void/credit it.

- TRN - If the "Enable Qty * Item" parameter was on, the program would evaluate the line item entry field with the "Qty *" routine even if the item was already entered and the text was not changed. (For example, an item with a description of "Look ***Here***" would be changed every rtime the cursor passed through the line item.)

- TRN - The "Enable Qty * Item" is no longer called if the "*" is the first character entered. (For example, entering "*Options*" will no longer be interpreted as a "Qty * Item" entry).

- CHGNUMS - Inventory - All Serial Numbers (and Selectable Comments) were being lost (not copied to the new inventory file).

- CHGNUMS - Inventory - Was not updating Scripts or Contract Price files.

- CHGNUMS - Customers - Was not updating Contract Price files.

- FMTR - Edit Field - The Field Text field was limited to 30 characters.

- DOLU - Removed E-Commerce and Loyalty from list (since not supported anyway). Added Contract Pricing to list from Dealer Bundle.


01/11/11 - v7.00 Build 56

- MACHINENUMBERS - MNUM= Switch was not working (from build 55 only).


01/03/11 - v7.00 Build 55

CNF - Tax Tables - Formulas - Added the ability to cut and paste from the list of tax formulas (Ctrl+C/X/V). When pasting a formula back in, if the formula it was copied from is still available then the program will automatically set its End Date to be just before the new formula's Start Date. For example, [Ctrl+C] on T - Taxable which ends 12/31/20, then [Ctrl+V] and setting the Start Date to 1/1/11 will set the original formula's end date to 12/31/10.

CNF - Tax Tables - Formulas - if a Start or End date is entered in the past, the program will pop up a quick message so you can double check and make sure that is what you wanted.

MULTIDRAWER - TILL NUMBERS - Added support for assigning a negative till number (-1) to a clerk. If this is done, then the clerk will only be allowed to use machines with either a drawer number 0 or no drawer at all. This is to be used when a drawer number of 9999 is used on a machine but there are still some clerks that cannot use it. (A drawer number of 9999 allows any clerk with a till number that is not negative to use that machine).

MULTIDRAWER - TILL NUMBERS - Added warning messages if the Till Number is set to a negative number on any clerk or if set to a number other than 0 on a clerk with a security level of 0 (both of which could lock the clerk out of all the machines). In most cases, clerks with a security level of 0 should not be using a till number, if a manager is ringing up sales, then they should have (and use) a another clerk number with a higher security number (less access).

POR - Added support for the following Qty Totals to be displayed in the line item detail box: 110=Total Qty Ordered, 111=Total Qty Received, 112=Total Qty On Order, and 113=Total Qty Being Received. Also added the fields: 114=Total Qty Mode 1, and 115=Total Qty Mode 2. The Mode 1 and Mode 2 fields will vary depending on the screen mode and are designed to allow the detail box to show the qty total directly below the qty column. (see DOC\DetBox.doc)

VAR - Post Blank Variance Items - Added the ability to post (save as a transaction) items on a variance where the Phys Qty is blank (from autofill and item qty no yet confirmed). This can be used to save a snapshot of the QOH of the items without actually updating the item (or having to enter a variance qty of 0). Note that even if the "Post Items w/ 0 Variance" parameter is off, blank items will still be saved.
When posting a variance, if any of the line items have a blank Phys Qty, the program will display a warning and ask how they should be treated. Once a selection is made, a message will be displayed to confirm the choice.

- AR - Statements - Invoice and ROA Payment Comments were not printing on statements.

- FORMS - Fixed error created when the "Don't Print if Blank" flag is used improperly on Summary lines directly above a Tax Loop or Pay Loop field. If this was done, memory would be corrupted and the program could crash either then or later. The program now catches this error. But the "Don't Print if Blank" flag should not be used on summary lines anyway, the "Skip Line" flag should be used instead. (The "Don't Print if Blank" flag should only be used in Address blocks as it causes the fields directly below it to be pulled up).

- KSR - Audit Report - Database Record - The description of which record was changed was always blank.

- KSR - Matrix - History - If a transaction filter was set then it was being displayed twice in the header section of the report (both as a Transaction Header Filter and a Transaction Line Item Filter). This is a display issue only and was technically correct as the filter is used by both sections. It now is only displayed as the Line Item filter just so same text is not repeated in the header section.

- LOGO - Conversion from v7.00 build 20 to 27 - An Error 438 would be given when trying to do the v7.00 build 28 conversion (only applied to data sets from version 7.00 but before build 28).

- LOGO - Data Conversion - In some cases the LEVELS.DAT file from the older data was 4096 bytes (should have been 334 bytes or less). This was causing the conversion program to not convert the file to v7 format. It will now convert files that are 4096 bytes as well as those that are less than 400 bytes.

- LOGO/TRN - Added checks for invalid number in the line item weight field.

- MACHINENUMBERS - If using the MNUM= switch to manually assign a MachineNumber (which is recommended) and also using the /G (or GOTO=) switch to go directly to a module, then it was possible for the program to assign a different machine number than the one requested.

- MACHINENUMBERS - Changing Modules - When switching to a new module, if the file USER#.TMP (where # is current machine number) become unavailable then the program would sometimes assign a different machine number to the current machine (which can cause other problems). The program will now stop and wait until the file is available. It will display a message when this happens and give the clerk the option to shut down the program (since it cannot proceed without the required file).

- MACROS - RUNMENU - was not always resetting menus so they would stay grayed out (hitting [Esc] would usually reset them).

- POR - When converting a Reserved Order to either a Purchase Invoice or Purchase Order, the program was not setting the transaction's date to the current date or setting its clerk number to the current clerk.

- POR - Manual Tax - If the Tax amount was entered manually (the Editable Tax parameter is on and amount was changed), then the program was not adding the amount to the total for the purchase transaction.

- POR - SPECIAL - RECEIVING - If an item had the "Don't Print Price Tags" flag on it then the program was asking for Serial Numbers to be entered when the item was received through the Special - Receiving function.

- Serial Ports - When receiving messages back from a serial device, if more than one message was sent back at a time the second message would sometimes be ignored.

- TRN - Certificate Number in Comments - The special "~" token for automatically numbering a line item as it is sold was not working.


12/17/10 - v7.00 Build 54

- TRN - SALES TAX NOT CALCULATED ON SALES ORDERS - If the transaction parameter Use Current Data for Sales Tax was on (which is always is on Sales Orders) and the customer was changed but the Tax Tables stayed the same, the tax formulas were not being reloaded and the tax rate would be 0.

CNF/TRN - PIN PADS - Added support for the UIC-PP790SE PIN Pad device. This device uses a serial or USB interface. If using the USB cable, the PP790SE USB driver must be installed (creates a virtual COM port). Communication with the device is handled directly, OPOS is not used. Other than the USB driver, no other drivers or programs are required. The device is similar to the Ingenico i3070 (and the Verifone 1000SE except the 790 has a Magstripe reader) (see www.UICUSA.com for more info on the device).

CNF/TRN - PIN PADS - Added support for the UIC-PP795 PIN Pad and Signature Capture device. This device comes with both a serial and USB interface. If using the USB cable, the PP795 USB driver must be installed (creates a virtual COM port). Communication with the device is handled directly, OPOS is not used. Other than the USB driver, no other drivers or programs are required. The device is similar to the Ingenico i6550. (see www.UICUSA.com for more info on the device).

CNF - PIN PADS - Added a "Test PIN Pad" button when setting up PIN Pads that Keystroke has test routines for. (Currently only the UIC-PP790SE.)

CNF - Files - Backup - Changed the Standard Backup option to be based on the 7-Zip compression program so it can be used with 64 bit operating systems. The method using PKZip is still available as "Old Standard Backup".

CNF - Files-Restore - Changed the Standard Restore option to be based on the 7-Zip compression program so it can be used with 64 bit operating systems. The method using PKUnZip is still available as "Old Standard Restore".

CNF - Files - Backup - Changed the default location of the backup file to the BACKUPS\ directory below the program directory.

CNF/POR - Security Levels - Changed the name of the security level "Create Invoices from Receiving Function" to "Create Invoice from Order (Reserved instead)" which is what it really does. If items are received on a purchase order (from either the Receiving Function or by editing a Purchase Order directly) and this level is not met, then the invoice that would normally be created is saved as a Reserved Order instead of an Invoice.

CNF - SETTINGS - DEFAULTS - Changed the default setting on "Reports default to Today after:" when initializing a new data set, or converting one from a previous version, to 0:00 am (midnight).

DATE ENTRY - Added support for the shortcut codes "BPY"=Beginning of Previous Year and "EPY"=End of Previous Year. For example, to run a report for last year, enter BPY in the start date, and EPY in the end date.

DATE/TIME RANGE - Added support for pressing to set the time range to Midnight to Midnight (0:00am to 11:59pm). Note that this does not change the dates.

DATE/TIME RANGE - (Advanced Only) - Changed the Date/Time Range box to include buttons to quickly set the date/time range for: "Yesterday", "Today", "Last Month", "This Month", "Last Year", and "This Year". Also added a label just below the dates that will display which one of the settings the current Date/Time range matches.

TIME ENTRY - If the time is entered as 11:59pm (in any format) then the internal value that is used will be 11:59:59.999pm (this eliminates a hole where a transaction saved 1 second before midnight might be skipped if it lies between the ending and starting dates of 2 different reports).

DBM - Hide Records - If trying to hide an Inventory or Customer record, the program will now display a warning that the record is in use if the Inventory item has a QOH or if the Customer has an Amount Due.

LOGO/CLOSEOUT - On a new data set the default printer for closeout reports will be set to Report instead of None. Also, when converting a data set from v6 to v7, if the closeout printer was set to None, it will be set to the Report printer (v6 would print to the Report printer in closeout even if the printer parameter was set to None).

SHOWSTATUS - The ShowStatus ([Shift+F12]) function now shows the date the current module being was created on.

TRN - Process Recurring Charges - Added the ability to filter on complete Customer and Contact information.

VAR - AutoFill - On the search screens, entering a 1 in the Hidden field will now cause the program to look at Hidden records (otherwise it does not).

- AR - Filters - Automatic Payments / Statements - Filtering on Customer Number or Customer's Salesperson was not working correctly (field was being treated as text instead of a number).

- DATABASES - Data Entry with field links and masks - If a field was linked to another field that was set to Null and it had a field mask attached to it, then the result was not correct due to the formula being based on the field value of null. In this case, the program will no longer perform the field mask operation.

- TRN - If check Customer History parameter was on, and a customer was selected, the Clear function would first clear the transaction but leave the customer on the screen for the new transaction. Clearing again would then also clear the customer back to the default (this is how the clear function works when browsing through transactions and so the check history function was putting it in that mode).

- TRN/POR - Print Box - Some of the buttons on the Print Box (shown at the end of entering a transaction) were not centered within the box correcly (display issue only).

- TRN - Gift Cards - while processing gift cards the program will now set the message bar to show each step as it happens.


12/09/10 - v7.00 Build 53

CNF - Hardware Setup - Port Selection - The list of available ports will now display all the COM ports that Windows has listed as currently available (including virtual COM ports for use with USB devices).

CNF - Authorization Methods - Remove the ability to create a new authorization method for MercuryPay and PCCharge. (This was done since KeyPay now handles these methods in a more secure way).

FMTR/FORMS - Added the ability to print the Company County, Country, Email, and Website fields on all forms.

POR/FMTR - FORMS - Added to list of fields that can be printed on a Purchase form. The new Line Item fields are "On Order", "Total Received" and "Being Received" for "Quantity", "Cost Extension", "Sales Tax", and "Weight Extension".

POR - Forms - Received Fields - Changed the usage of the fields that are based on Qty Received. The fields that are listed with "-Received" on the end of them will either be based on the Total Qty Received or on the Qty Being Received depending on the transaction type and whether or not any items are being received. (Purchase Orders that are receiving anything will use Qty Being Received, all others will use Total Qty Received.

POR - Receiving - Added support for looking up Open Orders by the "Manufacturer" and "AltID#" fields.

LOGO - IMPORTER SETUP FILES - The program will now copy any standard setup file from the FILES\ directory if the file does not exist in the FORMS\ directory. (This change is only for installation purposes). Currently the standard importer setup files are: KSEXPORT.KSI, KSIMPORT.KSI, and BOD.KSI.

- AR/ARPAYOFF.EXE - The Filters in the AR-Finance-Automatic Payments function were not working correctly. The list of available filter fields was from v7 while the function still uses the filters from v6. Fixed the list to show the v6 fields.

- MATRIX - New Matrix items created in v7 (as opposed to those converted from v6) had their ViewSecurityLevel field set to 0 instead of Null. This was causing the new matrix items to not appear on reports on in the Matrix Database list in the Database Manager if the current clerk did not have a security level of 0. The program will now default the ViewSecurityLevel to Null, add the field to the Matrix Database Screens, and will automatically change the field on all matrix items from 0 to Null when first run.

- CNF - Enable Till Tracking - Removed the parameter "Enable Till Tracking" (and set its value to OFF) if using a single user system (it doesn't work with a single user license anyway since the Register/Till number can't be changed unless the system is licensed for more than 1 POS workstation).

- DATABAASE - CONTACTS/MATRIX ITEMS - When adding a new database record, only the fields on the first database screen were using their default values as set by the additional database screens.

- DATABASE - CONTACTS - Last Purchase Date - The Contact's last purchase date was always being displayed as 2 days after what it should have been (and would be set to that new date if the contact record was saved).

- POR - Line Items - The [Ins] key was not working when pressed in the Cost or Tax columns (Cost/Price list, Tax Code list).

- POR - Line Item Entry - Setting the default Line Item Entry field to AltID# was not working.

- POR - When updating the average lead time on an item, if the old time value was not valid (less then negative 100 days or more than 10 years) then the AvgLeadTime would be set to number from the invoice being received instead of being averaged in.

- POR - Resaving a purchase transaction was assigning the current clerk to the transaction instead of keeping the clerk number that was originally saved with it.

- POR - Creating Reserved Order from Purchase Order - If a clerk received items on a purchase order but did not have the security to "create purchase invoice from orders" and did not have the security to "create new reserved order" then the program would display an accessed denied message and not save the transaction correctly. It now proceeds with saving the reserved order created by the purchase order.

- TRN/AR - Credit Memo/ROA Payment - When processing a Credit Memo or ROA Payments and the Authorization Method was set on the payment and the Change Back setting was set to one of the other payment types (not "None" or "Cash (Change Back)" then the payment was being authorized for double the amount entered.

- TRN - Enter Credit Memo - some of the customer fields were not being displayed in the Enter Customer box for Credit Memos (from build 51).

- TRN - DISPLAY PARAMETERS - Auto Logout Time - The Display Parameters screen in the Sales Manager was not showing or saving the "Auto Logout Time" and "Delay on Changed Display" parameters correctly. The Auto Logout would be set to 1 minute whenever this function was used and saved.

- CHGNUMS - If files from deleted items existed in the PHOTOS\ directory, ChangeNums could give an error when renaming files. It now just overwrites the old file without a warning.

- LOGO - v7 Data Conversion - the following files were not being moved to the v6 directory: LBL*.DAT, RPT*.DAT, REPORTS.DAT (data in them is not used by v7).

- TOOLBARS/MACROS - Using the "POPUP=CustomModules" on a ToolBar Button or Macro would not remove the original modules screen so it was hard to tell that the program had changed modules.

- IMPPOR - was displaying 3 Access Denied messages with each transaction that was being imported.

- IMPPOR - Order Qty - The QUANTITY= and ORDER QUANTITY= fields were not setting the qtys correctly such that the Total Order Qty was being left at 0. Also, the Total Received was being set to the negative of qty ordered (unless the QUANTITY RECEIVED= field was used).

- SCRNS - When editing a field the Field Name was sometimes being displayed as "N/A" even when it was valid (display issue only).


11/30/10 - v7.00 Build 52

TRN - Change Due display - Increased the visibility of the "Change To Be Given Back" display box by doubling the size of the font and changing the color to Red.

- LOGO - V7 DATA CONVERSION - The file KSMTCNDX.DAT was not being renamed and moved to the V6 directory. (There is no real problem with this, just leaves the extra file that is no longer used in the data directory).

- IMPORTER - Hidden Records - When running an Import-Merge, the program was not finding records that were marked as hidden.

- IMPORTER - Hidden Records - The parameter "Unhide update records" was not working. Also note, if importing the "Hidden" field, this parameter will override the imported status and always mark an each record as Not Hidden.

- KSR - Inventory/Matrix Analysis - Sorting by Inventory AltID# was not working correctly.

- KSR - Inventory/Matrix Analysis - If the 2nd grouping was not None and a sort range was being used on Inventory, running the report and then running it again with a different Sort By and/or Range setting under Inventory could could cause some items to be reported twice (once under No Department and then again under the correct Department) and/or cause some items to be skipped. This was caused by the report data not being recalculated for the new settings. Changing other settings (including the date range) or entering the Report Manager module would reset the report data files which would avoid this problem.

- KSR - Inventory/Matrix Analysis - If the Inventory Sales Analysis report was run and then a Matrix Sales Analysis report was run with most of the same settings, matrix items were not showing as being sold. This was caused by the report data not being recalculated with matrix info. Changing other settings (including the date range) or entering the Report Manager module would reset the report data files which would avoid this problem.

- POR - Purchase Orders - The Complete Purchase box was not skipping the "Select New Payment" field when a Purchase Order was not receiving any items.

- POR - Forms - Line Item Qtys - Changed the name and usage of the Qty Ordered and Received fields to be more consistent with past usage. Field #1 is "Quantity Ordered Total" and #14 is "Quantity Received Total", while #33 is "Quantity On Order" and #34 is "Quantity Being Received". In most cases the first two (1-OrderTot, and 14-RecvdTot) should be used on forms. If a receipt of what was received is desired when filling a purchase order, then either load the resulting purchase invoice and print it or use a form that prints field numbers 33 and 34.

- TRN - Enter Customer - The new display fields: Cell Phone, Fax, and Email were not displaying the customer's info.

- TRN - Enter Customer - when on a customer with no contact, the characters "Name" were being displayed where the contact's name would appear.


11/19/10 - v7.00 Build 51

TRN - Customer Entry box - Added the ability to show the following additional fields in the Sales Manager Customer entry box: Cell Phone, Fax, Email, County, and Country for both the Customer and Contact. Also, the entry box will now automatically resize itself depending on what is being displayed.

TRN - Parameters - Display - Added the ability to turn off the display of the address block (3 lines) as well as turn on/off any of the fields just added.

POR - Entry Parameters - Added the parameter "Pop-up Vendor Note". If this is on, then when a vendor is selected that has something in its Note field, a message box will pop up showing the Note.

POR - Screen Modes - Added the following screen modes that also display the New Price column: "Order/Recvd/Markup", "Order/Recvd/Profit", "TotOrder/TotRecvd/Markup", "TotOrder/TotRecvd/Profit". Use [Shift+F9] to switch to these modes (if enabled). Each screen mode can enabled/disabled through the Parameters-Display-Screen Modes menu function.

POR - DETBOX - Added support for the following fields to be displayed in the line item detail box (108=TotalPurchased, and 109=TotalSold). Both of these numbers are the current value of that field on the line item's database record (either inventory or matrix).

- TOOLBARS - DUAL PROCESSORS - Turned off the multiple threading capabilities of the buttons/toolbars/menus in Keystroke as some machines were getting screen draw delays that appeared to be caused by sync problems between the multiple threads when using dual processors.

- AR/ARPAYOFF.EXE - The Filters in the AR-Finance-Automatic Payments function was not working correctly. The list of available filter fields was from v7 while the function still uses the filters from v6. Fixed the list to show the v6 fields.

- DATABASE SCREENS - New Records - Fields being initialized to 0. If a database record was being added to the Department/Category/Location, Contact, or Matrix databases, some of the fields where coming up with a 0 in them instead of being blank (from build 47).

- DATABASE - MATRIX ITEMS - New matrix items were having their TotalVarianceQty and TotalTransferQty fields set to Null instead of 0.

- KSR - Inventory Analysis - Setting the "Sort By" to "Name" under the "2nd Grouping" button was not showing anything on the report (e.g. "2nd Grouping - Category by Name" would not find any categories and would print a blank report).

- KSR - Purchase Payables Report - Was not printing Purchase Invoices even when set to do so. Also removed the Don't Print if Empty parameter from the Aging button as it causes problems when used there and the Print - Balance Due setting under the Vendors button takes care of it.

- POR - When resaving a Purchase Invoice, if something on a line item that was a matrix item was changed, the received qty was being removed from the QOH of the matrix item (from build 47).

- POR - Distributed (Landed) Costs - where not being recalculated when editing a purchase invoice. Therefore, if it was re-saved, the costs on the inventory item would be updated as if the Distribute Discount/Shipping parameters were turned off.

- POR - Forms - Printing a form was not printing the correct amount for Qty Received or Amount Received when reprinting a purchase invoice.

- POR - Vendor Entry - Vendor Name was not restored on Cancel - If a Vendor is selected but then the Enter Vendor box is cancelled, the Vendor Name field on the transaction was not being restored to its initial value.

- TRN - RECURRING TRANSACTIONS - The Process Recurring Transactions function was skipping transactions that did not include a payment that required processing through KeyPay.

- TOOLBARS/MACROS - Using a ToolBar Button or Macro to change modules through he "RunMenu" command would cause the program to lock up (the new module screen was loaded but the code was still running from the old module).

- VAR - Matrix Items - The Variance module was not updating the TotalVarianceQty field on Matrix Items (QOH was being updated correctly).

KS2QB.EXE - was getting digitally signed each time a new build of Keystroke was release which made it look like the program was changing when it was not. The new current date of the file is now 11/17/10. Also added another error screen that will pop up if there is a problem initializing QuickBooks communication object (QBXMLRP2Lib.RequestProcessor2).

- STR - Matrix Items - if an item was entered with a matrix code that did not exist or if the matrix grid was brought up but no matrix items were selected, then the line item was being left as the inventory item (without matrix info) instead of removing it (blanking out the line item).


11/10/10 - v7.00 Build 50

- POR - Resaving a Purchase Invoice was setting the Received Qty on the line items to 0.

- POR - SWITCHING TRANSACTION TYPE - When editing a previous Purchase Order or Purchase Invoice, the program will not allow the transaction type to be changed to from Order to Invoice or from Invoice to Order (it can be changed to Reserved Order, saved, edit the Reserved Order and then changed to either transaction type.)

- KSR - Inventory Database/History Reports - The program was not printing Inventory Items that had a Parent and no Matrix Table if any of the flags under the Inventory button (e.g. "Include Hidden", "Don't Print if Empty") were turned on.

- STR - REPORTS - Line Item Fields - The following fields were not being saved with Transfer Line Items (and would therefore print as blank or 0): VendPartNum, Created-Date/Time, LastChanged-Date/Time, InvFlags, and AltID.

- TRN/POR - Screen Artifact - Fixed a short line that was sometimes left on the screen after exiting the Complete Sale/Purchase box (came from the list flashing cursor in the list of payments).


11/09/10 - v7.00 Build 49

CNF - Export - Sales/Purchase Transactions - Added the field "AltID#". It is listed just before the last field being exported (comment is still the last field and so moves over 1 place).

GLLINK - Settings Report - Add the "Print Current Settings" function under the Setup menu. Selecting this will print the current settings to the screen (from there it can be sent to a printer).

IMPORTER - Added a new parameter "Also Search Alternate Codes" to the Inventory, Customer and Vendor setup screens. If this is on, then if the program searches for, but does not find the record, then it will use the text from the "Merge By" field and search the Alternate Codes list for that record. If the Alternate Code is found then the program will use that record. Also, as with Merge By fields, if there are multiple matches, it will use the first one it finds.

IMPORTER - INVENTORY - Added the option to Merge By - AltID#.

KSR - Sales/Purchase Payments - Added the ability to "Print - Individual" payment types.

KSR - Sales/Purchase Transaction Line Items ("STL"/"PTL") - Added the field "AltID#" to Sales and Purchase Transaction Line Items.

STR - Transfer Reports - Added the field "AltID#" to Transfer Line Items ("MTL").

- POR - UPDATING LAST COST/AVG COST - (from build 47) - If the cost on an item was changed, it was not always updating the inventory item with the new cost even if the parameters were set to do so.

- POR - Matrix Items - When saving a purchase invoice, any amounts that were being stored on a matrix item (the matrix item's field was not Null) then the program was setting the line item's value back to what was on the Matrix Item (instead of setting the Matrix Item to the new value). (From build 47).

- AR - Statements - Edit Form - The box that appears when one of the Form buttons is selected was not formatted correctly (the Ok button was worded wrong and did not work, but [F10] still did).

- CLERK MESSAGES - Sending a Clerk Messages "To Individual" was giving an Error 13 (from build 47).

- CNF - Company Logo - The filename of the company logo was being restricted to 40 characters - the actual maximum is 64 characters.

- CNF/KSR - Sales Transaction Line Items - the Payment Code field was always blank on reports/export.

- FORMS - Print To File with "&" - The program was not replacing the "&" in the port field (as set under Printers-Port) with the transaction number.

- GLLINK - Posting Variances - The program was skipping almost half of the line items on a variance when posting it.

- IMPORTER - INVENTORY - Merge By - Manufacturer was not working.

- KSR - Inventory Purchase Analysis - Sort by Total Cost was not working.

- MATRIX - Selecting a Matrix Item that did not exist was not setting the Long Description of the item to represent which matrix item was selected.

- MATRIX - Selecting a Matrix Item using the Side by Side or Cascade selections was not working.

- POR - Detail Box - the field numbers 102, 103, and 104 (New Price $ Mark-Up, % Mark-Up, and % Profit) were being displayed based on a cost of 0.00 instead of the actual cost shown on the line item.

- POR - Transaction Browse - was sometimes not working if the transaction on the screen was selected from the Edit/Print menu function.

- TIME CLOCK - If Time Clock was run without a clerk being logged in, then some of the fields were being disabled even if the clerk had the security to use them.

- VAR - Variance History Report - When searching each variance for an item, some of the lines (about 20%) were not being looked at.

- STR - Transfer Reports - The following fields for Transfer Line Items were always printing out as blank: Transfer-Date, Transfer-Time, Manufacturer, VendPartNum, LongDescription, Shipped, Location, Flags, InventoryFlags, Created-Date, Created-Time, LastChanged-Date, LastChanged-Time.


11/04/10 - v7.00 Build 48

- REPORTS - Reports set to "Print To - Printer" were getting a "Printer is not set up" message and then not printing (from build 47). (Printing to Screen or to File was working correctly.)


11/02/10 - v7.00 Build 47

CNF - Print Forms to Screen - (Advanced Only) - Added a parameter to the Print Button setup to allow the form to be printed to the screen. This is done by turning on the "Print to Screen" parameter when setting up the Form via the Form button in the setup Print Button function.

CNF/TIMECLOCK - Added a new security level "Time Clock - Save without printing" (default=10). If this is not met, then the [Ok] button on the Time Clock function will be hidden. This will then require that the print button be used to both print and save the time clock entry. If there are no print buttons available and the current clerk does not meet this level, then the Time Clock function will not run (the message "Access Denied" will be displayed). This allows the system to be set up where managers must help clerks to clock In/Out. (Be careful with the Time Clock security levels, if Clocking In is required but access to the Time Clock function is denied, then you may not be able to get into the system.)

DBM - Link From - If a field is set to Link From the Number field for the record (Stock Number, Customer Number, etc.) then the program will update it when saving the record the same as it does for the number field as long as the initial value of the field is not changed.

KSR - Time Clock Report - Added the parameter "Include hours from Current Shift". If this is on, and if the clerk has a final Clock In record but no Clock Out record for the report's date/time range, then the Hours field in the Shift section will include the hours from when the clerk Clocked In to the report's ending date/time. ALSO, If this parameter is on, and if the clerk's first Clock Out record's paired Clock In record is from prior to the starting date/time of the report, then the hours for that shift will be calculated as from the beginning of the Report's starting date/time and NOT from the Clock In record. This ensures that if sequential reports are run this way, the total hours between them will be correct (however, running some reports with the parameter on and some with it off will cause the total hours between the reports to not be correct).

KSR - Report Cues - Setup - Added an "Export" button to the Report Group Setup screen. This can be used to save the current Report Group and all the Report Settings that it uses to a file (default file name is the Group's Name with the extension ".RC" in the Keystroke Program directory). The Append Flag can be used to export more than one group to the same file. The file is still in its raw format (same as the KSRE*.DAT files) and can only be used to be imported back into Keystroke. The extension (".RC") should not be changed so the file can be recognized by the Report Cues Import function.

KSR - Report Cues - Import - Added the function Cues - Import which can be used to add a Report Group and all of the Report Settings that it uses to the current Report Groups and Settings. While importing, the program will search through existing Groups and Settings by Name and replace if one is found (otherwise it will add the Group/Setting).

KSR - Report Forms - Report Form Files (REPORTS\*.KSR) that have the numbers "05" in the the file name's 5th position (i.e. ????05??.KSR) will only be displayed if using Keystroke Advanced POS (Keystroke POS will not list these files). This is done because these reports include fields that are only available in Advanced and will not print correctly with Keystroke POS.

POR - EDIT/VIEW TRANSACTION - When loading a previously saved Purchase Transaction the program will now default the current line to just below the last line item instead of starting with the first line item.

POR/TRN/VAR/STR/PROD - [Ctrl+UpArrow] and [Ctrl+DownArrow] can now be used to got to the First Line Item or the Last Line Item.

TRN/FMTR - Sales Transaction Forms (Invoices/Receipts) - Added the ability to print the following Contact fields: Comment, Short Info 1, Short Info 2, Long Info 1, Long Info 2, and User Flags.

IMPTRN - Added support for all the fields recently added to TRN for printing on forms (e.g. Customer eMail, Customer Long Info 1, Contact Comment, etc.). See IMPTRN.NVC for complete list.

TRN/FMTR - Added the ability to print vendor information for each line item. Only the first of the possible 4 vendors on the inventory item is available. The fields are: "V1 Number", "V1 Name", "V1 Last Purch Date", and "V1 PartNum".

TRN/DETBOX - Made the fields "Transaction Comment", "Customer Comment", and "Contact Comment" available to be displayed in the Line Item Detail box (see doc\DetBox.doc for field numbers).

PICTUREVIEWER - The Picture Viewer will only save its position if the window is in normal mode (not Maximized or Minimized).

- CNF - Payments - KeyPay - If a payment's authorization method was set to KeyPay and there was a recurring transaction type, then the program would generate an error just after moving recurring payments to KeyPay.

- DATABASE - CONTACTS - The Custom Data fields User Short Info (Code) and User Long Info were not saving correctly. Each time the contact's database record was edited and saved the contents of these fields would be shifted to the next field. (UserFlags to Code1, Code1 to Code2, Code2 to LongInfo1, and LongInfo1 to LongInfo2. Also, if a numeric entry was in the LongInfo2 field, then the contact record would be marked as Hidden.

- DBM - RECORD - DELETE/HIDE/SHOW - While using the record list box of these functions, if a filter was entered, it was being cleared out each time a record was selected. The program will now remember the record list filter as long as the function is active.

- DBM/UDPRICE - Minimum Markups on price formulas were being ignored when using the Update Price function.

- Error Message - Warning 201 - Added the name of the file to the message screen (and fixed up record in errors.log to not include the Call SBS text).

- KSR - Delimited Report Forms - Report forms that were set up for delimited use only (all field widths and tracks are 0) where sending extra line feeds.

- KSR - Purchase Analysis - Sort by Total Cost was not working.

- REPORTS TO FILE - When printing to a file the program was only using the first 40 characters of the filename (now uses the full 128 characters supported by the field).

- MTX - The "Which One?" list for Matrix Items was not working. (This is the list can appear when multiple matrix items have the same product code.)

- POR - Matrix Items - The Update Base Price parameter was still setting the Matrix Item's Base Price even if it was Null (in which case it should be left as Null so it can the price from the Inventory Item).

- POR - Matrix Items - The Update Base price parameter was not using the price formulas correctly except when being updated based on Last Cost.

- POR - Detail Box - Matrix Items - the Vendor 4 information was always displayed as blank on Matrix Items in the Detail Box (if displayed at all). (The was a display issue only.)

- POR - Payments - The Payments Tendered list was sometimes not displaying correctly.

- POR - Complete Transaction - The amount Tendered field was always being displayed as $0.00.

- PROD - Matrix Items - Loading a Saved Template or Saved Production was not reading in the matrix code for matrix items.

- TRN - Gift Cards - Increased error checking and the ability to display error messages while recording a Gift Card.

- TRN - Sales Orders - KeyPay - Voiding an Invoice with a KeyPay processed payment that was transferred from a Sales Order not working. KeyPay was not able to find the payment since the Transferred Payment on the invoice did not contain enough information. The program now stores all the necessary information for KeyPay to find the payment with the transfer payment.

- TRN - Matrix Items w/ Parent Child - When converting a parent item (e.g. case) into its child items and the Matrix Items were storing their own Last Cost, then the Inventory Item's Last Cost would sometimes get set to a large negative number (-$2 billion).

- TRN/POR/STR - Line Items - Location and Long Description fields were not being saved.

- POR/STR - Line Items - the Manufacturer, AltID, and Item's Category fields were not being saved.

EXTRACT - START= and END= commandline switches (and in Extract.dat files) only support the use of the MM/DD/YY or MM/DD/YYYY format for entering the start and end dates. Use of any other format may cause the program to use the wrong dates.

FMTR - Added the ability to copy fields ([Ctrl+C] and [Ctrl+Ins]). Also added support for the keys [Ctrl+V]-paste and [Ctrl+X]-cut.

- EXTRACT - When writing START= to EXTRACT.DAT (to mark what date the next extract should start on) the program was using the Date Format set in the configuration manager. The problem is that when reading the dates back in the program only supports the standard MM/DD/YY or MM/DD/YYYY format. Extract.exe will now always write this date in the standard format no matter what the date format is set to in the configuration manager.

- FMTR - Paste [Shift+Ins] - was not displaying the field pasted on the form even though it was there. (Workaround was to press [F3] then [F10] while on the field).

- FMTR - Component Items - in some cases the editor was displaying fields marked to be printed with Component Items one line too high so they would overlay the line before it.

******************** POR - NEW PRICE *********************

Keystroke POS Advanced Only - Added the ability to view and manually update Base Price when saving Purchase Invoices. The program will now also store the changes made to Base Price by Purchase Invoices (whether done manually or through price tables) with the line item on each Purchase Invoice. This allows these type of price changes to be reported on at a later date.

The following changes were made to both Keystroke POS and Advance in order to enable these features:

Screen Mode - [Shift+F9] will no longer switch between transaction types. It now only changes the screen mode. If the current transaction type does not support multiple modes then it won't do anything. To switch the transaction type, you must use the hotkeys [Ctrl+I]-Invoice, [Ctrl+O]-Order, and [Ctrl+R]-Reserved.

Screen Modes [Shift+F9] - Added a new screen mode "TotOrdered/TotRecvd". For Advanced only - also added the modes "NewPrice/Mark-Up", and "NewPrice/Profit".

Security Levels - Added security levels for Purchase Manager to determine which screen modes the clerk can use. The levels are Display Mode - "OnOrder/Recvd", "TotOrdered/TotRecvd", "NewPrice/Mark-Up" and "NewPrice/Profit". These levels restrict the use of modes that would normally be available. If the mode is not available (either disabled through parameters or not use Keystroke Advanced) then it cannot be used even if the security level is met.

POR - Screen Modes - New Price - The screen modes that have a New Price column (available in Advanced only) can be used to manually change what the Base Price of the inventory item will be set to when saving a Purchase Invoice (the Base Price is not updated when saving any other Purchase Transaction type).

Reserved Orders - [Shift+F10] can no longer be used in Purchasing to toggle the "Reserved" flag on and off. The Transaction Type hot keys should be used instead ([Ctrl+I/O/R]).

UPDATE PARAMETERS - Changed the name of the "Update Price" parameter to "Update Base Price to New Price".

LINE ITEMS - If the "Update Base Price to New Price" parameter is on, then the program will now track what the New Price is going to be set to while entering/editing the Purchase transaction. The new price is stored in the "NewPrice" field which is available in the line item detail box, on purchase forms, and on purchase reports (in Advanced only). If this parameter is off the NewPrice field will be Null (or blank). Also, it will be $0.00 on older transactions.

UPDATE PARAMETERS - Added the parameter "Calculate New Price" just below the "Update Base Price to New Price" parameter. If this is on, then the program will automatically set the New Price field to be the price based on the Price Table (as entered in the Price Table parameter field just below it). If "Price Table" is blank (or no price formula causes the price to be changed), then the line item's New Price will be set to the current Base Price (no change). If "Calculate New Price" is not set, then the line item's New Price will be left as blank and will not change the item's Base Price unless the New Price on that line item is manually set.

LOGO - Parameters Conversion - If using a configuration file (KSCNF.DAT) from prior to v7.00 build 47 then the program will automatically turn on the "Calculate New Price" parameter if the "Update Base Price" parameter was on and the PriceTable field was not blank.

UPDATE BASE PRICE - When resaving a purchase invoice that is less than 24 hours old and the "Update Base Price to New Price" parameter is on, the program will now ask if it should update prices. (New invoices will update the prices automatically and ones that are more than 24 hours old will not).

CALC NEW PRICE - If the New Price is calculated, then what is shown on the screen may be different than what actually gets saved. This is because if the New Price is not manually changed, it will be recalculated when the invoice is saved and will use the figures from the inventory item at that time (for example, the Last and Avg Costs are likely to change). Because of this, if the formula used to calculate the new price is based on either Last Cost or Average Cost, then the program will instead use the cost listed on the line item for display purposes.

POR - Display Mode - When a previous transaction is loaded, the display mode will automatically be changed to match the status of the transaction. (Except if the screen mode is showing New Price, then it will stay in the same mode.)

POR - Display Parameters - Rearranged the "Display Parameters" screen to be better organized and to add a "Screen Modes..." button for setting which screen display mode each transaction type can use.

POR - Display Parameters - "Screen Modes..." - The Screen Modes button can be used to set which screen display mode each transaction type can use (the [Shift+F9] key). The available modes are "Qty Only", "OnOrdr/Recvd", and "TotOrdrd/TotRcvd". In Advanced Only - "NewPrice/MarkUp" and "NewPrice/Profit" are also available.

POR - Special Menu - Changed the "Order/Invoice" menu function to "Screen Mode" and added a sub menu where the screen mode can be selected.

POR - Special Menu - Changed the Reserved menu function to "Transaction Type" and added a sub menu where the transaction type can be selected.

------- The following features apply only to Keystroke Advanced -------

New Price - When editing the New Price field, deleting its contents (making it blank). will cause the program to reset the field to its default value (depending on parameters this will either be blank, base price, or a calculated price).

New Price - When editing the New Price, (or Profit/MarkDown fields), pressing [Ctrl+Space] will set the price as a manually entered price so that it does not get recalculated when saved.

New Price - If the New Price field is blank (which it will be if the Calculate New Price parameter is off and it has not been manually changed) then the field editor will display the amount that would be used if the "Calculate New Price" parameter was on. This gives a starting point to change the price. Also, you can lock in that price by pressing [Ctrl+Space]. (After a price is locked in, it can be reset by setting the field to blank.)

Security Level - Added the security level for Purchase Manager - "Edit New Price" (Default is 5). If the clerk does not meet this, then they cannot edit the New Price, Profit, or Percent Profit columns.

POR - New Price - If the Update Base Price parameter is turned off, then the New Price column will be displayed as Base Price and the clerk will not be able to edit it or the Profit or Percent Profit columns.

CNF - Export - Purchase Transactions - Added the the fields "NewPrice" and "NewPriceManSet". They are listed just before the last field being exported (comment is still the last field and so moves over 2 fields).

KSR - Purchase Transaction Line Items ("PTL") - Added fields to Purchase Transaction Line Items for the "New Price" field.
The new fields under "PTL" are:
- NewPrice - the new base price that the inventory was set to when the Purchase Invoice was saved)
- NewPriceManSet - flag to mark that the New Price was entered by the Clerk instead of being calculated by a Price Formula.
Also added the following calculated fields ("PTLC"):
- NewPrice$MarkUp - Amount of Mark Up from Cost (in dollars)
- NewPrice%MarkUp - Percent of Mark Up (based on Cost)
- NewPrice%Profit - Percent Profit for New Price (based on Cost)
- NewPrice$Change - Difference of New Price to old Base Price (in dollars)
- NewPrice%Change - Percentage change of New Price from old Base Price

-------------------------------------------------------------------------

POR/FMTR - Purchase Forms - The same new "New Price" fields that were added to reports were also made available to be printed in the Body Section of Purchase Forms.

POR - Detail Box - The same new "New Price" fields that were added to reports were also made available to be displayed in the the Detail Box on the Purchase Manager screen (see DOC\DetBox.doc for field numbers).

IMPPOR - Added support for importing the line item field "New Price" (note that this is in Sale Units while all other price/costs are in Order Units). If used, then the NewPriceManSet flag will be set on that line item.


10/12/10 - v7.00 Build 46

CNF - Sales Transaction Types - If the Complete Sale-Display-Payments parameter is turned off, the program will now display a message warning that this turns off checking for Minimum Payment amounts and will allow the transaction to be saved without any payments.

CNF - Company Logo - (Advanced Only) - Added the ability to set a Company Logo that can be printed on Forms and Reports. The parameters are set in the Configuration Manager under Settings - Name/Address - Logo. Enter the filename that contains the graphic (or photo) of the logo (most of the standard graphical file formats are acceptable).

CNF - Company Logo - (Advanced Only) - Report Headers - The "Position in Report Header" parameters can be used to specify where and what size the company logo will be printed in the header (Top) section of the reports. When the logo is printed on reports, it does not affect the position of any of the other text. This allows text to print over the top of the logo (which may or may not be what you want). Use the [Ins] key from the Alignment field to get a list of valid entries. The Left and Top settings adjust the position of the upper left corner of the logo from where it would normally be printed based on the Alignment (negative and decimal numbers can be used). As with other graphics, the Width and Height are optional but at least one should be used in order to control the size. Using both may cause the graphic to be distorted.

CNF - Company Logo - (Advanced Only) - Report Header Alignments - Under the Company Logo settings a new set of parameters can be set to change where the information in report headers is printed. Normally the Date/Time and Subtitles are left justified, the Titles are Centered, and the Page Number is Right Justified. These can now be changed around to make room for printing the Company Logo (or to just have a different look). The valid settings are "L"-Left, "C"-Centered, and "R"-Right. If left blank, the default alignment will be used.

CNF - Company Logo - (Advanced Only) - When a Logo Filename is first entered the program will automatically set the Height to 4 (Lines), Alignment to "LT"- Left Top, and the Date/Time Alignment will be set to "R"-Right.

FMTR - Field Merge - The characters "%Logo%" in the Field Text field will now be replaced with the Company Logo Filename. (Setting the Company Logo Filename is available in Advanced only.) If the Company Logo Filename is blank, then nothing will be printed. This allows forms to be developed with a space for a company logo while the logo can easily be changed (or removed) by changing the setting in the Configuration Manager (of Advanced only).

FMTR - Field Merge - The characters %ProgDir% and %DataDir% and %Logo% will now always be replaced on any field (was only doing this with variable fields that that had an ampersand ("&") in their Field Text).

FMTR - BarCodes - Added the ability to print barcodes on forms (Invoices, Pick Lists, Purchase Orders, etc.). Use the Alignment Code of B then after the B characters can be added to set the Symbology, Height, Bar Width, and Bar Ratio (same as what is used on reports)

KSR - Report Titles - The Report Settings Name and the Report Form's Title are now printed on separate lines instead of together on the same line. The Report Settings Name (if there is one) is printed on the line above where the title use to start. The Report Form's Title prints on the same line as before.

KSR - BarCodes - Added the ability to print barcodes to screen. This is the same format as has been used to print directly to a printer. The only difference is now the barcodes will appear in the report viewer (instead of just being blank space) and can then be sent on to a printer from there.

KSR - Field Text Merge - If an ampersand ("&") is included in the "Field Text" of a report field then the "&" will be replaced with the information from the report's field value. Also if an "&" exists, the text "%DataDir%" and "%ProgDir%" will be replaced with the current Data Directory or Program Directory (both will always have a "\" on the end of them). Note: this feature is not available on comments or lists.
KSR - Graphics - Added the ability to print a graphic (photo) from a file. Turning on the new Field Flag "Print as Graphic File" (524288) will cause the program to use the text that would normally be printed as the name of the file that contains the graphic to be printed.
In most cases this will be used with the Field Text Merge feature to generate the full name of the file. For example, set "Field" to [INV:Number] and "Field Text" to "%DataDir%Photos\I&.jpg" to print a different image for each item based on its Stock Number. If the file is not found, then the space will be left empty. If your are having trouble get the image you want, try turning off the "Print as Graphic File" flag and then the filename will be printed instead; you can then check to make sure it is correct path and name.

KSR - Graphics - When printing a field as a graphic, either the "Width" or the "Height (Lines)" should be set, the program will then proportionally scale the image to match the given space (if both are set then the image will be stretched to match the space and may become distorted). If neither are set, then the image will print to its native size (which is often be very large).
If the width is set to 0, the graphic should either be the last field on the line or you need to make sure the field that comes after it has its Space Before setting high enough to not print over the top of the graphic.

CNF/POR - Security Levels - Added the Purchase Manager security level "Copy Transaction" (default is 7). If this is not met, the Transaction-Copy function on the menu will be disabled.

CNF - Payment Security Levels - Changed the labels "Display Ref" to "Display Ref. Characters" to better describe that it hides (displays as block characters) the information entered in the reference field and does not hide the reference field itself. If you want to hide the reference field, create an Authorization Method of type "External" and set the Reference Field Width to 0.

KSR - Inventory Analysis - Added the Roll Child into Parent parameter.

KSR - Salesperson - Grand Totals for Commission Code subtotals will now be printed at the bottom of the report (if commission code subtotals are being printed).

MTX - Expanded the width of the List Boxes used when selecting a matrix item so that all 16 characters of the Element Name can be displayed.

TRN - Transaction Copy Security Level - If the clerk did not have the security to copy a transaction, the Copy function was still being made available in order to Convert a transaction instead. The program no longer does this and will disable the Copy function if the clerk does not have the security to use it.

TRN/FMTR - Sales Transaction Forms (Invoices/Receipts) - Added the ability to print the Inventory User fields (User Info 1, User Long Info 2, etc.) on .NVC forms.
v - CLOSEOUT - Increased maximum number of digits from 10 to 15 to handle larger dollar amounts.

- CNF - Edit External Authorization Method - When editing an external authorization method, if the Reference Display Width was set to less than 2, then it was being set back to 30.

- CNF - PrintButtons - The Paste function ([Ctrl+V] or [Shift+Ins]) was not working.

- COPYNUM.EXE - If the /M switched was used, then the program was looking for KSTR0001.MRG instead of EXTRACT.MRG.

- KSR - Salesperson - Commission Code subtotals - The Cost and Profit amounts displayed in the Commission Code Subtotals section were not correct.

- KSR - Inventory Database - the Max # of Items setting on Inventory was being ignored.

- POR - Special Receiving Function - The program was displaying a "could not remove Open Order message" even though the open order was already removed correctly.

- TRN - Payments on Orders - If a transaction type has its payments saved to its Alternate file and is marked to be "deleted when filled" (and therefore moved to Archives) then the program was not copying the payments over to the Archive file (usually the standard transaction files).

- TRN - Payments - Minimum Amount - Returns - If a payment had a Minimum Amount on it then the program was not allowing the payment to be used on returns (negative amounts).

- VAR - Entry of Non-Matrixed items was not working if Matrixing was enabled.

- EXTRACT - Extracting Serial Numbers could cause random data to be place in the EXTRACT.MRG file.

- KS2QB - Fixed errors when setting up departments.


9/23/10 - v7.00 Build 45

DELTRANS/CHNGNUMS/DELUTIL - Turned off support for Default Clerk. If the clerk was not authorized to use the program, then there was no way to run it.

MACROS - Added the macro command "MESSAGEBOX=" which will display the specified message on the screen and allow the clerk to select Ok or Cancel. Selecting Ok will proceed with the macro, selecting Cancel will stop the macro from that point (similar to the SecurityCheck function). All the text entered after the equal sign will be displayed. If the text is long, use the "&" character to break up lines. For example:
MESSAGEBOX=You are now running a macro.&The macro will no go on. Will display the message on 2 lines and allow the clerk to cancel the macro.

TRN - If a line item cannot be edited due to the "Edit Saved Line Items" security level then it can no longer be removed ([Ctrl+BackSpace]) as well. Also changed the name of the security level to "Edit/Delete Saved Line Items".

TRN - Sales Orders - Shipping Amount - If the "Copy $ Shipping to Invoice" parameter is on, then when editing a Sales Order, but not creating an invoice (nothing being shipped), the Shipping Amount for the Shipped Totals will now be displayed as $0.00.

- CLOSEOUT - DEPARTMENT REPORT - Was not including all departments.

- COPYNUM.EXE - Was looking for KSTRN001.MRG instead of EXTRACT.MRG (if the /M switch was used, it was looking for KSTR0001.MRG instead of EXTRACT.MRG). Fixed to now always work with EXTRACT.MRG. (This fix was originally announced in build 36 but was not included in that release.)

- DBM - Matrix - If the there are no matrix items, the program was getting stock trying to display the list of matrix items. (Note: Matrix items must be added through their inventory item so this function should not be used on an empty matrix database).

- KSR - Comments were not printing the comma (",") in front of them when printing to a Comma Delimited File (other delimited formats were working correctly).

- PRICE FORMULAS - PRICE PATTERN ROUNDING - If the "Fixed Decimal" parameter was turned on, then the Price Pattern Rounding function available with Price Formulas would return a price that was off by a factor of 100.

- VAR - REPORTS - MATRIX ITEMS - The reports were not replacing the inventory item's Class and Long Description fields with the Matrix Item's Matri Code and Element Names fields.


9/20/10 - v7.00 Build 44

TOOLBARS - Added the ToolBar "Modules" to the default TB.DAT file. This is turned off by default but can be turned on in the CNF-Settings-Toolbars function. This toolbar will appear on the right hand side of the Window and is similar to the one from previous versions. To add the toolbar to an existing data set, either delete DATA\TOOLBARS\TB.DAT (which will restore the new default one but lose any changes that may have been made) or cut and paste the text from FILES\TOOLBARS\TB.KRF into the existing TB.DAT file.

TRN - Entry Parameters - Added the "Non-Inventory Item Script..." button to edit the script that is run when a Non-Inventory item (stock number 0) is entered on a sale.

- DATABASE - MATRIX ITEMS - Some routines were still maintaining the additional indexes on Matrix Items (as of build 43, program only maintains index on the Matrix Item's MatrixCode and Product Code fields.)
v - GLLINK - If items had the "Price Includes Sales Tax" parameter on, then the program was reducing the price by the Sales Tax amount out to 4 decimal points instead of to what the number of decimal points for money was set to (usually 2 = cents). This could cause the total for the department to be off by a few pennies.

- KSR - Matrix History reports were asking for the Date/Time range twice.

- POR - Enter Vendor - The Which One feature from Enter Vendor box was not working.

- POR - No Open Orders - The No Open Orders parameters on vendors was not being checked (so items left open when receiving an order were still being left on an open order).

- TRN - Line Item Audit - The program was only auditing a change to a line item if the product itself was changed, but not the qty or price.

- STR - Transfer Reports - Print - Individual was not working.

- STR - Transfers with Matrix Items - Transferring a matrix item was not finding the matrix record in the database and so would add a new one. This would then generate duplicate matrix records. (If you have duplicate matrix items, please contact tech support for a utility to automatically fix them).


9/10/10 - v7.00 Build 43

AR - When updating an ROA payment, if the original balancing entries are not found on the original invoice the program will now proceed with creating new balancing entries instead of skipping the updating of that invoice. (This is usually caused by someone deleting the payment on the invoice even though the program warns them not to.)

CNF - PACK - Matrix (and Contacts) - In order to speed up packing corrupted files, the program will throw out a Matrix Item (or Contact) that has a Stock Number (or Customer Number) that is higher than the highest Stock Number in the Inventory Database (or with Contacts, the highest Customer Number in the Customer Database).

DATABASE - MATRIX ITEMS - Stopped indexing the Matrix Item's Description field since it is usually blank and maintaining the index takes up time and disk space.

DBM - Edit Time Clock - The list of Time Clock entries was always starting in the last transaction file (which is usually blank) instead of the current one. (Also changed it to start at the end of the list instead of the beginning.)

TRN - Entering a stock number greater than 2,147,483,647 will now automatically switch the entry to be a product code.

TRN - Complete Sale Box - Payment References - Any payment captured by KeyPay will now always show the payment reference as masked characters even if the Mask Always parameter is not turned on.

TRN - Enter Customer - If the Clerk is changed while on the Enter Customer screen, the program will now go back to the Enter Customer box instead of exiting out to the Line Items screen.

- AR - Balancing entries created by an ROA payment processed through KeyPay are now marked as such so that the reference field is always masked.

- CNF - Price Formulas - When a price formula was saved, the amounts (discounts/limits/etc.) were being rounded to a maximum of 3 decimal points instead of 4 (which is what the program now supports).

- KSR - Inventory Analysis - The "Hidden Records Only" parameter was not working.

- MATRIX - If an invalid matrix code was entered, the program was not displaying then "Matrix Code Not Found, Select Item from List" message.

- POR - IMPORT LINE ITEMS - If importing by stock number, and the field ID was not a number, then the program was skipping that line. It will now try to look the item up via the alternate search indexes.

- REPORTS - DATA CONVERSION - Filters and Formulas being converted to v7 were not working correctly on some fields on the Analysis reports.

- TRN - Error 10 - If a transaction had more than one payment type that was using payment codes (eligible items) then the program would sometimes give an Error 10 when trying to go on to the next transaction.

- TRN - Edit Line Item Detail - Even if a clerk did not have the security to edit a line item's price, the program was allowing the price to be changed through the Percent Profit and Discount fields on the Edit Line Item Detail Function.

- TRN - Entering a stock number higher than 999,999,999 was giving the "Stock Number cannot be Negative" message.

- TRN - KeyPay Payment Entry - If using a payment authorized through KeyPay and using a PinPad entry device, then the Skip Amount parameter was being ignored.

- TRN - KeyPay Payment Entry - The name on the Payment Print Buttons was not being displayed correctly.

- TRN - KeyPay Payment Entry - Swiping a card using a keyboard wedge was causing the program to ignore the Skip Amount parameter.

- TRN - Signature Button - When viewing/editing a payment, if it was captured through KeyPay then the "Signature" was being displayed even if the system was not set to capture signatures.

- TRN - Transaction Conversion - If transaction is converted to a new type and then back to its original type before being saved, the program was not setting the transaction information back to the original (number, date, etc.).

- VAR - Import Line Items - Matrix - The Import Line Items function was not working correctly with items listed in the file as InvID + MatrixSeparator + Matrix Code (e.g. "1.SH").

- VAR - Reports - the Print Comments parameters were not working with line items.

CONTPRIC - Increased the default size of the window showing contract prices for an individual customer.

CONTPRIC - Enabled Reports - Changed report settings screen to work better and added ability to specify whether or not to include all customers and/or items.

CONTPRIC - Added the ability to print a customer's list of contract prices from the window that shows the prices (click on the Print button at the bottom of the window). The report will print just for the current customer and will either show All Items or Contract Items Only depending on the current setting for the window.

- CONTPRIC - If the first column was not set to Stock Num, then changing from "Contract Items Only" to "All Items" could cause some prices to be lost.

- CONTPRIC - If the first column was not set to Stock Num when saving, then the CP#.DAT file was not being saved in stock number order. This could cause some prices to not be recognized by Keystroke as it assumes the file is in Stock Number order. Any file that this may have happened to should be resaved with this release so it will then be put in the correct order.

- IMPTRN - CONTRACT PRICING - ImpTrn.exe was not supporting contract pricing (would not lookup contract prices on line items that were imported without a price).

- TRN - Contract Pricing - If the customer was changed on a transaction, the program was not updating the already entered line items with the new customer's contract prices.

- TRN - CONTRACT PRICING - If loading a transaction that reloads prices (like On Hold transactions) and the customer was the same as the current customer, then the Contract Prices on the items were not being reloaded.


8/24/10 - v7.00 Build 42

- Removed the fix from build 41 since the program now correctly handles the report settings files even if they don't have a version number in them.

CNF - Security Levels - Changed the default security level for "Edit Payment Auth Code" from 8 to 2 (this change only affects new data sets). This is also the default for "Enter Auth Code" when creating new payment types.

CNF - PACK - Contact/Matrix Items - If the CustomerNumber/StockNumber field on the Contact/MatrixItem record is 0 (or negative) then the record will not be copied to the new data file (it will be discarded as a bad record).

CNF - PACK - Orphaned Contacts - Before packing the Contact Database, the program will now ask if it should check for and remove Orphaned Contacts (those that have a Customer Number that no longer exists in the Customer Database). If answered as "Yes" (default is "No), then the program will look up the customer for each contact as the contact records are copied (note that this extra lookup step slows down the pack process).

CNF - PACK - Orphaned Matrix Items - Before packing the Matrix Database, the program will now ask if it should check for and remove Orphaned Matrix Items (those that have a Stock Number that no longer exists in the Inventory Database or that a have a Matrix Table or Matrix Code that does not match up with what is defined for the inventory item). If answered as "Yes" (default is "No), then the program will look up the inventory item and matrix table for each matrix item as the matrix item records are copied (note that these extra lookup steps slow down the pack process).

POR - Added support for entering and looking up Inventory items by the AltID# field.

POR - Added support for the following fields to be displayed in the line item detail box (93=Last Qty Ordered, 94=Last Qty Received, 95=Last Purchased (Ordered) Date, 96=Last Received Date, 97=Last Counted Date, 98=Last Transferred Date, 99=Last Sold (Ordered) Date, 100=Last Shipped Date. (see DOC\DetBox.doc)

TRN - KeyPay Payment Entry - Even if the Auth Code field is set to allow entry/editing, the program will jump out of it the first time the field is made active. This is to help guard against accidentally changing the field.

TRN - Check MICR - If the MICR on a check is entered by hand (or through a keyboard wedge), the program will now strip out any spaces.

TRN - KeyPay Payment Entry - The program will not attempt to authorize a payment if the "Card #" field is blank.

- CLOSEOUT - Check Calculator - Print to Screen - Would not print on more than one page.

- CLOSEOUT - Report - Payment Details - The Client Number that was being printed on ROA Payments in the detail report was the client number from the last regular sales payment instead of the ROA payment (all other information including the customer's name was correct).

- CLOSEOUT - Check Calculator - Fixed Error 9 if the print function was used from the Check Calculator and the Audit Printing Reports parameter was on.

- CNF - Sales Transaction Types - moving existing transactions from the standard transaction files to their own alternate transaction file was not working. The function that copies the transactions was not copying the transaction header to the new file.

- CNF - Audit Parameters - The Audit Entry Code was always case sensitive even if the "Passwords - Case Sensitive" parameter was off.

- CNF - Export - Matrix Items - fixed the menu that was showing Matrix Items could be exported by other fields besides Matrix Code (they can only be exported by Matrix Code).

- CNF - Pack - Databases - When packing a database and a record has a Number of 0 or less (Stock Number, Customer Number, etc.) then the program assigns the Next available number to it as it is saved. The problem was during the pack the next available number was the highest number packed so far instead of the Next Number from the file being packed. The program will now use and update the Next Number as it was in the file before it was packed.

- CNF - Tables - Taxes - After using the Tables - Taxes - Tables (or Districts, or Codes) function, the program recalculates the Tax Percentage displayed on the list of Tax Tables. However, this amount was sometimes wrong on one of the tax tables (could be as much as doubled). This only happens when using one of these functions and only affects the displayed list, not the actual taxes calculated. Editing tax tables from anywhere else in the program was working correctly.

- DATABASE - MATRIX/CONTACTS - If there are over 30,000 Matrix Items or Contacts, it was possible for the indexes to skip a small number of records when adding a new record. This only happens when the a record is added near the beginning of the list (somewhere in the first 30,000 records after at least 30,000 records have already been added). If it did happen only about 20 records would longer be found. If it is believed the either the Matrix or Contact databases may have this problem, packing with this or a later release will recover those records.

- DATABASE - MATRIX - If the Matrix button on an inventory item was selected while a matrix item was already loaded, then the program would give an error 10.

- DBM - Search and Delete - The Search and Delete function would sometimes get stock deleting the same record over and over again.

- EXPORT - When exporting a database sorted by a text field, and the text field had extended characters in it, some of these characters were not being compared correctly (due to Window's translation of characters) and could cause either the wrong records to be included or for the export to quit before all the data had been exported.

- KSEXPORT - If the END= switch was not used to set the ending range, the program was defaulting it to a string of 10 character 254s which would sometimes cause the export to end too soon if the field being exported included extended characters.

- GLLINK - Store Transfers - Linking Store Transfers was not working (would give an Error 59).

- GLLINK - Store Transfers - Store Transfers to/from Store #0 where not posting the entry for Store #0.

- IMPTRN/IMPPOR - Customer/Vendor Phone # - The import function was removing all characters from the imported Customer/Vendor Phone # that were not letters or numbers. It now uses the text as it is imported.

- KSR - CUES - Matrix Analysis and History reports were not working when run through the report cues function.

- KSR - Inventory Analysis - Hidden Items - If grouped by Department and the Inventory - Include Hidden Items parameter was on, then hidden items were being printed in both the "Department Not Found" and their actual department sections.

- KSR - Inventory Database - Roll Child Into Parent - If this parameter was on and the parent item had child qtys to add in which then gave a total QOH of 0 the program would generate in an error 11 (division by zero).

- LOGO - DATA CONVERSION - The Entry Code (password) for changing the Audit Parameters was not being converted correctly.

- LOGO - DATA CONVERSION - Store Transfers - the files KSTRHDR.DAT and KSSTR.DAT were not be renamed to .v6 nor moved to the v6Data directory.

- LOGO - Customer Database Screens - The program was being shipped with the Customer-Flags field on the 3rd database screen when it should have been Customer-UserFlags. Since Customer-Flags should not be used on a database screen, the program will check and then switch any field on customer database screen from "Customer-Flags" to "Customer-UserFlags".

- LOGO - Data Conversion - The program would sometimes give an error when converting an Audit Entry of deleting a Variance record.

- MATRIX ITEMS - Avg Cost - The program was running the routines to make sure that matrix items under a single inventory item either were all set to a Null average cost or each had its own average cost.

- MOUSE CLICKS - If a field that is not active was clicked on (usually a label field) and the next active field was a button, then the button was being activated. Now it is just highlighted.

- POR - Manufacturer - Inventory Lookups based on the Manufacturer field were actually looking up via the AltID# field.

- POR - Special - Receiving - The Load button on the Receiving function was not working (was not able to find the transaction correctly).

- TRN - Age Verification - If a customer was not assigned to the transaction (i.e., customer is Cash) then the age verification function was not working (was treating the customer as if born on 12/31/1984).

- TRN - Convert Transaction Type - If a Sales Transaction type was set to allow it to be converted to a transaction type that was not enabled, that option was still appearing on the Special - Transaction Type menu even though it was not a valid choice (and would not do anything if selected).

- TRN - Gift Registry type transactions - The Delete Filled Line Items parameter was not working with transactions marked to "Copy Shipped Items to New Sale" (Gift Registry).

- TRN - KeyPay Payment Entry - If using a payment authorized through KeyPay and the Skip Amount parameter was turned on, then the program was not allowing the payment amount to be changed.

- TRN - KeyPay - Removed the ability to use the [Esc] key to cancel a request once it has been sent to KeyPay.

- TRN - Menu - Special - The Quick Save and Quick Load functions were not working when selected from the menu (the hot keys [Shift+F10] and [Ctrl+Home] were working correctly).

- VAR - Reports - Variance - Individual - The Record List Box used to select Individual Variances for reports was not working.

- VAR - Variance Date/Time - Display issue with the entry box, the words "Date/Time Range" were being splashed across the top of it. This was a display issue only, function still worked correctly.

- VAR - Variances converted from v7 were displaying the TotalCost and TotalPrice as 10x more than they actually were (the actually line items on the variance are correct).

- VAR - Matrix Items - Entering a Matrix Item on a variance by using the Product Code field was not working.

- STR/STRUPDTE.EXE - Updating Matrix Items was not always working correctly and would sometimes add the matrix items that already existed to the store's matrix data file causing it to grow each time the store update function was run.

- FMTR - The Clear function was not clearing the screen (display issue only, it was removing the form from memory).

- FMTR - Selecting a Form Message was messing up the Form Messages file (FORMMSGS.DAT).


8/13/10 - v7.00 Build 41 (Special release to fix problem in Build 40)

- REPORTS SETTINGS BEING LOST (from build 40) - Report Settings files (KSRE.DAT and KSRE1.DAT) that were first created in v7 (not those converted from v6x) were being deleted every time the file was being accessed since they did not have the version number that created them correctly stored in the file. This build fixes the problem by placing the version number in any report settings file that does not have a version number in it.


8/2/10 - v7.00 Build 40

- FILE LOCKED MESSAGE - AUDIT ENTRIES - Audit entries where not being written unless the program could establish an exclusive read and write lock on the transaction files. The program will now automatically downgrade the requested lock to lock to an exclusive write but shared read when necessary. This allows others to be viewing transaction files in a list or a report while audit entries are being written.

CNF - Payments - If the authorization method on a payment is changed from one using KeyPay to any other method (other than "None") then a message will be displayed warning that only methods using KeyPay are considered PCI Compliant.

SHOWSTATUS - If the command line is more than 63 characters, then the command line Switches line will be wrapped to a second line when displayed in the ShowStatus ([Shift+F12]) function.

TRN/FMTR - Sales Forms (Invoices) - added the ability to print the Customer's Fields: LongInfo1, LongInfo2, ShortInfo1, ShortInfo2, and UserFlags.

- CNF - Sales Transaction Parameters - If the "Copy Shipped Items to New Sale" parameter was on, then the program was always turning off the "Delete Filled Line Items" and "Delete Completed Transaction" parameters when saving.

- LOGO - DATA CONVERSION - The old Production files where not being renamed to .V6 and then moved to the V6Data directory (conversion was still done correctly).

- LOGO - DATA CONVERSION - Conversion of Database Screens and Report Forms for Matrix Items was not converting the non-importable fields correctly (those with an * on the end of the name like "Table Name *").

- PROD - Program was not working correctly with items that are hidden. (Note that Hidden inventory items can be used on productions).

- TRN - If a previous transaction is pulled up and the transaction type is changed but no other changes are done, using a print button would not also save the transaction (the program was not recognizing that it needed to be saved).

- STOREMRG - Deleted Transactions - Sales and Purchase Transactions, Payments, and ROA payments that had been deleted were being merged in as not deleted.

- STR - Transferring an item to a store that had that item marked as hidden would cause the program to add another, unhidden, copy of the inventory item.


7/23/10 - v7.00 Build 37

TRN - Customer Entry - Rearranged fields at bottom of Customer Entry box and also the comment box (if displayed) to work better when switching between displaying contact info and not displaying it.

TRN/FMTR - Sales Forms (Invoices) - added the ability to print the Customer's Birth Date field.

IMPTRN - Added support for "Customer Birthday=" field.

- TRN - ON ACCOUNT PAYMENTS - (From Build 35, previous releases did not have this problem.) When a transaction was saved that included an On Account payment type (transaction has an Amount Due), then the program was setting the customer's Oldest Open Invoice date to the transaction's date even if there were older open invoices in the system. This could cause some older transactions to no be seen by the program when printing statements or applying ROA payments. When entering the program, if the data set is from build 28 or later then the program will run a data conversion that will set the Last Open Invoice date on all customers that have a Last Open Invoice Date of 6/28/10 or newer to 1/1/2001. This will then be set to the actual date when the amount due is recalculated by an AR Report, or finance charges or statements in AR.

- ROUNDING ERROR - When a negative number was entered with more decimal points than then field allowed the rounding of the entry to the correct number of decimal points was off by 1 on the last digit (-0.075 rounded to -0.09 instead of -0.08).

- DBM - Till Assignents - To Drawers - The function to assign a Till to a Drawer was not working (would give Error 91).

- DBM - When adding items, the [PageDown] key was loading the previous item instead of a new blank screen (and [PageUp] was redisplaying the item just entered).

- IMPORTER - Importing by Matrix Product Code was not always finding the item in the Matrix Database.

- IMPTRN - Customer Birth Date - the year was always being set to 2000 (it was being treated as the Birthday field).

- KSR - Analysis Reports - If using one of the extended sorts and the "Sold Items Only" parameter was not on, then invalid records would be printed and messages about invalid records would be displayed.

- KSR - Matrix Analysis Reports - If using an extended sort, then an Error 52 would be given and the report would not run.

- SECURITY LEVEL - The "View Other Salesperson's Customers" security level was not working (was showing only customers with a credit limit of 0.00 instead of only customers with a Salesperson of 0 or that matched the current clerk.

- TIMECLOCK - If a default print button was not enabled, then the program would get stuck on the Ok button (from build 36).

- TRN - Transfer Payments - The transaction letter and date information added to the reference field on transfer payments had 3 extra spaces in it. This would cause the payment on the invoice to show the day twice ("{7/21)21}" instead of "{7/21}").

- VAR - Hidden Items - If an item on a posted/saved variance was marked as hidden, then the variance function was showing it as "Not Found".

- CONTPRIC - Was not working correctly when editing a customer with that had contract prices on more than 15 items.

- CONTPRIC - Reports are not working - this function can only be used to export data to the tab delimited file CP.TXT (which can then be viewed in a spreadsheet or database program).

- FMTR - Sales Forms (Invoices) - The field listed as "Customer Birth Date" should have been labeled "Customer Birthday".


7/16/10 - v7.00 Build 36

CNF - Print Buttons - Time Clock - Added a "Default Button" parameter. If On, then the Time Clock function will default to that button instead of the Ok button. Also, if on that button, and [F10] is pressed, it will activate that button instead of the Ok button.

MACROS - ChangeModule= - The program use to ignore this command if already in the module being changed to. Now it goes ahead and changes modules (even though just reloading the current one) so the macros will work the same from any module.

CLOSEOUT - REPORTS - The application title is temporarily changed to Reg# while printing the closeout reports. This is to help pdf printer drivers default to a useable name for the file.

REPORTS - The application title is temporarily changed to the Description from the form being used to print the report. This is to help pdf printer drivers default to a useable name for the file.

TRN - While printing a transaction, the program will now temporarily set the module's title to the short name of the transaction type instead of always "Invoice". This is to help pdf printer drivers default to a useable name for the file.

- AR/KSR - If a customer's Oldest Open Invoice date was set to 1/1/85 or earlier, then the program was sometimes only looking in the current transaction file instead of the previous transaction file when changing this date to the actual Oldest Open Invoice. This can cause transactions with an amount due in the previous transaction file to be skipped. This should only happen if customer's oldest open invoice date was manually set to the older date. If this may be the case, use DelUtil to set all Customers back to 1/1/01 (or oldest date a transaction could possibly be open) and then run the Receivable Aging report to recalculate).

- COPYNUM.EXE - Was looking for KSTRN001.MRG instead of EXTRACT.MRG (if the /M switch was used, it was looking for KSTR0001.MRG instead of EXTRACT.MRG). Fixed to now always work with EXTRACT.MRG.

- DATABASES - INV - Select/Edit Serial Numbers - Changes made to the serial number list were not showing when that line was not highlighted (all lines were showing their original text). Display issue only, changes were being saved correctly.

- DBM - Find-Search/Un-Hide records was not working.

- IMPORTER - Matrix Items - Merging by Matrix Product Code was not working (would give error 13).

- KSL - Printing Comments - If printing a comment on a label and the comment was longer than the space provided, the program was getting stuck and not printing anything.

- LOGO - Initializing a new configuration file (KSCNF.DAT) was setting the Purchase Manager parameter "Disable Purchase Orders" to "On" so that the program was not using Purchase Orders that create Purchase Invoices but was just working off of Purchase Invoices only.

- MACROS - Macros that changed modules were not working correctly if a "Changes will be Lost" message was to appear on the screen.

- POR - Creating Invoices from Purchase Orders was leaving the Transaction Total at $0.00 if payments on purchases was disabled (from build 21).

- POR - AutoOrder - Filters were not working correctly.

- PROD - Losing Last Line Item - On productions with more than 9 line items, the information from the last line item was not being written to the data file (item was being updated correctly, the history would then be wrong, or if a template, then the last item would be blank).

- LOGO - Convert Data - Production - Productions with more than 9 line items on them were having the rest of the records marked as Production Headers so packing the file would end up with a lot of extra productions listed (all of them not valid). If data has already been converted to v7 format (prior to v7.00 build 36), then the program will go through the production (and production template) files and fix the productions.

- RECCHRG.EXE - The FROM=, TO=, and ALT= command line switches were not working.

- ROUNDING ERROR - If an amount was negative and was a half a penny or more but less than a whole penny (-0.0050 to -0.0099) then the program was rounding the amount to a positive penny instead of a negative one (0.01 instead of -0.01). Only happened on these very small, fraction of a penny amounts that are negative, everything outside of this range was rounding correctly (e.g. -0.015 was rounding correctly to -0.02).

- SEARCHES - If the text entered is not numeric, then the program will no longer search based on a numeric field since what it would be searching for is 0. For example, if "B" is entered on a sales line item, the program will not lookup the item by StockNumber or AltID#.

- TRN - Deleting a transaction was not updating the customer database (amount due, total sales).

- TRN - Payments - If the "Don't Display on Sales Payment List" parameter on a payment was turned on, then a blank line was appearing at the bottom of the payments list.

- TRN - Shipping Sales Orders - Price Formulas with minimums based on Price Code or Transaction totals were not being applied to the calculation for the subtotal of the items being shipped.

- UDPRICE.EXE - was always rounding to the nearest dollar.

- VAR - Import - The entry box for entering the file name to import was not working so the import was not working.

- FMTR - Form Messages where showing text from other fields while the form was being edited (but the form would print correctly).


7/06/10 - v7.00 Build 35

CNF - Backup - Quick Archive - The Quick Archive function now uses the program 7za.exe (instead of PKZip.exe). 7za.exe is the standalone version of the 7-Zip compression utility which is licensed as freeware. License and information for this product can be found in the 7-Zip directory below the Keystroke Program directory. The archives are still stored in .zip files but will be created slightly faster but will be slightly larger. The reason for this switch is 7za.exe is a true 32 bit windows program and will work with 64 bit operating systems.

CNF - Database Parameters - Added a button to for Quick Archive Settings. Selecting this button will bring up a screen where you can change the compression program used to make Quick Archives from 7-Zip to PKZip. You can also turn on the archiving of sub-directories as well (default is off).

CLOSEOUT - PARAMETERS - Added the "Disable the "Exit (no save)" button" parameter. If on, then the print box will not show the "Exit (no save)" button.

CLOSEOUT - If the clerk is changed in the middle of a closeout, the program now warns that the closeout will be reset. Selecting cancel from this message will bring up the login screen again. If the original clerk is entered, then the closeout may proceed without being reset.

FORMQTY/FORM2LBL - Converted the source code (included as sample programs) to PowerBasic's Classic Console Compiler so they can be compiled as 32 bit versions that will run correctly on 64 bit operating systems.

AR - If a customer's Oldest Open Invoice Date is blank, the the program will search for transactions starting in the previous transaction file instead of going all the way back to the first transaction file.

AR - While printing a statement, the program will now temporarily set the module's title to "Cust#" (where # is the customer's number). This is to help pdf printer drivers default to a useable name for the file.

KSR - Inventory Analysis - Report may now print faster when Grouping By Customer/Vendor and the "Don't Print if Empty" parameter on Customers/Vendors is set to On. In this case, the program will first scan the transaction files to make sure at least one transaction type that the report is based on exists for the customer. If not, then the report skips the customer instead of spending time trying to gather the sales by item data for that customer.

TRN - While printing a transaction, the program will now temporarily set the module's title to "Invoice#" (where # is the transaction number). This is to help pdf printer drivers default to a useable name for the file.

TRN - Print transactions - The ID used when printing to a file (in PDF printers or with a & in the file name) will now include the Transaction's Letter (aka subnumber) if there is one.

TRN - If a customer's Oldest Open Invoice Date is blank, and an amount due transaction is saved, it will now set the Oldest Open Invoice Date to the transactions date instead of leaving it blank (a blank date is really 12/31/84).

TRN/CNF - Security Level - Added the security level "Edit Saved Line Items" to Sales Transactions. This is checked when editing an existing transaction and on a line item that already existed on the transaction when it was loaded. Clerk must meet all other levels to edit line items as well.

- CLOSEOUT - Clear Function - Using the Clear function to change to a different register number was not loading the starting drawer amounts for the new register number.

- CLOSEOUT - Changing the register/till number when first entering closeout was not loading the starting drawer amounts for the new register/till number (was using the amounts from the original register/till number).

- DBM - If a hidden record was selected from the Record List ([F3]) then the program was bringing up the next Non-Hidden record instead of the one selected.

- DBM - INVENTORY - Price Fields - Using the Get Percent Profit function ([Ins] key from a price/cost field) was always rounding the new value to a whole number.

- DBM - Matrix Changes - Store Transfers were not being recognized for updating changes to matrix elements.

- GLLINK/CHGNUMS - Store Transfers were not being recognized.

- LOGO - Using the Default Clerk setting was setting the initial clerk number to 0 (with security level of 0) instead of the entered clerk number.

- LOGO - PCI Conversion - The password on Administrative Clerks were not being marked as expired after the message saying they would be was displayed.

- MATRIX ITEMS - Matrix codes using characters above character number 128 (the extended characters that don't exist on the keyboard) where causing the program to not be able to find the items. If items don't appear after installing this release, pack the matrix database

- POR - Tax Formulas - Tax Formulas that had the tax amount set to a fixed $ amount instead of a % (tax by Qty or Line item instead of Cost) were not working correctly.

- POR - Vendor Entry - Pressing [Ctrl+F5] was running the Show Info function instead of the Show Summary function.

- SUMMARY.EXE - VARIANCES - The Summarize History program was not working correctly with variances that had over 7 line items (could case program to crash if over 9 line items).

- SUMMARY.EXE - PURCHASES - The Summarize History program was not adding in the Cost amount from purchase invoices so the Show Summary function was always showing the dollar amount of purchases to be $0.00.

- TRN - Recurring Charges - If any changes were made and the ID was left blank and the Process button (or [F10]) was pressed, then the program was displaying the "ID cannot be Blank" message and was getting stuck on that message.

- FMTR - Fields that where below the bottom of the screen were being displayed on the first line of the screen (display issue only, does not change the form).


6/15/10 - v7.00 Build 34

TRN - Process Recurring Charges - Added support for selecting individual transactions when the "From Trans Type" settings are set to "Print-Individual". Note: Extreme care must be used when running in this mode as it is very easy to select the same transaction more than once (creating duplicate charges). The program will warn if the same transaction is selected twice in a row.

TRN - Process Recurring Charges - The program keeps track of when the last time a Recurring Charge Setting was used to create transactions. If it is used again on the same day, the program will display a warning that the settings were already used and ask if you want to proceed anyway.

TRN - Process Recurring Charges - Added a "Print Button" setting to enable printing transactions as they are created. This is done by selecting which "Print Button" to activate after each transaction has been added.

- CNF - Sales Payment Types (Keystroke POS only) - If the edit payment type screen was brought up and then cancelled (Ok or F10 not selected), then the program was always turning on the "Food Stamp Items Only" parameter. Workaround is to go back in, clear the parameter, and then save the payment type.

- POR - The number used internally for the line item amounts (qty*cost) and the subtotal were not being rounded to the digits specified for money (even though they were being displayed with the correct number of decimal points). This would cause the program to keep asking for additional payments when only a fraction of a penny was still needed.

FMTR - Field Widths of 0 now display the field as the length of the field name (or width of 10 if field is blank). Also, the [Ctrl+Left] key can now be used to set the field width to 0. (Field width of 0 means the field bases its width on the contents of the field and will not truncate it or add any trailing spaces to it).


6/09/10 - v7.00 Build 33

TRN - Process Recurring Charges - Added a "Changes To Transactions" list to the "Process Recurring Charges" settings. This list contains the changes to be made to the line items on each transaction is it is copied. The list can be edited by using the standard list commands for copy/cut/paste and add/edit items. Selecting a line in the list will bring up the "Change To Line Items" settings box. Each line is applied to the transaction in the same way "Tag-along" scripts are added and uses some of the same parameters.
- The "Action" button sets whether to Add or Replace a line item.
- The "Location" button is used to select where to add/replace the new item. The options are "First Line", "Last Line", "Current Line", "Specific Line" (you can then enter a line number) and "Specific Inventory Item" (you can then select an inventory item from "Old Item" button). If "Specific Inventory Item" is used, then the program will search the transaction's line items for one that matches the item specified. If one is not found, then the entire transaction will be skipped.
- The "New Item" button is used to select which inventory item to add to the transaction.
The rest of the parameters are the same as are used in Scripting when adding a "Tag-along Item".

CNF - PAYMENTS - When editing and then saving a payment type, if an external authorization method other than KeyPay is specified and the "Purge Ref/ExpDate Immediately" parameter is off, then the program will display a PCI Warning message stating that the parameter should be turned on for that payment type.

DATENAME.EXE - Recompiled to 32 bit version that returns an ErrorLevel if it does not succeed.

MAPFILE.EXE, INIMERGE.EXE - Recompiled to 32 bit version that will run correctly on 64 bit operating systems.

- RECORD LIST - INVENTORY - Filtering on Inventory Vendor information was not working in record list boxes. (May need to reinitialize license files for change to take affect).

- REPORT VIEWER - The default size of the window for viewing condensed reports on the screen was too wide.

- POR - The Transaction Browse function was looking for Purchase Orders even when the "Disable Purchase Orders" parameter was turned on.

- TRN - Debit Card (ATM) entry with KeyPay was stopping on the confirm payment amount screen even when set to skip it.

- TRN - MICR READER - ERROR 13 with IBM-4610 and EPSON-TM600III. If using either of these 2 MICR readers, the program would get an error 13 when processing the MICR track returned by the reader.

- TRN - Process Recurring Charges - The "From Trans Type" list was not working correctly.

- TRN - No Fractional Qty - If an item used a Departmental Script (script that comes from the item's department/category/location instead of it's own script) then the item was being flagged as having the No Fractional Qty flag turned on even when it wasn't.

- VAR - Import Items - When importing items, items not found now retain the information that was imported both on the screen and when saved as an open variance.

6/04/10 - v7.00 Build 32

Synced with v6.30 build 35

CNF/TRN - Security Levels - Added security levels under Sales Manager: "Process Recurring Transactions - Run" (default=7), "Process Recurring Transactions - Edit Settings" (default=6), and "Process Recurring Transactions - Save Settings" (default=6).

RECCHRG.EXE - Added the command line switch "ID=" which can be used to specify which of the saved Process Recurring Charges settings is to be used. Any other switch can still be used to override the settings stored with the specified ID. (If used, and the ID is not found, then the process will be abandoned.)

TRN - Process Recurring Charges - Added the ability to specify how the transactions that are being processed from are sorted, selected, and if a range or filter is to be used. The entry of these parameters is the same as what is used on reports. This allows a single transaction type to support many different lists of recurring transactions by using a field on the transaction to determine which kind of recurring charge the transaction is for (e.g. Customer Order Number, Price Table, etc.). Note that when sorting by Date, the range fields cannot be used so a filter must be used if the Transaction Date determines which kind of recurring charge the transaction is.

TRN - Process Recurring Charges - The "From Trans Type" list is now limited to transaction types that are stored in their own transaction file (not KSTR####.DAT). Also, the Alternate Trans Type (used when payments are denied during processing) is restricted to transaction types that do not have a minimum payment set on them.

TRN - Process Recurring Charges - Changed the "Ok" button to "Process". (Pressing the [F10] key still selects this button).

TRN - Process Recurring Charges - If the Settings ID is changed, then the program will ask if you want to Save Changes if the Process button is selected without first selecting the Save button.

IMPTRN/IMPPOR - If the Customer/Vendor Lookup Name is not imported and the Customer/Vendor record is being updated, then the program will set the LookupName to the Customer/Vendor CompanyName (or LastName, FirstName if CompanyName is blank).

SHOW STATUS - Added the title "Status Report - Keystroke Point Of Sale" (or "Keystroke Advanced POS") to the top the Show Status screen ([Shift+F12]).

TRN - TEMPORARY LICENSE - The Process Recurring Charges function will be disabled if a temporary license has expired.

- DATABASES - BIRTHDATES - BirthDate fields that were set to blank (0 or " / / ") where being set to 12/31/1984 instead of the Null date.

- DATABASES - Default Values - Default field values entered on screens other than screen 1 were not always being used.

- DATABASE - CONTACT - Contacts were using the wrong security levels. Query Contact was using "Enter Returns", Edit Contact was using "Access Closeout", and Add Contact was using "Query Vendor".

- TRN - KeyPay Authorization - Voice Auths were not working (would return the message "Recurring Payment not found").

- TRN - Credit Memos - Credit Memos that used a payment type with the "Always Mask Ref" parameter turned on were not saving the Reference field correctly.

- TRN/CLOSEOUT - Shipping - All transactions were being marked that Shipping may be taxable even when the Shipping Tax Code was blank. This would cause the Closeout Summary report to include the Shipping amount in the Non-Taxable field on the report.

- WS#.INI - BackGroundPicture= - Error 91 - Setting the BackGroundPicture equal to Blank (no background graphic on the logo screen) was causing an error 91 at several different and somewhat random places in the program. This was caused by one of the routines that draws text on the screen testing this parameter incorrectly. The program now correctly recognizes that there is no BackGroundPicture to test, eliminating this error.


5/26/10 - v7.00 Build 31

Synced with v6.30 build 33

IMPTRN - When looking up a customer and/or contact, if a match is not found, the program will now use the default information on the database screens to initialize a new record. Any fields imported after that will then overwrite the defaults. (This is the same way the Importer module works).

RECORD LIST BOX - If the Record List Box is showing a transaction file and the end date is midnight, it will now display the date as the day before to better indicate what transactions are in the file being displayed.

SECURITY LEVELS - If a function's security level is set to -99, then it will be disabled no matter what a clerk's security level is (i.e. even a clerk with a level of -100 won't be able to use that function).

TEMPORARY LICENSE - If a system is installed with a temporary license and the license expires, then the following functions will be disabled: Edit Security Levels, Add/Edit/Delete database Records, Add/Edit/Delete Sales Transactions, Add/Edit/Delete Purchase Invoices/Orders (Reserved Orders can still be used), Edit Time Clock Entries, Post Variances, Add/Edit/Delete ROA Payments, Edit/Delete Closeouts and PaidOuts.

VAR - Parameters - Added the parameter "Default Physical Qty to "1" (scanning)". If this is on, then when an item is entered the physical qty will be set to 1 instead of 0. This should only be used when scanning items in and having the program merge same items together automatically.

- CNF - Hardware - CustomerDisplay/SecurityFeed - the editor for the display file was not showing the changes as they were being made.

- DATABASES - Which One? - If more than one record had the same information in the field being looked up, the program would stop finding additional records as soon as it hit one that was marked as hidden. This would cause the "Which One?" list to not contain all the matching records (and could even cause an "Item Not Found" message if the first record in the list was hidden).

- IMPORTER - The default KSEXPORT.KSI setup file did not include all the new fields available in v7.

- IMPTRN - Using "Clerk Initials=" to assign the clerk to a transaction was generating an error.

- KSR - The Sort and Ranges when printing the Category and Location databases by Code were not working.

- LOGO - Conversion of Store Transfers - The conversion of Store Transfers (from the StoreLink module, KSSTR*.DAT) was not working.

- LOGO - DATA CONVERSION - The program was not looking at "Split Transactions On" Setting from the previous version. This was causing it to always calculate what the "Split On" setting should be instead of using the setting already specified in the data files.

- MACROS - The macro SendKeys={Update} was only updating the main window, it now gets sent through to the main and current window.

- TRN/AR - Credit Memos and KeyPay - If a credit memo (ROA payment entered in Sales Manager) was processed through KeyPay, voiding the payment in A.R. (deleting the ROA payment) was not correctly processing the payment through KeyPay.

- TRN - CONTRACT PRICING - Contracting pricing on the default customer was not working except on the first sale after entering the Sales Manager. The Contract Pricing files are checked when the customer entered on the transaction is changed. If using the default customer on 2 sequential transactions, the contract pricing was only working on the first transaction since the customer is not changed on the second one. The program now checks at the beginning of each transaction even if the customer is the same.

- VAR - The AltID# field was not being read in to be displayed on the line items. Also added the ability to display the AltID# in the detail box.

- VAR - Importing by the Manufacturer field was not working.

- VAR - The Which One? function for selecting an inventory item was not working. It would always show the item as "not found".


5/14/10 - v7.00 Build 30

BACKGROUND COLOR - Setting the BackgroundColor to RED=0, GREEN=0, BLUE=1 (which is what is used in Tutor data) will cause the background color to be displayed as Blue for Keystroke Advanced and Maple for Keystroke POS.

SCREENS FLAGS - Improved the look of the screen flags (appear at bottom of window) by making them shorter at certain resolutions.

PROD - REPORTS - Templates - The program will now print Optional Items on Template reports. The report field "OptionalItem" is set to "1" on Optional Items and "0" on standard items. A filter on that field to specify whether or not to print the Optional and/or Regular items can then be used or a variable can be printed marking the optional item (the default report form is set to print "(Opt)" in front of the Optional Items).

TRN/POR/STR/PROD/VAR - Increased the number of line items displayed on the screen.

TRN - AUTHORIZE WITH KEYPAY - If trying to process a payment through KeyPay and the KPSTATUS.TMP file could not be found, the program will now state that the file could not be found along with the message that it could not connect to KeyPay.

TRN - KeyPay - Keystroke will accept the Using Modem message from KeyPay and will update the Authorization in Progress message on the screen to add the line "Processing through Dial-Up, please wait..." to indicate that it may take longer for the payment to be processed. (Requires KeyPay v6.30 build 36 or newer).

- TRN - KeyPay - Dialup - The timeout on a response is set to 20 seconds, so if it takes longer than that for KeyPay to send back the response from a payment process Keystroke will timeout and display the No Response from Keypay message. However, with some modems, it can take longer than 20 seconds so now Keystroke will set the timeout to 90 seconds when KeyPay informs it that it is using the modem to process the payment. (Requires KeyPay v6.30 build 36 or newer).

ADVANCED POS - T macro command @TOGGLEFLAG(ADVANCED) can be used toggle the system between running as Keystroke Advanced POS and Keystroke POS (program must be Advanced POS for this to work, Keystroke POS does not support it). Note: This macro can be assigned to one of the toolbar buttons.

ADVANCED POS - If the macro command @TOGGLEFLAG(ADVANCED) is used, then the program will now show the change by changing the Title Bar and Background color of the program as well as the logo screen.

- CONTPRIC - The expiration date was not being saved correctly (was saving a date based on what was in the first column of the grid (stocknumber/ productcode, etc.) instead of the date column).

- DATABASES - Hidden Records When looking a record, the program was ignoring the Hidden flag and was finding an item even if it was hidden.

- DBM - Matrix Categories - If a matrix category was changed and a change was not made to a matrix table at the same time, then the change to the category (usually an element code being changed) was not being recognized for updating databases and history.

- KS2QB - Was getting Error 70.

- LOGO - CONVERSION - Matrix Items - the cost on the 4th vendor (which didn't exist in previous versions) was being set to $0.00 instead of Null. (Also, in build 28 this conversion could generate an error).

- MACROS - Editing - selecting a function from the look up list was not always working (e.g. a ToggleFlag that does not have any options).

- MAIN SCREEN - Title Bar was always showing as "Keystroke Advanced POS" even when the license was just for "Keystroke POS".

- POR - RECEIVING - The Special-Receiving function was not updating the Order/Invoice Transaction Letter (next to the Number, shows how many invoices were created from the order).

- TRN - Transactions with more than 5 payments on them could cause errors to occur.

- VAR - The [PageUp] key was jumping up 2 more lines than it should have.

- VAR - Entry by the Manufacturer field was not working (was doing the lookup as AltID#).

- VAR - AutoFill - when entry mode was set to Manufacturer, the AutoFill function was importing in order by AltID# instead of Manufacturer.

- VAR - Line Item sort ([Shift+F2]) was not working correctly when sorting by Stock Number.

- VENDORS - The lookup list from the Vendor Payment field was showing the Sales Payments instead of the Purchase Payments.


5/04/10 - v7.00 Build 29

REPORTS - The "Don't Print if Empty" parameter is now ignored if any of the sections below it are set to "Print Individual".

- BACK/OPEN ORDERS - If the Back/Open order list is empty, then the program would give an error 63 after trying to display the list.

- CLERK MESSAGES - The Clerk message screen was flashing and not staying on the screen when a new clerk logged in.

- DATABASE ENGINE - It was possible for the indexes to not get updated properly when adding items to a large database and the sort position of the new item was near the beginning of the list. The item would still appear on most reports but searches for it would fail. If having this problem, packing the file will correct it.

- INVENTORY - The LOCATION NAME field was always displaying as blank (also when printing and exporting which use the same routine).

- KSR - RANGE - Using the lookup list ([Ins], [F2]) was not working correctly and would always return the same characters (e.g. "D I").

- LOGO - CONVERSION - Matrix Items - the cost on the 4th vendor (which didn't exist in previous versions) was being set to $0.00 instead of Null.

- MATRIX ITEMS - Searching by Product Code was not working.

- MATRIX ITEMS - Vendor Info - The Vendor Cost field was not allowing it to be set back to Null.

- RECLISTBOXES - Transactions - If the "No Records found, jump to:" message was displayed and it contained the "Next" button, then the "Previous" button would not work correctly (was being treated as the "Next" button so there was no way to go to the previous transaction). Workaround was to use [Ctrl+PgUp] to go to a previous transaction and then pull up the list box which would then start in the previous file.

- RECLISTBOXES - Comments - Pressing [Shift+Enter] to display a comment while in a record list box would generate an error.

- DOLU - Contract Pricing was using the wrong registration code.


4/29/10 - v7.00 Build 28a - not released

LOGO - Changed background on logo screen. It now displays "KSIMAGES\MtnPOS.jpg" (or "KSIMAGES\MtnAdv.jpg" if Advanced). Also changed it so if the BackgroundPicture = parameter is used in a .ini file, then the program will still display the new Keystroke POS Logo graphic ("KSIMAGES\KSPOS.bmpP" or "KSIMAGES\KSAdvPOS.bmp").

ABOUT SCREEN - Changed the background graphic to "KSIMAGES\KSAbout.bmp" (or "KSIMAGES\KSAboutA.bmp" for Advanced).

SPLASH SCREEN - Changed the background graphic to "KSIMAGES\KSSplash.bmp" (the old one is "KSIMAGES\KSSplasho.bmp")

KSR - ON SCREEN PROGRESS - Added a progress bar to the main screen when generating reports/labels.

KSR - SUB-TOTAL BY SORT FIELD - Added a new setting on some of the reports called "Sub Total when value changes". When available, it appears under the Sort By button . If it is on, then the program will monitor the value of the field that the report is being sorted by and will print a "Sort By Sub Totals" line each time the field changes (as long as the fields are set on the form, see "SBT" below). The reports that currently support this are the Inventory Database and Analysis reports, and the Customer and Vendor Database reports.

KSR - REPORT EDITOR - Added a new type of line for Sort By Sub Totals ("SBT"). This works the same as the current Sub Total lines ("ST") but is set using line number -1 (instead of 0) and it only prints when the new "Sub Total when value changes" parameter under "Sort By" is turned on.

KSR - REPORT EDITOR - Field Editor - The Line Number field now accepts the use of characters so ST and SBT can be entered (as well as 0 and -1). Also, can now press [Ins] from this field to get a list of entries ("ST", "SBT", or a number). Note, -1 and "SBT" are only supported on reports/sections that support the "Sub Total when value changes" parameter.

KSR - NEW FIELDS - Added the fields "Sort By Field Name" and "Sort By Field Value" under the list of System fields. These can only be selected from the list of System fields when editing a report section that supports them (the "Sub Total when value changes" parameter is available). They are designed to be used in the "SBT" lines and will print what the Sort By setting currently is set to and what the current records value is for that field.

KSR - SORT BY DEPARTMENT TOTALS - Inventory Analysis Report - Added the ability to sort 2nd Grouping (e.g. Department) by the same report totals fields that Inventory has always had (e.g. Gross Revenue, Profit, etc.) (Note that these fields are not affected by filters on the on the Inventory Items so if an Inventory Filter is used the sort may not match the report figures since it will be based on totals without the filter.)

KSR - REVIEW PARENT/CHILD RELATIONSHIPS - Inventory Database Report - Added the parameter "Show Parent/Child". If this is on then the items with parents will be listed under their parents (no matter what the sorting/grouping is). The program will also keep internal track of what level (generation of child from the parent) is being printed.
- If the "Roll Child Into Parent" parameter parameter is on and the "Show Parent/Child" parameter is also on, the child item will be printed but the QOH and Totals fields (Price Total, etc.) will be printed as blank (since these figures are already included in the parent's line).
- Added a new Flag for individual fields in the Report Editor called "Indent for Parent/Child level" (flag value is 262144). If this is on, the program will add one dash ("-") to the beginning of the field for every level down in the parent/child relationship that the item is.

KSR - MATRIX TABLE REPORTS - Added a new Matrix Tables report. This can be used to print the list of Matrix Tables, Categories and Elements. If grouped by Matrix Table, then the categories will be repeated under each table they are in. This means the categories that are used on more than one table will be repeated and those that aren't used won't print at all. Setting the grouping to None will give a list of all Categories.

CLOSEOUT - PRINT TO SCREEN - Added the parameter "Print to Screen". If this is on, then the reports will be sent to the on screen Report Viewer instead of directly to the printer. The viewer's print button can then be used to send the report to a printer. (The Printer setting is still used in this case to help format the report.)

CLOSEOUT - SEND TO MULTIPLE PRINTERS - Added 3 more sets of Reports Settings (for a total of 4). When the "Print Closeout" button is selected, the program will go through each one of these settings and print the checked reports to the selected printer. (If printer is set to None, then the settings are skipped).

CLOSEOUT - Added the parameter "Prompt Before Printing". If this is on, the program will stop and ask "Proceed with printing Closeout Report to ... ?". Selecting Yes will continue with the reports. Selecting No will skip this setting and go on to the next (if there is one). Selecting Cancel (or ) will stop the Print Closeout function and return to the Save/Print Closeout box.

CLOSEOUT - CASH and CHECK CALCULATORS can PRINT TO SCREEN - Added a Print To setting for the Cash and Check Calculators where you can select which printer to use when the Print function is used. Can also be set to print to screen. Note: When the Cash Calculator is run from a macro (toolbar button), the Print function will now always print to the screen first (ignores closeout setting since this can be done from anywhere in the program).

SCRIPTING - NEW ADVANCED RESTRICTIONS (Only available in Keystroke Advanced POS). The scripting functions now support new Advanced Restrictions which can be used to determine when a script will run. These include Start/End Date, Time Window (e.g. happy hour), "Day of Week", and "Day of Month" settings. (Note, if not licensed for Advanced POS, the button will not appear).

TRN - TRANSACTION LIST BOX - When the transaction list is sorted by Transaction Number or Date, it will now start at the end of the list instead of the beginning (same as pressing the [End] key when first entering the list).

TRN - RECURRING CHARGES - Added the ability to save the settings under the Process Recurring Charges function (Advanced POS only).


4/23/10 - v7.00 Build 28

Synced with v6.30 build 32

LOGO - CONVERSION - When first run with data from a previous build of v7, the program will run a short conversion program to the current build (28). This checks and corrects stock number greater than 32,767 in script and production files.

RECORD LIST BOXES - Increased the number of monetary digits that can be displayed in a column by 4 (e.g. Maximum Amount Due that can be displayed on a customer list went from $9 million to $99 billion.) Also added 1000s separators (commas) so 9 million is displayed as $9,000,000.00).

- CONTPRIC - If the Exp Date was in the first column, then the program would not allow it to be updated/saved correctly. Fixed it so Stock Number is always in the first column (workaround in previous releases is to use the Restore Default Settings function to set the columns back to their correct positions).

- DBM - Changes made to the Matrix Tables were not being recognized until up to 1 minute after the changes were saved. Workaround is to change modules (or what a minute) which then reloads the tables.

- LOGO - CONVERSION - Database Screens - the inventory screens converted and placed in the v6data directory with the .v7 extension were being converted again by the build 18 conversion if copied to the DBSCREEN\ directory. This could then cause an error when looking at an inventory item.

- LOGO - CONVERSION - Scripts-ItemLists and Productions - Inventory Items that had a stock number of greater the 32767 were being left with a negative stock number (automatically fixed, see above note for LOGO - CONVERSION).

- MATRIX DATABASE - Then Vendor Information and User fields were not being read in when editing a matrix item. Saving the item would then save all these fields as blank.

- MATRIX DATABASE - Vendor Info List - Cost was showing as $0.00 when it should have been showing as null.

- PROD - The update COGSAdjustment parameter was not working when saving a production (how costs are updated is controlled by the Update Cost parameters in Purchasing).

- TRN/AR - Fixed error 6 if a customer had an amount due of over $2 billion dollars.


4/15/10 - v7.00 Build 27

AR - Parameters - Added the option to default customer entry to the Invoice# field (Advanced Only).

CNF - EXPORT - Matrix Categories - Added a new field to the end (Elements List - field number 201) that contains a list of all the elements in a single field.

REPORT EDITOR - If a field is marked to print as a list (Serial Numbers, Alternate Codes, etc.) then the field for "Num Decimals:" is changed to "Num Columns". This allows multiple entries in the list to print across the page. If used, the "Space Before" field determines the space between the columns. (To indent all the columns, enter a blank field before the list field).

- DBM - Matrix Tables - If the order of the categories in a matrix table were switched, the program was not updating the databases and history for the change.

- DELTRANS - Was generating an error 52 when deleting a transaction with serial numbers.

- KSR - Tax Tables - The Tax Districts printed with a Tax Table were not printing in the same order as they were entered on the Tax Table.

- TRN - If a line item had XFer pricing, and a fractional qty, it was possible that the transaction's subtotal would not be rounded to the nearest penny which could cause the program to create a $0.00 change amount.

- TRN - KeyPay - Fixed error 6 that would sometimes happen when processing a payment through KeyPay (caused by combination of a large customer number and a large clerk number).


4/13/10 - v7.00 Build 26

CLOSEOUT - Payment Report - when printing to a full size printer, the payment types that are not marked as detailed will print on a single line instead of taking up 3 lines.

DATABASE - Inventory - Increased maximum size of multiplier from 4 to 6 digits.

LOGO - Changed around the "Maintenance is about to/has expired" messages to not mention the $100 renewal discount and to also display more often for systems that are expired.

KSR/KSL - CUSTOMERS/VENDORS - Added the new Sort By fields available in v7 (WebId, CompanyName, LastName) to all the reports.

KSR/KSL - Inventory - Print Individual - The Inventory List box now remembers the last filter used after selecting an item to be printed.

TRN - Line Entry Parameters - Added the parameter "Auto Return to Lookup List". If this is on then after an inventory item is selected from the lookup list, the program will automatically bring the list back up when it gets to the point to enter a new line item (press [Esc] to exit out of the list and enter the item in a different way or to complete the sale.

TRN/POR/VAR/PROD/STR - Inventory Lookup List - Filters - While entering line items, the Inventory List box now remembers the last filter used if the list box is brought up to select the next item (the filter is cleared if an item is entered in a different way).

TRN - Inventory Lists Remember Position - The list box will now remember which line number the highlight was on when the last item was selected instead of always showing the last item on the first line of the list box.

TRN - Select Transaction - the program now handles the "No Records Exist in current transaction file" message better by only displaying the Next and Previous buttons when a next or previous file exists and defaulting to Cancel if the button for the default direction is not displayed (so you can tell when you've reached the first/last file).

TRN - Payment Entry for KeyPay - A payment entry that would be considered a duplicate can now be force through as not a duplicate the first time by entering an "F" in the reference field and then entering the card number. (This in addition to the method that was already supported where the "F" was inserted at the beginning of the reference field after the card number was first entered).

- AR - Delete - Fixed error 13 when deleting an ROA payment that had been processed through a Auth Method.

- CLOSEOUT - Payment Report - Details - moved the starting point of the Details lines and over to the left 2 spaces and changed the format of the Customer Number and Name fields so larger customer numbers would not be cut off.

- DBM - Matrix Tables - If the Element Codes on matrix items were being changed due to a change in the Matrix Tables/Categories, the program was not always going back and updating the Matrix Codes on other data files (Transactions, Variances, pictures, etc.).

- KSR - Vendors Reports - The First+Last name field was printing from the "Hidden" field position. This release will convert all reports that use this field to the correct field number (from field number 68 to 69). Note that if the hidden field is what was wanted, it will have to be changed back.

- KSR - Inventory Analysis - the list Sort By list on customer's was not in the correct order (WebID, CompanyName, and LastName should have been on the bottom of the list).

- MONEY DISPLAY - The change in build 25 to the way negative money amounts are displayed was not implemented everywhere.

- SCREEN - BUTTONS - Clicking on a button that brought up another window would cause the new window to not recognize the first mouse click on it.

- TRN - Select Transaction - when viewing an alternate transaction file (like On Hold) and there were no records, the program was getting stuck in a loop. It now displays the message that no records were found and exits the function.

- VAR - Matrix Items - Importing matrix items that already existed was not retaining the item's matrix code so it would then not update the matrix item's record (but would still update the inventory item).


4/05/10 - v7.00 Build 25

AR - Enter Customer - Invoice# field - NOTE: the ability to lookup customers by Invoice # is only available in Keystroke Advanced.

CLOSEOUT - Parameters - Settings - Changed the box around so the Reports Settings (which include the printer number) are now in their own separate box which can be accessed by selecting the Report Settings button. (The reports are run by selecting the Print Closeout button at the end of the closeout procedure.)

INI FILES - Added parameter SoundWhichOne= for the sound played when the "Which One?" list is displayed. If left blank (which is the default), then the Warning Sound will be used (SoundBeep times Number of Beeps parameter).

MONEY DISPLAY - When adding the currency symbol ("$") to a negative amount, the program will now but the minus sign in front of the currency symbol (e.g. changed from "$-1.23" to "-$1.23").

SCRIPTS - Added a new "Advanced Restrictions" button to each individual script. Pressing this button will bring up the Advanced Script Restrictions box where the following can be entered:
- Start/End Date - Date range that the script will be active for.
- Time Window (Happy Hour) Start/End times - The time of day that the script will run in (repeats every day)
- Day of Week - Similar to Time Window but defines which days of the week the script will be available on (repeats every week).
- Day of Month - Same as Day of Week but based on the calendar month (repeats every month).
- Any combination of settings can be made, if any one is not met, the script will not run. None of the settings need to be filed out (e.g. if none of the Day Of Week days are checked, then Day of Week is not checked).
- If more than one of the same setting is need (e.g. a morning time window and an afternoon time window) simply copy and paste the script on the main Scripted Item screen and the change the Advance Restrictions for the other set of settings (in the case of 2 different time windows, even the scripted item will appear to have the same script twice only the morning one will run in the morning and the afternoon one in the afternoon and neither will run outside of the time windows).
- This feature is available only in Keystroke Advanced, it is not available if Scripting was purchased separately.

TRN/FMTR - DataPort/Sales Transaction Forms - Added the field "Machine Number". This is the number currently assigned to the Keystroke process that printed the information (not necessarily the machine the transaction was first entered on). (This number is either assigned automatically or is set through the command line switch MNUM=.)

TRN - Process Recurring Charges - Change the settings dialog box to be easier to use.

- CONTACT LIST - When leaving the Contact Record List Box, the customer data file was being closed. This would cause an Error 52 in the Customer Record List box if is was already being displayed. (from build 24).

- DBM - Matrix - If the record list box was set to sort by Product Code, and there were no matrix items with their own Product Code, then the Record List for Matrix items would always go into add mode (since it did not see any matrix records when search by Product Code).

- EXTRACT - Customers - Was not extracting customers unless start date was prior to 12/31/84.

- KSR - Audit Report - The program was not formatting the print out of the audit entry for Recalling or Deleting a Variance correctly and would sometimes generate an Error 6.

- KSR - Inventory Database - The Roll Child into Parent parameter was not rolling up the average cost of the items. (In most cases this would not make much of a difference since the cost of the child item comes from the parent in the first place.)

- VAR - Matrix Items - Selecting a matrix item from the pop-up grid or lists was not working correctly (could give error 63).


3/25/10 - v7.00 Build 24

CNF/TRN - Sales Payment Types - Added new parameters to Sale Payment Types for an Alternate Print Button that will be defaulted to when the payment amount is below a given threshold. The Alternate Print Button is set using the new "Alt (Under) Print Button" while the new "Threshold to use Alt Button" field is used to set the amount where the program switches from the primary to the new alternate button. (For example if the Print Button is set to "Credit Card w/ Signature" and the Alt Button is set to "Receipt" and the threshold is set to $25.00, then a payment amount of $25 will default to the standard "Credit Card w/ Signature" button while a payment of $24.99 will default to the alternate "Credit Card w/ Signature" button. (If the threshold is left at $0.00 than the Alt Button will not be used.)

DBM - Matrix Record List - If a field is null on the matrix item, the program will now display the information from the inventory item instead of just leaving it blank in the record list box. When this happens the information will have the Null symbol in front of it to highlight that it is coming from the inventory record and not the matrix record.

KSR - Department Database Report - added the ability to print "Hidding Items Only".

KSR/KSL - Changed the use of the field flag "Skip Line if Blank" to no longer require that it be the first field on the line.

KSR/KSL - Changed the use of the field flag "Line Feed After this Field" to no longer work if the field itself did not print.

POR/DBM/STR/PROD/UDPRICE - INVENTORY - Program now updates the "Old Price" (aka "Prior Price") and the "Price Changed On" fields whenever the price is changed. Note that the Old Price field is maintained by the program and should not made editable or imported.

TRN/POR - Transaction List Box - Increased length so it would show more transactions at one time.

RECORD LIST BOXES - Scroll bar will now indicate when you have reach the beginning or end of the list (indicator will move to top when first record is highlighted, bottom when last record is highlighted).

RECORD LIST BOXES - When jumping to the end of the list, the program will now place the last record at the bottom of the list box (showing additional records above it) instead of at the top (where it was the only record that could be seen).

- KSR - CUES - The Tables reports were not available on the menu list when adding new report settings from the Cue function.

- KSR - Inventory Analysis - the Avg and Percent fields for Department Calculated were always 0. (Not used very often since these same numbers are available from Inventory Sub Totals.) (Note that these fields are not affected by filters on the on the Inventory Items.)

- KSR - Inventory Analysis - running the analysis a 2nd time with different settings and with 1st Grouping turned on (e.g. Grouped by Department), the program was sometimes printing out 0 for everything (the analysis data files were not being adjusted correctly for the new settings). Workaround was to leave the module and then coming back and then run the report (this completely rebuilds the analysis files).

- POR - after printing a transaction, the program would sometimes leave the internal "Print Now" flag on so the next time the print box was used, it would automatically save the transaction instead of asking to print it.

- STR - Inventory Update - Matrix Items - was not updating matrix items correctly. Fields that were suppose to be updated were being set to the values of the previous matrix item.

- STR - The View Cost security level was not being checked when first entering the StoreLink module.

- TRN - Reversing Transaction - Customer Name - When a transaction is reversed, the date of the original transaction is placed in the customer name field, the program now places this date at the end of the customer name instead of always starting with the 17th character.

- TRN - Max Users - if the "Maximum Number of Users" message appeared, it was not then allowing the user to return to the Navigation Menu so a different module could be selected.


3/16/10 - v7.00 Build 23

TRN - CALCULATE LINE QTY - The Edit Line Item detail function can now be used to calculate the qty that can be sold for a total $ amount including sales tax. If the Qty is 1 when entering this function, then changing the "Total w/ Tax" field will calculate what the qty needs to be to give that total. If the Qty was not originally 1, then it will calculate the Price (which is what it has always done).

TRN - LINE ENTRY PARAMETERS - Edit Field - Added the ability to set the default field on the Edit Line Item Detail box to "Total w/ Tax".

KSR - Filters - If the Filter is too long to be printed on a single line, the program will now continue printing it on the next line.

- CLOSEOUT - REPORTS - The Department Sales report was only printing the "** No Department **" and not any of the others.

- IMPALTIC - Using the /? or /H switch to display the documentation screen was also displaying the import summary screen before exiting the program (but with all 0s since the documentation switch causes the program to not do anything).

- KSR - MATRIX REPORTS - The Matrix Calculated fields for Element 1 Name through Category 4 Name were not working correctly. (Since build 18).

- TRN - Error when adding a Payment - The program was not supporting more than 5 payments on a transaction and would get an error when the 6th one was added. (From build 21).


3/09/10 - v7.00 Build 22 - not released

Synced with v6.30 build 31

CNF/TRN - SECURITY LEVELS - Added the security level "Age Verification - Over Verification Age" which will hide the "Over Verification Age" shortcut on the Confirm Age box in the Sales Manager that pops up when an item with a minimum age is sold (default level is 10).

CNF/TRN - PAYMENTS - If the Auth Method on a payment is set to and External method and the width of the reference field on the authorization method is set to 0, then program will not display the reference field when payments are entered or edited (unless a reference already exists on the payment). (Intended to be used with Cash payment types that do not require a reference or any processing.)

KSR - SALESPERSON REPORT - Added the ability to SubTotal by Commission Code for each clerk.

TRN - In House Check Lists - if the In House Check List authorization method is used, the Reference field must now have something in it before the program will proceed.

- CHECK BOXES - Clicking on a check box that was not the current field was not toggling the field.

- CNF - COMMISSION FORMULAS - The Minimum Sale parameter on Commission Formulas was not being saved correctly (would look correct but would not work correctly when running the commission report.)

- KSR - PRINTING TO SCREEN - Changed it to no longer jump to the last page of the report when the report finishes if viewing at pages before the last page.

- LOGO - Convert Data - Variances - The TotalCost and TotalPrice fields stored with a variance were off by a factor of 10 (price is 10 times more than it really is) when converted to v7.

- MATRIX GRID - The entry field was displaying lower than the actual cell.

- RECORD LIST BOXES - Quick Search was not working with fields that had spaces in the front of them.

- STR - SERIALS NUMBERS - Transferring of Serialized Items was not working in regards to transferring the serial numbers. Items that did not exist in the Transfer To store were not receiving the new serial numbers. Items that already existed would generate an error 76.

- TRN/CNF - Tax Tables - The Tax Table Rate (% displayed on the screen) was being rounded to the Money Decimal Points as set in the CNF-Parameter (usually 2). This is a display issue only and did not effect the calculations.

----- v6.30 Build 31 ---
- CNF - KEYPAY - CHECK AUTH - Was not setting up the the .aut file correctly for check authorization.

- TRN - KEYPAY - CHECK AUTH - Checks entered manually were being sent in as having been magnetically read by a check reader. (As always, you must update to the current version of KeyPay along with the current version of Keystroke).

- TRN - PCCharge - CVV2 - The old INP method of PCCharge was not displaying the correct message for the CVV2 response.
------------


2/25/10 - v7.00 Build 21

IMPTRN/IMPPOR - Create Invoices from Orders - When the transaction type being imported is set to "Convert When - Shipped" and the "Quantity Shipped=" field is imported, then the program will now create an Invoice as well as update the transaction being imported. (This feature was added to v6.21 build 47 but is just now being added to v7.)

IMPTRN/IMPPOR - The "Line Number=" field should be used to update information on a line item that already exists. This should always be the first field after "**START LINE ITEM"

IMPTRN - Added support for field names "TRANSACTION LETTER=" and "TRANSACTION NUMBER=". These are the same as "INVOICE LETTER=" and "INVOICE NUMBER=" and were added for consistency.

IMPTRN/IMPPOR - When searching for a transaction by number, if the transaction letter (TRANSACTION LETTER=) parameter is not used, then the program will now match up with transaction even if it has a letter assigned to it.

KSR - Edit Report Forms - Changed the File Name field to allow non-numeric characters to be entered. (That part of the name must still use 4 characters though.)

- LOGO - When creating a new configuration file (KSCNF.DAT) the program was not recording the current build number which would result in an Error 13. (Workaround is to copy the KSCNF.DAT file from another data set).

- CUSTOMER DISPLAY - The program was sending 2 character 0s (the blank character) at the beginning of each message. This was causing it to not work with OPOS drivers and may have caused problems with other connection types as well.

- SECURITY FEED - Information was not being sent to the Security Feed device.

- FILE LOCKED MESSAGE - AUDIT ENTRIES - When audit entries where cached due to the transaction file not being available and then an audit entry was requested for a function that was set to not be audited, the program would not proceed until it could write all the audit entries that had been cached. This could result in the "File Is Locked by Another User" message appearing if the transaction file was in use. Now the program will continue on and just keep caching audit entries until the file is available (except when changing modules where it will wait until the audit entries can be written to transaction file).

- TRN - SCRIPTED ITEMS - ERROR 6 - Loading a previous transaction with scripted items that are components that have a fixed cost of null could cause an error 6.

- GLLINK - When adding up sub-totals from invoices, the program was not rounding line items to the nearest penny which could cause the GL-Entry to be out of balance if LineItemPrice*Qty resulted in fractional cents.


2/16/10 - v7.00 Build 20

Synced with v6.30 build 30

- LOGO - Convert Data - Variances - Variances with more than 7 items on them were having the rest of the records marked as Variance Headers so packing the file would end up with a lot of extra variances listed (most of them not valid). If data has already been converted to v7 format (prior to v7.00 build 20), then the program will go through the transaction files and fix the variances (as long as the file has not been packed already).

IMPTRN/IMPPOR - Added support for importing the "Extended Description" field.

- IMPTRN/IMPPOR - Inventory lookups were finding the closest match not the exact match so if the item wasn't found, it would load another item.

POR - Added ability to enter a line item by AltID#.

- POR - Entering a line item by Manufacturer was not working correctly.

- POR - Sort Line Item ([Shift+F2]) was not working correctly.

----- v6.30 Build 30 ---
- VAR - Editing a posted variance without changing the date was causing the index to the variance to be lost (it would no longer appear on lists or reports). (Packing the transaction file corrects the problem.)
------------------------


************************ END OF VERSION CHANGES/FEATURES ********************

******************************************************************************
** Program changes made prior to v7.00 **
** Changes prior to 02/02/09 - 7.00 build 20 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 **
******************************************************************************

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-2010. 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 *******

MODULES: (Description of Codes used in this document)

Name

Code

Windows

Logo Screen

LOGO

LOGO.DLL

Sales Manager

TRN

TRN.DLL

Database Manager

DBM

DBM.DLL

Variance Module

VAR

VAR.DLL

Purchase Manager

POR

POR.DLL

Report Manager

KSR

KSR.DLL

Label Manager

KSL

KSL.DLL

Account Receivable

AR

AR.DLL

Configuration Manager

CNF

CNF.DLL

Closeout Manager

CLOSEOUT

CLOSEOUT.DLL

 

v4.2 Report Manager

RPT

RPT.DLL

v4.2 Label Manager

LBL

LBL.DLL

Store Link

STR

STR.DLL

General Ledger Link

GLLINK

GLLINK.DLL

CYMA Link

CYMA

CYMALINK.DLL

Importer

IMP

IMP.DLL

Production

PROD

PROD.DLL

Forms Editor

FMTR

FMTR.DLL

 

Mercury Payment Server

MERS

MERCURY.EXE

Mercury Payment Service

MERC

MERCSVC.EXE



Keystroke POS Point of Sale Software

Home | Products | Support | Dealers | Downloads | Search | Contact | Questions?
Tech Support |Training Services | F.A.Q. | Updates

|