Purpose:
Using copytext command with line option data from textbox is copied into table cells.
In the following example, We are using variables to specify the line numbers to be copied.
These variable are trimmed to remove whitespace and place the value into an array.
A 'set' command is used to move these values into the table.
Example uses 'All items' table from 'VA01' transaction to set values from textbox.
Liquid UI Code
//////////////////////////////////////// SAPMV45A.E0101.sjs /////////////////////////////////////
textbox([7,82], [11,113], { "name":"z_copytext","textfont":"Arial","textheight":"12", "textweight":"5"});
pushbutton([TOOLBAR], "Screen Copy",{ "process":copy_test});
function isBlank(jvar) {
if (typeof jvar == 'string'){
jvar = jvar.trim();
}
return(jvar == null || jvar=="" || jvar == void 0);
}
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }
function copy_test(){
var z_str = "";
var arMaterial = [];
var lastIndex = 2;
for (loop = 1; loop <lastIndex; loop++){
// copytext with line option and variable as line number
copytext({"fromtext":"z_copytext", "tostring":"z_str", "line":loop});
if (isBlank(z_str) || z_str=='undefined'){
break; // exits loop
}
arMaterial.push(z_str.trim()); // adding values to array
lastIndex++;
}
relrow=1;
absrow=1;
row_max=0;
materialvalue="";
onscreen 'SAPMV45A.4001'
set("F[Sold- To Party]","1460"); // default sold- to party value
gettableattribute("T[All items]", {"firstvisiblerow":"FVisRow", "lastvisiblerow":"LVisRow", "lastrow":"LastRow"});
new_screen: //scroll the table to the absolute row
enter('/ScrollToLine=&V[absrow]', {"table":"T[All items]"});
onscreen 'SAPMV45A.4001'
println("Inside 2nd Screen Block");
gettableattribute("T[All items]", {"firstvisiblerow":"FVisRow", "lastvisiblerow":"LVisRow", "lastrow":"LastRow"});
println("After get table attribute");
relrow=1;
new_row:
if (row_max == arMaterial.length){
goto end_of_table;
}
if(absrow>LVisRow) {
goto new_screen;
}
set("cell[All items,Material,&V[relrow]]", arMaterial[row_max]);
set("cell[All items,Order Quantity,&V[relrow]]", 1); // default value '1' is added
set("V[tmp1]", "&cell[All items,Material,&V[relrow]]");
set("V[tmp2]", "&cell[All items,Order Quantity,&V[relrow]]");
println('**********tmp1 and tmp2 = ' + tmp1 + ' & ' + tmp2);
enter();
onerror // error handling
enter("/nva01");
onscreen 'SAPLSPO2.0300'
enter("=OPT1");
onscreen 'SAPMV45A.4001'
row_max++;
absrow=absrow+1;
relrow++;
goto new_row;
end_of_table:;
enter('/ScrollToLine=1', {"table":"T[All items]"});
}
After executing function you can see values added to All items table of VA01 second screen.
See attachment for more information and screenshots