SAP – ABAP – gui – hiding selection components
If you want to make your reports more functional you can start controling the properties of different components based on selections that are performed by the user.
For instance in this post I’ll show you a quick example of how to hide a on-screen component based on user selection.
PARAMETER: cb_a AS CHECKBOX DEFAULT 'X'
USER-COMMAND batch MODIF ID ida,
cb_bAS CHECKBOX DEFAULT 'X'
USER-COMMAND batch MODIF ID idb.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'IDA' AND cb_b NE 'X'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'IDB' AND cb_a NE 'X'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
This example will hide each of the check boxes depending on the selection of the other check-box. If both are selected then both are visible, if one is un-checked then the other is hidden.
The active attribute controls the visibility of a particular screen component. Explicitly: 0 = hidden, 1 = visible.
UltraEdit Backup Files
I love workign with UltraEdit though there is one thing that always annoys me. Every time I update the contents of a file the program creates a backup file in the same directory. Well for those of you who run in to the same problem here’s how you go about fixing this issue:
Go to:
Advanced -> Configuration ->File Handling -> Backup

By default the configurations are set up to create a .BAK file in the same directory. Although the functionality is annoying I still think it’s quite useful. So the best thign to do [in my oppinion] is to populate the default directory field with the a directory somewhere on your local computer.
Workingn with AMF
I want to set up a more secure process than a current ActionScript POST/GET service querying. To do that I started looking at AMF.
Action Message Format(AMF) is a binary file format representing a serialized ActionScript object. The AMF file type is used throughout the Flash Player for data storage and data exchange. For example in the Flash Player AMF is used in SharedObjects, RemoteObjects, LocalConnection, ByteArray, RTMP, and all RPC operations. Some of the benefits of AMF include:
- File Size – AMF objects are very small and are compressed using zlib.
- Fast Serialization/ Deserialization – AMF is transformed using native C code in the Flash Player making it very fast. The AMF format was designed to serialize and deserialize quickly under low memory and slower CPU conditions making it perfect for the web. AMF data is parsed directly into objects, meaning there is no lag for interpretation or parsing of AMF making the creation of objects complete in a single pass.
- Native Types and Custom classes supported – You can serialize any object in Flash Player with the only exception being a displayObject.you can also map serialized objects back to custom class instanced provided the custom class is in the Flash Player when the AMF object is deserialized.
AMF existed in ActionScript 2 and was just called AMF as of ActionScript 3 the AMF protocol has been updated and is referred to as AMF3. For historical reasons the original AMF format is now referred to as AMF0. One of the main upgrades to AMF3 is that the object is now zlib compressed for faster transfer do to the smaller file size and the additional of data types that were released with ActionScript 3.
The two alternative frameworks that I am looking at are AMFPHP and Zend_AMF.
Adobe Flex Builder 3 short dump [JVM terminated. Exit code=1...]
I’ve tried reinstalling the application and even removed the old versions of JRE references. Nothing helped and just as before I had to rely to googling and looking at configuration files.
The problem lied in the small FlexBuilder.ini file located in the root installation directory. The contents of the file included the following settings:
-vmargs -Xms128m -Xmx512m -XX:MaxPermSize=256m -XX:PermSize=64m -Djava.net.preferIPv4Stack=true
I’ve modified the contents to exclude the last lines and vuala, the application went back to it’s usual state [sure I lost all my projects but its nice to have a working EDI once again].
New project: two-become-one.org
Another client, another design, another adventure.
![]()
www.two-become-one.org: Soon to be fully up and running a new wedding planner website is in the process of being created.
Coding Tips [developing software]
An interesting read about how to write good code [click], how to cope with project complexity and overall become a better software developer.
Acipher Beta
Here’s a very basic version of the tool that I’ve developed a while ago and now converted to an online version using Adobe Flex.
The tool helps those people who wish to write in a different language but are only familiar with a English based keyboard.This is a very basic version of the tool that simply translates character by character. I hope to improve it in the near future.
PS: The tool only translates the Russian language at the moment.
Workaround for: “Click to activate and use this control” IE problem.
Those of you who have been found of putting up interesting controls on your web pages might have come across the ‘Click to activate and use this control’ bug that occurs in Internet explorer. If you do some searching you will find a lot of posts that require upgrade and an installation of a patch. Having explored the problem my self I offer you an alternative solution:
- Create a javascript function that is initiated when the page is loaded ‘onload’ event.
- Create a tag with a particular id somewhere on your page [lets say "fuzzy_object" for a sake of an argument].
- In your javascript function create a single string containing the specifications of your object [in my case it was an swf file].
- Perform the following: document.getElementById(‘fuzzy_object’).innerHTML = concatinated_string.
This is a tad generic but it should work. If not just let me know and I’ll post a more detailed solution.
Cyrilic integration of Flex and PHP
A recent project involved integration between a PHP content management tool like Joomla and Adobe Flex 2. I wrote a PHP script that parsed a MySQL database creating an XML structure that was then picked up by a HTTPService in a Flex application.
The information in the database was stored in Cyrillic format, hence when ever I was loading the data in to the SWF compiled file the end result was a collection of garbage data. Setting the actuall HTML to Windows-1251 encoding did not help the situation.
My following approach was to locate a native functionality within the Flex architecture to mediate the situation. Unforchunately I wasn’t successful in aquiring sattisfying examples to solve the problem. For that matter it became sadly obvious that I haven’t seen any flash pages using non/english alphabet [either I haven't been checking international sites that much or Adobe Flex isn't widely used overseas] .
My third approach was to look at the actual php code that was generating the XML structure. I’ve discovered a useful function mb_convert_encoding that eventually solved my problems. Using a simple snippet of code:
mb_convert_encoding($string_to_convert,'UTF-8','Windows-1251');
I was able to convert the data from UTF-8 in to Windows-1251 which allowed me to display the desired Cyrillic characters.
Hacking CSS
There’s quite a few links out there that talk about the different methods of hacking IE and Firefox along with many other browsers.
Having been developing in Adobe Flex for the past while I’ve been ignoring the CSS issue but in my latest project I had to face the beast. My goal was to find a way in which I can block particular tags in both IE and in Firefox. so here’s what I found after doing some research.
For a page where you have an internal <div id=”pathway_text_inner”> the following will be ignored in Firefox:
#pathway_text_inner{
_width: 900px;
_padding-left: 10px;
_padding-top: 7px;
}
Pretty much anything that is preceded by an underscore is ignored in Firefox.
Similarly the following is ignored in IE7.
*:lang(en) #pathway_text_inner{
padding-left: 10px;
padding-top: 10px;
height: 20px;
overflow: hidden;
width: 890px;
}
where <body lang=”en”> .
I know there’s been quite a bit written about the subject but I couldn’t find the exact answer from the first Google search that I performed. Hence this post.
Cheers.
