How to proceed:
-
We change the layout of the two tabs (Delete valuation fields on the “Net worth tax” tab, move “real estate and similar rights” fields to the top and insert new fields onto the “General” tab). -
With the help of special InputScripts we fill in the fields in Change and Display mode. When the tab “General” is opened for the first time we move to the “Net worth tax” tab via InputScript, fill in the values into our InputScript variables and return to the “General” tab. Please note that the InputScripts can access all fields even though they are no longer displayed on the tab. -
In the same way we make sure that in Create and Change mode our new fields are read when we “save”. -
We pay special attention to the handling of data entry mistakes. Error messages concerning our new entry fields are displayed on the “General” tab, so that mistakes can be corrected immediately.
The scripts that we have used in this tutorial can be found in a .zip-file so that you can use them for your own tests: as_zip.zip. Please test with SAP 4.6C and GuiXT 2004 Q3 4 or later versions.
On the initial screens of AS01 and AS02/AS03 we delete all variables. Our special naming of these variables – all InputScript variables for the three transactions start with “AS_” – makes this operation easy: // GuiXT Script saplaist.e0105.txt // Delete variables of AS transactions Set V[AS_*] “”
// GuiXT Script saplaist.e0100.txt // Delete variables for AS01 / AS02 /AS03 Set V[AS_*] “”
Layout changes and calling up the right InputScripts are done in the GuiXT script for the AS01/AS02/AS03-screen saplaist.1000: // GuiXT Script “saplaist.e1000.txt“ // Transactions AS01 / AS02 / AS03
// Some fields are transferred from the”Net worth value” // tab to the “General” tab
// InputScripts Used: // // AS_read.txt Read data // AS_save.txt Save // AS_check.txt Check //——————————————-
// All V[AS_*] variables are initialized on entry screen of transaction
// To make sure that all variables are initialized, if // asset number has changed in case of call from lists etc.
if not V[AS_asset=&F[Asset]] Set V[AS_*] “” Set V[AS_asset] “&F[Asset]“ endif
// Set read-only flag for display, to allow // using the same InputField commands for all transactions
if Q[Transaction=AS03] Set V[AS_readonly] “-readonly” endif
// Read values first time when change or display
if Q[Transaction=AS02] or Q[Transaction=AS03] if not V[AS_read=X] Set V[AS_read] “X” Enter process=”AS_read.txt” // Leave script since screen is not displayed Stop
endif
endif
// Rename tab, since only real estate-fields are left Text P[Net worth tax] “Estates”
// General Tab – display own fields
if Q[Page=General]
// Suppress inner scrollbar NoScrollBar // Start just below last box offset G[Posting Information]+(5,0)
box (0,0) (9,80) “Net worth value”
pushbutton (1,78) “@0Q\Qdescription net worth value@” “=LTXTNETA”
inputfield (1,1) “Classification key” (1,24) size=4 name=”AS_classification_key” “&V[AS_readonly]” techname=”ANLA-VMGLI” Text (1,30) “&V[AS_classification_key_text]” -border
inputfield (2,1) “Net worth value” (2,24) size=16 name=”AS_man_value” “&V[AS_readonly]” -numerical
Box (4,1) (8,20) “Property indicator” radiobutton (5,2) “Property” name=”AS_property_indicator” value=”1″ “&V[AS_readonly]“ radiobutton (6,2) “Leasing” name=”AS_property_indicator” value=”2″ “&V[AS_readonly]“ radiobutton (7,2) “Share” name=”AS_property_indicator” value=”3″ “&V[AS_readonly]“
Box (4,30) (8,49) “Reason for valuation” radiobutton (5,31) “Assessed value” name=”AS_man_reason” value=”003″ “&V[AS_readonly]“ radiobutton (6,31) “Rental value” name=”AS_man_reason” value=”001″ “&V[AS_readonly]“
endif
// “Net worth tax” tab; delete those fields that are now on the “General” tab if Q[Page=Net worth tax] del G[Net worth valuation] pos G[Real estate and similar rights] (5,1) endif
if Q[Transaction=AS01] or Q[Transaction=AS02]
// When saving AS01/AS02 call own script on “/11″ process=”AS_save.txt” on “/Menu=1,7″ process=”AS_save.txt” // No save in pop-up, treat like /12 on “/3″ fcode=”/12″ on “/15″ fcode=”/12″
// On “Enter” in “General” tab, check additional entries if Q[Page=General] on Enter process=”AS_check.txt” endif
endif
The InputScript “AS_read.txt” reads the valuation inputfields on the appropriate tab and goes back to the “General” tab. Textfields can also be read and displayed on the new tab. // InputScript AS_read.txt
// Go to tab “Net worth tax” Enter “=TAB05″
// AS02, Net worth valuation Screen SAPLAIST.1000 Set V[AS_classification_key] “&F[Classification key]“ Set V[AS_classification_key_text] “&F[T092T-VMTXT]“ Set V[AS_property_indicator] “&F[Property indicator]“ Set V[AS_man_reason] “&F[Reason for man.val.]“ Set V[AS_man_value] “&F[Man.net wrth val.]“
Enter “=TAB01″
Similarly, “AS_save.txt” sets the additional fields into the standard fields before saving. In case of error messages we go back to the “General” tab. // InputScript AS_save.txt // Save in transactions AS02 and AS03
// Go to “Net worth tax” Enter “=TAB05″
//”Net worth tax” Screen SAPLAIST.1000
// Remember old values to use them in case of error Set V[AS_corr_property_indicator] “&F[Property indicator]“ Set V[AS_corr_man_value] “&F[Man.net wrth val.]“
// Enter new values Set F[Classification key] “&V[AS_classification_key]“ Set F[Property indicator] “&V[AS_property_indicator]“ Set F[Reason for man.val.] “&V[AS_man_reason]“ Set F[Man.net wrth val.] “&V[AS_man_value]“
// Save, on error continue Enter “/11″ OnError=Continue
// Error message: Set back values, because of some errors // Otherwise we might not be able to leave tab Set F[Property indicator] “&V[AS_corr_property_indicator]“ Set F[Man.net wrth val.] “&V[AS_corr_man_value]
// Go back to first tab with error message Message “&V[_lasterror]” -statusline
Enter “=TAB01″
It is not necessary to check data entry with a separate InputScript as we did here (AS_check.txt), since the checking is done in any case when “saving”. But its more userfriendly to check entry data at the first “Enter”. // InputScript AS_check.txt // Check data entry
// // Go to tab “Net worth tax” Enter “=TAB05″
// Net worth tax Screen SAPLAIST.1000
// Save old values to use them in case of error Set V[AS_corr_property_indicator] “&F[Property indicator]“ Set V[AS_corr_man_value] “&F[Man.net wrth val.]“
// Enter new values Set F[Classification key] “&V[AS_classification_key]“ Set F[Property indicator] “&V[AS_property_indicator]“ Set F[Reason for man.val.] “&V[AS_man_reason]“ Set F[Man.net wrth val.] “&V[AS_man_value]“
// Enter Enter OnError=Continue goto error
// Net worth valuation Screen SAPLAIST.1000 // Read text Set V[AS_classification_key_text] “&F[T092T-VMTXT]“ // Net worth value – standard treatment Set V[AS_man_value] “&F[Man.net wrth val.]“
// Back to first tab Enter “=TAB01″ // Leave script, entries are OK Leave
// treatment of error message label error
// Restore previous values Set F[Property indicator] “&V[AS_corr_property_indicator]“ Set F[Man.net wrth val.] “&V[AS_corr_man_value] “
// Back to first tab with error message Message “&V[_lasterror]” -statusline Enter “=TAB01″
|