Custom Forms: We Had to Focus on More Than Their Appearance...

Published 29. 5. 2019

Our clients requested the creation of own forms for different types of items. This will allow users to specify various parameters for different projects or record different data for various groups of contacts. How did the developer Jan Spilka manage to put this brief into practice?

Jan SpilkaJan Spilka


Can you describe the new function Layout by Type which is part of the latest eWay-CRM version 5.4?

We have offered the function form designer in the previous version. Thanks to this function, the user can design the layout of a particular window, for example of a project. The current version goes one step further and allows the user to design a customized screen for each specific type of an item.


How exactly can the user make the most of this new feature?

Let’s take a company which sells tractors as an example. An employee creates a project with specific parameters including the serial number of a machine, its individual components, the day on which it was put into operation, or the termination of warranty period. If this company offers customer service, the employee has the possibility to create a different type of project which enables him/her to work with different parameters. If the user decides to change the type of a project, the form automatically changes in order to match the activity.


What modules offer this feature?

This option is part of all modules which enable the work with Type, such as Projects, Opportunities, Bookkeeping records and others. Moreover, we added the field Type to the modules Companies, Contacts, and Products. Therefore, the new version enables the definition of various types of companies, for example Supplier and Customer, and, again, for each of them the user can adapt the form to the smallest detail.

customization of selected form

Customization of a selected form.


Personalization is a general trend. Is it required by your clients?

When we were preparing the original function, the above-mentioned form designer, this idea came to our minds (says laughingly...). It turned out, that it is exactly what our clients want. Their wish is to personalize their eWay-CRM in order to work efficiently.


How was the new feature developed?

As a developer, I receive a specific assignment which is usually prepared by our Director in cooperation with our agents and project managers, because they are in daily contact with clients and have a perfectly clear idea about their needs. Consequently, we think about the best solution to implement the task.


What was the most difficult part?

It took us a long time to come up with the idea how to clearly present the assigning of the form design for a specific item. On one hand, we have a list of all types, on the other a list of defined forms. We needed to illustrate their interconnection allowing the user to change their layout, and to ensure that by clicking on a specific form, the change will be applied to all items.


What solution did you choose?

We decided to offer two layout options. The first one is the so-called Simple Mode which works with two options. The user can either apply the selected layout to all items, or only to the type of item currently displayed.

simple layout

Simple layout.


The second possibility is the advanced layout option which allows the user to open a list of types compatible with a selected design. However, the user can choose the option overall editor which displays the list of individual forms and the existing type matrix.



Advanced layout with various form types.


This matrix is like an Excel spreadsheet with rows (types) and columns (forms)?

In fact, yes. The Y-axis displays the forms and the X-axis the types. The cell then represents a “yes” or “no” value, through which the users select the appearance of forms for a specific item type. In this way, we have significantly improved the user friendliness of this feature.


However, the original task did not include these two layout options ...

At the beginning, we wanted to work only with the advanced layout. But our developer advised us to finish the simple option as he is in charge of the eWay-CRM Mobile application and he knew that this concept is a must. Our mobile application primary displays the simple layout, but if the user needs a more complex settings, the simply choose the advanced option. It's great that thanks to a common goal, we can positively influence each other.


Was it difficult to create the matrix chart? One click on a row probably makes changes in other rows....

Our system constantly monitors the specified requirements and if the user selects a particular layout for a specific type, it automatically deletes the original type. The default appearance is set for all types. When the user needs a different layout for a specific type, he/she has to change this setting. When the user deletes all defined layouts, the system automatically applies the original one.


Where are the created forms stored and in what form?

They are stored as XML structure directly into the eWay-CRM database. As a result, different layout forms synchronize between users who have various user access rights.


Can a user define an infinite number of forms?

Theoretically, yes.


Are the customized forms limited when it comes to the number of fields?

Theoretically not. However, the more fields, the slower is the loading of forms, because it is necessary to render more features. Last week, we published a set of recommendations on how to prevent slow loading.


How would you describe the development of this new feature? Did you define and try different scenarios?

The original assignment included various possible scenarios and during an analysis, which I carry out before I start the development, I tried to cover all of them. Still, some scenarios came to light during the development or testing stage.


Do you test possible scenarios for every eWay-CRM version? Do you think that this approach is time-consuming?

We do not do this. For these purposes, we use the so-called "unit tests" which are small pieces of code used for the testing of the source code. We run unit test automatically every night and also after each build or revision. Thanks to this process, I know if I broke the code in a completely different part of the application (the process of testing and its role in the entire eWay-CRM system is described in an interview with the Technical Director Roman Štefko ).


To what extent do automatic tests cover the functionality of the entire system?

They cover the newly designed function Layout by Type almost completely. They work according to predefined scenarios that came to my mind during testing and the real operation. Regarding eWay-CRM as a whole, automatic tests cover about fifty percent of its code.



Unit test carried out in eWay-CRM system.


But even if you create a new function and set unit tests, there may be a failure on the side of a user which cannot be detected by automatic tests...

Our testers reveal a bug, which I fix and prepare an appropriate set of unit tests. In this way, we constantly increase the reliability of our system.


Did you receive any feedback?

The update was released two weeks ago, which is too early for receiving useful feedback. However, I did receive a few praising e-mails from my colleagues (laughing).

eWay-CRM Development

Have a look at the Interview with Jan Spilka focused on the development of codes for eWay-CRM and much more.