Populating multiple textboxes using a objects assigned to a combobox
Here I have attached the code I used to populate multiple textboxes using a object which selected dynamically using a combo box at run time. but it gives me an error that saying the object reference not set to an instance. Any suggestions?
CounterTotal[] arrayOfObjects =
CounterTotal[])idComboBox.Tag;
CounterTotalaCounterTotal =
arrayOfObjects[idComboBox.SelectedIndex];
idComboBox.Text =
Convert.ToString(aCounterTotal.id);
descriptionTextBox.Text = aCounterTotal.description;
totalValueLabel.Text =
Convert.ToString(aCounterTotal.total);
dateCreatedDateTimePicker.Text =
Convert.ToString(aCounterTotal.dateCreated);
feeTextBox.Text =
Convert.ToString(aCounterTotal.fee);
Please use the "Insert Code Block" button when posting code (it's the button to the right of the "HTML" button, the one with the < >) . It's much easier to read:
CounterTotal[] arrayOfObjects =(CounterTotal[])idComboBox.Tag;
CounterTotalaCounterTotal = arrayOfObjects[idComboBox.SelectedIndex];
idComboBox.Text = Convert.ToString(aCounterTotal.id);
descriptionTextBox.Text = aCounterTotal.description;
totalValueLabel.Text = Convert.ToString(aCounterTotal.total);
dateCreatedDateTimePicker.Text = Convert.ToString(aCounterTotal.dateCreated);
feeTextBox.Text = Convert.ToString(aCounterTotal.fee);
Which statement is causing that exception? You should be able to see, while debugging, which object is null ... that should be a clue to you as to which object you need to fix (create an instance of).
~~Bonnie DeWitt [C# MVP]
http://geek-goddess-bonnie.blogspot.com
Similar Messages
-
If we want to transfer data to multiple receiver using context object, how
If we want to transfer data to multiple receiver using context object, how many receiver determinations we need to create?
Hi Chiru,
Just go thro' the below links for sending data to multiple receivers:
/people/venkataramanan.parameswaran/blog/2006/03/17/illustration-of-enhanced-receiver-determination--sp16
/people/shabarish.vijayakumar/blog/2006/04/03/xi-in-the-role-of-a-ftp
Conditions in Receiver Determination
I hope this helps.
Regards.
Praveen -
How to create multiple TextBox using Visual C# in runtime?
Hello,
I am writing the following code to create TextBox programmatically in run time. When I am clicking in the target Button it will create TextBox. But the problem is, only one TextBox is created. Can anyone tell me how can I write code that will create multiple
TextBox when I am continuously clicking a Button?
Here is my current code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testing
public partial class Form1 : Form
public Form1()
InitializeComponent();
int x, y;
TextBox txt = new TextBox();
private void button_add_Click(object sender, EventArgs e)
cnt++; y = 139; x = 139;
txt.Parent = this;
txt.Location = new System.Drawing.Point(x, y);
txt.Size = new System.Drawing.Size(100, 20);
txt.Name = "text" + cnt; ;
txt.Text = "Text" + cnt; ;
///txt.Visible = true;
y += 30; x += 30;
///MessageBox.Show(txt.Name.ToString());
int cnt;
private void Form1_Load(object sender, EventArgs e)
cnt = 0; x = 139; y = 139;
- ThanksHello,
In your sample code only one instance of the text box is created. You may put the
TextBox txt = new TextBox();
inside the button click handler function for creating new instance for each button click.
Also change the change txt.Location for each text box. In your code it is specified as 139, 139 always.
Regards,
Mathews -
Assigning External content type field column value using Client Object Model
I have a problem assinging External column value to ListItem object with client object model-based application I'm developing. To be precise, I am able to retrieve data related to external content type by reading external list created from this content type
but I don't know how to properly use it to assign value to this field. By doing some research on my own I concluded that BDC ID column from external list is the way to go since it uniquely defines selected row from external list but that doesn't
tell me much since I don't know what to do with it. Currently I ended up with partial solution - to assign plain string value of picker column but that makes this value visible only in "View Properties" option on Sharepoint and not in "Edit Properties"
which pritty much makes sence since it isn't properly related to rest of the data in specific row. Does someone have a better solution for this?
Igor S.I think I understand your problem.
In my example I have an external data column "Beneficiary Name", using a Beneficiary external content type (accessing a table of beneficiaries in a SQL table).
I want to set the "Beneficiary Name" property using the client object model. I know the name of the beneficiary but not the ID value.
It is a fairly simple solution. You just need to identify the name of the property SharePoint assigns to the ID field, in my case it is called "Beneficiary_ID". Then set the two properties as follows:
thisItem["Beneficiary_Name"] = "Charitable Trust";
thisItem["Beneficiary_ID"] = -1;
thisItem.Update();
Setting the ID property to -1 causes the server to do an automatic lookup for the ID from the value assigned to the item. -
Objects containing objects.Expr cannot be used as an assignment.PLS-00363.
Hi,
My database: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0.
I'm working with Object types containing other object types, and I'm getting the error PLS-00363 (Expression cannot be used as an assignment).
I'm putting exlpicity all 'SELF' parameters as 'IN OUT', but still get the error...
CREATE OR REPLACE TYPE TYP_PERSON AS OBJECT (
strName VARCHAR2(100),
--+
CONSTRUCTOR FUNCTION TYP_PERSON RETURN SELF AS RESULT,
--+
MEMBER FUNCTION getName (SELF IN OUT TYP_PERSON) RETURN VARCHAR2,
MEMBER PROCEDURE setName (SELF IN OUT TYP_PERSON, pNewName VARCHAR2)
+) NOT FINAL;+
+/+
--+
CREATE OR REPLACE TYPE BODY TYP_PERSON AS
--+
CONSTRUCTOR FUNCTION TYP_PERSON RETURN SELF AS RESULT IS
BEGIN
SELF.strName := NULL;
RETURN;
END;
--+
MEMBER FUNCTION getName (SELF IN OUT TYP_PERSON) RETURN VARCHAR2 IS
BEGIN
RETURN SELF.strName;
END;
--+
MEMBER PROCEDURE setName (SELF IN OUT TYP_PERSON, pNewName VARCHAR2) IS
BEGIN
SELF.strName := pNewName;
END;
END;
+/+
--+
CREATE OR REPLACE TYPE TYP_PERSONS AS TABLE OF TYP_PERSON;
--+
CREATE OR REPLACE TYPE TYP_CREW AS OBJECT (
strName VARCHAR2(100),
persons TYP_PERSONS,
--+
CONSTRUCTOR FUNCTION TYP_CREW RETURN SELF AS RESULT,
--+
MEMBER FUNCTION getName (SELF IN OUT TYP_CREW) RETURN VARCHAR2,
MEMBER PROCEDURE setName (SELF IN OUT TYP_CREW, pNewName VARCHAR2),
--+
MEMBER PROCEDURE addPerson (SELF IN OUT TYP_CREW, pPersonName IN VARCHAR2),
MEMBER FUNCTION getPerson (SELF IN OUT TYP_CREW, pIndex IN NUMBER) RETURN TYP_PERSON,
MEMBER FUNCTION getPersons (SELF IN OUT TYP_CREW) RETURN TYP_PERSONS
+) NOT FINAL;+
+/+
--+
CREATE OR REPLACE TYPE BODY TYP_CREW AS
--+
CONSTRUCTOR FUNCTION TYP_CREW RETURN SELF AS RESULT IS
BEGIN
SELF.strName := NULL;
SELF.persons := TYP_PERSONS();
RETURN;
END;
--+
MEMBER FUNCTION getName (SELF IN OUT TYP_CREW) RETURN VARCHAR2 IS
BEGIN
RETURN SELF.strName;
END;
--+
MEMBER PROCEDURE setName (SELF IN OUT TYP_CREW, pNewName VARCHAR2) IS
BEGIN
SELF.strName := pNewName;
END;
MEMBER PROCEDURE addPerson (SELF IN OUT TYP_CREW, pPersonName IN VARCHAR2) IS
BEGIN
SELF.persons.EXTEND();
SELF.persons(SELF.persons.LAST) := TYP_PERSON(pPersonName);
END;
MEMBER FUNCTION getPerson (SELF IN OUT TYP_CREW, pIndex IN NUMBER) RETURN TYP_PERSON IS
BEGIN
IF SELF.persons.COUNT > 0 THEN
RETURN SELF.getPersons()(pIndex);
END IF;
RETURN NULL;
END;
MEMBER FUNCTION getPersons (SELF IN OUT TYP_CREW) RETURN TYP_PERSONS IS
BEGIN
RETURN SELF.persons;
END;
END;
+/+
--+
DECLARE
crew_one TYP_CREW;
BEGIN
crew_one := TYP_CREW();
crew_one.setName('The last crew on Earth');
crew_one.addPerson ('Michael Knight');
crew_one.addPerson ('Agent Mulder');
crew_one.addPerson ('Agent Scully');
crew_one.addPerson ('Frodo Bolson');
for i in crew_one.persons.FIRST..crew_one.persons.LAST LOOP
dbms_output.put_line('Person ['||i||']: '||crew_one.persons(i).getName());
end loop;
crew_one.getPerson(1).setName ('Michael Knight-----');
crew_one.getPerson(2).setName ('Agent Mulder---');
crew_one.getPerson(3).setName ('Agent Scully---');
crew_one.getPerson(4).setName ('Frodo Bolson----');
for i in crew_one.persons.FIRST..crew_one.persons.LAST LOOP
dbms_output.put_line('Person ['||i||']: '||crew_one.persons(i).getName());
end loop;
END;
How can I do this ParentObject().getChildObject().setChildFunction()?
Thanks in advance,
Donato.You completely misunderstand objects. Use:
DECLARE
crew_one TYP_CREW;
BEGIN
crew_one := TYP_CREW();
crew_one.setName('The last crew on Earth');
crew_one.addPerson ('Michael Knight');
crew_one.addPerson ('Agent Mulder');
crew_one.addPerson ('Agent Scully');
crew_one.addPerson ('Frodo Bolson');
for i in crew_one.persons.FIRST..crew_one.persons.LAST LOOP
dbms_output.put_line('Person ['||i||']: '||crew_one.persons(i).getName());
end loop;
TYP_PERSON.setName (crew_one.persons(1),'Michael Knight-----');
TYP_PERSON.setName (crew_one.persons(2),'Agent Mulder---');
TYP_PERSON.setName (crew_one.persons(3),'Agent Scully---');
TYP_PERSON.setName (crew_one.persons(4),'Frodo Bolson----');
for i in crew_one.persons.FIRST..crew_one.persons.LAST LOOP
dbms_output.put_line('Person ['||i||']: '||crew_one.persons(i).getName());
end loop;
END;
Person [1]: Michael Knight
Person [2]: Agent Mulder
Person [3]: Agent Scully
Person [4]: Frodo Bolson
Person [1]: Michael Knight-----
Person [2]: Agent Mulder---
Person [3]: Agent Scully---
Person [4]: Frodo Bolson----
PL/SQL procedure successfully completed.
SQL> SY. -
Assign Group permission to list item using client object model
Hi,
I am trying to add the list item and assign the permission to the list item by using SP 2010 client object model. The problem which i am facing that when i assign the group as a permission to the item, by automatically the limited access permission
is added to the group. Please find the steps which i have followed,
Step-1: Break role inheritance.
foreach (var item in _listItemCollection)
if (item["FileLeafRef"].ToString().ToLower() == "xxx")
item.BreakRoleInheritance(true, false);
_clientContext.Load(item.RoleAssignments);
_folderItem = item;
_clientContext.ExecuteQuery();
Step 2: Remove all permissions of the list item.
foreach (var assignment in _folderItem.RoleAssignments)
assignment.RoleDefinitionBindings.RemoveAll();
assignment.Update();
_clientContext.ExecuteQuery();
Step 3:
Add Group as a permission to the list item.
var role = _web.RoleDefinitions.GetByType(RoleType.Contributor);
var collRdb = new RoleDefinitionBindingCollection(_clientContext) { role };
Principal principal = _grp;
_folderItem.RoleAssignments.Add(principal, collRdb);
_folderItem.Update();
_clientContext.ExecuteQuery();
After adding the group successfully to the list item, i checked the group permission and it contains the value as "Contribute,Limited Access" to the site level and "Contribute" to the list item. Please guide me how to avoid to create Contribute,Limited
Access role.
BalajiHi Dmitry,
When I create the group and assign contribute permission, the group has the permission at the site level(to see the permission, click group and click view Group Permission). I have added the list item and break the role inheritance permission
and given the unique permission by providing group as a permission to the list item. After providing the permission, the group permission at the site level changed to "Contribute, Limited Access". I dont know how contribute permission changed to contribute,
limited access.
I found the workaround to fix this issue. I created the group and create the folder in the shared document library by using client object model. Due to facing some issue by providing the permission using client object model, i have created the event receiver
to the document library and using server object model, i can able to assign the approprate group permission.
Balaji -
How to use a object(in MXML - in FLEX 4) in multiple way.
This is my object in MXML:
<mx1:Canvas id="menuElement" visible="true" rotationY="-15">
<mx1:Canvas mask="{imageMask}">
<mx1:Image id="menuImage" visible="true"/>
<s:BorderContainer id="menuBackground" width="70" visible="true" borderVisible="false">
<s:Label id="menuDescription" fontSize="30" fontWeight="bold" rotation="-90" />
<s:backgroundFill>
<s:LinearGradient rotation="90">
<s:entries>
<s:GradientEntry id="backgroundColor" color="0x000010" alpha="0.6"/>
</s:entries>
</s:LinearGradient>
</s:backgroundFill>
</s:BorderContainer>
</mx1:Canvas>
<mx1:Canvas id="imageMask" backgroundColor="#FF0000"/>
</mx1:Canvas>
I use this object (one time) with configuration in actionscript (positions, source of picture etc.) and I receive something like on a picture below:
Now, I need to create 4 elements like below. I don't wan't to copy 4 times this block of program. Anybody have idea how can I make it and how can
I recall of each element from actionscript?
Regardsif you run nw04s SP8, it's a limitation. you can create your own simple types and use them in your entities. but the custom data structures you create in the dictionary don't show in list of available structures when you want to create a new complex attribute
-
Using tag OBJECT on a machine with multiple jre versions
Dear friends,
i guess that this question has been already answered, but i can't find the thread with all infos i need.
So please excuse me if i'm redundant.
This is my problem:
i have a web application that runs an applet, embedded in an html page;
by now the applet is loaded with the standard tag <APPLET>.
I found many Sun's official pages talking about the use of OBJECT tag to specify the jre version that is supposed to run the applet.
I tried many ways but i can't reach the way to avoid loading the applet with the latest jre installed on my pc.
Here is the code of my OBJECT:
<OBJECT NAME="client" CLASSID="clsid:CAFEEFAC-0014-0002-0009-ABCDEFFEDCBB" HEIGHT="38" WIDTH="335" >
<PARAM NAME="NAME" VALUE="client">
<PARAM name="type" value="application/x-java-applet;jpi-version=1.4.2_09">
<PARAM NAME="CODE" VALUE="it.fabio.client">
<PARAM NAME="CODEBASE" VALUE="/myapp">
<PARAM NAME="ARCHIVE" VALUE="mylib.jar">
</OBJECT>The machines where the application is deployed have the 1.4.2_09 and the 1.5.0_03 jre versions, but my applet runs only on 1.4.2_09 version.
So i have to find a way to tell the browser which jre has to be called.
Thanks in advance for help.
RegardsWait a second...there is more to that error message that I overlooked before.
There might be something other than just the way I set the CODE and CODEBASE parameters wrong here
Any ideas?
Here is the entire messsage:
load: class DisplayMonoApplet.class not found.
java.lang.ClassNotFoundException: DisplayMonoApplet.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more -
Multiple attachment using SO_NEW_DOCUMENT_ATT_SEND_API1
HI geeks,
Can anyone pls tell me how to attach multiple files using function module SO_NEW_DOCUMENT_ATT_SEND_API1.
I have seen example of multiple attachments using same file type.I mean 1 or more files are same type like PDF or Excel.
But my requirement is i have to send multiple attachment,1 file as PDF and other three excel file.
Can anyone pls let me know,if anyone done this already,
Thanks in advance
Srini.Hi Srinivasn,
Please see the below code u need to follow. In the object pack table u might specified the number of lines per each attachement. At the same time u need to specify the document type as PDF or XLS. Please see the below code which is wrote for two attachments as xls. In your case one attachment should be PDF. This can be specified in the field
LT_OBJPACK-DOC_TYPE = 'PDF'.
IF NOT LT_ATT_TAB[] IS INITIAL AND
NOT GV_ERR_REC IS INITIAL.
DESCRIBE TABLE LT_OBJBIN LINES LV_TAB_LINES.
LV_TAB_LINES = LV_TAB_LINES - GV_SUC_REC.
READ TABLE LT_OBJBIN INDEX LV_TAB_LINES.
LT_OBJPACK-DOC_SIZE =
( LV_TAB_LINES - 1 ) * 255 + STRLEN( LT_OBJBIN ).
LT_OBJPACK-TRANSF_BIN = 'X'.
LT_OBJPACK-HEAD_START = 1.
LT_OBJPACK-HEAD_NUM = 0.
LT_OBJPACK-BODY_START = 1.
LT_OBJPACK-BODY_NUM = LV_TAB_LINES.
LT_OBJPACK-DOC_TYPE = LC_XLS.
LT_OBJPACK-OBJ_NAME = 'ATTACHMENT'.
LT_OBJPACK-OBJ_DESCR = LV_ATTACH_NAME2(50).
APPEND LT_OBJPACK.
ENDIF. " IF NOT lt_att_tab[] IS ...
File2 attachment for processed records.
IF NOT LT_ATT_TAB[] IS INITIAL AND
NOT GV_SUC_REC IS INITIAL.
CLEAR LT_OBJPACK.
DESCRIBE TABLE LT_OBJBIN LINES LV_TAB_LINES.
LV_TAB_LINES = LV_TAB_LINES - GV_ERR_REC.
GV_ERR_REC = GV_ERR_REC + 1.
READ TABLE LT_OBJBIN INDEX LV_TAB_LINES.
LT_OBJPACK-DOC_SIZE =
( LV_TAB_LINES - 1 ) * 255 + STRLEN( LT_OBJBIN ).
LT_OBJPACK-TRANSF_BIN = 'X'.
LT_OBJPACK-HEAD_START = GV_ERR_REC.
LT_OBJPACK-HEAD_NUM = 0.
LT_OBJPACK-BODY_START = GV_ERR_REC.
LT_OBJPACK-BODY_NUM = LV_TAB_LINES.
LT_OBJPACK-DOC_TYPE = LC_XLS.
LT_OBJPACK-OBJ_NAME = 'ATTACHMENT'(009).
LT_OBJPACK-OBJ_DESCR = LV_ATTACH_NAME(50).
APPEND LT_OBJPACK.
ENDIF. " IF NOT lt_att_tab[] IS ...
Thanks
IF NOT LT_ATT_TAB[] IS INITIAL AND
NOT GV_ERR_REC IS INITIAL.
DESCRIBE TABLE LT_OBJBIN LINES LV_TAB_LINES.
LV_TAB_LINES = LV_TAB_LINES - GV_SUC_REC.
READ TABLE LT_OBJBIN INDEX LV_TAB_LINES.
LT_OBJPACK-DOC_SIZE =
( LV_TAB_LINES - 1 ) * 255 + STRLEN( LT_OBJBIN ).
LT_OBJPACK-TRANSF_BIN = 'X'.
LT_OBJPACK-HEAD_START = 1.
LT_OBJPACK-HEAD_NUM = 0.
LT_OBJPACK-BODY_START = 1.
LT_OBJPACK-BODY_NUM = LV_TAB_LINES.
LT_OBJPACK-DOC_TYPE = LC_XLS.
LT_OBJPACK-OBJ_NAME = 'ATTACHMENT'.
LT_OBJPACK-OBJ_DESCR = LV_ATTACH_NAME2(50).
APPEND LT_OBJPACK.
ENDIF. " IF NOT lt_att_tab[] IS ...
File2 attachment for processed records.
IF NOT LT_ATT_TAB[] IS INITIAL AND
NOT GV_SUC_REC IS INITIAL.
CLEAR LT_OBJPACK.
DESCRIBE TABLE LT_OBJBIN LINES LV_TAB_LINES.
LV_TAB_LINES = LV_TAB_LINES - GV_ERR_REC.
GV_ERR_REC = GV_ERR_REC + 1.
READ TABLE LT_OBJBIN INDEX LV_TAB_LINES.
LT_OBJPACK-DOC_SIZE =
( LV_TAB_LINES - 1 ) * 255 + STRLEN( LT_OBJBIN ).
LT_OBJPACK-TRANSF_BIN = 'X'.
LT_OBJPACK-HEAD_START = GV_ERR_REC.
LT_OBJPACK-HEAD_NUM = 0.
LT_OBJPACK-BODY_START = GV_ERR_REC.
LT_OBJPACK-BODY_NUM = LV_TAB_LINES.
LT_OBJPACK-DOC_TYPE = LC_XLS.
LT_OBJPACK-OBJ_NAME = 'ATTACHMENT'(009).
LT_OBJPACK-OBJ_DESCR = LV_ATTACH_NAME(50).
APPEND LT_OBJPACK.
ENDIF. " IF NOT lt_att_tab[] IS ...
Venkat -
How to get multiple records using fn-bea:execute-sql()
Hi,
I created Proxy service(ALSB3.0) to get records from DB table. I have used Xquery function(fn-bea:execute-sql()). Using simple SQL query I got single record, but my table having multiple records. Please suggest how to get multiple records using fn-bea:execute-sql() and how to assign them in ALSB variable.
Regards,
Nagaraju
Edited by: user10373980 on Sep 29, 2008 6:11 AMHi,
Am facing the same issue stated above that I couldnt get all the records in the table that am querying in the Proxyservice.
For example:
fn-bea:execute-sql('EsbDataSource', 'student', 'select Name from StudentList' ) is the query that am using to fetch the records from the table called StudentList which contains more than one records like
Id Name
01 XXX
02 YYY
03 ZZZ
I tried to assign the result of the above query in a variable and while trying to log the variable, I can see the below
<student>
<Name>XXX</Name>
</student>
I want to have all the records from my table in xml format but it's not coming up. I get the value only from the first row of my table.
Please suggest.
regards,
Venkat -
Error while opening the application using semantic object method
Hello ,
We just got all the Wave 3 apps and SP08 versions on our Fiori server. While setting up the transnational applications , I am not able to open any app using semantic objects. if i put direct URL I can open the app.
Error screen shots are :
The Launchpad designer settings for create sales order app are :
Please suggest the solution.
The error is same for all the applications.
Regards,
Sheetal
Tags edited by: Michael ApplebyHello Masa,
Checked this note. Not able to resolve the issue. Can you please explain, for the application to work with Navigation and semantic object what all roles do we need to assign to the User?
For create Sales Order :
Component
Technical Name
Business Role
SAP_SD_BCR_FIELDSALESREP_X1
Business Catalog
SAP_SD_BC_FIELDSALESREP_X1
Business Catalog Group
SAP_SD_BCG_FIELDSALESREP_X1
Technical Role
SAP_SD_BCR_FIELDSALESREP_X1
Technical Catalog
SAP_SD_TC_T_X1
LPD_CUST Role
UIX01SD
LPD_CUST Instance
TRANSACTIONAL
OData Service (Version Number)
Back-End Server: Delivered Authorization Role (PFCG Role)
Front-End Server: Authorization Role
SRA017_SALESORDER_CREATE_SRV
SRA017:SAP_SD_SO_CRE_APP
SAP_SD_BCR_FIELDSALESREP_X1
My user id is assigned to three Roles :
SAP_SD_BCR_FIELDSALESREP_X1
SAP_SD_BCR_FIELDSALESREP_X1
SRA017:SAP_SD_SO_CRE_APP
Do I need to assign any other roles than these three?
Regards,
Sheetal -
I can't seem to get individual elements when comparing 2 arrays using Compare-Object
My backup software keeps track of servers with issues using a 30 day rolling log, which it emails to me once a week in CSV format. What I want to do is create a master list of servers, then compare that master list against the new weekly lists to identify
servers that are not in the master list, and vice versa. That way I know what servers are new problem and which ones are pre-existing and which ones dropped off the master list. At the bottom is the entire code for the project. I know it's a bit much
but I want to provide all the information, hopefully making it easier for you to help me :)
Right now the part I am working on is in the Compare-NewAgainstMaster function, beginning on line 93. After putting one more (fake) server in the master file, the output I get looks like this
Total entries (arrMasterServers): 245
Total entries (arrNewServers): 244
Comparing new against master
There are 1 differences.
InputObject SideIndicator
@{Agent= Virtual Server in vCenterServer; Backupse... <=
What I am trying to get is just the name of the server, which should be $arrDifferent[0] or possibly $arrDifferent.Client. Once I have the name(s) of the servers that are different, then I can do stuff with that. So either I am not accessing the array
right, building the array right, or using Compare-Object correctly.
Thank you!
Sample opening lines from the report
" CommCells > myComCellServer (Reports) >"
" myComCellServer -"
" 30 day SLA"
CommCell Details
" Client"," Agent"," Instance"," Backupset"," Subclient"," Reason"," Last Job Id"," Last Job End"," Last Job Status"
" myServerA"," vCenterServer"," VMware"," defaultBackupSet"," default"," No Job within SLA Period"," 496223"," Nov 17, 2014"," Killed"
" myServerB"," Oracle Database"," myDataBase"," default"," default"," No Job within SLA Period"," 0"," N/A"," N/A"
Entire script
# things to add
# what date was server entered in list
# how many days has server been on list
# add temp.status = pre-existing, new, removed from list
# copy sla_master before making changes. Copy to archive folder, automate rolling 90 days?
## 20150114 Created script ##
#declare global variables
$global:arrNewServers = @()
$global:arrMasterServers = @()
$global:countNewServers = 1
function Get-NewServers
Param($path)
Write-Host "Since we're skipping the 1st 6 lines, create test to check for opening lines of report from CommVault."
write-host "If not original report, break out of script"
Write-Host ""
#skip 5 to include headers, 6 for no headers
(Get-Content -path $path | Select-Object -Skip 6) | Set-Content $path
$sourceNewServers = get-content -path $path
$global:countNewServers = 1
foreach ($line in $sourceNewServers)
#declare array to hold object temporarily
$temp = @{}
$tempLine = $line.Split(",")
#get and assign values
$temp.Client = $tempLine[0].Substring(2, $tempLine[0].Length-3)
$temp.Agent = $tempLine[1].Substring(2, $tempLine[1].Length-3)
$temp.Backupset = $tempLine[3].Substring(2, $tempLine[3].Length-3)
$temp.Reason = $tempLine[5].Substring(2, $tempLine[5].Length-3)
#write temp object to array
$global:arrNewServers += New-Object -TypeName psobject -Property $temp
#increment counter
$global:countNewServers ++
Write-Host ""
$exportYN = Read-Host "Do you want to export new servers to new master list?"
$exportYN = $exportYN.ToUpper()
if ($exportYN -eq "Y")
$exportPath = Read-Host "Enter full path to export to"
Write-Host "Exporting to $($exportPath)"
foreach ($server in $arrNewServers)
$newtext = $Server.Client + ", " + $Server.Agent + ", " + $Server.Backupset + ", " + $Server.Reason
Add-Content -Path $exportPath -Value $newtext
function Get-MasterServers
Param($path)
$sourceMaster = get-content -path $path
$global:countMasterServers = 1
foreach ($line in $sourceMaster)
#declare array to hold object temporarily
$temp = @{}
$tempLine = $line.Split(",")
#get and assign values
$temp.Client = $tempLine[0]
$temp.Agent = $tempLine[1]
$temp.Backupset = $tempLine[2]
$temp.Reason = $tempLine[3]
#write temp object to array
$global:arrMasterServers += New-Object -TypeName psobject -Property $temp
#increment counter
$global:countMasterServers ++
function Compare-NewAgainstMaster
Write-Host "Total entries (arrMasterServers): $($countMasterServers)"
Write-Host "Total entries (arrNewServers): $($countNewServers)"
Write-Host "Comparing new against master"
#Compare-Object $arrMasterServers $arrNewServers
$arrDifferent = @(Compare-Object $arrMasterServers $arrNewServers)
Write-Host "There are $($arrDifferent.Count) differences."
foreach ($item in $arrDifferent)
$item
## BEGIN CODE ##
cls
$getMasterServersYN = Read-Host "Do you want to get master servers?"
$getMasterServersYN = $getMasterServersYN.ToUpper()
if ($getMasterServersYN -eq "Y")
$filePathMaster = Read-Host "Enter full path and file name to master server list"
$temp = Test-Path $filePathMaster
if ($temp -eq $false)
Read-Host "File not found ($($filePathMaster)), press any key to exit script"
exit
Get-MasterServers -path $filePathMaster
$getNewServersYN = Read-Host "Do you want to get new servers?"
$getNewServersYN = $getNewServersYN.ToUpper()
if ($getNewServersYN -eq "Y")
$filePathNewServers = Read-Host "Enter full path and file name to new server list"
$temp = Test-Path $filePathNewServers
if ($temp -eq $false)
Read-Host "File not found ($($filePath)), press any key to exit script"
exit
Get-NewServers -path $filePathNewServers
#$global:arrNewServers | format-table client, agent, backupset, reason -AutoSize
#Write-Host ""
#Write-Host "Total entries (arrNewServers): $($countNewServers)"
#Write-Host ""
#$global:arrMasterServers | format-table client, agent, backupset, reason -AutoSize
#Write-Host ""
#Write-Host "Total entries (arrMasterServers): $($countMasterServers)"
#Write-Host ""
Compare-NewAgainstMasterdo not do this:
$arrDifferent = @(Compare-Object $arrMasterServers $arrNewServers)
Try this:
$arrDifferent = Compare-Object $arrMasterServers $arrNewServers -PassThru
¯\_(ツ)_/¯
This is what made the difference. I guess you don't have to declare arrDifferent as an array, it is automatically created as an array when Compare-Object runs and fills it with the results of the compare operation. I'll look at that "pass thru" option
in a little more detail. Thank you very much!
Yes - this is the way PowerShell works. You do not need to write so much code once you understand what PS can and is doing.
¯\_(ツ)_/¯ -
How to send multiple Recipients using the mail.jar and activation.jar
hi!
could somebody help me. how do i send multiple Recipient using mail.jar. when i would input 2email address in to Recipient
(example: [email protected], [email protected])
i get a DEBUG: setDebug: JavaMail version 1.3.2
but if i send a single email it just works properly.
heres my code
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
public class SendMail
public SendMail(String to, String from, String subject, String body)
//public SendMail(String to)
String message_recip = to;
String message_subject = subject;
String message_cc = "";
String message_body = body;
//The JavaMail session object
Session session;
//The JavaMail message object
Message mesg;
// Pass info to the mail server as a Properties, since JavaMail (wisely) allows room for LOTS of properties...
Properties props = new Properties( );
// LAN must define the local SMTP server as "mailhost" to be able to send mail...
//props.put("mail.smtp.host","true");
props.put("mail.smtp.host", "mailhost");
// Create the Session object
session = Session.getDefaultInstance(props, null);
session.setDebug(true);
try
// create a message
mesg = new MimeMessage(session);
// From Address - this should come from a Properties...
mesg.setFrom(new InternetAddress(from));
// TO Address
InternetAddress toAddress = new InternetAddress(message_recip);
mesg.addRecipient(Message.RecipientType.TO, toAddress);
// CC Address
InternetAddress ccAddress = new InternetAddress(message_cc);
mesg.addRecipient(Message.RecipientType.CC, ccAddress);
// The Subject
mesg.setSubject(message_subject);
// Now the message body.
mesg.setText(message_body);
// XXX I18N: use setText(msgText.getText( ), charset)
// Finally, send the message!
Transport.send(mesg);
}//end of try
catch (MessagingException ex)
while ((ex = (MessagingException)ex.getNextException( )) != null)
ex.printStackTrace( );
}//end of while
}//end of catch
}//end of SendMail
public static void main(String[] args)
//String t = "[email protected], [email protected]"; - this I think causes error
String t = "[email protected]";
String f = "[email protected]";
String s = "Hello World";
String b = "the quick brown fox jumps over the lazy dog";
SendMail sm = new SendMail(t,f,s,b);
}//end of main
}//end of class
could someone please help me im stuck-up with this. thanx!i need it ASAP
i am a beginner in java and jsp
Need to knw how can I parse the addresss field
Below
is the code
<code>
package
public class EMailBean {
private String smtp,username,password,from,bcc,subject,body,attachments,cc;
/*setter*/
public void setSmtp(String str){this.smtp=str;}
public void setUsername(String str){this.username=str;}
public void setPassword(String str){this.password=str;}
public void setFrom(String str){this.from=str;}
public void setTo(String str){this.to=str;}
public void setCc(String str){this.cc=str;}
public void setBcc(String str){this.bcc=str;}
public void setSubject(String str){this.subject=str;}
public void setBody(String str){this.body=str;}
public void setAttachments(String str){this.attachments=str;}
/*getter*/
public String getSmtp( ){return this.smtp;}
public String getUsername( ){return this.username;}
public String getPassword( ){return this.password;}
public String getFrom( ){return this.from;}
public String getTo( ){return this.to;}
public String getCc( ){return this.cc;}
public String getBcc( ){return this.bcc;}
public String getSubject( ){return this.subject;}
public String getBody( ){return this.body;}
public String getAttachments( ){return this.attachments;}
</code>
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(mail.getFrom()));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.addRecipient(Message.RecipientType.TO,new InternetAddress(mail.getTo()));
msg.addRecipient(Message.RecipientType.CC, new InternetAddress(mail.getCc()));
msg.addRecipient(Message.RecipientType.CC, new InternetAddress("[email protected]"));
msg.setSubject(mail.getSubject());
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
messageBodyPart.setText(mail.getBody());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(mail.getAttachments());
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(source.getName());
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
msg.setSentDate(new Date());
Transport t = session.getTransport("smtp");
try {
t.connect(mail.getUsername(), mail.getPassword());
t.sendMessage(msg, msg.getAllRecipients());
} finally {
t.close();
result = result + "<FONT SIZE='4' COLOR='blue'><B>Success!</B>"+"<FONT SIZE='4' COLOR='black'> "+"<HR><FONT color='green'><B>Mail was successfully sent to </B></FONT>: "+mail.getTo()+"<BR>";
if (!("".equals(mail.getCc())))
result = result +"<FONT color='green'><B>CCed To </B></FONT>: "+mail.getCc()+"<BR>";
if (!("".equals(mail.getBcc())))
result = result +"<FONT color='green'><B>BCCed To </B></FONT>: "+mail.getBcc() ;
result = result+"<BR><HR>";
} catch (MessagingException mex) {
result = result + "<FONT SIZE='4' COLOR='blue'> <B>Error : </B><BR><HR> "+"<FONT SIZE='3' COLOR='black'>"+mex.toString()+"<BR><HR>";
} catch (Exception e) {
result = result + "<FONT SIZE='4' COLOR='blue'> <B>Error : </B><BR><HR> "+"<FONT SIZE='3' COLOR='black'>"+e.toString()+"<BR><HR>";
e.printStackTrace();
finally {
return result;
} -
Module Pool Programming using Abap Objects
Hi gurus.,
I need to create a module pool program with tabstrips and tablecontrols using Abap objects...plz guide me how i can achieve this... i am very much confused.. i dont know how and where to start .. plz send me documents and sample codes related to this topic..Also hoe i can implement f4 help in screen fields.. plz help me with Sample Code....
Regards.,
S.SivakumarHi Marcelo Ramos.,
here is my code without using WebLOg ..
PROGRAM ZACR018_BOXKOD .
TABLES DECLARATION
TABLES: ZACT02_BOXKOD, ZACS018_STR, MARA.
CONTROLS TABC TYPE TABLEVIEW USING SCREEN 102.
END OF TABLES DECLARATION
DEFINE DYN_DECLARE_CREATE.
DATA: &1 TYPE REF TO &2.
CREATE OBJECT &1.
END-OF-DEFINITION.
CONSTANTS C_WERKS TYPE WERKS_D VALUE '7600'.
CONSTANTS C_REPID TYPE SY-REPID VALUE SY-REPID.
CONSTANTS C_VERID TYPE VERID VALUE '0001'.
CONSTANTS C_MDV01 TYPE MDV01 VALUE 'F3LB02'.
CLASS CL_TABLE_CONTROL DEFINITION.
PUBLIC SECTION.
CLASS-DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
CLASS-DATA: WA_DISPLAY TYPE ZACS018_STR.
CLASS-DATA: WA_COLS LIKE LINE OF TABC-COLS.
CLASS-METHODS M1 IMPORTING WA_C_DISPLAY TYPE ZACS018_STR EXPORTING ZACS018_STR_C TYPE ZACS018_STR.
CLASS-METHODS M2 IMPORTING ZACS018_STR_C TYPE ZACS018_STR CHANGING IT_C_DISPLAY LIKE IT_C_DISPLAY.
CLASS-METHODS M3 IMPORTING SAVE_OK TYPE SY-UCOMM CHANGING C_TABC TYPE CX_TABLEVIEW.
CLASS-METHODS M4 IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK TYPE SY-UCOMM
CHANGING C_TABC TYPE CX_TABLEVIEW.
ENDCLASS.
CLASS CL_TABLE_CONTROL IMPLEMENTATION.
METHOD M1.
ZACS018_STR_C = WA_C_DISPLAY.
ENDMETHOD.
METHOD M2.
DESCRIBE TABLE IT_C_DISPLAY.
IF TABC-CURRENT_LINE > SY-TFILL.
APPEND ZACS018_STR_C TO IT_C_DISPLAY.
ELSE.
MODIFY IT_C_DISPLAY FROM ZACS018_STR_C INDEX TABC-CURRENT_LINE.
ENDIF.
ENDMETHOD.
METHOD M3.
IF SAVE_OK = 'CHECK'.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 0.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 1.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD M4.
IF MASTER_PATTERN IS INITIAL OR PATTERNSLNO IS INITIAL.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 0.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ELSE.
IF SAVE_OK NE 'CHECK'.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 1.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.
INTERFACE I_DATA.
DATA: WA_MARA TYPE MARA.
DATA: WA_MARC TYPE MARC.
DATA: WA_MAST TYPE MAST.
DATA: WA_STKO TYPE STKO.
DATA: WA_MKAL TYPE MKAL.
DATA: IT_STPOX TYPE STANDARD TABLE OF STPOX.
DATA: WA_STPOX TYPE STPOX.
DATA: WA_ZACT02_BOXKOD TYPE ZACT02_BOXKOD.
DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
DATA: IT_SORT_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
DATA: WA_DISPLAY TYPE ZACS018_STR.
DATA: W_YIELD(5) TYPE P DECIMALS 2.
METHODS PARTNO_VAL IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE.
METHODS MAINBI_VAL IMPORTING MAINB TYPE ZACS018_STR-MAINB.
METHODS CAVITY_VAL IMPORTING CAVITY TYPE ZACS018_STR-CAVITY.
METHODS GET_COMP_WT IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE EXPORTING GROSSWT TYPE ZACS018_STR-GROSSWT.
METHODS NETWT_VAL IMPORTING NETWT TYPE ZACS018_STR-NETWT GROSSWT TYPE ZACS018_STR-GROSSWT.
METHODS MASPAT_VAL IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN.
METHODS PATSLNO_VAL IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .
METHODS MAX_REF EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO.
METHODS NOOFBOX_VAL IMPORTING BMSCH TYPE ZACT02_BOXKOD-BMSCH.
METHODS TOTTIME_VAL IMPORTING VGW01 TYPE ZACT02_BOXKOD-VGW01.
METHODS TOTRUNWT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY
EXPORTING W_SUM_RUNWT LIKE ZACS018_STR-NETWT.
METHODS TOTCOMP_WT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY
EXPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT.
METHODS CHECK_OK IMPORTING SAVE_OK TYPE SY-UCOMM.
METHODS SCREEN_DISPLAY IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK TYPE SY-UCOMM.
METHODS DUP_CHECK IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY.
METHODS BOX_YLD IMPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT
W_TOT_WT LIKE ZACS018_STR-NETWT
EXPORTING W_YIELD LIKE W_YIELD.
ENDINTERFACE.
CLASS CL_CONTROL_EVENTS DEFINITION.
PUBLIC SECTION.
CLASS-DATA: C_WERKS TYPE WERKS_D VALUE C_WERKS.
INTERFACES I_DATA.
ENDCLASS.
CLASS CL_CONTROL_EVENTS IMPLEMENTATION.
METHOD I_DATA~PARTNO_VAL.
SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = PARTCODE.
IF SY-SUBRC <> 0.
MESSAGE TEXT-001 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARA-MTART NE 'HALB'.
MESSAGE TEXT-002 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = PARTCODE AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-003 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARC-FEVOR NE 'KOD'.
MESSAGE TEXT-004 TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
SELECT SINGLE * FROM MKAL INTO I_DATA~WA_MKAL WHERE MATNR = PARTCODE AND
WERKS = C_WERKS AND
VERID = C_VERID AND
MDV01 = C_MDV01.
IF SY-SUBRC <> 0.
MESSAGE TEXT-028 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~CAVITY_VAL.
SET CURSOR FIELD 'ZACS018_STR-CAVITY' LINE SY-STEPL.
IF CAVITY IS INITIAL.
MESSAGE TEXT-005 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MAINBI_VAL.
SET CURSOR FIELD 'ZACS018_STR-MAINB' LINE SY-STEPL.
IF MAINB IS INITIAL.
MESSAGE TEXT-006 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~GET_COMP_WT.
SET CURSOR FIELD 'ZACS018_STR-PARTCODE' LINE SY-STEPL.
*SELECT SINGLE MAST~MATNR
MAST~WERKS
MAST~STLAL
STKO~DATUV
INTO (I_DATAWA_MAST-MATNR,I_DATAWA_MAST-WERKS,I_DATAWA_MAST-STLAL,I_DATAWA_STKO-DATUV)
FROM MAST AS MAST INNER JOIN STKO AS STKO
ON STKOSTLNR = MASTSTLNR AND STKOSTLAL = MASTSTLAL
WHERE MAST~MATNR = PARTCODE AND
STKO~STLST = '1' AND
STKO~STLTY = 'M' AND
STKO~LKENZ = '' AND
STKO~LOEKZ = ''.
SELECT SINGLE * FROM MAST INTO I_DATA~WA_MAST WHERE MATNR = PARTCODE AND
STLAN = '1' AND
STLAL = '01' AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-009 TYPE 'E'.
ENDIF.
*CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 50
TEXT = TEXT-007.
*WAIT UP TO 2 SECONDS.
REFRESH I_DATA~IT_STPOX.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
FTREL = 'X'
ALEKZ = ' '
ALTVO = ' '
AUFSW = ' '
AUMGB = ' '
AUMNG = 0
AUSKZ = 'X'
AMIND = ' '
BAGRP = ' '
BEIKZ = ' '
BESSL = ' '
BGIXO = 'X'
BREMS = 'X'
CAPID = 'PP01'
CHLST = ' '
COSPR = ' '
CUOBJ = 000000000000000
CUOVS = 0
CUOLS = ' '
DATUV = SY-DATUM
DELNL = SPACE
DRLDT = ' '
EHNDL = '1'
EMENG = 0
ERSKZ = ' '
ERSSL = ' '
FBSTP = ' '
KNFBA = ' '
KSBVO = ' '
MBWLS = ' '
MKTLS = 'X'
MDMPS = ' '
MEHRS = ' '
MKMAT = ' '
MMAPS = ' '
SALWW = ' '
SPLWW = ' '
MMORY = '0'
MTNRV = PARTCODE
NLINK = ' '
POSTP = ' '
RNDKZ = ' '
RVREL = ' '
SANFR = ' '
SANIN = ' '
SANKA = ' '
SANKO = ' '
SANVS = ' '
SCHGT = ' '
STKKZ = ' '
STLAL = '01'
STLAN = '1'
STPST = 0
SVWVO = 'X'
WERKS = C_WERKS
NORVL = ' '
MDNOT = ' '
PANOT = ' '
QVERW = ' '
VERID = ' '
VRSVO = 'X'
IMPORTING
TOPMAT =
DSTST =
TABLES
STB = I_DATA~IT_STPOX
MATCAT =
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT I_DATA~IT_STPOX INTO I_DATA~WA_STPOX.
SELECT SINGLE FEVOR FROM MARC INTO I_DATA~WA_MARC-FEVOR WHERE MATNR = I_DATA~WA_STPOX-IDNRK AND
WERKS = I_DATA~WA_STPOX-WERKS AND
FEVOR = 'MLT'.
IF SY-SUBRC EQ 0.
GROSSWT = I_DATA~WA_STPOX-MNGLG.
EXIT.
ELSE.
CLEAR GROSSWT.
ENDIF.
ENDLOOP.
IF GROSSWT IS INITIAL.
MESSAGE TEXT-008 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~NETWT_VAL.
SET CURSOR FIELD 'ZACS018_STR-NETWT' LINE SY-STEPL.
IF NETWT IS INITIAL.
MESSAGE TEXT-010 TYPE 'E'.
ELSE.
IF NETWT >= GROSSWT.
MESSAGE TEXT-011 TYPE 'E'.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MASPAT_VAL.
IF MASTER_PATTERN IS INITIAL.
MESSAGE TEXT-014 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = MASTER_PATTERN.
IF SY-SUBRC <> 0.
MESSAGE TEXT-001 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARA-MTART NE 'FHMI'.
MESSAGE TEXT-012 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = MASTER_PATTERN AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-003 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARC-FEVOR NE 'MLD'.
MESSAGE TEXT-013 TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~PATSLNO_VAL.
IF PATTERNSLNO IS INITIAL.
MESSAGE TEXT-016 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN
AND PATTERNSLNO = PATTERNSLNO.
IF SY-SUBRC EQ 0.
MESSAGE TEXT-015 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MAX_REF.
SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO.
VERSNO = VERSNO + 1.
ENDMETHOD.
METHOD I_DATA~NOOFBOX_VAL.
IF BMSCH IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-PRD_ACT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-SHOTS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
MESSAGE TEXT-017 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~TOTTIME_VAL.
IF VGW01 IS INITIAL.
MESSAGE TEXT-018 TYPE 'E'.
ENDIF.
IF VGW01 > 480.
MESSAGE TEXT-019 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~TOTRUNWT.
CLEAR W_SUM_RUNWT.
LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.
W_SUM_RUNWT = W_SUM_RUNWT + I_DATA~WA_DISPLAY-NETWT * I_DATA~WA_DISPLAY-CAVITY.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~TOTCOMP_WT.
CLEAR W_SUM_COMPWT.
LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.
W_SUM_COMPWT = W_SUM_COMPWT + I_DATA~WA_DISPLAY-GROSSWT * I_DATA~WA_DISPLAY-CAVITY.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~CHECK_OK.
IF SAVE_OK = 'CHECK'.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD I_DATA~SCREEN_DISPLAY.
IF MASTER_PATTERN IS INITIAL
OR PATTERNSLNO IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
IF SAVE_OK NE 'CHECK'.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~DUP_CHECK. " IMPORTING IT_C_DISPLAY
DATA: W_PARTCODE LIKE I_DATA~WA_DISPLAY-PARTCODE.
I_DATA~IT_SORT_DISPLAY = IT_C_DISPLAY.
SORT I_DATA~IT_SORT_DISPLAY BY PARTCODE.
CLEAR W_PARTCODE.
LOOP AT I_DATA~IT_SORT_DISPLAY INTO I_DATA~WA_DISPLAY.
IF W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.
MESSAGE TEXT-027 TYPE 'E'.
ENDIF.
W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~BOX_YLD.
W_YIELD = ( W_SUM_COMPWT / W_TOT_WT ) * 100.
ENDMETHOD.
ENDCLASS.
inherited class for edit mode
CLASS CL_CONTROL_EDIT DEFINITION INHERITING FROM CL_CONTROL_EVENTS .
PUBLIC SECTION.
METHODS GET_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD TYPE ZACT02_BOXKOD
IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY
IT_DEL_DISPLAY LIKE I_DATA~IT_C_DISPLAY
TABC TYPE CX_TABLEVIEW.
METHODS PATSLNO_VAL_CHG IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .
ENDCLASS.
CLASS CL_CONTROL_EDIT IMPLEMENTATION.
METHOD GET_DATA.
IF MASTER_PATTERN IS NOT INITIAL AND PATTERNSLNO IS NOT INITIAL.
IF IT_C_DISPLAY IS INITIAL.
IF IT_DEL_DISPLAY IS INITIAL.
SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO..
SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO
CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO.
IT_DEL_DISPLAY[] = IT_C_DISPLAY[].
DESCRIBE TABLE IT_C_DISPLAY.
TABC-LINES = SY-TFILL.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD PATSLNO_VAL_CHG.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN
AND PATTERNSLNO = PATTERNSLNO.
IF PATTERNSLNO IS INITIAL.
MESSAGE TEXT-016 TYPE 'E'.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE TEXT-022 TYPE 'E'.
ENDIF.
ENDMETHOD.
ENDCLASS.
inheriting for display
CLASS CL_CONTROL_DISPLAY DEFINITION INHERITING FROM CL_CONTROL_EDIT .
PUBLIC SECTION.
METHODS GET_DISPLAY_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
VERSNO TYPE ZACT02_BOXKOD-VERSNO
CHANGING IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY
ZACT02_BOXKOD TYPE ZACT02_BOXKOD
TABC TYPE CX_TABLEVIEW.
ENDCLASS.
CLASS CL_CONTROL_DISPLAY IMPLEMENTATION.
METHOD GET_DISPLAY_DATA.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO..
IF SY-SUBRC <> 0.
MESSAGE TEXT-026 TYPE 'E'.
ENDIF.
SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO
CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO.
DESCRIBE TABLE IT_C_DISPLAY.
TABC-LINES = SY-TFILL.
ENDMETHOD.
ENDCLASS.
DATA: O_CONTROL_EVENTS TYPE REF TO CL_CONTROL_EVENTS.
DATA: O_CONTROL_EVENTS_EDIT TYPE REF TO CL_CONTROL_EDIT.
DATA: O_CONTROL_EVENTS_DISPLAY TYPE REF TO CL_CONTROL_DISPLAY.
SELECTION SCREEN
END OF SELECTION SCREEN
VARIABLE DECLARATION BEGIN WITH W_
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK TYPE SY-UCOMM.
DATA: W_TOT_WT LIKE ZACS018_STR-NETWT,
W_SUM_COMPWT LIKE ZACS018_STR-NETWT,
W_SUM_RUNWT LIKE ZACS018_STR-NETWT,
W_YIELD(5) TYPE P DECIMALS 2.
DATA: W_TIMLO TYPE SY-TIMLO,
W_MODE TYPE SY-UCOMM.
DATA: W_SCREEN_NO TYPE SY-DYNNR.
END OF VARIABLE DECLARATION
WORK AREAS DECLARATION BEGIN WITH WA_
DATA: WA_DISPLAY TYPE ZACS018_STR.
END OF WORK AREAS DECLARATION
INTERNAL TABLES BEGIN WITH IT_
DATA: IT_DISPLAY TYPE ZACS018_STR OCCURS 0.
DATA: IT_DISPLAY_PRD TYPE ZACS018_STR OCCURS 0.
DATA: IT_DEL_DISPLAY TYPE ZACS018_STR OCCURS 0.
DATA: IT_ZACT02_BOXKOD TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.
DATA: IT_ZACT02_BOXKOD_DEL TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_F4MASTERPAT OCCURS 0,
MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,
END OF IT_F4MASTERPAT.
DATA: BEGIN OF IT_F4PATSLNO OCCURS 0,
MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,
PATTERNSLNO LIKE ZACT02_BOXKOD-PATTERNSLNO,
VERSNO LIKE ZACT02_BOXKOD-VERSNO,
END OF IT_F4PATSLNO.
DATA: IT_EXCLUDE TYPE TABLE OF SY-UCOMM..
DATA : IT_DYNPRO LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
END OF INTERNAL TABLES DECLARATIONS
LOAD-OF-PROGRAM.
CREATE OBJECT O_CONTROL_EVENTS.
*& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
W_MODE = SAVE_OK.
CASE SAVE_OK.
WHEN 'CREATE'.
CALL SCREEN 101.
WHEN 'CHANGE'.
CREATE OBJECT O_CONTROL_EVENTS_EDIT.
CALL SCREEN 101.
WHEN 'DISPLAY'.
APPEND 'SAVE' TO IT_EXCLUDE.
APPEND 'CHECK' TO IT_EXCLUDE.
APPEND 'ADD' TO IT_EXCLUDE.
CREATE OBJECT O_CONTROL_EVENTS_DISPLAY.
CALL SCREEN 101.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0102 OUTPUT
text
MODULE STATUS_0102 OUTPUT.
CALL METHOD CL_TABLE_CONTROL=>M3 EXPORTING SAVE_OK = SAVE_OK CHANGING C_TABC = TABC.
CALL METHOD O_CONTROL_EVENTS->I_DATA~CHECK_OK EXPORTING SAVE_OK = SAVE_OK.
CALL METHOD O_CONTROL_EVENTS->I_DATA~SCREEN_DISPLAY EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK = SAVE_OK.
CALL METHOD CL_TABLE_CONTROL=>M4 EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK = SAVE_OK
CHANGING C_TABC = TABC.
DESCRIBE TABLE IT_DISPLAY.
IF TABC-LINES <= 1.
IF SY-TFILL = 0.
TABC-LINES = 1.
ENDIF.
ENDIF.
IF SAVE_OK NE 'CHECK'.
IF ZACT02_BOXKOD-TOOL_ACT <> 'X'.
CLEAR ZACT02_BOXKOD-PRD_ACT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTRUNWT EXPORTING IT_C_DISPLAY = IT_DISPLAY
IMPORTING W_SUM_RUNWT = W_SUM_RUNWT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTCOMP_WT EXPORTING IT_C_DISPLAY = IT_DISPLAY
IMPORTING W_SUM_COMPWT = W_SUM_COMPWT.
CLEAR W_TOT_WT.
W_TOT_WT = W_SUM_RUNWT + W_SUM_COMPWT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~BOX_YLD EXPORTING W_SUM_COMPWT = W_SUM_COMPWT
W_TOT_WT = W_TOT_WT
IMPORTING W_YIELD = W_YIELD.
IF W_MODE <> 'CREATE'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-SHOTS'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF W_MODE = 'DISPLAY'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ADD' OR SCREEN-NAME = 'ICON_DELETE'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE. " STATUS_0102 OUTPUT
*& Module STATUS_0101 OUTPUT
text
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'STANDARD' EXCLUDING 'SAVE'.
IF W_MODE = 'CREATE'.
SET TITLEBAR 'STANDARD'.
ELSEIF W_MODE = 'DISPLAY'.
SET TITLEBAR 'STD_DIS'.
ELSE.
SET TITLEBAR 'STD_EDIT'.
ENDIF.
IF SAVE_OK = 'CHECK'.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL > 0.
SET PF-STATUS 'STANDARD'.
ENDIF.
ENDIF.
IF W_MODE = 'DISPLAY'.
SET PF-STATUS 'STANDARD' EXCLUDING IT_EXCLUDE.
ENDIF.
IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND
ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'TOP'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF W_MODE = 'DISPLAY'.
IF ZACT02_BOXKOD-VERSNO IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMODULE. " STATUS_0101 OUTPUT
*& Module USER_COMMAND_0102 INPUT
text
MODULE USER_COMMAND_0102 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'ADD'.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL >= TABC-LINES.
IF TABC-LINES < 16.
TABC-LINES = SY-TFILL + 1.
ENDIF.
ENDIF.
WHEN 'DEL'.
LOOP AT IT_DISPLAY INTO WA_DISPLAY WHERE MARK = 'X'.
DELETE IT_DISPLAY INDEX SY-TABIX.
ENDLOOP.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL >= 1.
TABC-LINES = SY-TFILL.
ELSE.
TABC-LINES = 1.
ENDIF.
WHEN 'CHECK'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~DUP_CHECK EXPORTING IT_C_DISPLAY = IT_DISPLAY.
WHEN 'SAVE'.
W_TIMLO = SY-TIMLO.
IF W_MODE = 'CREATE'.
PERFORM CREATE_SAVE.
ENDIF.
IF W_MODE = 'CHANGE'.
PERFORM EDIT_SAVE.
ENDIF.
ENDCASE.
IF W_MODE = 'DISPLAY'.
SAVE_OK = 'CHECK'.
ENDIF.
ENDMODULE. " USER_COMMAND_0102 INPUT
*& Module MOD_TABLE INPUT
text
MODULE MOD_TABLE INPUT.
CALL METHOD CL_TABLE_CONTROL=>M2 EXPORTING ZACS018_STR_C = ZACS018_STR CHANGING IT_C_DISPLAY = IT_DISPLAY.
ENDMODULE. " MOD_TABLE INPUT
*& Module ASSIGN OUTPUT
text
MODULE ASSIGN OUTPUT.
CALL METHOD CL_TABLE_CONTROL=>M1 EXPORTING WA_C_DISPLAY = WA_DISPLAY IMPORTING ZACS018_STR_C = ZACS018_STR.
ENDMODULE. " ASSIGN OUTPUT
*& Module CHK_PARTCODE INPUT
text
MODULE CHK_PARTCODE INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~PARTNO_VAL EXPORTING PARTCODE = ZACS018_STR-PARTCODE.
ENDMODULE. " CHK_PARTCODE INPUT
*& Module CHK_CAVITY INPUT
text
MODULE CHK_CAVITY INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~CAVITY_VAL EXPORTING CAVITY = ZACS018_STR-CAVITY.
ENDMODULE. " CHK_CAVITY INPUT
*& Module CHK_MAINB INPUT
text
MODULE CHK_MAINB INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MAINBI_VAL EXPORTING MAINB = ZACS018_STR-MAINB.
ENDMODULE. " CHK_MAINB INPUT
*& Module GET_COMP_WT INPUT
text
MODULE GET_COMP_WT INPUT.
IF W_MODE <> 'DISPLAY'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~GET_COMP_WT EXPORTING PARTCODE = ZACS018_STR-PARTCODE
IMPORTING GROSSWT = ZACS018_STR-GROSSWT.
ENDIF.
ENDMODULE. " GET_COMP_WT INPUT
*& Module CHK_NETWT INPUT
text
MODULE CHK_NETWT INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~NETWT_VAL EXPORTING NETWT = ZACS018_STR-NETWT
GROSSWT = ZACS018_STR-GROSSWT.
ENDMODULE. " CHK_NETWT INPUT
*& Module CHK_MPAT INPUT
text
MODULE CHK_MPAT INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MASPAT_VAL EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.
ENDMODULE. " CHK_MPAT INPUT
*& Module CHK_SLNO INPUT
text
MODULE CHK_SLNO INPUT.
IF W_MODE = 'CREATE'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~PATSLNO_VAL EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
ELSEIF W_MODE = 'CHANGE' .
CALL METHOD O_CONTROL_EVENTS_EDIT->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
CALL METHOD O_CONTROL_EVENTS_EDIT->GET_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD
IT_C_DISPLAY = IT_DISPLAY
IT_DEL_DISPLAY = IT_DEL_DISPLAY
TABC = TABC.
ELSE.
CALL METHOD O_CONTROL_EVENTS_DISPLAY->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
ENDIF.
ENDMODULE. " CHK_SLNO INPUT
*& Module MAX_VER INPUT
text
MODULE MAX_VER INPUT.
IF W_MODE = 'CREATE'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MAX_REF IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO.
ENDIF.
IF W_MODE = 'DISPLAY'.
IF ZACT02_BOXKOD-VERSNO IS INITIAL.
MESSAGE TEXT-023 TYPE 'E'.
ENDIF.
IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND
ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL AND
ZACT02_BOXKOD-VERSNO IS NOT INITIAL.
CALL METHOD O_CONTROL_EVENTS_DISPLAY->GET_DISPLAY_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
VERSNO = ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD
IT_C_DISPLAY = IT_DISPLAY
TABC = TABC.
ENDIF.
ENDIF.
ENDMODULE. " MAX_VER INPUT
*& Module CHK_NOBOXES INPUT
text
MODULE CHK_NOBOXES INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~NOOFBOX_VAL EXPORTING BMSCH = ZACT02_BOXKOD-BMSCH.
ENDMODULE. " CHK_NOBOXES INPUT
*& Module CHK_TOTTIME INPUT
text
MODULE CHK_TOTTIME INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTTIME_VAL EXPORTING VGW01 = ZACT02_BOXKOD-VGW01.
ENDMODULE. " CHK_TOTTIME INPUT
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'INITIAL'.
SET TITLEBAR 'STANDARD_MAIN'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module EXIT_PROGRAM INPUT
text
MODULE EXIT_PROGRAM INPUT.
LEAVE TO TRANSACTION 'ZAC16'.
ENDMODULE. " EXIT_PROGRAM INPUT -
Linking multiple textboxes in a form Acrobat Pro 9?
Hi all,
I'm making an electronic form with Acrobat Pro 9.
The setup was made in Indesign CS3 after which the form boxes were detected by Acrobat Pro 9. There is a larger text area which consists of multiple lines of text (to be filled in by the user).
For this area there are 2 options:
1- Have multiple textboxes linked together so the text flows to the next box automatically when the current one is full.
or.
2- Have 1 multiline textbox with a larger linespacing.
The problem with 1 is, I can't seem to link multiple boxes together in Acrobat Pro 9. The problem with 2 is, I have no idea how to increase the linespacing.
Does anybody have any idea how to accomplish either 1 or 2?
Thanks in advance,
BasLinking the text boxes is not really possible, at least in a seamless manner. I've seen a few approaches using JavaScript, but none that are very well implemented. My usual suggestion is to redesign the form to get rid of the lines and just use a single multiline text box, perhaps with a faint border to indicate to the user where the field is.
If you need the lines because the form might be printed and filled by hand or some other means, then you can set up the field with a bit of JavaScript to set the background color to white if the user enters any text, and transparent otherwise. That way, when the document is printed, the lines won't appear if any text is entered, but will if not. You will not need to be concerned about the line spacing of the field matching up with the lines.
George
Maybe you are looking for
-
How to generate PDF report in Sharepoint Office 365
Hi, We are building a custom webpart using sandbox solution and would like to generate report in PDF. Anyone have a clue? Thanks in advance ; Cheers, IXI solution
-
Installin Oracle 10g rel 2 on windows 2003 server
Hi I am trying to install oracle10g on windows 2003 server standard edition SP1. When i run the OUI i get the following error. OUI-10133:Invalid staging area. There are no top level components for Windows Nt or Windows 2000 area. And i am not able to
-
"lower than intended output quality: frame blending DISabled"???
When I print to tape, after all conforming processes have finished I get "Note: The following conditions exist in this sequence which may result in lower than intended output quality. The following can be adjusted using the Render Control tab in the
-
Solution: Software Update Notifications for Non-Admin-Users
This is a follow up to [that thread|http://discussions.apple.com/thread.jspa?threadID=1642646]. Problem: Since I'm using Mac OS X the software update notification only appears if you are logged in as an user with administrative rights. In a real mult
-
How to setup verizon.ne​t primary email on new account
Hello, I've been searching for hours for instructions on how to set up my primary verizon.net account for first time use with no results. I was able to determine my res id but not my password. Any help greatly appreciated. Forgot to mention, I do not