Hi all,

 

Currently when I setup a list, the columns are not taking the full width of the grid. 

They have a fixed size and If I resize the screen columns sizes are not chaning. 

 

Is there any way to setup columns sizes as a % of the list grid width?

Like 1

Like

2 comments

Dear Andreas,

 

For the grid container, the size of one column will always depend on the size of the grid. For example, you have a 100x100 px grid with 2 columns, the grid will be divided into 2, each column taking a half of the space (with spacing specified in settings). You can of course take up a whole space with the element if needed.

 

You can modify the column set up in the grid container with system definer sizes like "small", "medium", "large" in the column spacing for example:

 

 

You can read more about the grid container set up on Creatio Academy: https://academy.creatio.com/docs/8.x/no-code-customization/customizatio…

 

You can also use a flex container for a more flexible set up: https://academy.creatio.com/docs/8.x/no-code-customization/customizatio…

 

Have a great day!

Alina Yakovlieva,

 

Hi Alina,

To clarify, my question was related to the list component, not the layout grid.

As it stands, the list component allows me to manually set the width of each column. However, this width can only be defined using a fixed size (like pixels), not percentages. This fixed sizing leads to two main issues:

  1. On smaller screens: The content doesn't fit the screen width, resulting in the addition of a horizontal scrollbar.
  2. On larger screens: There's excess white space to the right of the last column, as the columns do not expand to use the available width.

My goal is to have the column widths dynamically adjust to the screen size, utilizing percentages to ensure they fill the entire width of the list component, without unnecessary scrollbars or white space.

Is there a way to make the columns within the list component responsive, so that their widths adjust in proportion to the screen size, using percentages instead of fixed sizes?

 

 

Any guidance or suggestions on how to achieve this would be greatly appreciated.

Thank you!

 

 

 

 

Show all comments

Hello, 



Do you know how to bind data for column permission in package? I have to bind the highlighted records in package. 



 

Like 4

Like

1 comments

Hello,

 

SQL scripts can be utilized to implement the transfer of organizational structure settings and access rights from one environment to another. To do this, insert queries need to be generated on the reference environment based on records from the following tables:

  • SysAdminUnit (Administration object: users and roles)
  • SysUserInRole (Direct user role assignments)
  • SysFuncRoleInOrgRole (Functional role assignments to organizational roles)
  • SysAdminOperation (System operations, if necessary)
  • SysAdminOperationGrantee (Access to system operations, if necessary)
  • SysEntitySchemaOperationRight (Access to objects)
  • SysEntitySchemaRecordDefRight (Access to default records)
  • SysEntitySchemaColumnRight (Access to object columns)
  • SysAdminUnitGrantedRight (Delegation)
  • SysWorkplace – (User workplace)
  • SysAdminUnitInWorkplace – (Users in the workplace)
  • SysModuleInWorkplace – (Module in the workplace)

You can use Microsoft SQL Server Database Publishing Wizard or similar tools to generate queries. The resulting SQL script should be attached to the package. If the transfer is happening to a production environment, we recommend making a backup of the data beforehand and primarily deploying the package to a test environment to verify the script execution results. These tasks should be performed outside of business hours.

 

Show all comments

Hi community, 

I am having a problem with a user that when he configures a column in the Cases section he saves it and displays it correctly, but when he goes to another section and then returns to the previous one he does not see the column change applied. What could be the cause of the problem?

Thank you very much for any help/comments you can give me.

Best regards!

Like 0

Like

1 comments

Hello!

Perhaps the cache of the browser has an effect on column display.

Could you kindly verify the page in incognito mode?

Show all comments

Hi Community,

 

I would like to know how we can make a column mandatory in an attachment list (the detail here) as soon as we upload a file to the detail.

 

 

Thanks in advance!

 

Regards,

Abilash.S

Like 0

Like

1 comments

To make a column mandatory in FreedomUI, you can follow these steps:

  1. Identify the column you want to make mandatory in the detail view of your form.

  2. Open the code or configuration file associated with your FreedomUI implementation.

  3. Locate the section or code block related to the detail view of your form.

  4. Find the column you want to make mandatory within the code or configuration.

  5. Depending on the specific implementation of FreedomUI, you can typically add a validation rule or attribute to the column to make it mandatory.

  6. Add the necessary code or configuration to enforce the mandatory requirement for the column. This may involve setting a "required" flag, adding a validation rule, or specifying a validation message.

  7. Save your changes and test the form to ensure that the column is now mandatory in the detail view.

It's important to note that the exact steps may vary depending on the version and customization of FreedomUI you are using. Refer to the documentation or consult with the developers or support team of FreedomUI for specific guidance on making a column mandatory in the detail view.



More detail : https://360degreecloud.com/

Show all comments

As the title says, I'm trying to save the column layout for a custom record section, as well as for Details on the record.

 

https://customerfx.com/article/including-the-default-column-layout-for-…

Using this resource, I haven't managed to save any that will transfer over when installing a new package.

 

I have saved bound a number of records to the SysProfileData within my package, however none of them have had the intended effect.

https://gyazo.com/9c2347d0e5a3d845888edf5c94b221ab

Like 0

Like

2 comments

Hello Oliver,

The method described in the article you mention does work for me (In fact, I just did this yesterday with no issues). 

Make sure that you've first configured the column layout and selected the "save for all users" and that you're selecting the correct row from the SysProfileData table (the one with no user in the "Contact" column.

If it's not working for you, it's likely one of the two issues listed above. 

Ryan

I appreciate the confidence in your article but I have 100% done both of these, about a thousand times, in every way possible.

 

Is this the only known solution/ there are no known issues with this?

Show all comments

Hello, 

 

I see there are 2 duplicated records in SysProfileData forOrderSectionV2GridSettingsGridDataView

 

Select * from "SysProfileData"  

Where "Key" = 'OrderSectionV2GridSettingsGridDataView'

AND "ContactId" IS NULL

AND "SysCultureId"='1a778e3f-0a8e-e111-84a3-00155d054c03'

 

And when I save columns setup in Order section for all users the new record is added. But when this new record in bound to the package and installed on Production site, my column setup is not applied.

How safe is it to remove existing 2 records that came out of the box?



Thank you

Like 0

Like

1 comments

Hi,

There is a script that safely removes all duplicates in the table SysProfileData, you can use it:

delete

from "SysProfileData"

where "Id" in

  (

  select uuid(min("Id"))

  from "SysProfileData" 

  where "Key"<>'' and "Key"<>'chrome'and "Key"<>'gecko'

  group by "Key","ContactId", "SysCultureId"

  having count (*) > 1

  )

Show all comments

Hello!

 

I had a column in one of my objects that was deleted. In that column I was computing a sum with the help of a business process. After the deletion, I created another column in order to store that sum, but I cannot save the process as it gives me the following error:

The "ChangeDataUserTask1" element has an invalid value for the parameter "RecordColumnValues". Internal error: "Column with identifier "5edf4d5c-5df2-4c95-b1b7-0282f271b15b" not found in the entity schema "" ("924e0729-30d4-4c7f-a6bf-f203f4b0daef")"

I have checked in the database and the deleted column does not appear anymore, but neither the new one created, even though I saved and published the changes.

1. Why don't I see my new field in the db?

2. Why does the process still look for the first column, if it is deleted now?

3. How can I solve this issue so I can save my process?

Thank you in advance,

Maria

Like 0

Like

1 comments

Hello,

 

The most likely reason for such behavior is that you need to update your database structure and re-create the original business process.

 

To update your database you need to go into the configuration settings and click on "Update database structure where needed" under the action menu.

 

By re-create we meant that, unfortunately, you will have to create a new business process because the original one might still keep looking for an already deleted column.

 

If  you are still having issues, please feel free to contact our support by writing us an email at support@creatio.com

 

Thank you.

Show all comments

Hello Community,

 

We have a requirement for fetching all the column names of an object using source code.

 

I have taken this community post https://community.creatio.com/questions/get-title-columns-esq as reference and tried.

 

As per the article, the below code is used for fetching the column names after fetching the entity collection.

 titleColumnCaption = entity.Schema.Columns.GetByName("Title").Caption.Value;

But the code returns the null value.

 

Kindly let us know whether the above line of code is correct or not?

If not, suggest us an other way to achieve the functionality.

 

Thanks,

Sivaranjani

Like 0

Like

2 comments

Hello Sivaranjani,

 

It happens because the code above returns the "Title" column caption only and if your object doesn't have the column with such a name the result is null.

 

You need to use something like:

var columnCaptionsArray = activityEntity.Schema.Columns;
    foreach (var columnCaption in columnCaptionsArray)
    {
    	var captionForColumn = columnCaption.Caption.Value;
    }

and use the captionForColumn in your logic furhter.

 

Best regards,

Oscar

Oscar Dylan,

Thanks for the reply. The above code is working.

Show all comments

 Hi community,

I'm trying to disable the columns of an editable detail to make them read only and I have read many articles about it, but I'm still having a problem that I can't fix.



I wrote this code in the GridDetail to disable the fields but I noticed that for some of the columns of the detail is not working.

getCellControlsConfig: function(entitySchemaColumn) {
    if (!entitySchemaColumn) {
        return;
    }
    var columnName = entitySchemaColumn.name;
    var enabled = (entitySchemaColumn.usageType !== this.Terrasoft.EntitySchemaColumnUsageType.None) &&
        !this.Ext.Array.contains(this.systemColumns, columnName);
    var config = {
        itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
        name: columnName,
        labelConfig: {visible: false},
        caption: entitySchemaColumn.caption,
        enabled: enabled
    };
    if (!this.values.IsEnabled) {
        config.enabled = false;
        //config.labelConfig.enabled = false;
        //this.set("Is"+columnName+"enabled", false);
    }
    if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP) {
        config.showValueAsLink = false;
    }
    if (entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.DATE_TIME &&
        entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.BOOLEAN) {
        config.focused = {"bindTo": "Is" + columnName + "Focused"};
    }
    console.log(config);
    return config;
},

Debugging I have discovered that the detail adds to the labelConfig the property "enabled" which is binded to an attribute ("isProductenabled").

I tried to force the property writing it in the method and I also tried to set the attribute manually, but it's not working... do you have any idea?



Let me know.

Thanks in advance.



Best regards,

Luca

Like 0

Like

5 comments
Best reply

Luca Tavasanis,

While I was debugging I have noticed that the properties of the labelConfig that enabled some of the fields where added in the method: "applyBusinessRulesForActiveRow: function(id, gridLayoutItems)" and to fix the issue I just added this method in the client module.

You can lock the fields in the editable detail using business rules on the page for the detail, rather than in code. On the page for the detail, add a business rule to make the field not editable. Something like 

Condition: Boolean true = Boolean false (something that is never true)

Then: Make field editable (the condition is never true, so field is never editable)

The business rule will apply to the detail list and the fields will not be editable in the detail list.

Ryan

Hi Ryan,

I'm actually working with the BaseGridDetail so I can't lock it with a business rule... do you have any other idea?

 

Thanks anyway.

Luca

Luca Tavasanis,

IIRC to do it in code I usually do it like this (but unable to verify if this is correct at the moment)

getCellControlsConfig: function(entitySchemaColumn) {
    // get config from base 
    var config = this.callParent(arguments);
    var columnName = entitySchemaColumn.name;
 
    // if this is the column I want to disable
    if (columnName === "UsrMyColumn") {
        Ext.apply(config, {
            enabled: false
        });
    }
 
    return config;
}

Hopefully that gets you closer, of course, if you're wanting to disable all, you could just remove the if to check the column it's for.

Ryan

Ryan Farley,

I just tried what you suggested but unfortunately it's not working... it returns an error when I use this.callParent(arguments);.

Thank you anyway.



Luca

Luca Tavasanis,

While I was debugging I have noticed that the properties of the labelConfig that enabled some of the fields where added in the method: "applyBusinessRulesForActiveRow: function(id, gridLayoutItems)" and to fix the issue I just added this method in the client module.

Show all comments

Hi,

I am using Creatio 7.14. I have a custom detail with a Price field of Decimal datatype. I know that we can define precision to 1, 2, 3, 4 or 8 decimal places. Is there a way to set it to 5? Attached is the image for the current setup of the detail.

Instead of displaying as 0.00003000, I need to display as 0.00003. 

I was able to achieve it in Detail Edit page by adding the below attribute to the field in diff:

"controlConfig": {

                        decimalPrecision: 5

                    }

 

I need to achieve the same in Detail Grid as well. I followed the community articles to create a module from scratch to extend Terrasoft.Grid:

https://community.creatio.com/questions/hyperlink-fields

https://community.creatio.com/questions/substitutionreplacing-modules

https://community.creatio.com/questions/custom-detail-hyperlink-get-fil…

 

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

define("UsrConfigurationGrid", ["Terrasoft.Grid"], function() {

    Ext.define("Terrasoft.configuration.UsrConfigurationGrid", {

        extend: "Terrasoft.Grid",

        alternateClassName: "Terrasoft.UsrConfigurationGrid",

        // change methods here 

        formatCellContent: function(htmlConfig, data, column) {

            if(column==="UsrTrtPrice")

            {

                data.UsrTrtPrice = parseFloat(data.UsrTrtPrice).toFixed(5);

            }

            return this.callParent(arguments);

        }

            

    });

    

    return Terrasoft.UsrConfigurationGrid;

});

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

Is this the correct way to do it? How should I proceed from here? Do I need to add "UsrConfigurationGrid" as a dependency in Detail Grid Page as:

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

define("O1SessionDetailGrid", ["ConfigurationGrid", "ConfigurationGridGenerator",

    "ConfigurationGridUtilities","ProcessModuleUtilities","UsrConfigurationGrid"], function(ProcessModuleUtilities) {

    return {.......

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

Should I remove "ConfigurationGrid" which was added to make the grid editable? The above setting does not seem to be working as the detail is not getting displayed after adding "UsrConfigurationGrid".

I would appreciate if anyone could provide any thoughts on this.

 

File attachments
Like 0

Like

2 comments
Best reply

Hi,

 

There is an easier way to achieve a custom precision for the column: in the grid detail schema you need to override the getGridRowViewModelConfig method. For example I've created a replacing view model for the OrderProductDetailV2 and specified the following code there:

define("OrderProductDetailV2", ["MoneyModule", "css!OrderPageV2Styles", "css!SummaryModuleV2"], function(MoneyModule) {
	return {
		entitySchemaName: "OrderProduct",
		messages: {},
		attributes: {},
		methods: {
			getGridRowViewModelConfig: function(config) {
				var gridRowViewModelConfig = this.callParent(arguments);
				gridRowViewModelConfig.rowConfig.UsrDecForTests.precision=6;
				return gridRowViewModelConfig;
			}
		},
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
	};
});

In this case all the values in the precision for the "UsrDecForTests" decimal column (that is Decimal (0.00000001) data type) in the "Products" detail on the order page will be set to 6:

and

and

So you can try the following approach on your end.

 

Best regards,

Oscar

Hi,

 

There is an easier way to achieve a custom precision for the column: in the grid detail schema you need to override the getGridRowViewModelConfig method. For example I've created a replacing view model for the OrderProductDetailV2 and specified the following code there:

define("OrderProductDetailV2", ["MoneyModule", "css!OrderPageV2Styles", "css!SummaryModuleV2"], function(MoneyModule) {
	return {
		entitySchemaName: "OrderProduct",
		messages: {},
		attributes: {},
		methods: {
			getGridRowViewModelConfig: function(config) {
				var gridRowViewModelConfig = this.callParent(arguments);
				gridRowViewModelConfig.rowConfig.UsrDecForTests.precision=6;
				return gridRowViewModelConfig;
			}
		},
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
	};
});

In this case all the values in the precision for the "UsrDecForTests" decimal column (that is Decimal (0.00000001) data type) in the "Products" detail on the order page will be set to 6:

and

and

So you can try the following approach on your end.

 

Best regards,

Oscar

That's exactly what I needed. Thank you, Oscar!

Show all comments