You are on page 1of 11

Lesson 13

Reports
Modern Programming Language

Associate Professor
Qamaruddin Shamsi

Addison Wesley
is an imprint of
Lesson Topics

Lesson 13 discusses the following main topics:

– Design and Coding

• Main Form
• Report Menu
» Student Report
» Employee Report
• Data Reporting Process
• Conclusion

11-2
‫در قدم اول یک ‪ Login Form‬را با مشخصات ذیل دیزاین مینماییم‪.‬‬
‫البته فراموش نکنیم که این فعالیت را در درس قبل انجام داده ایم‪.‬‬

‫‪Use Password Field‬‬


‫در قدم دوم در ‪ Main Form‬در کنار ‪ Menu‬تحت نام ‪ Registration‬یک ‪Menu‬‬
‫دیگر به نام ‪ Report‬که حاوی ‪ 2‬مینوی فرعی دیگر تحت نام ‪ Student Report‬و‬
‫‪ Employee Report‬میباشد آماده مینمایم‬
‫در قدم سوم یک ‪ Table‬را تحت نام ‪ Student Report‬که دارای فیلدهای ذیل میباشد‬
‫دیزاین مینماییم‬
‫ میباشد کود ذیل را اضافه مینماییم‬StudentDemo ‫ که تحت نام‬logic ‫در قدم چهارم در داخل کالس‬
)‫ این کود باید داخل کالس بیرون از همه میتود ها نوشته گردد (یعنی قبل از بسته شدن آخرین قوس نوشته گردد‬:‫نوت‬
public void fillStudent (JTable table, String ValueToSearch) ‫ که دیتا در آن ذخیره‬Table ‫یک پارامتر از نوع‬
{ ‫( فیلدها‬Search)‫گردد و دیگر بخاطر جستجوی‬
Connection Con = ConnectionDemo.getConnection(); ‫تعریف گردیده است‬
PreparedStatement PS;
try { ‫ بگیرد‬MySQL ‫ وصل گردد تا دیتا را از جدول‬ConnectionDemo ‫این فایل باید با صفحه‬
PS = Con.prepareStatement("select * from BCS where CONCAT ('Name', 'FName',
'Address', 'Gender')like ?");
PS.setString(1, "%" + ValueToSearch + "%"); .‫ما را با تعداد از کالم های ما وصل میسازد‬
‫ است‬Searching ‫ در حقیقت‬Like ‫وظیفه‬
ResultSet RS = PS.executeQuery();
DefaultTableModel model = (DefaultTableModel) table.getModel();
Object []Row; ‫ بخاطر استفاده شده که فیلدها را سرچ کند‬% ‫عالمه‬
while (RS.next())
{
‫ معرفی مینماییم‬Array ‫ را از نوع‬Object ‫یک‬
Row = new Object [4];
Row [0] = RS.getString(1);
Row [1] = RS.getString(2);
Row [2] = RS.getString(3);
Row [3] = RS.getString(4);
model.addRow(Row); ‫آدرس هر فیلد را جداگانه برایش میدهیم‬
}
} catch (SQLException ex) {
Logger.getLogger(StudentDemo.class.getName()).log(Level.SEVERE, null, ex); } } }
‫ شده و کود ذیل را در آن نوشته‬Student Report ‫در قدم پنجم داخل صفحه کود‬
‫کنید‬

public class StudentReport extends javax.swing.JFrame {

StudentDemo x = new StudentDemo ();


public StudentReport() {
initComponents();
x.fillStudent(jTable1, "");
}

‫ نام تیبل است که ما آنرا به میان آورده ایم‬jTable


‫اگر خواسته باشیم راپورریکارهای خاص که تعلق به والیت کابل داشته باشد تهیه نمایید کود ذیل را‬
‫تطبیق کنید‬
public void fillStudent (JTable table, String Search)
{
Connection Con = ConnectionDemo.getConnection();
try {
Statement stm = Con.createStatement ();
ResultSet RS = stm.executeQuery("select * from student where address=‘Kabul");
{
DefaultTableModel model = (DefaultTableModel)table.getModel();
Object [] Row;
while (RS.next())
{
Row = new Object [8];
‫ و غیره‬Gender ،ID ‫شما میتوانید با تغییر شرط مثال‬
Row [0] = RS.getString(1);
Row [1] = RS.getString(2); ‫ریکارد ها را نشان دهید‬
Row [2] = RS.getString(3);
Row [3] = RS.getString(4);
model.addRow(Row);
}
}
} catch (SQLException ex) {
Logger.getLogger(EmployeeDemo.class.getName()).log(Level.SEVERE, null, ex);
}}}
‫عین پروسه را برای راپور دهی ‪ Employee‬در نظر گیرید البته توجه‬
‫ن داشته باشید که مطابق فیلدهای آن‪ ،‬جدول و کود را درست نمایید‬
‫نتیجه گیری‬
‫امروز توانستیم که راپور‬
‫دو جدول (‪ Student Report‬و ‪ )Employee Report‬را آماده سازیم‪.‬‬

You might also like