Filling checkboxes with data from database
Hello.
I need help setting a checkbox value to checked if the corresponding field has "Yes" saved in the database.
I can do this with textboxes, but haven't figured out how to do it with checkboxes or drop down lists.
If you can help, please do.
Thanks.
In all honesty, problems like this is why programmers tend to make more money than web developers. :) You more or less need to figure out what you want to happen, and then write the code to make that happen. Let me give you an example...
Let's say we're building a web site that requires people to register and then log in. When they register, they get a checkbox where they can opt in for spam. We've decided to store the user's preference in a database, essentially a field called spam which contains either a "yes" or a "no" value. When the time comes to send out those emails, we simply select all records in the database where that spam field is set to "yes".
So far, so good.
If the user decides to check that opt-in checkbox, then we want to set the spam field to "yes". If he already exists in the database, we can use an SQL update statement to set the field. If he doesn't exist, we'll have to create a record for him and set all relevant fields with an insert statement. If he unchecks the box (or leaves it unchecked), then we want to do the same thing but make sure the spam field is set to "no".
When the user clicks on the submit button, the checkbox is submitted (or not) to the server as one of the parameters. We simply parse the parameters, see if the checkbox was checked or not, then write a little bit of JSP (or Java) code that sends the appropriate SQL statement as above, to the database.
That's the basic concept.
There are many slight variations. For example, several web sites will fill in that opt-in checkbox by default every time you visit their site, and you have to uncheck it if you don't want spam. The logic remains the same - just write a little bit of code that sees if the form passed you the checkbox filled in, and then either fill in, or erase the corresponding field in the database.
(I'm not bothering to add code here because there are many ways to do this, and which way is best really depends on what code college_amy has written so far.)
Similar Messages
-
How to populate Adobe LiveCycle Designer generated PDF Forms with data from Database in Windows app
Hi
I have a PDF template designed in Adobe LiveCycle Designer. This template has form fields which needs to be filled with data programmatically. I am using windows application in C#.Net 2005 in which I want to retrieve data from database and merge this data into PDF form in respective fields.
How this can be achieved?
I searched a lot & I found that we can process the XDP file generated from PDF to acheive this. I created the XDP file out of the PDF template created in designer. But I don't know how to merge data from database into that XDP file in respective fields and again convert this XDP file back to PDF programmatically. Can anybody help me ? This is urgent.
Thanks in advance.
SambhajiPlease ignore the above code.<br />The following one is correct one.<br />using System;<br />using System.Data;<br />using System.Configuration;<br />using System.Web;<br />using System.Web.Security;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using System.Web.UI.WebControls.WebParts;<br />using System.Web.UI.HtmlControls;<br />using System.Text;<br />public partial class _Default : System.Web.UI.Page <br />{<br /> protected void Page_Load(object sender, EventArgs e)<br /> {<br /> Response.ContentType = "application/vnd.adobe.xdp+xml";<br /> StringBuilder responseString = new StringBuilder();<br /> responseString.Append("<?xml version='1.0' encoding='UTF-8'?>");<br /> responseString.Append("<?xfa generator='AdobeLiveCycleDesigner_V8.0' APIVersion='2.5.6290.0'?>");<br /> responseString.Append("<xdp:xdp xmlns:xdp='http://ns.adobe.com/xdp/'>");<br /> responseString.Append("<xfa:datasets xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/'>");<br /> responseString.Append("<xfa:data>");<br /><br /> responseString.Append("<form1>");<br /> responseString.Append("<TextField1>Homer</TextField1>");<br /> responseString.Append("<TextField2>Simpson</TextField2>");<br /> responseString.Append("<field name ='DropDownList1'>");<br /> responseString.Append("<items save='1'>");<br /> responseString.Append("<text>1</text>");<br /> responseString.Append("<text>2</text>");<br /> responseString.Append("<text>3</text>");<br /> responseString.Append("</items>");<br /> responseString.Append("</field>");<br /><br /> responseString.Append("</form1>");<br /><br /> responseString.Append("</xfa:data>");<br /> responseString.Append("</xfa:datasets>");<br /> responseString.Append("<pdf href='C:\\Test.pdf' xmlns='http://ns.adobe.com/xdp/pdf/' />");<br /> responseString.Append("</xdp:xdp>");<br /><br /> Response.Write(responseString);<br /> Response.Flush();<br /> Response.End();<br /> }<br />}
-
Fill JComboBox with Vector from database
Hi there,
I have a problem with filling a JComboBox with data from a database. I can print the data in the console, but it seems to be impossible to do it in a ComboBox ...
I tried this:
* To change this template, choose Tools | Templates
* and open the template in the editor.
*package client;*
*import data.Raum;*
*import data.RaumImpl;*
*import java.net.MalformedURLException;*
*import java.rmi.Naming;*
*import java.rmi.NotBoundException;*
*import java.rmi.RemoteException;*
*import java.sql.SQLException;*
*import javax.swing.JComboBox;*
*import javax.swing.JFrame;*
*import java.util.Vector;*
*import verwaltung.*;
import server.DraServer;
* @author philipp
public class ComboBox extends JFrame
ComboBox(String title) throws RemoteException, SQLException, NullPointerException, MalformedURLException, NotBoundException {
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DraVerwaltung verwaltung = (DraVerwaltung) Naming.lookup ("rmi://localhost/DRA");
System.out.println("Remote object created...");
Vector raeume = verwaltung.RaumAusleser();
Raum r;
for (int i = 0; i < raeume.size(); i++)
r = (Raum)raeume.elementAt(i);
// System.out.println ("Raum: " + r.getRaumname());
// System.out.println ("Raumid: " + r.getIdRaum());
JComboBox jcb = new JComboBox(r.getRaumname());
getContentPane().add(jcb);
setSize(200, 50);
setVisible(true);
public static void main(String[] args) throws RemoteException, SQLException, NullPointerException, MalformedURLException, NotBoundException {
new ComboBox("Test");
}In this case I get the following for JComboBox (line 44):
"cannot find symbol
symbol: constructor JComboBox(java.lang.string)
location: class javax.swing.JComboBox"
I tried:
-> change "JComboBox jcb = new JComboBox(r.getRaumname());" to "JComboBox jcb = new JComboBox(raeume);"
then I got the JComboBox, but with ... I don't know how to describe the content. It seems like a (very long) reference.
All other tries can't be tested, because I got the problem with constructor again.
I'm happy for an early response.
RegardsNow, it works!
It looks like that:
* To change this template, choose Tools | Templates
* and open the template in the editor.
package client;
import data.Raum;
import data.RaumImpl;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.sql.SQLException;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import java.util.Vector;
import verwaltung.*;
import server.DraServer;
* @author philipp
public class ComboBox extends JFrame
ComboBox(String title) throws RemoteException, SQLException, NullPointerException, MalformedURLException, NotBoundException {
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DraVerwaltung verwaltung = (DraVerwaltung) Naming.lookup ("rmi://localhost/DRA");
System.out.println("Remote object created...");
Vector raeume = verwaltung.RaumAusleser();
Raum r = new RaumImpl();
Vector vJcb = new Vector();
for (int i = 0; i < raeume.size();i++){
r = (Raum)raeume.elementAt(i);
vJcb.add(r.getRaumname());
JComboBox jcb = new JComboBox(vJcb);
getContentPane().add(jcb);
setSize(200, 50);
setVisible(true);
public static void main(String[] args) throws RemoteException, SQLException, NullPointerException, MalformedURLException, NotBoundException {
new ComboBox("Combo box Demo1");
}Thanks in advantage to all! -
Problem populating html form fields with data from database.
I'm using a straight forward piece of code to populate a form with data from a database, to create and 'edit record' page. The code is as follows;
TO RETREVE THE DATA FROM THE DATABASE;
$query = "SELECT * FROM $table WHERE newsletter_id = '$newsletter_id'" ;
mysql_select_db($database) ;
$result = mysql_query($query, $connect);
$numRows = mysql_num_rows($result);
$dbnewsletter_title = mysql_result($result,$i,'newsletter_title');
TO POPULATE THE FORM FEILD;
<tr>
<td width="140"><p class="admin">Newsletter title</p></td>
<td><input name="newsletter_title" type="text" <? print "value=$dbnewsletter_title";}?> /></td>
</tr>
However, when I view the page, the string shows in the text feild, but seems to be split at the point of the first space. So basically only the first word of the string shows in the text field. If I try to print '$dbnewsletter_title' outside of the table, the string is shown in full as it should be.
Does anyone know what is causing this problem?
Many ThanksPut the value in quotes:
<?php print "value='$dbnewsletter_title'"; ?> -
Load interactive pdf with data from database
I am trying to understand our options for loading database data into an interactive pdf..? Some of the data is not stored in the database and needs to be manually entered by the user in the interactive pdf.
Here is the interactive pdf I'm working with:
http://www.dcma.mil/dcman/NPP/files/dd1149.pdf
As I understand it, there are 2 options:
1. Create an xml file from the database data. Users can manually import this xml file into this existing interactive pdf and then manually add the additional data, and save the interactive pdf.
Would users need to use Adobe acrobat Standard or Pro edition to import the xml data?
2. Create a XFA PDF form that's made with LiveCycle Designer. Can this method create an interactive pdf so that users can enter additional data later and save the pdf?
What adobe products are required to use this method?
thanks for any assistance..
-DYes,using LiveCycle you could accomplish this easily.Once you have your invoice form ready based on predefined XSD, you can easily update the form data by fetching the values from database using JDBC operation.Also you could email this updated form using Email service.
Thanks,
Wasil -
Constructing Jtree with data from Database
Hi
I am new to JTree and I need some help. My problem goes like this. I have a table in the data base which has data like Folder_Nr, Folder_Name, Folder_Prev_Nr, Folder_Typ_Nr, Folder_Access.
If the Folder_Nr is 1 and folder_prev_nr =0, then it is a root folder and if folder no is 3 and folder_prev_no is 1 then it is a sub folder of the Folder_Nr 1. and so on is the data. I need to present all these folders in a JTree and be able to dynamically add and delete folders.
It will be of great help if anyone can provide me with some lead or some source code.
Thanking u in advance
BalaaPYes,using LiveCycle you could accomplish this easily.Once you have your invoice form ready based on predefined XSD, you can easily update the form data by fetching the values from database using JDBC operation.Also you could email this updated form using Email service.
Thanks,
Wasil -
How to update image with data from database?
hi,
is it possible to update an image object which serves as template with some data from a database table like user name etc. by converting it to image bytes and how? The final image would show user name as part of the imageanybody?
-
How to open Word file in APEX, fill it with data from DB and then save it?
Hi everybody!
I haven't enough experience with HTMLDB, I searched for similar thread but didn't find anything, so I decided to write here. I want to open a MS Word document, put some data from a table or report and then close it with saving changes. Could anyone help me to do that, please?
Thanks in advance!Guys, thanks for being so helpful :-)
I tried this example http://htmldb.oracle.com/pls/otn/f?p=18326:44:::::P44_ID:1682,
but didn't sort out the problem. I downloaded, imported and installed Mail Merge. I readed readme.txt and did everything like it is written, but when I click on "Mail Merge" for emp.rtf, I recieve this in my browser: "You are not authorized to view this page".
By the way, the precedure MAIL_MERGE and the function FIND_RTF_HEADER are valid, cause I changed them according to readme.txt.
Do you have any idea why is this happening and are you sure that Mail Merge works with APEX production version, not only with HTMLDB? -
Drop Down list in table with data from database table
Hi,
I have created an interactive form in WD ABAP.
In Context tab I have created the nodes as follows:
ZSOHEADER node with cardinality 1..1
|-> MATERIAL node with cardinality 0..n. Under MATERIAL node there are 2 attrib. MAKTX and MATNR.
I am fetching data from MARA table into an internal table IT_MARA.
The node MATERIAL is bound to internal table IT_MARA.
I have created a table with property ' Body rows vary depending on data ' .
I have only one row in table. The first cell of the row is a drop down field.
I have bind the field to the node MATERIAL->DATA->MAKTX.
Now the issue is even though I have created only one row in my table, in preview it is creating as many rows in the table as the no.of records in the internal table.
I want only one row with the drop down list containing all values of the internal table.
Kindly suggest what to do.
Regards,
VinodHi,
In the WebDynpro Context, in the main node create another node like A1 with cardinality 0..n and in this node create attributes TEXT and VALUE.
Now goto method and in that method using code wizard read the node A1.
And use the below code snippet sample in your program, i.e. code this under respective method of the webdynpro.
*Declare the TYPES
TYPES : BEGIN OF TY_TABLE,
TEXT TYPE SOMETYPE,
VALUE TYPE SOMETYPE,
END OF TY_UOM.
*Define Internal Table and work area.
DATA : IT_TABLE TYPE STANDARD TABLE OF TY_TABLE INITIAL SIZE 0,
WA_TABLE TYPE TY_TABLE.
SELECT TEXT VALUE FROM TABLENAME INTO TABLE IT_TABLE.
lr_node_info->bind_table( IT_TABLE ).
And in the Adobe Form Layout
Go to Menu of the Adobe LiveCycle Designer:
Tools>Options..>DataBinding
In that window you just check the Show Dynamic properties Check Box.
Now for the Drop Down go the binding tab in object palette and click on the list items and there specify the Internal Table and specify the text as the internal table text field and value as internal table value field.
OR
From the WebDynpro Native Library Palette use the Value Help Drop Down and in object pallette goto binding tab and provide the form interface binding. Before this in the WebDynpro goto Context and for the particular field under the properties provide the search help as dictionary search help and specify the name of the dictionary search help.
OR
We have another method of setting the Text and Value to the DDL directly in the WebDynpro by coding in the methods, I dont have much knowledge on this.
Regards
Pradeep Goli -
Programmatically generate password for pdf with data from database
Good day everyone,
I would like to know is it possible to programmatically generate passwords for pdf??
The main idea is to enable an automated process of pdf acquiring individualised password from a database (Excel, Access, you name it) and finally sending the pdf to individual recipient. Can I use javascript for this? And if yes, how?? If not, pls do advice me on the appropriate steps.
Background (for clarity's sake):
Currently I am working on developing an automated process for the sending customised, password encrypted payslip to about 80 staff. The entire procedure is pretty much summarized as below:
mail merg (UBS output in) excel to words -> convert words to pdf -> programmatically password encrypt the pdf -> email to individual recipients.
Well my current status is - I am quite done with the batch mail merge and convertion part. And batch proccessing of password encryption is not a problem, but the idea is to allow acrobat to retrieve password automatically from a database and not key-in each and every password manually. The batch email for now is another problem but for now I have to work stepwise. (Any ideas on how to do it would equally be valued though! =D)
System and software using:
Windows XP and 7 Professional
Microsoft Office Proffesional 2010
Adobe Acrobat X Pro
I would be really grateful for any relevant replies to my question and any additional thoughts or ideas are welcome!!
I would to thank any potential saviour in advance!
Thank you for helping!Basically I need to automate the password generation from database extract
e.g. Excel database with StaffID, StaffName, PayMonth, etc. Then when the pdf is created, its password would be <StaffID>_<PayMonth> which is extracted from excel.
Is it possible for this to happen?? I dont mine using Javascript, I'll just have to learn it.
Or how about recommending a program which does that??
Whichever is fine as long there's a solution!
Thanks! -
Combo filled with data from database
i want to display the list of schemas dynamically in a combo box and then display the tables in that schema. i tried a servlet; but the schemas are not displayed.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
public class try extends HttpServlet
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
PrintWriter out;
res.setContentType("text/html");
out = res.getWriter ();
try
out.println("<html>");
out.println("<head>");
out.println("<script language='javascript'>");
out.println("function one()");
out.println("{");
out.println(" ResultSet rs=st.executeQuery('select distinct owner from all_tab_columns')");
out.println("while(rs.next())");
out.println("{");
out.println("var newElement=document.createElement('option')");
out.println("newElement.value=rs.getString(1)");
out.println("document.form1.table1.options.add(newElement))");
out.println("}");
out.println("}");
out.println("</script>");
out.println("</head>");
out.println("<body>");
out.println("<form name=form1 action=http://mysystem:9000/servlet/query method=post>");
out.println("Schema name");
out.println("<input type=textbox name='user'><br>");
out.println("Password");
out.println("<input type=password name='pwd'><br>");
System.out.println("Password");
out.println("Table Name");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection m_connection;
m_connection = DriverManager.getConnection("jdbc:oracle:thin:@mysystem:1521:oracle8","scott","tiger");
Statement st=m_connection.createStatement();
System.out.println(st);
out.println("<select name='table1' onFocus=one();>");
out.println("<option value=' '>");
out.println("</option>");
out.println("</select>");
out.println("<br>");
out.println("<input type=submit>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}catch(SQLException s){
out.println("Trial");
catch(java.lang.Exception x){ }
}If you're wanting to get data back from the database you're actually going to have to execute a query. The Statement:out.println(" ResultSet rs=st.executeQuery('select distinct owner from all_tab_columns')"); will print out the query you wish to run, showing it to the user, but it won't execute it.
Try instead:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection m_connection;
m_connection = DriverManager.getConnection("jdbc:oracle:thin:@mysystem:1521:oracle8","scott","tiger");
Statement st=m_connection.createStatement();
out.println("<select name='table1' onFocus='one();'>");
ResultSet rs=st.executeQuery("select distinct owner from all_tab_columns");
while(rs.next()){
String val = rs.getString(1);
out.println("<OPTION VALUE='" + val + "'>" + val + "</OPTION>";
rs.close();
st.close();
out.println("</select>"); -
Generate report with data from database package
Hi
Is it possible to generate a report where the values come from an oracle database package instead of from an sql query declared in the report itself?
If yes, how is it done?
Appreciate any help. Thx.Hi,
You can use REF CURSORs to generate reports from a database package.
For information about REF CURSORs, please see Chapter 40 'Building a Paper Report with REF CURSORs' of the Oracle Reports Building Reports manual.
This chapter is at:
http://download-uk.oracle.com/docs/html/B13895_01/orbr_refcur.htm#i1011693
Hope this helps.
Regards,
Panna -
Fill textBox with data from clipboard
Hi:
Here's my trouble.
I have a formulary with 3 textBoxs. 2 of them are written by the user, but the 3rd must be written with a String that is received from bluetooth and stored in the clipboard (this is no a must, the objetive is to fill the textBox, not to store things in the clipboard).
How can I do this?
Thanks for your help!No, i already know how to work with the clipboard.
The point is how to write in the textBox from a desktop app. -
Need help with data from databases
Hi,
I need to search several columns in a table, for ex. the Id column and the Headline column. Of cource the id must be connected to the right headline when I want to do something to the data.
Now I get a Resultset and I have tried out different ways to get the data out from the Resultset but the result doesn't seems to be right. Can anyone help me, please.
-Thanks-You can iterate on your ResultSet if it contains several
rows.
Let's imagine you have defined a class Element containing
the values you want to use.
List l = new ArrayList();
// Calling rs.next() put the cursor on the next row
// and return false if there is no more row
while (rs.next()) {
Element e = new Element(rs.getString(1), rs.getInt(2));
l.add(e); -
Filling dynamic internal table with data from other internal table
Hi Friends,
My problem is that i have already built a dynamic internal table
(class int_table->create) but now i want to fill it with data from other internal table.
The dynamic table column name and the field value of the data filled internal table are same, but how to access that column name, since i cant hard code it anyway.
Like if my werks field value is '8001'. I want to place it under the column 8001 of dynamic table, Can anybody help me in this regard?
Awarding points is not a problem for even giving a slight hint.
Best RegardsHi
See this
Dynamic internal table is internal table that we create on the fly with flexible column numbers.
For sample code, please look at this code tutorial. Hopefully it can help you
Check this link:
http://www.****************/Tutorials/ABAP/DynamicInternaltable/DynamicInternalTable.htm
Sample code:
DATA: l_cnt(2) TYPE n,
l_cnt1(3) TYPE n,
l_nam(12),
l_con(18) TYPE c,
l_con1(18) TYPE c,
lf_mat TYPE matnr.
SORT it_bom_expl BY bom_comp bom_mat level.
CLEAR: l_cnt1, <fs_dyn_wa>.
Looping the component internal table
LOOP AT it_bom_expl INTO gf_it_bom_expl.
CLEAR: l_cnt1.
AT NEW bom_comp.
CLEAR: l_cnt, <fs_dyn_wa>, lf_mat.
For every new bom component the material data is moved to
temp material table which will be used for assigning the levels
checking the count
it_mat_temp[] = it_mat[].
Component data is been assigned to the field symbol which is checked
against the field of dynamic internal table and the value of the
component number is been passed to the dynamic internal table field
value.
ASSIGN COMPONENT c_comp_list OF STRUCTURE <fs_dyn_wa> TO
<fs_check>.
<fs_check> = gf_it_bom_expl-bom_comp.
ENDAT.
AT NEW bom_mat.
CLEAR l_con.
ENDAT.
lf_mat = gf_it_bom_expl-bom_mat.
Looping the temp internal table and looping the dynamic internal table
*by reading line by line into workarea, the materialxxn is been assigned
to field symbol which will be checked and used.
LOOP AT it_mat_temp.
l_nam = c_mat.
l_cnt1 = l_cnt1 + 1.
CONCATENATE l_nam l_cnt1 INTO l_nam.
LOOP AT <fs_dyn_table2> ASSIGNING <fs_dyn_wa2>.
ASSIGN COMPONENT l_nam OF STRUCTURE <fs_dyn_wa2> TO <fs_xy>.
ENDLOOP.
IF <fs_xy> = lf_mat.
CLEAR lf_mat.
l_con1 = l_con.
ENDIF.
Checking whether the material exists for a component and if so it is
been assigned to the field symbol which is checked against the field
of dynamic internal table and the level of the component number
against material is been passed to the dynamic internal table field
value.
IF <fs_xy> = gf_it_bom_expl-bom_mat.
ASSIGN COMPONENT l_nam OF STRUCTURE <fs_dyn_wa> TO <fs_check>.
CLEAR l_con.
MOVE gf_it_bom_expl-level TO l_con.
CONCATENATE c_val_l l_con INTO l_con.
CONDENSE l_con NO-GAPS.
IF l_con1 NE space.
CONCATENATE l_con1 l_con INTO l_con SEPARATED BY c_comma.
CLEAR l_con1.
l_cnt = l_cnt - 1.
ENDIF.
<fs_check> = l_con.
l_cnt = l_cnt + 1.
ENDIF.
ENDLOOP.
AT END OF bom_comp.
At end of every new bom component the count is moved to the field
symbol which is checked against the field of dynamic internal table
and the count is been passed to the dynamic internal table field
value.
ASSIGN COMPONENT c_count OF STRUCTURE <fs_dyn_wa> TO <fs_check>.
<fs_check> = l_cnt.
INSERT <fs_dyn_wa> INTO TABLE <fs_dyn_table>.
ENDAT.
ENDLOOP.
Reward if useful
Anji
Maybe you are looking for
-
Error While Installing ABAP Netweaver Trail
Hi Everyone, I am New to this network, Can anyone please help me, when i am installing SAP_NetWeaver_702e_Installation_Master Trail I am getting this error. How to resolve this issue? An error occurred while processing option SAP NetWeaver 7.0 includ
-
After working for days sticking things together I find I can't export my movie and get: "Unable to Prepare Project for Publishing. The project could not be prepared for publishing because an error occurred. (-50)" Anyone know what this error code mea
-
Is there a way to turn Mobile Link on in Acrobat XI for Mac?
I read an Adobe tutorial on how to turn Mobile Link on in Acrobat XI ("Turn Mobile Link on in Open."), but this option is not visible anywhere in Open on the Mac. Anyone have any suggestions?
-
Apple Remote Desktop - most options grey (dimmed)
I bought a new imac,transferred my information to the new imac, and now almost all the options for remote desktop are gray (dimmed). I reinstalled remote desktop, but to no avail (It did not even ask for the serial number). I have a classroom full of
-
Having some troubles while playing Counter Strike: Source
Hi guys, Currently I'm using the Macbook Pro 13.3" 2nd version ( 2.9GHz, etc.). It's from Mid 2012 I believe. Anyway, I got it for passing my finals, so I've got it for less than a month now. And the thing is, I'm not really satisfied with the way it