Form elements randomly change size and position

customization

(Kevin Krumwiede) #1

This is part of the hierarchy of the Sales Order form:

SalesOrderForm
  sheetTopLevelPanel1
    sheetHeaderPanel1
      commentsPanel1
        pickListJobCommentsPanel1
          grpPickListComments
            txtPickListComment

I believe these elements are all standard. A user complained that txtPickListComment was not wrapping correctly. I found that txtPickListComment was larger than grpPickListComments and corrected the size.

Here’s where it gets bizarre. Every time I try to make txtPickListComment smaller and save the customization, pickListJobCommentsPanel1 and txtPickListComment are assigned different random sizes. Their locations also randomly drift by 1-2 pixels each time, including into the negative. The random sizes aren’t totally unbounded. For example, the width assigned to txtPickListComment will be from around 700px to 2700px. The width of grpPickListComments remains steady at 1160px.

I’m on 10.2.100.8.


(Kevin Krumwiede) #2

I carefully went through the hierarchy and have not found the cause.

commentsPanel1 has five children:

salesOrderCommentsPanel1
pickListJobCommentsPanel1
packingSlipCommentsPanel1
invoiceCommentsPanel1
proFormaInvoiceCommentsPanel1

Each of these contains the same type of children: an EpiGroupBox, which in turn contains an EpiTextBox.

First I verified that the five panels have the same location, size, and anchor settings. The first two (which both exhibit this problem) had different anchor settings, so I made them the same as the three that work. Saved, closed, and reopened the form, and verified the changes stuck.

Then I verified that all the group boxes had the same location, size, and anchor. They aready did. Saved, closed, reopened, verified.

Then I did the same for the text boxes. Again it was the first two that were different. Saved, closed, reopened, verified. They changed again!

The five children of commentsPanel1 have one other major difference: they are not generic panels. Each one is its own class. So maybe there’s something weird about SalesOrderCommentsPanel and PickListJobCommentsPanel.


(Kevin Krumwiede) #3

This just got even weirder…

I thought maybe I could work around the problem by exporting the customization XML and editing it manually. The text box sizes in the XML are the correct ones that I manually input! But the customization tools dialog still shows the incorrect random values. The random values do not appear in the XML at all, except as fragments of GUIDs and other unrelated things. Yet they must be persisted somewhere, because despite being random, they are stable between saves of the form.


(Caleb) #4

Somewhere in the cache? Have you cleared your cache and what not?


(Kevin Krumwiede) #5

I’ve completely logged out of Epicor and logged back in. Do you mean something beyond that?

Anyhow, caches are supposed to be transparent. If they’re not, they’re broken.


(Caleb) #6

that ‘Clear Client Cache’ button can clear the cache (click it, exit Epicor, re-open)… I’ve heard people completely wiping out the C:\ProgramData\Epicor\shared(i don’t know the exact directory) and that does like a hard-reset for the cache…

I’ve had similar issues with customizations (where you grab a box or something and it doesn’t go where you dropped it - or the sizes don’t make any sense, etc.) I usually can clear the cache and maybe even log in from the server and that usually “fixes” the issues


(Kevin Krumwiede) #7

I cleared the cache and logged out and back in. The same random value still appears in the customization tools dialog, and still does not appear in the exported customization.

Another user logged in on another machine sees the same random value, and it’s not in their exported XML, either.


(Pierre Hogue) #8

Broken… well it does happen …especially for dashboards… and we regularly need to clear the cache. We do it the “hard way” because we find it more effecient (or maybe not trusting the menu way… :wink: )
You can delete the Epicor folder on the client machine…it will get re-created on next launch.

C:\ProgramData\Epicor on our env.

Pierre


(Kevin Krumwiede) #9

Eureka!

Since making sure all the panel and group sizes, positions, and anchors are identical, I noticed that the size of the text areas are still wrong, but now they’re deterministically wrong. They’re consistently 381 x 165 pixels larger than the dimensions I put in.

It’s still a mystery why this happens to only these two panels, and where the modified values are persisted.


(Kevin Krumwiede) #10

One final twist. Subtracting 381 x 165 pixels from my desired size and saving it produces the correct values in the customization tools dialog, but not in the UI. To get the correct size in the UI, I have to subtract 381 x 165 twice.


(Caleb) #11

Have you tried the ‘hard-reset’ version of clearing out the cache? I have a few scripts for mine that goes something like this -

  1. MainScript.bat “C:\ProgramData\Epicor\epicorclientap-808\3.1.400.0\29583A\CustomDLLs”
  2. MainScript.bat “C:\ProgramData\Epicor\epicorclientap-808\3.1.400.0\29583A\shared\CustomDLLs”

1 and 2 are different script files (one for the regular CustomDLLs and one for the shared CustomDLLs) and then I have my MainScript.bat file that holds this info-

@echo off
REM ---- Batch file to clean out a folder
REM Checking for command line parameter
if "%~1"=="" (
echo Parameter required.
exit /b 1

) else (
echo ***********************************************************************************
echo *** Deleting all files, including the ones in the subdirs, without confirmation *** 
del "%~1\*" /S /Q
echo ***********************************************************************************
REM Deleting all the empty subdirs that were left behind
FOR /R "%~1" %%D IN (.) DO (
if "%%D"=="%~1\."  (
echo *** Cleaning out folder: %~1 *** 
) else (
echo Removed folder "%%D"
rmdir /S /Q "%%D"
)
) 

REM All good.
exit /b 0

)

Easier one-off way of doing it? Use file explorer and goto the directory C:\ProgramData\Epicor\YOURENVIRONMENTHERE\version\companyID\

then just delete the CustomDLLs folder, and then go into the shared directory and delete the CustomDLLs folder in there (make sure this is done while Epicor is completely closed out of)

I don’t really know if cache is causing the issues you’re experiencing or not but this could be some useful information for future purposes (and could be worth a try)


(Kevin Krumwiede) #12

Yes. Hard reset had no effect. The values I input are still in the exported XML, different values are in the customization UI, and other different values are actually used when rendering the UI. I never did figure out where the magic numbers 381x165 came from. That doesn’t seem to be the difference between anything, nor does it have the same aspect ratio as anything.


(Chris Conn) #13

I’m on mobile so I haven’t read thru this all to see if it’s been addressed… Have you ensured the issue is not with the users personalization?


(Kevin Krumwiede) #14

I don’t think it was a personalization issue. The same issue existed for multiple users on multiple workstations.


(Kevin Krumwiede) #15

Another bizarre detail. I did not have any personalization for Order Entry. When I create one, in the personalization window, the two misbehaving text areas have a size of 235 x 125. This is not what I input and again has no relationship to anything.

To recap, I’m shooting for 1147 x 562, the same size as the three good text areas. If I input 766 x 397, the customization window displays 1147 x 562, but the UI is wrong. If I input 385 x 232, the customization window displays 766 x 397 and the UI actually comes out at 1147 x 562. Why the personalization window sees yet another different size is another mystery.


(Bernie Walker) #16

do you have your windows desktop set to make text bigger by like 150%


(Andris Skulte) #17

Kevin - Have you put in an EpicCare help ticket? I’m curious what Epicor would say about this…


(Kevin Krumwiede) #18

Yes, but the ratio 1.5:1 isn’t apparent between any of these sizes. It would be unequivocally wrong for an application to scale anything based on the Windows display settings, because that would defeat the purpose of those settings. And this wouldn’t explain why two text areas are affected and three aren’t.

Size input in the customization window: 385 x 232
Size shown in the customization window after save: 766 x 397
Actual size in UI (this is what I actually want): 1147 x 562
Size in any newly created personalization: 235 x 125


(Bruce Ordway) #19

In Dev Mode, have you already looked at Custom XML --> Custom Properties sheet?
I have seen property values get “stuck” there.

And in Properties, already tried setting Appearance - UseAppStyling to false?


(Kevin Krumwiede) #20

The values in the custom properties sheet are the values I input (385 x 232).

I don’t know what you mean about UseAppStyling. Where do I see this? And is is part of the customization, or only my own local config? If other users might see the effect of changing it, I’ll wait until after business hours.