Posts

Showing posts with the label VBA

Microsoft Convergence Atlanta 2015 (#CONV15) - Day 2

Image
Wow, Day 1 sure proved to be very exciting with all the big keynotes, general sessions , and presentations , not to mention the whole Expo reception. It also seemed like the night went by flying and sleeping was overrated. To add to the mix, Atlanta's Tuesday morning traffic came back with a vengeance and did not really allow David and I to make it down on time for some early sessions we had planned to attend, oh well! As a result, we ended up going to the Speakers' Room to finalize our last bits of demo code for our upcoming session, only to discover we were not using "best practices" as noted by our Microsoft friend Rob Bernhardt . Since we are very keen to deliver best practices in our Service Based Architecture code (more on this on a separate post). This put us in a tailspin, so we went looking for Kevin Racer to offer some advise. We finally got what we were looking for, just 10 minutes before our session. Off we went to look for our dual A313/314 room ...

Microsoft Dynamics GP, the next generation of end-user customization tools?

Image
My new article is out on my Community column blog, In my humble opinion with The Dynamics GP Blogster . This time, I take a swipe at some significant improvements that could be added to the customization and integration tools like Modifier, Report Writer, and Integration Manager, just by switching out the programming environment and scripting languages, Visuals Basic for Applications and VBScript for Visual Studio Tools for Applications and PowerShell, respectively. Far fetched? Not quite, go on and read my reasoning behind this, over at the Community's website. Microsoft Dynamics GP, the next generation of end-user customization tools? For more information on all the programming languages and environments, check the following links: VBScript    http://msdn.microsoft.com/en-us/library/cc175562(v=vs.90).aspx Visual Basic for Applications    http://support.microsoft.com/kb/163435 Visual Studio Tools for Applications 2.0    http://msdn.microsoft...

Customizations for the View Indented Bill (bmViewIndentedBillInquiry) window failing for GP 2010

Image
In the past days I had been helping a Microsoft partner and good friend of mine in migrating some Modifier with VBA customizations from Microsoft Dynamics GP version 9.0 to version 2010.  In doing so, we came across an issue with one of the modified objects that needed to be converted: the Inventory module's View Indented Bill window. View Indented Bill window - Original The customization in question added a field to the View Indented Bill window to retrieve the quantity available for a given component item on a bill, as shown below: View Indented Bill window - Modified The rest of the customization included adding some VBA code to retrieve the quantity available for the component across all sites by using some simple ADO code. So far, good! The error came into play when we attempted to print the Indented Bill Report, by clicking on the print button on the window. Unhandled script exception error After selecting the report type on the ...

How to display an image at the User Interface level

Image
One of the questions I often get is, can you dynamically display an image on a Microsoft Dynamics GP form or report. The answer is No, it's not possible. The reason for this is, Microsoft Dexterity, the tool used to developed your beloved Microsoft Dynamics GP, is only capable of displaying images stored within the dictionary itself. Since the picture control in Dexterity is binded to these pre-stored images, this obviously would indicate that there is no room for dynamic images to be added. In addition, the Dexterity picture control cannot be referenced or manipulated programatically as Dexterity does not treat this object like it does with any other fields. One *exception* may be the adding these pictures via Modifier, but even so, this is not a dynamic manipulation of a picture control. In summary, not possible! Of course, you can always resort to VBA. The objective of this post is to see how you can use VBA to aid in displaying images where needed. ...

Report Writer Week!

Image
In this corner: David Musgrave In this corner: Mark Polino In case you have missed the heated debates  - all within cordiality, though there was even a call for insanity  - between David Musgrave and Mark Polino on Report Writer, I now join in to continue fueling the heat by declaring this the official Report Writer week! To make this an even more attractive proposition for you the reader, The Dynamics GP Blogster is siding  (more like ganging up against Mark :-) ) with Developing for Dynamics GP  to deliver some really cool Report Writer articles and to show some advanced techniques for developing reports... yes, with Report Writer. Until next post! MG.- Mariano Gomez, MVP Maximum Global Business, LLC http://www.maximumglobalbusiness.com/

Top 10 Microsoft Dynamics GP freebies

Image
With the amount of money customers pay for software and implementations nowadays, it only makes sense that they would want to maximize their investment. What better than free (as in no strings attached!) software that works as intended. Because of this, I have set out to compile a list of the top 10 free add-ons -- in no particular order -- that I would drop into ANY Microsoft Dynamics GP implementation, no questions asked! 1) Support Debugging Tool . Ok, so I am biased! I have talked about this product in two Microsoft conferences and to outright show how biased I am, I am also personal friends with the product's author, David Musgrave. SDT is a collection of some of the most powerful administrative tools for Microsoft Dynamics GP currently available from anywhere, with rich features like Resource Information, Security Profiler, Dictionary Control, SQL Execute, Runtime Execute, XML Import/Export and the even more powerful Advance Debugger mode. So, where can you download this prod...

New Article on MSDynamicsWorld: "When It Comes to Customizations for Microsoft Dynamics GP, Which Tool Should You Rely On?"

Image
"The term "customization" can mean different things to different people..." My new article is out over at MSDynamicsWorld. This time, I go back to basics defining what is a customization and what tools are available to customize the Microsoft Dynamics GP user interface. This article is a good start if you are still trying to figure out your options for developing add-on solutions to Microsoft Dynamics GP. To read the full article, click here . Until next post! MG.- Mariano Gomez, MVP Maximum Global Business, LLC http://www.maximumglobalbusiness.com/

VBA - Opening a lookup window in expanded mode

Image
Just recently, I came across a question from a partner asking if it was possible to have the scrolling window on a lookup form open in expanded mode, this is, showing information in detail. Traditionally, lookup windows in Microsoft Dynamics GP have always opened showing summary information, take for example the Item Lookup window shown below. The partner wanted to see the window as shown below when first opened. Note that the scrolling window displays the additional fields added to the big line. This is accomplished by clicking on the switch arrow button that expands the scrolling window. Of course, this is possible. The following VBA code can be used to open a Dexterity scrolling window in expanded mode by using pass-through Dexterity to set the switch value and run the expand window Dexterity statement. Window_BeforeOpen() Private Sub Window_BeforeOpen(OpenVisible As Boolean) Dim CompilerApp As Object Dim CompilerMessage As String Dim CompilerError As Integer Dim C...

Microsoft Dynamics GP 2010 Technical Web Seminars

Image
Prior to the Microsoft Dynamics GP Convergence 2010 event, I had been hard at work with my good friend David Musgrave , working on couple Live Meeting pre-recordings corresponding to the two sessions we co-presented at the Microsoft Dynamics GP Technical Conference 2009 . Now, these two Live Meetings have been made available to the partner community along with a number of other sessions presented at the Tech Conference, updated for Microsoft Dynamics GP 2010 . Visit the following link to access all the presentations: Microsoft Dynamics GP 2010 Technical Web Seminars ( PartnerSource ) If you attended the Tech Conference, you may remember that David and I co-presented the following two sessions: Microsoft Dynamics GP 2010: Customizing the Microsoft Dynamics GP 2010 Client with Visual Studio Tools, Dexterity and Modifier with VBA ( Microsoft Partner Learning Center ) Microsoft Dynamics GP 2010: Troubleshooting Your Developed Solution ( Microsoft Partner Learning Center ) Please be sure ...

Microsoft Dynamics GP Architectural Foundations Series - Built to Fit

Image
This is article 5 of 7 from the series Microsoft Dynamics GP Architectural Foundations Series - featuring Microsoft's Tim Brookins . Tim's whitepaper was originally published in 1999 and it's reproduced here with his permission. Built to Fit Buyers in the midmarket require more than shrink-wrapped applications. It is imperative the system fit seamlessly into the customer’s overall business. The overall fit of the software is determined in two principal ways: customization and integration. No matter how feature-rich a business management system, each customer will have unique needs not covered in the basic software. The Dynamics architecture must accommodate significant product customization as a basic part of the system. Additionally, the customized business management application must be integrated with all the other applications in the business. The Dynamics architecture must also recognize that “Built to Fit” must not interfere with the “Built to Grow” philosophy. The pr...

VBA - Suppressing CTRL+Break or CTRL+C in VBA Customizations

Image
VBA is by far one of the best customization tools available to Microsoft Dynamics GP developers and as such it is widely used across a number of production environments to deliver functionality that ranges in various degrees of complexity. However, one of the issues with VBA -- at least until now -- is the fact that an end user can inadvertly press CTRL+Break (older keyboards) or CTRL+C and stop the execution of a script. Now imagine if that script is say, some code developed to calculate 401K contributions when payroll is ran... the results will certainly not be pretty! With this in mind, we can use a USER32.DLL library funcion to disable user input when critical VBA code is required to be executed in a block. The following shows how to implement such code: BlockInput function Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long We can now use this function across any of our VBA customizations, as follows: Sample Window_BeforeOpen code Private Sub ...

Parsing Long String fields in Extender for using with Report Writer

Image
A few days aback I came across a Partner Forum question where the partner was attempting to add an Extender field to a Report Writer report, not without his share set of challenges. In their infinite wisdom, the folks at eOne added a trigger to the rw_TableHeaderString Report Writer function which allows them to expose data to Report Writer without having to create alternate versions of a report in their application. In turn, with a few steps outlined in the Extender manual, users can invoke the rw_TableHeaderString as a user-defined function in a string calculated field to retrieve the piece of data needed from an Extender table by passing in the Window ID, the key fields, and the position of the field to retrieve on the Extender window. This is an example from such call: Calculated Field: EXTENDER_KEY Expression Type: Calculated Result Type: String Expression: STRIP( SOP_HDR_WORK.SOP Number ) Calculated Field: (C) AdditionalShippingInfo Expression Type: Calculated Result Type: Strin...

Hybrid - SOP Batch Splitting

Image
Two weeks ago, I began working on a Microsoft CRM to Microsoft Dynamics GP integration project. Sales orders initiated in CRM and are transferred to GP once they are submitted in CRM. Once the orders got to GP they must be placed on automatic hold for document verification. However, once the hold was removed, the client wanted to be able to transfer all verified orders in bulk... so far good! The problem though was, when orders were transferred to invoices, the invoices remained mixed with the orders that did not get transferred in the same batch. This presented a control issue for the client as the staff performing the documentation is not the same staff transferring the orders. Last year I posted the article Moving SOP Transactions from One Batch to Another . This article demonstrated a SQL script that would allow a database administrator to move SOP documents from one batch to another. The script in that article forms the basis for this customization. However, to make it more user f...

New Article on MSDynamicsWorld.com: Microsoft Dynamics GP Hybrid Applications Development

A few days aback I did a review of hybrid application development from a technical perspective, my new article on MSDynamicsWorld takes a look at the hybrid approach from a business perspective. Take some time to read the article and let me know what you think. Until next post! MG.- Mariano Gomez, MVP Maximum Global Business, LLC http://www.maximumglobalbusiness.com

Developing Microsoft Dynamics GP hybrid integrating applications

As I prepare for the 2009 Microsoft Dynamics GP Technical Conference , one of the topics that keeps coming across the sample applications we are planning on showcasing to the attendees and frankly, something that David Musgrave and I have been informally publishing and talking about for quite some time now is the topic of hybrid integrating applications development . Simply put, in the world of Software Development the Earth doesn't always revolve around the Sun. In fact, in the world of Software Development, there are times when the Sun and other planets may need to revolve around the Earth. This is, as a developer your solution becomes the center of the Solar system and all resouces at your disposal work to make that solution robust and to meet the requirements established by your customer -- customer used here in the broad sense of the word. Hybrid application development involves using multiple development tools and techniques to make your solution a viable one. In the case ...

RW - Working with POSTNET barcodes for US zip codes

Image
The Postal Numeric Encoding Technique (POSTNET) is a barcoding system developed by the United States Postal Service to assist with automatic mail sorting and routing. The POSTNET barcode uses a combination of half-bars and full-bars to encode the zip code that appears on a mail piece. The barcode starts and ends with a full bar (often called a guard rail or frame bar and represented as the letter "S" in the USPS TrueType Font). In the United States, zip codes can be of 5 digits, 9 digits (also known as Zip+4), or 11 digits in the case of a specific delivery point. Each digit in the zip code is represented by 5 bars. Therefore a 5-digit zip code is represented by 25 bars. In addition, to ensurePOSTNET accuracy during mail processing, a check digit, which is five bars, is calculated and added to the zip code. Hence a 5-digit zip code would render a total of 32 bars: 25 bars for the 5-digit zip code + 5 bars for the check digit + the 2 enclosing guard rail bars. Hence, Zip+4...