(Original creator: thenees)
At Compuware we talk a lot about modernizing Uniface applications. I have found that changing just the main screen often has a big impact on how end users perceive an application. So I decided to have a go at the main screen of our Uniface 9.6 IDF. This screen has not been changed since it was introduced in Uniface 9.1 in the year 2004:
This screen has a couple of things that I tried to improve on:
- It looks dated (subjective, I know)
- The clickable elements to the left do not resemble the shortcuts on the right
- It offers no guidance to inexperienced users to what is what
- It is not customizable
- It was tuned for a 640x480 resolution.
I did not want to change too much. My changes needed to stay limited to only this Uniface Form. So I came up with this:
BIG DISCLAIMER This is experimental code. There is no support whatsoever on this code. This is not a preview of any future Uniface version. Use at your own risk. Backup your original UUWKSP36 form and USCUT.DICT table before use.
It probably is not perfect. This was just a small pet project, an experimental prototype at best. But it still is a nice thing to play with.
There are a couple of customization options on this form. I made four custom settings, one generic and three for how it could look like for some companies that use Uniface. You need to add or replace the settings mentioned below in your .ini and .asn file.
Generic Settings
INI file:
[widgets]
WorkSpaceImage=udragdrop(parentdraw=on)
WorkSpaceTitle=uhyperlink(transparency=on;font=SansSmall;halign=left)
WorkSpaceText=uhyperlink(transparency=on;font=SansSmall;halign=left;valign=top;ForeColor=GrayText)
WorkSpaceDDown=udropdownlist(font=SansSmall)
[application]
menu=umenu()
panel=upanel()
window=uwindow(backcolor=white)
shell=ushell(backcolor=white)
[upi]
buttonstyle=9
ASN file:
[FILES]
usys:WorkSpaceLogo.png .\Compuware.png
[LOGICALS]
UU_IDFTITLE = My repository name
My repository name These settings will result in this:
"DHL" Settings
DHL Settings
INI file:
[widgets]
WorkSpaceImage=udragdrop(parentdraw=on)
WorkSpaceTitle=uhyperlink(transparency;font=WorkSpace;halign=left;forecolor=#CC0000)
WorkSpaceText=uhyperlink(transparency=on;font=WorkSpace;halign=left;valign=top;ForeColor=GrayText)
WorkSpaceDDown=udropdownlist(font=WorkSpace;backcolor=#FFCC00;forecolor=#CC0000;backcolorselect=#CC0000;forecolorselect=#FFCC00)
[application]
menu=umenu(font=WorkSpaceMenu;backcolor=#FFCC00;forecolor=black;backcolorselect=#CC0000;forecolorselect=white;backcolorfill=flat)
panel=upanel(backcolor=#FFCC00;backcolorselect=#CC0000;backcolorfill=flat;bordercolorselect=#CC0000)
window=uwindow(backcolor=#FFCC00)
shell=ushell(backcolor=#CC0000)
[upi]
buttonstyle=9
ASN file:
[FILES]
usys:WorkSpaceLogo.png .\dhl.png
[LOGICALS]
UU_IDFTITLE = Tracking and Tracing
[widgets] WorkSpaceImage=udragdrop(parentdraw=on) WorkSpaceTitle=uhyperlink(transparency;font=WorkSpace;halign=left;forecolor=#CC0000) WorkSpaceText=uhyperlink(transparency=on;font=WorkSpace;halign=left;valign=top;ForeColor=GrayText) WorkSpaceDDown=udropdownlist(font=WorkSpace;backcolor=#FFCC00;forecolor=#CC0000;backcolorselect=#CC0000;forecolorselect=#FFCC00) [application] menu=umenu(font=WorkSpaceMenu;backcolor=#FFCC00;forecolor=black;backcolorselect=#CC0000;forecolorselect=white;backcolorfill=flat) panel=upanel(backcolor=#FFCC00;backcolorselect=#CC0000;backcolorfill=flat;bordercolorselect=#CC0000) window=uwindow(backcolor=#FFCC00) shell=ushell(backcolor=#CC0000) [upi] buttonstyle=9 ASN file: [FILES] usys:WorkSpaceLogo.png .\dhl.png [LOGICALS] UU_IDFTITLE = Tracking and Tracing
These settings will result in this:
"KLM" Settings
KLM Settings
INI file:
[widgets]
WorkSpaceImage=udragdrop(parentdraw=on)
WorkSpaceTitle=uhyperlink(transparency=on;font=SansSmall;halign=left;Forecolor=#005B82)
WorkSpaceText=uhyperlink(transparency=on;font=SansSmall;halign=left;valign=top;ForeColor=#00A1DE)
WorkSpaceDDown=udropdownlist(font=SansSmall;backcolor=#DCF2FB;Forecolor=#005B82;backcolorselect=#C1E9F7;forecolorselect=black;backcolorfill=gradient)
[application]
menu=umenu(backcolor=#DCF2FB;Forecolor=#005B82;backcolorselect=#C1E9F7)
panel=upanel(backcolor=#C1E9F7)
window=uwindow(backcolor=#F1FAFD)
shell=ushell(backcolor=#F1FAFD)
[upi]
buttonstyle=9
ASN file:
[FILES]
usys:WorkSpaceLogo.png .\KLM.png
[LOGICALS]
UU_IDFTITLE = Aircraft Maintenance Planning
These settings will result in this:
"Saarstahl" Settings
Saarstahl Settings
INI file:
[widgets]
WorkSpaceImage=udragdrop(parentdraw=on)
WorkSpaceTitle=uhyperlink(transparency;font=SansSmall;halign=left;forecolor=#FE7119)
WorkSpaceText=uhyperlink(transparency=on;font=SansSmall;halign=left;valign=top;ForeColor=GrayText)
WorkSpaceDDown=udropdownlist(font=SansSmall;backcolor=#F2F2F2;forecolorselect=#FE7119;backcolorselect=#F2F2F2;backcolorfill=gradient)
[application]
menu=umenu(backcolor=#F2F2F2;backcolorselect=#F2F2F2;bordercolorselect=#FE7119;backcolorsidebar=#F2F2F2)
panel=upanel(backcolor=#F2F2F2;backcolorhover=#FE7119;bordercolorhover=#F2F2F2)
window=uwindow(backcolor=#F2F2F2)
shell=ushell()
[upi]
buttonstyle=9
ASN file:
[FILES]
usys:WorkSpaceLogo.png .\saarstahl.png
[LOGICALS]
UU_IDFTITLE = Meisterbüro Adjustage
These settings will result in this:
Some remarks
At the moment we can’t make flat buttons. That are buttons where you only see the stuff that you have put on top of the button, but no real button surrounding it. A workaround using a button with a fully transparent default image gave the desired effect but caused a lot of flickering. I found another workaround using drop target widgets for the images and hyperlinks for the texts. A bug has been registered for the flickering. An enhancement request has been registered for flat buttons. There was drag and drop functionality to change the order of the shortcuts. I have removed it. The code behind it was quite cumbersome and had some flaws. The shortcuts are now simply retrieved from the database and displayed. I have added a dropdown list where you can select the sort order for the shortcuts. The biggest risk when trying this form in a production environment are your shortcuts. If you rely on them please make a backup of your USCUT table before installing this form.
BIG DISCLAIMER This is experimental code. There is no support whatsoever on this code. This is not a preview of any future Uniface version. Use at your own risk. Backup your original UUWKSP36 form and USCUT.DICT table before use.
IDF-Modernization-Experiment.zip
BIG DISCLAIMER This is experimental code. There is no support whatsoever on this code. This is not a preview of any future Uniface version. Use at your own risk. Backup your original UUWKSP36 form and USCUT.DICT table before use.