Scrolling Images with JavaScript

July 30th, 2010

You see many websites bombarded with flash, which is fine for complex animations and video, but what about a good old fashioned approach to animate your site without flash. When redesigning our website, we wanted to have some images that would scroll, but also function as a hyper-link to a page the image was advertising. My attempt to avoid reinventing the wheel led me to several hours of searching the interweb on how to do this using JavaScript. True there were many code examples where people we doing just this with JavaScript, but they were all complex and not very scalable. After about an hour of coding, I came up with a simple, scalable solution that met our needs perfectly.

This JavaScript is very re-useable, in that multiple pages, or multiple scrolling images can use this same code without any modification:

The JavaScript

var unit = “px”; //the unit of measure when moving each image up

var keepScrolling = true; //default to true so the images continue to scroll

var moveAmount = 2; //number of units to move each picture

/*

The main function that sets up the images

*/

function scrollImages(groupID, imageHeight, scrollDelay, imageDelay){

/*

Each image lives in its own div with a common id and numerical suffix (ex: pic1, pic2, ect.)

*/

var counter = 1;

var images = new Array();

//if the element exists, add it to the array

while(document.getElementById(groupID + counter) != null){

images[counter - 1] = document.getElementById(groupID + counter);

counter++;

}

//the first image should be at the very top

images[0].style.top = 0 + unit;

images[0].style.display = “block”;

//place the rest of the images directly under the first image

for(counter = 1; counter < images.length; counter++){

images[counter].style.top = imageHeight + unit;

images[counter].style.display = “block”;

}

setTimeout(function(){scroll(images, 0, imageHeight, scrollDelay, imageDelay)}, imageDelay);

}

//this funciton actually does the scrolling

function scroll(images, firstImage, imageHeight, scrollDelay, imageDelay){

var image1 = images[firstImage];

var secondImage = 0;

var thirdImage = 0; //if you only have 2 images, then the third image will always be the first

var image2 = null;

//because this function is called repeadily, the first image is not always the first image in teh array

//so the second image is simply the next image after the curent one being displayed

if(firstImage + 1 < images.length){

secondImage = firstImage + 1;

}

image2 = images[secondImage];

//scroll each image up the number of units

if(keepScrolling){

image1.style.top = (image1.style.top.replace(unit,”") – moveAmount) + unit;

image2.style.top = (image2.style.top.replace(unit,”") – moveAmount) + unit;

}

//if the second image isn’t at the very top yet, keep scrolling.

if(image2.style.top != “0px” && image2.style.top.indexOf(“-”) < 0){

setTimeout(function(){scroll(images, firstImage, imageHeight, scrollDelay, imageDelay)}, scrollDelay);

}

//if the second image is at the very top, get the next image and scroll

if(image2.style.top == “0px” || image2.style.top.indexOf(“-”) > -1){

if(secondImage + 1 < images.length){

thirdImage = secondImage + 1;

}

image1 = images[thirdImage];

image1.style.top = (image2.style.top.replace(unit,”") + imageHeight) + unit;

setTimeout(function(){scroll(images, secondImage, imageHeight, scrollDelay, imageDelay)}, imageDelay);

}

}

// the div that contains the image divs calls these funcitons on mouseover(pause) and mouseout(unPause)

function pause(){

keepScrolling = false;

}

function unPause(){

keepScrolling = true;

}

The CSS:

/*the main div that contains each images div*/

.flash {

background-image: url(“../images/flashspacer.png”);

clear: both;

position: relative;

width: 980px;

height: 240px;

overflow: hidden; /*this is very important because it keeps the images that are outside the div hidden*/

}

/*each image div uses this css class*/

.hero-image {

padding-left: 19px;

clear: both;

position: absolute;

width: 942px;

display: none;

top: 0px;

}

The HTML:

<div class=’flash’ onmouseover=’pause()’ onmouseout=’unPause()’>

<div id=”hero-image1″>

<a href=’page1.html’><img src=’img1.png’></a>

</div>

<div id=”hero-image2″>

<a href=’page2.html’><img src=’img2.png’></a>

</div>

<div id=”hero-image3″>

<a href=’page3.html’ ><img src=’img3.png’></a>

</div>

<div id=”hero-image4″>

<a href=’page4.html’><img src=’img4.png’></a>

</div>

</div>

If you want to add another image to the mix, all you need to do is add another image div and increment the numerical suffix by 1.

www.kraftenterprise.com

Adaptive Planning 7.0 System Upgrade Notification & Webinar Registration Information

July 28th, 2010

SYSTEM Upgrade: August 13th 6:00PM PDT to August 14th 2:00AM PDT

Adaptive Planning will be unavailable due to a software release upgrade from Friday August 13th at 6:00PM PDT to Saturday August 14th at 2:00AM PDT.
The upcoming release of Adaptive Planning, version 7.0, contains many exciting enhancements to several areas of the application including new and expanded capabilities for reporting, admin, export, and formula building. These new features are briefly described below:

Reports

  • Reports Parameters- Report authors can create reports that allow the report users to filter the report based on specific dimensions without having to modify the report in the report builder. Parameters can be specified to prompt the user either when the report is run or on the face of the report once it has been run.
  • Report Segments – Report authors can now specify more than one set of dimension element combinations for each axis (creating “segments” on each axis). This allows the report author significantly more control over which rows and columns will appear or not appear on a report.
  • Element Search – Report authors can quickly search for elements in the different element trees to make report building more efficient.

Import / Export

  • Filtering control – Users can now filter exported data based on accounts, plans, dimensions and time specifications.
  • Currency control – Users can specify whether to export data in corporate or local currency.
  • Data security – Export now respects a user’s Plan access rights and therefore limits the data which they can export.

Additional Enhancements

  • Drag and Drop administration of Account, Plan, and Dimension Trees – Eases the task of ordering elements in a tree by utilizing simple drag and drop capabilities.
  • Validate Formulas – A new administration feature that shows the user a listing of any accounts that have formula errors to speed the validation and error checking process.
  • Formula Enhancements – Net Present Value (NPV) and Internal Rate of Return (IRR) functions have been added as standard functions.

New APIs

  • New Export API created for Standard, Modeled, and Cube sheets.
  • Import API extended to include Modeled and Cube sheet data.

These features will be available to all Corporate and Enterprise edition subscribers as part of your annual subscription.
Release notes will be available on Saturday, August 14th, in conjunction with the release on our customer documentation page:

http://www.adaptiveplanning.com/customer_documentation.shtml

Webinars
Adaptive Planning will conduct several live training webinars beginning Thursday, July 29th, You may register for and attend these webinars by visiting their training page at: http://www.adaptiveplanning.com/services/online_training.php

Why Clearing the Jungle, Dynamics GP-Style, Means Implementing Daily Tasks

July 22nd, 2010

BY Mark Polino, Principal Consultant, I.B.I.S., Inc.

PUBLISHED: July 7, 2010

  • Accounting
  • Data Management
  • Dynamics GP
  • Tax Management
  • Workflow Management

Executive coach and blogger Michael Wade recently made the important point that a base camp in the jungle requires regularly chopping back the jungle to keep from overwhelming the camp.

His key points were that:

1.       You can’t chop back the entire jungle.
2.       It makes no sense to chop back more than is operationally required because you’d be wasting energy and time.
3.       Daily chopping is easier than chopping every two or three days but it may provide a sense of less accomplishment since the growth would be smaller.

The illustration resonated with me because almost every time I walk into a client that is having ongoing difficulties with Dynamics GP, I see it is doing a poor job of chopping back the jungle. Some companies are unwilling to do the hard work. Others can’ t bring themselves to change their routine. Like creeping jungles, maintaining Dynamics GP is simpler and easier with small processes done daily.

An awful lot of accountants are still stuck in a routine that is focused on a monthly time frame, even as the volume of transactions grows exponentially around them. You can’t cut back the jungle once a month. In a month, the camp will be overgrown. If you’re behind, you may have to take some drastic steps to get caught up-for example, using temporary workers, delegating work and focusing on fixing a specific process.

Now is the time to hack away at the jungle. The closer we get to year-end, the faster the jungle seems to grow. Grab your machete and tame the Dynamics GP jungle on a much more frequent basis via such steps as:

  • Backing up daily
  • Balancing the bank account daily
  • Balancing subledgers to the GL daily
  • Reviewing cash daily
  • Using cycle counts to manage inventory
  • Gathering vendor 1099 and W-9 information at vendor creation, not year end
  • Moving items like depreciation out of month end
  • Invoicing more often
  • Proactively collecting from customers
  • Leveraging time savers like correcting and copying transactions
  • Forcing transactions through subledgers to minimize journal entries
  • Implementing other modules to save time
  • Adjusting processes to quit making more work for yourself

Learn more about Microsoft Dynamics GP on the Kraft Enterprise Systems site.

Dynamics GP 10.0 Overview

July 13th, 2010

Here’s a handy overview of the newest version of GP, released this year.

Kraft Enterprise Systems
www.kraftenterprise.com

Gartner debunks SaaS CRM myths

July 9th, 2010

According to Barney Beal, News Director for SearchCRM.com, Software as a Service is not for everyone and some organizations that invested in SaaS are now looking for a way to move their CRM projects on-premise.

Read the whole article.

Epicor provides improved, user-friendly supply chain management and customer connectivity

June 28th, 2010

“We deployed Epicor to optimize scheduling, better manage costs, and increase visibility over everything we do—including sales orders, job orders, and purchase orders. That visibility on a real-time basis is a key benefit.”–King Lum, Director of Progress, Ace Clearwater Enterprises.

Business Challenges:
The need for a flexible, integrated system that could aggregate and distribute real-time data to users across the entire company for analysis and decision-making

Solution:
The manufacturing industry’s first all-in-one solution with 100% service-oriented architecture (SOA) and .NET platform; Epicor Manufacturing

Business Benefits:
- Ability to implement rapidly and efficiently
- User-friendly installation, upgrades and maintenance
- Improved supply chain management and customer connectivity
- Reduced dependence on paperwork

The Results:
“We knew Epicor would stand behind its product and continue to implement new features and innovations. Epicor Manufacturing, the industry’s first manufacturing software solution based on a 100-percent service-oriented architecture (SOA), best satisfied ACE’s criteria.”

Axis Accounting Systems

www.axisaccounting.com

800.960.5890

Microsoft Unveils Dynamics NAV 2009 R2

May 21st, 2010

Microsoft Unveils Dynamics NAV 2009 R2

Microsoft rolled out its latest version of Dynamics NAV 2009 today at Directions EMEA 2010 in Prague, noting it will be available on 4Q 2010.

50 Tips for Getting More out of Microsoft Dyanmics GP

April 29th, 2010

Thanks to Mark Polino who presented these 50 tips for getting more out of Microsoft Dynamics GP:

1. Explore GP with Better Navigation

2. Brighten Things Up with Red Required Fields

3. Clarify Processes with Window Notes

4. Speed Things Up with Quick Links

  • Use Quick Links on the Home page for fast access to favorite windows, navigation lists, web pages, external apps and files.
  • Click the Pencil to edit and select Add or Modify to change. Use Up or Down to change order.

5. Improve Organization on the Navigation Bar

  • Reorganize the Navigation Bar for faster access to highly used areas
  • Click Configure Buttons on the bottom right. Click Navigation Pane Options
  • Use this to turn buttons on or off and reorder the navigation pane buttons
  • You can also show more or fewer buttons and add windows, Smartlists, web pages, etc. from the Configure Buttons menu

6. Gain Insight Into the Home Page Metrics

7. Get New Benefits from User Classes

8. Take Control with User Classes and Smartlists

9. Open Windows on Startup with the Shortcut Bar

10. Copy and Paste Header with Data in SQL Management Studio

11. Correct entries that didn’t originate in the GL

  • By default entries not originating in GL can’t be changed with GL correction entry
  • • This is controlled with a setting in Get an unposted entry for posting or adjustment
  • • http://msdynamicsgp.blogspot.com/2010/02/weekly-dynamic-correcting-entries-that.html

12. Control Entry with Allow Transaction Entry

13. Gain Audit Control with Posting Numbers

  • Turn on Posting Numbers for a second GL transaction numbering scheme
  • These numbers are “gapless” for better audit reporting
  • Setup->Company->Company, Options. Check “Enable Posting Numbers in General Ledger”
  • Select to reset by year or period below
  • These numbers will now appear on posting reports throughout the system including as a option in Smartlists

14. Get Complete Transactions with Taxes in Journal Entries

15. Control Bank Reconciliations with Grace Periods

16. Change up Payables with the Edit Check Batch window

17. Improve Picking with Picking Instructions

18. Improve Reporting by Properly Closing a Purchase Order

19. Move Things Around with In Transit Inventory Transfer

  • New in version 10, In-Transit Inventory provides a mechanism to move Inventory between company sites
  • Allows Transfer documents, site receiving and shipment tracking via web and prevents sale during transfer
  • Transactions->Inventory->In-Transit Transfer Entry

20. Improve Reporting with Purchasing Control Account Management

  • Purchase Control Account Management allows for the temporary allocation of Accounts Payable to a segment of the chart of accounts. Usually this represents a department or division. This is followed by an automatic reversal after month end
  • Allocation is based on the expense accounts for open AP
  • This is a Routine that is run at a regular interval like month end
  • http://msdynamicsgp.blogspot.com/2009/03/weekly-dynamic-control-account.html

21. Improve Transparency by Showing Payment Accounts

  • When applying payments as part of an AP or PO related transaction, the payment accounts are rolled up
  • There is a setting that doesn’t roll up the accounts and makes the transaction easier to understand
  • To Activate go to Tools->Setup->Company->Company and check

22. Prevent Errors with DocDateVerify

  • Free DocDateVerify utility from MS prevents subledger entry to non-existent fiscal years.
  • Contact MS or your Partner for a copy.

23. Smooth Accounts Payable with Scheduled Payments.

24. Gain Reporting Control with Tax Dates

25. Control Your Inventory by Preventing the Sale of Discontinued Items

  • Discontinued items can be sold until gone by default
  • Typical advice is to write off items to prevent sale if necessary
  • A setting can prevent the sale of discontinued items without writing off the items
  • Turn it on at Tools->Setup->Sales->Sales Order Processing, Options, Uncheck “Allow Sales of Discontinued Items” in the bottom grid area
  • http://msdynamicsgp.blogspot.com/2009/08/weekly-dynamic-prevent-sale-of.html

26. Speed Up AR Aging by NOT Printing the Report

27. Speed Up Collections Management with Paid Transaction Removal

  • With a large number of open transactions, the Collections Management windows can bog down and move slowly
  • The only solution is to run the Paid Transaction Removal routine
  • Run the Paid Transaction Removal Routine in Project Accounting first (if applicable) then in AR
  • Paid Transaction Removal moves paid transactions from Open to History. It does not delete data
  • http://msdynamicsgp.blogspot.com/2009/09/weekly-dynamic-speed-up-collections.html

28. Undo Errors with Referenced Transactions

  • In Project Accounting transactions (Timesheet, Equipment, Etc.) you can change the transaction type from Standard to Reference
  • Reference transactions refer back to a previous transaction and allow you to change transaction lines
  • They accept negatives and can be used to move transactions between projects and cost categories
  • Reference transactions cannot exceed the original transaction so they are safe for moving information
  • http://msdynamicsgp.blogspot.com/2009/02/weekly-dynamic-project-accounting.html

29. Speed Setup with Budget Line Update

  • If you wanted to add a cost category to multiple projects in the past it was a painful experience
  • Now with Budget Cost Category Roll out you can push a cost category to multiple projects
  • Start at Tools->Routines->Project->Update Budget Lines
  • Pick a cost category. Optionally set defaults. Select projects to roll out to by moving them from left to right. Optionally choose to add this to templates as well. Click Process
  • http://msdynamicsgp.blogspot.com/2008/12/weekly-dynamic-update-budget-lines-in.html

30. Spread Project Costs with Project Allocations

  • Sometimes companies want to collect costs in a project and allocate those costs across multiple projects
  • GP 10 Project Accounting now supports this with Project Allocations
  • Setup in Cards->Project->Project Allocations
  • Specify From and To Projects, Cost Categories, Allocation Type and Misc Transactions and Cost Categories for the allocation transactions
  • http://msdynamicsgp.blogspot.com/2008/10/weekly-dynamic-project-allocation.html

31. Spread Payroll Costs with Benefit Allocations

  • If you are using GP Payroll, you can apply payroll benefit costs to projects based on project timesheet data
  • Tools->Setup->Payroll->Benefit to setup a benefit
  • Cards->Project->Cost Category , Go Button (upper right), Benefits – Associate Benefit with a Cost Category
  • Pick benefits and choose to allocate by time or cost and select a misc log transaction to hold the allocation transactions
  • Tools->Routines->Project-Benefit Allocation actually runs the allocation and creates misc. log transactions
  • http://msdynamicsgp.blogspot.com/2008/10/weekly-dynamic-project-accounting.html

32. Create Assets from Project with a simple process.

  • A connection between PA and FA doesn’t exist
  • To turn a project into an Asset, setup a “Transfer to Asset” cost category
  • Once the project is done, create a negative Miscellaneous Log transaction to the Transfer to Asset category for the full amount of the project. The GL should be an offset credit to project costs and a debit to the FA clearing account
  • Create an asset from the amount in FA clearing
  • This process retains project details for auditing and reporting but project nets to zero.

33. Distribute FRx Reports Directly as Excel Files for Greater Compatibility

  • In FRx on the Output Tab, Output options, change the default FRx Drilldown Viewer to Formatted Excel

34. Improve Custom Report Writing with a Table Reference

  • Determining the appropriate tables for Dynamics GP can be time consuming using standard GP resource definitions
  • Use our Excel based Table Reference instead
  • http://www.box.net/shared/jc90kdsh2k

35. Control Smartlist printing with Column widths

36. Get Reporting Flexibility with Excel Report Builder

37. Gain Valuable Insight with Analysis Cubes

  • Analysis Cubes offer pivot table style looks into all of your Dynamics GP data

38. Get Free Spell Check Functionality In Dynamics GP

  • WillowWare, a 3rd party vendor, offers free spell check functionality for Dynamics GP
  • This is a CNK file so it’s an easy install
  • Registration required
  • http://www.willoware.com/spellcheck/

39. Personalize Internet Options with Internet User Defined fields

40. Make Logging On Easier with a Caps Lock is On Warning(VBA)

41. Control Licensing By Preventing Users from Logging In To Multiple Companies (VBA)

42. Reduce Errors with Colored Backgrounds Per Company

43. Resolve issue by turning off Outlook connections

44. Understand Security With Information About the Default Security Roles

  • There is a document which lists all the default GP Roles and descriptions of how they are used
  • It provides a great starting point for working with security
  • Download it here: http://www.box.net/shared/sgggsvnazv

45. Troubleshoot Security Issues with the Security Profiler

46. Get Group Help with Social Media – Blogs, Twitter, YouTube

  • Social Media sites provide additional avenues for support and learning

47. Watch Your Way to Greatness with CustomerSource Online Training Videos

48. Watch Your Way to Greatness with CustomerSource Online Training Videos
49. Use Screen Shot Capture and Email from the Support Debugging Tool for Precision Help

50. Show Security Details when access is denied

Why CRM Implementations Fail

April 7th, 2010

With CRM systems becoming more affordable and functional, more companies today are turning to CRM to change the way they do business. For companies from start-ups to Fortune 500’s, a well-implemented CRM system can increase operational efficiencies, boost sales and productivity, improve customer satisfaction, and contribute to the overall development of the business. And with advances in features around Business Intelligence (BI), many businesses have used CRM to establish intelligent business systems and gain visibility into their organizations.

“Purchasing a new CRM system can be a business-transforming decision rather than just another IT spend,” according to Cherie Zydel, the Microsoft Dynamics Practice Director at Axis Accounting Systems. “However, like with any software implementation, many CRM implementations are doomed to fail before they even begin.”

Here are four of the most common reasons why CRM implementations fail:

1. Customers Skimp
The do-it-yourself mentality has caught on among CRM installers thinking that going it alone will ultimately result in a less expensive implementation. Unfortunately, without the planning and design of experienced project managers and consultants, these implementations invariably get dragged out well past their projected go live date, resulting in a poorly-installed system, untrained employees, frustrated users at all levels, and a failure to execute the goals for which the system was implemented in the first place.

2.Lack of a defined sales process
CRM technology is not going to define a sales process on its own. It can, however, greatly improve the effectiveness of a solid existing sales process. Or if no sales process exists, it can be implemented along with a well thought out CRM system. “A CRM implementation is a great opportunity to improve and define your sales process,” says Zydel. She encourages clients to use what she calls a “bumper bowling” approach to sales that sets up a process for success that can be repeated over and over again. “Take the time to look at your sales success and use the CRM system to help you do it over and over again,” she advises.

3. Lack of executive sponsorship
CRM is frequently brought in to solve an operational problem. The executives who are funding the implementation, however, will often tighten the project budget because they are not dealing directly with the problem the way front line users are and they cannot see the need for a solution as clearly. Getting backing from executives who understand the problem and the benefits of a solution gives the project the momentum it needs to result in a successful implementation. “Start with the executive vision and drive that through to the end users,” says Zydel.

4. Failure to integrate with existing systems
Looking at a CRM solution as solely a sales application can limit the effectiveness of your system. Zydel recommends taking the time to integrate your CRM system with other business critical systems such as your accounting or billing systems. Systems that can share data provide more reliable information and eliminate the need for employees to spend time entering information into multiple systems. “The result,” says Zydel, “is more accurate reporting, higher user adoption across multiple divisions, and a 360 degree view of each client.”

Welcome to Kraft Enterprise System’s Blog

February 10th, 2010