Adding multiple fields with ASP & SQL
Hi there --
I have a database that holds subscription info. Based on the time of payment and the length of subscription, I calculate an accrued monthly amount, assign that amount to a variable, and assign it to a month on a Web page.
I want to tally up the totals for the columns that result. That means I'll need to add up several fields per record, and also add up all the records - like this:
Customer 1: Field 1 + Field 2 + Field 3
Customer 2: Field 1 + Field 2 + Field 3
... and so on - I want all those fields added together.
I can get what looks like the last record's fields summed by using <% = (Field1) + (Field2) + (Field3) %> but it doesn't tally up all the records.
It's possible to do, isn't it? Help?
Thanks!
Thank you!
I am looping through the recordset. Can you tell me how I'd handle those variables? I can't quite get my head around it.
Fields 1, 2 and 3 are already variables calculated from the values in the database, and they're getting output into that recordset loop...
Similar Messages
-
Pretty much what my subject line says. My client wants example text in the fields of a PDF form that will disappear when the cursor enters the field. When I try this with show/hide layers, the layer becomes visible as soon as I enter form editing mode, and the action doesn't work properly. Any help? I was able to get it to work with a single field, but multiple fields with example text on multiple layers doesn't work for some reason.
Thanks for any help.Hi Jeffrey ,
You need to use a custom Format script for the field.
Regards
Sukrit Dhingra -
Adding Multiple Records with Express
Hello All,
We have a CRUD application written in Express 2.0 that allows users to
enter part numbers and associated information. Our part numbers are
structured as a prefix, alpha, suffix and 'M' or 'P' number variations :
1 AB 2 P3 for example. We have provided functionality to allow the
user to enter multiple P or M variations all at once, say 1 AB 2 P1 thru
P100,
using a dialog box where they enter the starting number, ending number
and step.
The problem comes in the AddRecordsToSave method.
This method correctly builds the array of BusinessClass needed to be
passed to the Save method, however, the Save method adds only the
initial record (the one from the original Express data entry screen)
to the database.
I have traced the problem to the BusinessClient.Update method called
from
Save. I believe I am missing some query information that should be
built into
AddRecordsToSave, but I am completely unsure of how to provide this.
As you can see in the attached code, we are using the LogAttr method to
post
changes. Apparently this is not enough. What am I missing here?
The InstanceStatus key of the added records is set to ST_EMPTY by
default....
I have tried forcing this to ST_UPDATE, only to receive an error that it
should
be ST_EMPTY......?? I am confused. If anyone can shed some light on this
for me,
I would appreciate it. Thanks for any help.
Scott Guman E-mail: [email protected]
IRM Analyst II Phone: (610) 709-2144
Mack Trucks, Inc. Fax: (610) 709-4713
Allentown, PA 18105Hi There,
If attr is not specified in your LogAttr() call, the
BusinessClass
will be put in the update state but not attributes will
be logged.
That may be the reason why only the displayed record(
fetched from
the DB ) is getting logged, but not the new records.
I think you should use ATTR_SIMPLE with LogAttr. This
will cause
all the attributes to be logged and a proper query to
be built
to insert the newly created record. I am no Express
Guru,
but it works fine for me. Also, try not to modify
InstanceStatus directly.
Sometimes it might lead to inconsistencies. The online
help
The Add Records to Save example really helps.
Good luck!
Ajith Kallambella. M.
Forte Systems Engineer,
International Business Corporation
-----Original Message-----
From: Scott Guman [SMTP:[email protected]]
Sent: Wednesday, September 16, 1998 9:34 AM
To: 'Forte Users'
Subject: Adding Multiple Records with Express
Hello All,
We have a CRUD application written in Express 2.0 that
allows users to
enter part numbers and associated information. Our
part numbers are
structured as a prefix, alpha, suffix and 'M' or 'P'
number variations :
1 AB 2 P3 for example. We have provided functionality
to allow the
user to enter multiple P or M variations all at once,
say 1 AB 2 P1 thru
P100,
using a dialog box where they enter the starting
number, ending number
and step.
The problem comes in the AddRecordsToSave method.
This method correctly builds the array of BusinessClass
needed to be
passed to the Save method, however, the Save method
adds only the
initial record (the one from the original Express
data entry screen)
to the database.
I have traced the problem to the BusinessClient.Update
method called
from
Save. I believe I am missing some query information
that should be
built into
AddRecordsToSave, but I am completely unsure of how to
provide this.
As you can see in the attached code, we are using the
LogAttr method to
post
changes. Apparently this is not enough. What am I
missing here?
The InstanceStatus key of the added records is set to
ST_EMPTY by
default....
I have tried forcing this to ST_UPDATE, only to receive
an error that it
should
be ST_EMPTY......?? I am confused. If anyone can shed
some light on this
for me,
I would appreciate it. Thanks for any help.
Scott Guman E-mail:
[email protected]
IRM Analyst II Phone: (610) 709-2144
Mack Trucks, Inc. Fax: (610) 709-4713
Allentown, PA 18105
<< File: AddRecordsToSave.txt >>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
How can I return multiple values with PL/SQL Web Services
Hi,
I'm new to developping Web Services. I'm doing some tests with JDeveloper and OC4J on my local machine with a Web Services based on a PL/SQL function within a package. Right now that function only returns one value. So the xml response only has one output.
I'd like to know how can I return multiple values with my PL/SQL Web Service. For example, if I want to return an employee's name and id? And that the xml contains two output : <employee>, <empid>?
Reginald
ps : I have searched the forum and I couldn't find an answer to this question, if that has been discussed AND answered before, can you please post the link? ThanksAlright, I actually found my answer. Since this was asked I think as a followup somewhere else I'll give my answer.
It is very simple, all you have to do is create an Object Type and then Return that object type. After that, JDeveloper will take care of everything and you will have an xml response with multiple values. Here
{color:#ff0000}
create or replace TYPE person AS OBJECT
( id_interv number,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
date_birth date
);{color}
Then your function used in your Web Service should look something like this :
{color:#ff0000}
function info_emp (p_empno IN VARCHAR2) RETURN person AS
l_emp person := person(-1,'','','');
BEGIN
SELECT first_name
,last_name
,emp_no
INTO l_emp.first_name
,l_emp.last_name
,l_emp.emp_no
FROM emp
WHERE upper(emp_no) = upper (emp_no);
{color}
{color:#ff0000}
RETURN l_emp;
EXCEPTION WHEN NO_DATA_FOUND THEN
l_emp := person (-1,'n/a','n/a','n/a');
RETURN l_emp ;
END info_emp;{color}
{color:#ff0000}{color:#000000}After that, this is what the xml response looks like :{color}{color}
<first_name xsi:type="xsd:string">John</first_name>
<last_name xsi:type="xsd:string">Doe</last_name>
<emp_no xsi:type="xsd:string">0250193</emp_no> -
Adding a field to an sql statement in Oracle Reports error ORA-00933
We have been requested to add a field that already exists in the table referred to by the sql statement in Oracle Reports Builder. The report was set up by a consultant about 3 yrs ago and we don't really have much skill in this area. What is happening when I try to modify the SQL statement, either adding a field or deleting a field to the SELECT statement, causes an error message preventing the statement from being saved. The only way out of the error message is to click Cancel. The error message is
ORA-00933:SQL command not properly ended
ORDER BY Program ==> NAME
Even adding or deleting a space anywhere in the SQL statement causes the error (not adding any new fields). A coworker found that if we comment out the ORDER BY, the statement will accept the new field in the SELECT section, however then we lose the order by functionality. I would like to add one additional field before the FROM. Not sure if any additional data are needed. Thank you.
SELECT p.person_uid PIDM_KEY, p.id_number ID,
p.full_name_lfmi name,
p.BIRTH_DATE, p.GENDER Sex,
Decode(a.residency,'D',p.Primary_ethnicity,'F') Ethn,
a.academic_period TERM,
CASE WHEN :p_group_by = 'PROGRAM' THEN a.program
ELSE ' '
END AS Program,
a.COLLEGE, a.degree, a.major, ' ' rule,
a.STUDENT_POPULATION,a.STUDENT_LEVEL, a.application_status Status, a.application_status_date app_sts_dte,
ad.decision_date1 Last_Dec_Date,
ad.decision1||' '||ad.decision2||' '|| ad.decision3||' '|| ad.decision4||' '|| ad.decision5 Decisions,
/* Deposit Date uses the last term entered in :p_term parameter string */
(SELECT MAX(deposit_effective_date) FROM usf_as_deposit WHERE account_uid = a.person_uid &term_clause group by account_uid) AS "DEPOSIT DATE",
ph.phone as PHONE,
CASE WHEN PS.FIRST_CONTACT IN ('NET','PAP','COM','COP') THEN PS.First_Contact
ELSE CASE WHEN ps.latest_contact IN ('NET','PAP','COM','COP') THEN PS.Latest_Contact
ELSE ' '
END
END AS FIRST_CONTACT,
DECODE(:p_address,'Y',REPLACE(adr.street1||' '||adr.street2||' '||adr.street3||' '||adr.city||','||adr.state||' '||adr.nation||' '||adr.zip,' ',' '),' ') as address, adr.nation, adr.state,
goremal_email_address email, a.residency, a.application_date, p.primary_ethnicity, c.cohort
FROM MST_ADMISSIONS_APPLICATION A,
MST_PERSON p,mst_pre_student PS, Admissions_Cohort c, usf_v_phone_pr_ma ph,
MST_admissions_decision_slot AD, usf_v_email, usf_v_address_dr_lr_ma_pr adr
WHERE a.PERSON_UID = p.person_uid
AND a.curriculum_priority = 1
AND a.person_uid = ps.person_uid
AND a.person_uid = ad.person_Uid(+)
AND a.person_uid = goremal_pidm(+)
AND a.person_uid = adr.pidm(+)
AND a.person_uid = ph.pidm(+)
AND ph.rnum(+) = 1
AND a.person_uid = c.person_uid(+)
AND a.academic_period = c.academic_period(+)
&Where_Clause
/* TAKE OUT FOLLOWING LINE AFTER DATA IS CLEANED UP */
AND NOT(p.id_number = '00000000' OR SUBSTR(p.id_number,1,1) = 'B' OR UPPER(p.full_name_lfmi) LIKE '%TESTING%')
AND a.application_status_date >= NVL(:p_as_of_date,sysdate-8000)
AND a.academic_period = ad.academic_period(+)
AND a.application_number = ad.application_number(+)
AND a.degree <> 'ND' /* AND a.college <> 'LW' -- Does not need non-degree and law students */
&Cohort_Clause
ORDER BY Program &ORDER_CLAUSEHi Denis,
I tried your suggestion. The good thing is that adding the comma allowed me to be able to add a.campus to the select statement, unfortunately, another error message happened.
ORA-00936: missing expression SELECT p . person_uid PIDM_KEY ,
p . id_number , p . full_name_lfmi name , p . BIRTH_DATE , p . GENDER Sex ,
Decode ( a . residency , 'D' , p . Primary_Ethnicity , 'F' ) Ethn , a . academic_period TERM ,
CASE WHEN : P_group_by = 'PROGRAM THEN a I started over and tried only putting in the comma and get the same message even though I didn't add campus. After that, removed the comma which led to the ORA-00933 error message. So once again, I had to close the file without saving, in order for the report to run at all. -
Hi, I am pretty new to Adobe Designer and was just wondering if anyone can tell me how to add multiple number fields in form. I took one of the blank template (expense claim) and customized to fit our needs. However, in the template they don't have any place where they are adding two different cells/fields and I have a case where I have to add two different fields (etc. Company paid expense and Employee paid expense to get Total expense). Hope this makes sense if not I can e-mail the form to if you would like to see it.
Thanks in advance
APYou can insert a Numeric Field object from the Library palette. In the Object palette, click the Binding tab and in the Name box, type CompanyPaidExpense (or whatever name you like). Repeat for EmployeePaidExpense. Now add a Numeric Field object and name it TotalExpense. With TotalExpense selected, in the Script Editor type CompanyPaidExpense + EmployeePaidExpense. You may want to have a look at "Quick Start 2: Creating a purchase order form" in the help. It walks you through creating a sample form that contains a calculation. I hope this answers your question.
-
Adding multiple contacts with Skype manager
This support page: https://support.skype.com/en/faq/FA10867/how-do-i-add-other-members-of-my-skype-manager-to-my-contac... indicates that there's an option on the left-hand side to select multiple contacts. I'm not seeing this on the page described, I can only add contacts one by one. Is this feature something I need to "turn on" somewhere in my settings?
In addition, I've noticed in the past month or so, even by adding contacts one-by-one, only around the first 40 people receive the request to be added as a contact. After that, no one receives invites. This is very frustrating for adding all of our business's contacts at the same time.
I've tried this in Mac 10.7.4 and 10.8. I've also switched to a PC, but the same thing happens. Does anyone have any insights?Just an update (2013 Nov 25). There is now an option to add multiple contact using csv file. Here is a simple direction: Create a csv file with 2 columns 1st column is the email address and the 2nd column is the name of the account. Then go to Members > Add members > create business accounts > then click on Browse..., choose the file you just created and it should be able to import the contacts.
-
Populating text field with pl/sql expression or function
Hi all,
I have a function which return an object.
create or replace type emp2_oty is object (server_name varchar2(20),
status varchar2(4),
refresh_on date,
dw_refresh date)
create or replace type emp2_nt is table of emp2_oty
create or replace function testserver12 return emp2_nt
is
v_emp2_nt emp2_nt:=emp2_nt();
a number;
b number;
c number;
begin
for r_emp in (select * from testing)
loop
a := extract(DAY FROM r_emp.dw_refresh);
c := extract(DAY FROM r_emp.refresh_on);
b := extract(DAY FROM SYSDATE);
if (a != b) or (c != b) or (r_emp.status != 'on') then
v_emp2_nt.extend; v_emp2_nt(v_emp2_nt.last):=emp2_oty(r_emp.server_name,r_emp.status,r_emp.refresh_on,r_emp.dw_refresh);
end if;
end loop;
return v_emp2_nt;
end testserver12;
The pl/sql code to get the return value displayed. It works very fine in sqlworkshop.
declare
v_temp_nt emp2_nt;
i number := 1;
begin
v_temp_nt:= testserver12();
for i in (v_temp_nt.first)..(v_temp_nt.last) loop
dbms_output.put_line(v_temp_nt(i).server_name||' '||v_temp_nt(i).status||' '||v_temp_nt(i).refresh_on ||' '||v_temp_nt(i).dw_refresh);
end loop;
end;
I want it to get display the output into the text field.
Please could any one help me to achieve this.
Thanks in advance
bye
SrikaviPretty easy, add a CHR(10) (ASCII for carriage return) in the string concatenation.
e.g.
l_result:= l_result || (v_temp_nt(i).server_name || ' ' ||
v_temp_nt(i).status || ' ' ||
v_temp_nt(i).refresh_on ||' ' ||
v_temp_nt(i).dw_refresh) || CHR(10);Also why over complicate the whole process by using objects and types by simplifying the code and also improving readability and maintenance by replacing the PL/SQL function body with something similar to (the conditions have been negated and may have not been what you meant in the first place)
DECLARE
v_text_return VARCHAR2(2000);
l_cur CURSOR IS
SELECT t.server_name,
t.status,
t.refresh_on,
t.dw_refresh
FROM testing t
WHERE To_Char(t.refresh_on, 'DD') = To_Char(SYSDATE, 'DD')
AND To_Char(t.dw_refresh, 'DD') = To_Char(SYSDATE, 'DD')
AND Upper(t.status) = 'ON');
BEGIN
FOR r_emp in l_cur
LOOP
v_text_return := v_text_return || r_emp.server_name || ' ' ||
r_emp.status || ' ' ||
r_emp.refresh_on || ' ' ||
r_emp.dw_refresh || CHR(10);
END LOOP;
RETURN v_text_return;
END;Hope this helps -
Adding multiple slides with images from iPhoto
OK you use to be able to simply drag and drop 25 images in the right column and it creates a slide for each image, I am in v6.3 and it is not allowing me to do that anymore. How you insert multiple images and each on their own slide, I have 600 images to add and clicking insert slide and adding image is not a good way to do this.
Your Mac information is confusing;
Mac OS 10.5.2 is an outdated version of Leopard
There is no Keynote version 6.3
The latest version of Mac os X is 10.10.3
The latest version of Keynote is 6.5.3
All versions of Keynote create slides from images by drag and drop.
If you are sure this does not work, delete Keynote and re-install from the Mac App Sore. -
How to combine a raw xml file stored in a table field withe other sql query in . xsq
I created .xsql file like this:
<xsql:query>
select xml_file from my_table
</xsql:query>
xml_file is field in my_table,it stores raw xml files.
the xml file in the result is in text format, not in xml format,how to convert the file into xml format in the resultSee the "document" demo that ships with the XSQL servlet for an example of how to do this.
It lives in the ./demo/document subdirectory. -
Insert multiple rows with one sql statement in access
Hi,
I'm trying to copy a table into another. What I want to do is to use "Insert into table1 select * from table2 where field > val". Something like that. I know a lot of databases support it. I was wondering if ms access ODBC driver also supports it. I searched quite a bit and haven't found a definitive answer on this.
Thank youYes, M$ Access 2000 supports it. This is from their help:
INSERT INTO Statement
Adds a record or multiple records to a table. This is referred to as an append query.
Syntax
Multiple-record append query:
INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression
Single-record append query:
INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])
The way you've written the INSERT, table1 and table2 have to have the same # of columns and the same types, of course. -
I have a biztalk application that has a source schema and destination schema inside a map.
A new field/column in the sql database has been created. Now I have to add this field/record to my source schema.
My question is, do I manually add this field/record to my source schema and update my source map or do I have to generate a new schema using add generated items>consume adapter service>sql and update my source map ?You would need to add the fields to the message schema your SQL data is mapped onto.
Also update the SQL statement which is executed inside your sql adapter settings to return the new columns.
Rachit
Please mark as answer or vote as helpful if my reply does -
SES Filter - Adding Multiple Filters with same custom attribute
Hi,
I have added custom search attributes and am able to add a filter to the doOracleSearch method.
filter[0] = new Filter(new Integer(100), "NUMBER", "equals", 10020);
Now I have to add another filter for same search attribute with or condition, how can I do that..
I tried following..
filter[0] = new Filter(new Integer(100), "NUMBER", "equals",10020);
filter[1] = new Filter(new Integer(100), "NUMBER", "equals", 10049);
But how do I specify it is or and the above code is not working.
Thank you.
Vasu.Here is an example of this using 11g. Note you will need to login programatically if data is secured.
// Create search service and set SOAP URL
OracleSearchService searchService = new OracleSearchService();
searchService.setSoapURL("http://myserver:7777/search/query/OracleSearch");
// Get data group to search
DataGroup dataGroup = new DataGroup();
dataGroup.setGroupName("MyGroup");
DataGroup[] dataGroups = new DataGroup[1];
dataGroups[0] = dataGroup;
// Get list of all attributes to fetch
Attribute[] attributesAll = searchService.getAllAttributes("en");
ArrayList<Integer> attributeIds = new ArrayList<Integer>();
for(Attribute a: attributesAll)
attributeIds.add(a.getId());
Integer attributeIdArrayAll[] = new Integer[attributeIds.size()];
attributeIdArrayAll = attributeIds.toArray(attributeIdArrayAll);
// Create filters (BE SURE THE FILTER ID IS CORRECT - I do not suggest you hard-code it but rather iterate through list of all attributes above and get ID that way)
Filter[] myFilters = new Filter[2];
myFilters[0] = new Filter(124, "Number", "EQUALS", "129224");
myFilters[1] = new Filter(124, "Number", "EQUALS", "123730");
// Query (BE SURE TO USE "or" as the operator between filters)
OracleSearchResult result = searchService.doOracleSearch("", 0, 50, false, false, dataGroups, "en", null, true, "or", myFilters, attributeIdArrayAll);
// Get count
int hits = result.getEstimatedHitCount().intValue();
// Print results
ResultElement[] resElements = result.getResultElements();
for(int i = 0; i < resElements.length; i++)
// Get document
ResultElement doc = resElements;
Hope this helps! -
Update multiple fields with same/diffrent name
I have the form is displayed order no, message and sent_date. Mesage and Date sent are editable. I can change value from both colums in diffrent values then hit submit for update. My code below is loop thur message and date sent field then update them based on the pk ID. Unfortunately, it didn't work as the expected. Can you please help?
Oder NO
Message
Date Sent
5463
first message
12-10-12
5463
second message
10-13-12
<cfset myIds = ArrayNew(1)>
<cfform name="update" method="post">
<cfloop query="qMesg">
<cfscript>
ArrayAppend(myIds, "#id#");
</cfscript>
<cfinput type="text" value="#mesg#" name="mesg">
<cfinput type="text" value="#dateformat(sent_date, 'mm-dd-yy')#" name="sent_date" validate="date" />
<cfinput type="submit" name="submit" value="Update">
</cfloop>
<cfset myIdsList = #ArrayToList(myIds, ",")#>
<cfinput type="hidden" name="ids" value="#myIdsList#">
</cfform>
<!---update--->
<cfif isDefined("form.submit")>
<cfloop index="idIdx" list="#newsids#" delimiters=",">
<cfloop list="#form.mesg#" index="x">
<cfloop list="#form.sent_date#" index="y">
update [tblMessg]
set mesg = <cfqueryparam value="#x#" cfsqltype="cf_sql_varchar">,
sent_date = <cfqueryparam value="#y#" cfsqltype="cf_sql_date">
where id = <cfqueryparam value="#idIdx#" cfsqltype="cf_sql_integer">
</cfloop>
</cfloop>
</cfloop>
</cfif>I am with Dan on this (identifying the field names with IDs), but prefer cfloop to cfoutput within cfform. Furthermore, I would put the submit button outside the loop.
<cfloop query="qMesg">
<cfscript>
ArrayAppend(myIds, "#id#");
</cfscript>
<cfinput type="text" value="#mesg#" name="mesg#id#">
<cfinput type="text" value="#dateformat(sent_date, 'mm-dd-yy')#" name="sent_date#id#" validate="date" />
</cfloop>
<cfinput type="submit" name="submit" value="Update">
With proper handling, one loop should be sufficient on the action page.
<cfloop index="idIdx" list="#form.ids#" delimiters=",">
<cfset current_message = form["mesg" & idIdx]>
<cfset current_date_sent = form["sent_date" & idIdx]>
<cfquery>
UPDATE tblMessg
SET mesg = <cfqueryparam value="#current_message#" cfsqltype="cf_sql_varchar">,
sent_date = <cfqueryparam value="#current_date_sent#" cfsqltype="cf_sql_date">
WHERE id = <cfqueryparam value="#idIdx#" cfsqltype="cf_sql_integer">
</cfquery>
</cfloop> -
Can we handle multiple fields delimiter in sql*loader
Hi,
Users wants to load the data from each of their individual system. But problem is when they save the csv file, due to their sytem setup some files gettng saved with pipe (|) seperated and on some system it is saved with comma (,) sepearted fields.
Can we handle both these field seperator in control file?
Please suggest
Thanks,
RahulRahul,
I recommned you should use "|" as "," can be embedded in a text string. I guess you can pass a directive to use to deliver "|" delimited file :). If you want to handle both then you might have to write a shell script or bat to pass delimiter as an argument which will edit and replace your control file.
Regards
Maybe you are looking for
-
Mid 2010 MacBook Pro 13inch - Issues w/ all browsers
Hello all! Please read the entire post before replying. I have attempted several fixes for my problem based on other posts, but to no avail. Problem: My mid-2010 MBP is having issues w/ all browers (Safari, Chrome, Mozilla). Simply, I'll be online
-
Creating And Deploying A JWSDP Web Service Client to Weblogic 8.1
This setup produces an EAR containing a message driven bean in a jar file. When the MDB receives a message it checks to see if there is any data in a database table and if so calls the web service with that data. These instructions are for MS-Windows
-
Disk Utility Reports Error, Can't Repair
Well, I just ran a "verify disk" on my harddrive, this is the report. "Verifying volume "Macintosh HD" Checking HFS Plus volume. Checking Extents Overflow file. Checking Catalog file. Checking multi-linked files. Checking Catalog hierarchy. Checking
-
InDesign Crash always on the same page
Hi to all, I've a recurrent crash of InDesign when a browse a document of many pages. The crash occurres always on the same page with this error log: inDesign Crash always on the same page - Pastebin.com Can you help me to understand the cause? Thank
-
I need to know what the iPhone 4S packaging is made of and where the materials are brought from to make that packaging. And I would also like to know where this is all manufactured. And please dont just send me links...thnx