Iterate on a html table with Selenium/Katalon - java

I'm trying to iterate through an HTML table to get values from it, but I do not get the desired results. This is the HTML code:
<div class="o_sale_order table-responsive">
<table class="o_list_view table table-sm table-hover table-striped o_list_view_ungrouped">
<thead>
<tr>
<th width="1" class="o_list_record_selector">
<div class="custom-control custom-checkbox">
<input type="checkbox" id="checkbox-868" class="custom-control-input">
<label for="checkbox-868" class="custom-control-label"></label></div>
</th>
<th class="o_column_sortable" data-original-title="" title="">Quotation Number</th>
<th class="o_column_sortable" data-original-title="" title="">Quotation Date</th>
<th class="o_column_sortable" data-original-title="" title="">Customer</th>
<th class="o_column_sortable" data-original-title="" title="">Salesperson</th>
<th class="o_column_sortable" style="text-align: right;" data-original-title="" title="">Total</th>
<th class="o_column_sortable" data-original-title="" title="">Status</th>
</tr>
</thead>
<tbody class="ui-sortable">
<tr class="o_data_row">
<td width="1" class="o_list_record_selector">
<div class="custom-control custom-checkbox">
<input type="checkbox" id="checkbox-869" class="custom-control-input">
<label for="checkbox-869" class="custom-control-label"></label></div>
</td>
<td class="o_data_cell o_readonly_modifier o_required_modifier">SO107</td>
<td class="o_data_cell o_required_modifier">03/04/2019 17:40:46</td>
<td class="o_data_cell o_required_modifier">AA</td>
<td class="o_data_cell">Administrator</td>
<td class="o_data_cell o_list_number o_monetary_cell o_readonly_modifier">
<span class="o_field_monetary o_field_number o_field_widget o_readonly_modifier" name="amount_total">305.00 €</span></td>
<td class="o_data_cell o_readonly_modifier">Quotation Sent</td>
</tr>
<tr class="o_data_row">
<td width="1" class="o_list_record_selector">
<div class="custom-control custom-checkbox">
<input type="checkbox" id="checkbox-870" class="custom-control-input">
<label for="checkbox-870" class="custom-control-label">​</label></div>
</td>
<td class="o_data_cell o_required_modifier">SO055</td>
<td class="o_data_cell o_required_modifier">03/01/2019 20:24:35</td>
<td class="o_data_cell o_required_modifier">AA</td>
<td class="o_data_cell">Administrator</td>
<td class="o_data_cell o_list_number o_monetary_cell o_readonly_modifier">
<span class="o_field_monetary o_field_number o_field_widget o_readonly_modifier" name="amount_total">2.44 €</span></td>
<td class="o_data_cell o_readonly_modifier">Quotation</td>
</tr>
<tr class="o_data_row">
<td width="1" class="o_list_record_selector">
<div class="custom-control custom-checkbox"><input type="checkbox" id="checkbox-871" class="custom-control-input">
<label for="checkbox-871" class="custom-control-label">​</label></div>
</td>
<td class="o_data_cell o_required_modifier">SO039</td>
<td class="o_data_cell o_required_modifier">03/01/2019 12:16:08</td>
<td class="o_data_cell o_required_modifier">AA</td>
<td class="o_data_cell">Administrator</td>
<td class="o_data_cell o_list_number o_monetary_cell o_readonly_modifier">
<span class="o_field_monetary o_field_number o_field_widget o_readonly_modifier" name="amount_total">2.44 €</span></td>
<td class="o_data_cell o_readonly_modifier">Quotation</td>
</tr>
<tr class="o_data_row">
<td width="1" class="o_list_record_selector">
<div class="custom-control custom-checkbox">
<input type="checkbox" id="checkbox-872" class="custom-control-input">
<label for="checkbox-872" class="custom-control-label">​</label></div>
</td>
<td class="o_data_cell o_required_modifier">SO025</td>
<td class="o_data_cell o_required_modifier">02/28/2019 19:50:59</td>
<td class="o_data_cell o_required_modifier">BB</td>
<td class="o_data_cell">Administrator</td>
<td class="o_data_cell o_list_number o_monetary_cell o_readonly_modifier">
<span class="o_field_monetary o_field_number o_field_widget o_readonly_modifier" name="amount_total">2.44 €</span></td>
<td class="o_data_cell o_readonly_modifier">Quotation</td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td class="name"></td>
<td class="date_order"></td>
<td class="partner_id"></td>
<td class="user_id"></td>
<td class="amount_total o_list_number" title="Total Tax Included">312.32</td>
<td class="state"></td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</main>
</div>
I need to get from each row the value starting with "SO", like this:
<td class="o_data_cell o_required_modifier">SO055</td>
I tried with:
List<String> list = new ArrayList<>();
driver.findElement(By.xpath("//*[#class = 'o_dropdown_toggler_btn btn btn-secondary dropdown-toggle' and (contains(text(), 'Filters') or contains(., 'Filters'))]")).click();
driver.findElement(By.xpath("(//a[contains(text(),'Quotations')])[2]")).click();
driver.findElement(By.xpath("//*[#class = 'o_dropdown_toggler_btn btn btn-secondary dropdown-toggle' and (contains(text(), 'Filters') or contains(., 'Filters'))]")).click();
List<WebElement> rows = driver.findElements(By.xpath("//table[#class='o_list_view table table-sm table-hover table-striped o_list_view_ungrouped']//tr[not(th)]"));
Iterator<WebElement> iter = rows.iterator();
while(iter.hasNext()) {
WebElement tr = iter.next();
WebElement td = tr.findElement(By.xpath("./td[(#class='o_data_cell o_readonly_modifier o_required_modifier')]"));
listaPreventiviFatturabili.add(td.getText());
}
but it doesn't work.
This is a screenshot of the webpage in question:
Can you help me?
Another question: How can I wait for the page to load after I select the Filter for "Quotations"?

try this xpath. It will return all cells containing SO value
By.xpath("//table//td[contains(text(),'SO')]");
List<WebElement> rows = driver.findElements(By.xpath("//table//td[contains(text(),'SO')]"));

You can directly find all table cell in the first column where the SOxxx insides.
List<WebElement> first_cloumns = driver.findElements(
By.cssSelector("div.o_sale_order tbody td:nth-child(1)"));
List<String> values = first_cloumns
.stream() // require JDK 8 and higher
.map(td -> td.getText())
.collect(Collectors.toList());

Related

Getting text between html tags

So basically I have this html and what I want is the text under the tag that has the name:, for example I want this cb6a296b-c7ba-4228-b9f2-d6e39947814e, I've tried using soup but for some reason I always obtain a full html instead of the tags themselves. Is there any way of getting this name cb6a296b-c7ba-4228-b9f2-d6e39947814e?
html:
<td>
<div>
<h3>Id:</h3>
<table style="border: none">
<tbody>
<tr>
<td style="border: none"><b>id:</b></td>
<td style="border: none"><span style="margin-left: 15px">testuuid1</span></td>
</tr>
<tr>
<td style="border: none"><b>idtype:</b></td>
<td style="border: none"><span style="margin-left: 15px">uuid</span></td>
</tr>
<tr>
<td style="border: none"><b>territory:</b></td>
<td style="border: none"><span style="margin-left: 15px">GB</span></td>
</tr>
<tr>
<td style="border: none"><b>type:</b></td>
<td style="border: none"><span style="margin-left: 15px">cover</span></td>
</tr>
<tr>
<td style="border: none"><b>version:</b></td>
<td style="border: none"><span style="margin-left: 15px">aa3601f8-219a-43e6-be36-0aa49d2f0943</span></td>
</tr>
</tbody>
</table>
</div>
<div>
<h3>File:</h3>
<table style="border: none">
<tbody>
<tr>
<td style="border: none"><b>extension:</b></td>
<td style="border: none"><span style="margin-left: 15px">jpg</span></td>
</tr>
<tr>
<td style="border: none"><b>md5Checksum:</b></td>
<td style="border: none"><span style="margin-left: 15px">f5e1725f067a697805f4af28bef55720</span></td>
</tr>
<tr>
<td style="border: none"><b>mimeType:</b></td>
<td style="border: none"><span style="margin-left: 15px">image/jpeg</span></td>
</tr>
<tr>
<td style="border: none"><b>name:</b></td>
<td style="border: none"><span style="margin-left: 15px">cb6a296b-c7ba-4228-b9f2-d6e39947814e</span></td>
</tr>
<tr>
<td style="border: none"><b>path:</b></td>
<td style="border: none"><span style="margin-left: 15px"></span></td>
</tr>
</tbody>
</table>
</div>
<div>
<h3>FileInfo:</h3>
<table style="border: none">
<tbody>
<tr>
<td style="border: none"><b>created:</b></td>
<td style="border: none"><span style="margin-left: 15px">2022-08-09T17:05:12Z</span></td>
</tr>
<tr>
<td style="border: none"><b>createdBy:</b></td>
<td style="border: none"><span style="margin-left: 15px">admin</span></td>
</tr>
<tr>
<td style="border: none"><b>expires:</b></td>
<td style="border: none"><span style="margin-left: 15px">2032-06-26T23:30:00Z</span></td>
</tr>
<tr>
<td style="border: none"><b>updated:</b></td>
<td style="border: none"><span style="margin-left: 15px">2022-08-09T17:05:14Z</span></td>
</tr>
<tr>
<td style="border: none"><b>updatedBy:</b></td>
<td style="border: none"><span style="margin-left: 15px">admin</span></td>
</tr>
</tbody>
</table>
</div></td>
Program:
val document: Document = Jsoup.parse(requestBody[0])
val element = document.select("td:contains(name:)").get(0)
You can just give your <span> element an id:
...
<tr>
<td style="border: none"><b>name:</b></td>
<td style="border: none"><span id="file-name" style="margin-left: 15px">cb6a296b-c7ba-4228-b9f2-d6e39947814e</span></td>
</tr>
...
And then you can easily access the value of the field in javascript:
<script>
let fileName = document.getElementById('file-name').innerHTML
...
</script>

Play Framework: How to access again my submitted form during bad request, my code can't access the list again

index.scala.html
#(form: Form[applicationmodel.ApplicationModel])
#if(form.hasErrors) {
#for((key, value) <- form.errors) {
<p>#value(0).message</p>
}
} else {
<form action="/search" method="GET">
<label class="search-label">ID</label>
<input type="text" name="empId" id="empId" value="#(form.get().empId)"/>
<label class="search-label">HIRE DATE</label>
<input type="text" name="hireDateFrom" id="hireDateFrom" value="#(form.get().hireDateFrom)" autocomplete="off"/>
<div id="curly-dash">~</div>
<input type="text" name="hireDateTo" id="hireDateTo" value="#(form.get().hireDateTo)" autocomplete="off"/>
<br>
<label class="search-label">FIRST NAME</label>
<input type="text" name="firstName" id="firstName" value="#(form.get().firstName)"/>
<label class="search-label">MANAGER</label>
<input type="text" name="managerName" id="managerName" value="#(form.get().managerName)"/>
<br>
<div>
<label class="search-label">LAST NAME</label>
<input type="text" name="lastName" id="lastName" value="#(form.get().lastName)"/>
<input type="image" src="#routes.Assets.at("images/BtnSearch.jpg")">
</div>
</form>
</div>
<form action="/addEdit" method="POST" id="list-form">
<table id="table-list">
<caption class="position-relative">
<img src="#routes.Assets.at("images/Search.jpg")" id="btn-search" class="btn-size">
<h1 class="inline-block">Employee Records</h1>
<img src="#routes.Assets.at("images/Add.jpg")" id="btn-add" class="btn-size">
</caption>
<thead>
<tr>
<th class="solid-green-border column-title">EMPLOYEE_ID</th>
<th class="solid-green-border column-title">FIRST NAME</th>
<th class="solid-green-border column-title">LAST NAME</th>
<th class="solid-green-border column-title">EMAIL</th>
<th class="solid-green-border column-title">PHONE NUMBER</th>
<th class="solid-green-border column-title">HIRE DATE</th>
<th class="solid-green-border column-title">JOB</th>
<th class="solid-green-border column-title">SALARY</th>
<th class="solid-green-border column-title">COMMISSION_PCT</th>
<th class="solid-green-border column-title">DEPARTMENT</th>
<th class="solid-green-border column-title">MANAGER</th>
<th class="solid-green-border column-title">ACTION</th>
</tr>
</thead>
<tbody>
#for(item <- form.get().emplist) {
<tr>
<td class="solid-green-border column-content">#item.employeeId</td>
<td class="solid-green-border column-content">#item.firstName</td>
<td class="solid-green-border column-content">#item.lastName</td>
<td class="solid-green-border column-content">#item.email</td>
<td class="solid-green-border column-content">#item.phoneNo</td>
<td class="solid-green-border column-content">
<div class="position-relative">
<span class="class-hiredate">#item.displayHiredate</span>
<input type="image" src="/assets/images/imgDate.jpg" class="icon-size date" disabled>
</div>
</td>
<td class="solid-green-border column-content">#item.job.jobTitle</td>
<td class="solid-green-border column-content">#item.displaySalary</td>
<td class="solid-green-border column-content">#item.commission</td>
<td class="solid-green-border column-content department">#item.deptName</td>
<td class="solid-green-border column-content">#item.managerName</td>
<td class="solid-green-border column-content">
<input type="image" src="#routes.Assets.at("images/Edit.jpg")" class="icon-size edit"></td>
</tr>
}
</tbody>
</table>
<input type="image" src="#routes.Assets.at("images/BtnSave.jpg")" id="btn-save">
</form>
}
What syntax should i use to access the form again during bad request and get that emplist,form.get() is of no use whenever it is in bad request it seems like the form itself is not the same during index
Controller
Index
#Transactional
public static Result index() {
System.out.print("asdf");
appModel = new ApplicationModel();
Form<ApplicationModel> form =
Form.form(ApplicationModel.class).fill(appModel.init(appModel));
return ok(index.render(form));
}
Controller
upon submitting i wish to display it all again as is when i submit it with errors,i can only display as of now errors not retain its values
#Transactional
public static Result addEdit() {
Form<ApplicationModel> form =
Form.form(ApplicationModel.class).bindFromRequest();
if (form.hasErrors()) {
return badRequest(index.render(form));
}
form.get().update();
ApplicationModel newAppModel = new ApplicationModel();
form = Form.form(ApplicationModel.class).fill(newAppModel.init(newAppModel));
return ok(index.render(form));
}
Solution: After many trial and errors
Enclose it with this and access the specific value you want to achieve
#for(i <- 0 to {form("emplist").indexes.size.toInt} - 1) {
}
*I personally hope this would help future generations using play framework to help them accessing forms values with iteration :) *

how to send html email in android?

Hi I am making an app in which I am sending an email to a specific address
This email is a html email with table and images and all...
Is I have tried to add Html.fromhtml() but it keeps saying type mismatch
needed string found spanned....
If you need any of my code please comment
Please suggest any tutorial if you have in mind
EDIT
I forgot to mention I am sending mail using javax.maillibrary I am not using Intents
I tried to use Html.tohtml(Spanned text) its giving the message of type mismatch cant convert String to spannedtext
I have no idea whats happening
I am receiving the html data in my mail if i just go with it
UPDATE
I am fetching the content from a string resource
and this is what I am getting as result
$message = ' For Support enquiry#makeintern.comContact Form Enquiry !
Name: :'.$name.'Email: :'.$email.'Contact: :'.$mobile.'Message:
:'.$message.'Date-Time: :'.$current_date.'
Thanks and Regards MakeIntern Team Account Manager - MakeIntern Cell
www.makeintern.com enquiry#makeintern.com
If any query Please call us on : 011-45544188  www.makeintern.com |
enquiry#makeintern.com 
from---
<string name="email">$message = \'<center>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center" bgcolor="#FFFFFF">
<table width="620px" cellpadding="0" cellspacing="0">
<tr>
<td width="400px" bgcolor="#000000" style="color:#FFFFFF; text-
decoration:none; float:left;font-size:10px;margin: -18px 3px -1px 11px; font-weight:bold; padding:2px; text-decoration:none; padding-left:0px;">For Support <span style="text-decoration:none; color:#FFFFFF;">enquiry#makeintern.com</span></td>
<td width="220px" bgcolor="#000000"></td>
</tr>
<tr style="background-color:#737373;">
<td width="290" align="left" valign="middle"><a href="http://makeintern.com" target="_blank"><img src="http://www.makeintern.com/images/makeintern.jpg" width="136" border="0" alt="MakeIntern" style="display:block; padding-left:0px;"></a></td>
<td width="290" align="right" style="text-align:right; font-family:Arial, Segoe UI,Helvetica Neue, Helvetica, sans-serif; font-size:18px; line-height:18px; color:#FFFFFF; font-weight:normal; padding-right:10px;">Contact Form Enquiry !<br>
</td>
</tr>
<tr>
<td height="12px" colspan="2"></td>
</tr>
<tr>
<td colspan="2" align="center" style="line-height:16px; font-family:arial; font-size:12px; color:#888888; text-align:left;">
<table cellspacing="0" cellpadding="0">
<tr>
<td width="200px" style="font-weight:bold;">Name: </td>
<td width="100px">:</td>
<td>\'.$name.\'</td>
</tr>
<tr>
<td width="200px" style="font-weight:bold;">Email: </td>
<td width="100px">:</td>
<td>\'.$email.\'</td>
</tr>
<tr>
<td width="200px" style="font-weight:bold;">Contact: </td>
<td width="100px">:</td>
<td>\'.$mobile.\'</td>
</tr>
<tr>
<td width="200px" style="font-weight:bold;">Message: </td>
<td width="100px">:</td>
<td>\'.$message.\'</td>
</tr>
<tr>
<td width="200px" style="font-weight:bold;">Date-Time: </td>
<td width="100px">:</td>
<td>\'.$current_date.\'</td>
</tr>
</table>
<br/><br/>
Thanks and Regards <br/>
MakeIntern Team <br/>
Account Manager - MakeIntern Cell <br/>
www.makeintern.com<br/>
enquiry#makeintern.com<br/><br/>
<b>If any query Please call us on : 011-45544188</b><br/>
</td>
</tr>
<tr>
<td height="12px"></td>
</tr>
<tr>
<td colspan="2"><img src="http://www.myhotbooking.com/images/email-template/bar.png"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#737373" height="90px">
<table cellpadding="0" cellspacing="0" width="620px">
<tr>
<td height="10px"></td>
</tr>
<tr>
<td align="center" style="color:#FFFFFF;" height="20px"><a href="http://www.makeintern.com/">www.makeintern.com </a>| <span style="color:#FFFFFF; text-decoration:none;">enquiry#makeintern.com</span></td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="https://www.facebook.com/makeinterns" target="_blank"><img src="http://www.myhotbooking.com/images/email-template/icon-facebook.png" width="26" height="26" border="0" alt="Facebook"></a><a href="https://twitter.com/makeintern" target="_blank"><img src="http://www.myhotbooking.com/images/email-template/icon-twitter.png" width="26" height="26" border="0" alt="Twitter"></a><a href="https://www.linkedin.com/company/makeintern" target="_blank"><img src="http://www.myhotbooking.com/images/email-template/icon-linkedin.png" width="26" height="26" border="0" alt="Linkedin"></a><a href="https://plus.google.com/+makeintern" target="_blank"><img src="http://www.myhotbooking.com/images/email-template/icon-google-plus.png" width="26" height="26" border="0" alt="Google+"></a></td>
</tr>
<tr>
<td align="center" style="color:#FFFFFF;"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>\'</string>
Thankyou in advance
Try Below Code :
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT,getResources().getString(R.string.email_subject));
sendIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(getResources().getString(R.string.email_text)));
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, ""));
string.xml
<resources>
<string name="email_subject">Download App for your smartphone.</string>
<string name="email_text"><![CDATA[Hey,<br/>I just downloaded App on my Android.<br/>It is a smartphone Manager.This app even lets me book parties,search restaurants.<br/>App is available for Android.<br/>
Get it now from http://www.exampleapp.com/download]]></string>
</resources>

Java based Selenium2: find element by preceding-sibling when source contains same element two times

I want to click a text related input with preceding-sibling node my HTML is the following:
<FORM id="formid" onsubmit="" method=post name="formid" action=>
<TABLE width="100%">
<TR class=foo-even>
<TD rowSpan=3><INPUT onclick="" value=1 type=radio name="formid">upbutton1</TD>
<TD>Pearl</TD>
<TD rowSpan=3></TD>
</TR>
<TR class=foo-even>
<TD>ravenclawn</TD>
</TR>
<TR class=foo-even>
<TD>ravenclawn</TD>
</TR>
</TBODY>
</TABLE>
</TD></TR>
<TR>
<TD> </TD>
</TR>
</TBODY></TABLE>
<TABLE width="100%" >
<TBODY>
<TR>
<TD class="someclass"></TD>
</TR>
<TR>
<TD>
<TABLE class=foo width="100%" border="1px">
<TBODY>
<TR class=foo-header>
<TD></TD>
<TD><BR></TD>
<TD colSpan=3></TD>
<TD></TD>
</TR>
<TR class=foo-odd>
<TD><INPUT value=0 type=radio name="formid.samename">buttonclick1</TD>
<TD>1234</TD>
<TD>blue </TD>
<TD colSpan=2>apple2</TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"></TD>
</TR>
<TR class=foo-even>
<TD><INPUT value=1 type=radio name="formid.samename">buttonclick2</TD>
<TD>1235 </TD>
<TD>blue </TD>
<TD colSpan=2>apple3</TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"> </TD>
</TR>
<TR class=foo-odd>
<TD><INPUT value=2 type=radio name="formid.samename">buttonclick3</TD>
<TD>1235</TD>
<TD>sometext </TD>
<TD>Pearl</TD>
<TD></TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"> </TD>
</TR>
<TR class=foo-even>
<TD><INPUT value=3 type=radio name="formid.samename">buttonclick4</TD>
<TD>1236 </TD>
<TD>blue </TD>
<TD colSpan=2>apple4</TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"> </TD>
</TR>
<TR class=foo-odd>
<TD><INPUT value=4 type=radio name="formid.samename">buttonclick5</TD>
<TD>1236 </TD>
<TD>sometext </TD>
<TD>ravenclawn</TD>
<TD></TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"> </TD>
</TR>
<TR class=foo-even>
<TD><INPUT value=5 type=radio name="formid.samename">buttonclick6</TD>
<TD>1237 </TD>
<TD>blue </TD>
<TD colSpan=2>apple6</TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"> </TD>
</TR>
<TR class=foo-odd>
<TD><INPUT value=6 type=radio name="formid.samename">buttonclick7</TD>
<TD>1237 </TD>
<TD>sometext </TD>
<TD>ravenclawn</TD>
<TD></TD>
<TD> <INPUT value=0 type=hidden name="samenameagain"></tD>
</DIV>
My target is to click on second Pearl text related input field
Selenium code is the following:
driver.findElement(By.xpath(".//td[contains(text(),'Pearl')][1]/preceding-sibling::td")).click();
Problem:
Above code always working with first table that contains Pearl text
Observations:
That case when im modify first Pearl text to something else the code working fine
That case when im working with another text ect:"ravenclawn" its working fine without any modifications
Thanks for any advice
You just include index for table also.
For 1st table
By.xpath("//table[1]//td[contains(text(),'Pearl')]/preceding-sibling::td")
For 2nd table
By.xpath("//table[2]//td[contains(text(),'Pearl')]/preceding-sibling::td")

The method println(boolean) in the type PrintStream is not applicable for the arguments (void)

I want to print resultset value retrive from SQL JSTL tags.but it gave error
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 219 in the jsp file: /testVoucher.jsp
The method println(boolean) in the type PrintStream is not applicable for the arguments (void)
216:
217:
218: <%
219: System.out.println(
220: %>
221:
222: <%
An error occurred at line: 220 in the jsp file: /testVoucher.jsp
Syntax error, insert ")" to complete Expression
217:
218: <%
219: System.out.println(
220: %>
221:
222: <%
223: );
An error occurred at line: 223 in the jsp file: /testVoucher.jsp
Syntax error on token ")", delete this token
220: %>
221:
222: <%
223: );
224: %>
225:
226:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
The Main part of code is as follows
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT A.BANK_NAME,B.SCHEME_NAME SCHEME_DESC,
TO_CHAR(SUM(B.GROSS),'99,99,99,99,990.00') GROSS,
round(SUM(B.TDS),0) TDS,
TO_CHAR(SUM(B.ADVANCE),'99,99,99,99,990.00') ADVANCE,
TO_CHAR(SUM(B.PARTIAL),'99,99,99,99,990.00') PARTIAL,
TO_CHAR(SUM(B.NET),'99,99,99,99,990.00') NET
FROM VW_VOUCHER_ALLOCATION_DETAIL B, VW_SCHEME_ACCOUNT A
WHERE B.VOUCHER_NO='<%=voucher%>'
AND B.ID = A.EXPENSE_SCH_CODE
AND (B.GROSS>0 OR B.ADVANCE>0 OR B.PARTIAL>0)
GROUP BY A.BANK_NAME,B.SCHEME_NAME
ORDER BY A.BANK_NAME, B.SCHEME_NAME
</sql:query>
<sql:resultSet id="rs">
<tr style="height:20px">
<td CLASS="BORDER_"><b><sql:getColumn colName="BANK_NAME"/></b></td>
<td CLASS="BORDER_" ><sql:getColumn colName="SCHEME_DESC"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="GROSS"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="TDS"/></td>
<td CLASS="BORDER_" align="right" bgcolor="#e2d36d"><sql:getColumn colName="ADVANCE"/></td>
<td CLASS="BORDER_" align="right" bgcolor="#e2d36d"><sql:getColumn colName="PARTIAL"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="NET"/></td>
</tr>
/////it give error here ///////////////////////////
<%
System.out.println(
%>
<sql:getColumn colName="SCHEME_DESC"/>
<%
);
%>
</sql:resultSet>
Whole code is As follows:
<%# include file="/include_session_check.jsp" %>
<%# include file="/include_db_tld.jsp" %>
<%#page import="java.util.ArrayList"%>
<center>
<%!
ArrayList<String> BankName_list=new ArrayList<String>();
%>
<%
String voucher="2012-2013/001188";
//com.GEN_Utility.nvl(request.getParameter("voucher"));
ArrayList<String> Scheme_list=new ArrayList<String>();
ArrayList<Float> Gross_List=new ArrayList<Float>();
ArrayList<Float> TDS_List=new ArrayList<Float>();
ArrayList<Float> Adv_List=new ArrayList<Float>();
ArrayList<Float> Partial_List=new ArrayList<Float>();
ArrayList<Float> Net_List=new ArrayList<Float>();
System.out.println(" voucher "+voucher);
%>
<br>
<DIV CLASS="PGBREAK" STYLE="background-color: white; WIDTH: 800px;">
<table width="793" height="70">
<TR>
<TD width="55%">
<img src="<%=STRpath%>index/Logo_new.bmp">
</TD>
<TD width="45%"><br><b>Mirae Asset Global Investments(I) Pvt Ltd</b> <br>
Unit No. 606, 6th Floor, Windsor Bldg.,<br>
Off CST Road, Kalina, Santacruz(E),<br>
Mumbai - 400 098.<br>
www.miraeassetmf.co.in
</TD>
</TR>
</table>
<hr width="793" noshade="true">
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT DISTINCT A.VOUCHER_NO,A.DT_CASHFLOW,
TO_CHAR(A.AMT_FINAL,'99,99,99,99,990.00') AMT_FINAL,A.TDS,
TO_CHAR(A.AMT_ADJUST,'99,99,99,99,990.00') AMT_ADJUST,
TO_CHAR(A.AMT_NET,'99,99,99,99,990.00') AMT_NET,
TO_CHAR(A.AMT_ADVANCE,'99,99,99,99,990.00') AMT_ADVANCE,
TO_CHAR(A.AMT_PARTIAL,'99,99,99,99,990.00') AMT_PARTIAL,
A.EXPENSE_DESC,A.EXPENSE_CHARGE,A.ALLOCATION_PERIOD,
DECODE(B.ALLOCATION_ID,'7','(Quarterly AUM)',
'8',(SELECT (TO_CHAR(A.FROM_DT,'Mon-YYYY')||' - '||TO_CHAR(A.TO_DT,'Mon-YYYY')) ALLOCDT FROM DATA_AVG_AUM A, DATA_TRAN_BILL B
WHERE A.TRAN_ID = B.TRAN_ID
AND B.VOUCHER_NO='<%=voucher%>')) QTRAUM
FROM VW_VOUCHER_DETAIL A, DATA_TRAN_BILL B , MAST_ALLOCATION C
WHERE A.VOUCHER_NO = B.VOUCHER_NO
AND B.ALLOCATION_ID = C.ID
AND A.VOUCHER_NO='<%=voucher%>'
</sql:query>
<sql:resultSet id="rs">
<b>Approval Memo</b><br><br>
<table width="793" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #6e6e6e;">
<tr>
<td colspan="4" valign="TOP" align="center">
<%--------------------------%>
<table width="98%" border="0" cellspacing="0" cellpadding="0" >
<tr bgcolor="#c5c5c5" style="height:20px">
<td width="10"> </td>
<td width="200" nowrap><b>Vocuher No.</b></td>
<td width="10">:</td>
<td width="0" colspan="5"><sql:getColumn colName="VOUCHER_NO"/></td>
</tr>
<tr>
<td> </td>
<td><b>Allocation Period</b></td>
<td>:</td>
<td><sql:getColumn colName="ALLOCATION_PERIOD"/> <sql:getColumn colName="QTRAUM"/></td>
<td> </td>
<td><b>Expense Type</b></td>
<td>:</td>
<td><sql:getColumn colName="EXPENSE_DESC"/></td>
</tr>
<tr>
<td> </td>
<td><b>Cash Flow Date</b></td>
<td>:</td>
<td><sql:getColumn colName="DT_CASHFLOW"/></td>
<td> </td>
<td><b>Expense Charge To</b></td>
<td>:</td>
<td><sql:getColumn colName="EXPENSE_CHARGE"/></td>
</tr>
<tr>
<td> </td>
<td><b>Gross Amount</b></td>
<td>:</td>
<td><sql:getColumn colName="AMT_FINAL"/></td>
</tr>
<tr>
<%-- <td> </td>
<td><b>Gross Amount</b></td>
<td>:</td>
<td><sql:getColumn colName="AMT_FINAL"/></td>
--%>
<td> </td>
<td><b>TDS (%)</b></td>
<td>:</td>
<td><sql:getColumn colName="TDS"/>%</td>
</tr>
<tr>
<td> </td>
<td><b>Adjusted Amount</b></td>
<td>:</td>
<td><sql:getColumn colName="AMT_ADJUST"/></td>
</tr>
<tr>
<td> </td>
<td><b>Advance/Partial</b></td>
<td>:</td>
<td><sql:getColumn colName="AMT_ADVANCE"/> / <sql:getColumn colName="AMT_PARTIAL"/></td>
<%-- <td> </td>
<td><b>Net Payable</b></td>
<td>:</td>
<td><sql:getColumn colName="AMT_NET"/></td> --%>
</tr>
<tr>
<td> </td>
<td><b>Net Payable</b></td>
<td>:</td>
<td><b><sql:getColumn colName="AMT_NET"/></b></td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td> </td>
<td><b>Narration</b></td>
<td>:</td>
<td colspan="5">
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT PAYMENT_REMARKS FROM DATA_TRAN_BILL
WHERE VOUCHER_NO='<%=voucher%>'
</sql:query>
<sql:resultSet id="rs">
<sql:getColumn colName="PAYMENT_REMARKS"/>
</sql:resultSet>
</sql:preparedStatement>
</td>
</tr>
<!-- <tr>
<td colspan="4"> </td>
</tr>-->
<tr>
<td> </td>
<td><b>Scheme Allocation</b></td>
<td>:</td>
<td> </td>
</tr>
</table>
<%--------------------------%>
</td>
</tr>
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT A.BANK_NAME,B.SCHEME_NAME SCHEME_DESC,
TO_CHAR(SUM(B.GROSS),'99,99,99,99,990.00') GROSS,
round(SUM(B.TDS),0) TDS,
TO_CHAR(SUM(B.ADVANCE),'99,99,99,99,990.00') ADVANCE,
TO_CHAR(SUM(B.PARTIAL),'99,99,99,99,990.00') PARTIAL,
TO_CHAR(SUM(B.NET),'99,99,99,99,990.00') NET
FROM VW_VOUCHER_ALLOCATION_DETAIL B, VW_SCHEME_ACCOUNT A
WHERE B.VOUCHER_NO='<%=voucher%>'
AND B.ID = A.EXPENSE_SCH_CODE
AND (B.GROSS>0 OR B.ADVANCE>0 OR B.PARTIAL>0)
GROUP BY A.BANK_NAME,B.SCHEME_NAME
ORDER BY A.BANK_NAME, B.SCHEME_NAME
</sql:query>
<tr>
<td colspan="4" align="center">
<%--------------------------%>
<DIV STYLE="height: 510px;" ID="fix">
<table width="750" border="0" cellspacing="1" cellpadding="0" style="border: 1px solid #6e6e6e;">
<tr bgcolor="#c5c5c5" style="height:20px;">
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Custody Name</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Scheme Name</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Gross</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>TDS</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Advance</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Partial</B></td>
<td CLASS="BORDER_" style="border-bottom: 1px solid #6e6e6e;"><B>Net</B></td>
</tr>
<sql:resultSet id="rs">
<tr style="height:20px">
<td CLASS="BORDER_"><b><sql:getColumn colName="BANK_NAME"/></b></td>
<td CLASS="BORDER_" ><sql:getColumn colName="SCHEME_DESC"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="GROSS"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="TDS"/></td>
<td CLASS="BORDER_" align="right" bgcolor="#e2d36d"><sql:getColumn colName="ADVANCE"/></td>
<td CLASS="BORDER_" align="right" bgcolor="#e2d36d"><sql:getColumn colName="PARTIAL"/></td>
<td CLASS="BORDER_" align="right"><sql:getColumn colName="NET"/></td>
</tr>
</sql:resultSet>
</sql:preparedStatement>
<%
for(int index=0;index<BankName_list.size();index++){
System.out.println("BankName_list "+BankName_list.get(index));
}
%>
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT TO_CHAR(SUM(B.GROSS),'99,99,99,99,990.00') GROSS,
TO_CHAR(SUM(B.TDS),'99,99,99,99,990.00') TDS,
TO_CHAR(SUM(B.ADVANCE),'99,99,99,99,990.00') ADVANCE,
TO_CHAR(SUM(B.PARTIAL),'99,99,99,99,990.00') PARTIAL,
TO_CHAR(SUM(B.NET),'99,99,99,99,990.00') NET
FROM VW_VOUCHER_ALLOCATION_DETAIL B
WHERE B.VOUCHER_NO='<%=voucher%>'
AND (B.GROSS>0 OR B.ADVANCE>0 OR B.PARTIAL>0)
</sql:query>
<sql:resultSet id="rs">
<tr style="height:20px">
<td CLASS="BORDER_"> </td>
<td CLASS="BORDER_" align="right"><b>Grand Total </b></td>
<td CLASS="BORDER_" align="right"><b><sql:getColumn colName="GROSS"/></b></td>
<td CLASS="BORDER_" align="right"><b><sql:getColumn colName="TDS"/></b></td>
<td CLASS="BORDER_" align="right"><b><sql:getColumn colName="ADVANCE"/></b></td>
<td CLASS="BORDER_" align="right"><b><sql:getColumn colName="PARTIAL"/></b></td>
<td CLASS="BORDER_" align="right"><b><sql:getColumn colName="NET"/></b></td>
</tr>
</sql:resultSet>
</sql:preparedStatement>
<tr style="height:20px">
<td CLASS="BORDER_"> </td>
<td CLASS="BORDER_" align="right" colspan="2"><b>Adjusted Amount </b></td>
<td CLASS="BORDER_" colspan="5" align="right"><sql:getColumn colName="AMT_ADJUST"/></td>
</tr>
<tr style="height:20px" bgcolor="#c5c5c5">
<td CLASS="BORDER_"> </td>
<td CLASS="BORDER_" align="right" colspan="2"><b>Net Payable Amount </b></td>
<td CLASS="BORDER_" colspan="5" align="right"><b><sql:getColumn colName="AMT_NET"/></b></td>
</tr>
</sql:resultSet>
</sql:preparedStatement>
</table>
</DIV>
<%--------------------------%>
</td>
</tr>
<TFOOT>
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT DECODE(CNT,1,
C.MAP_1 || ' ' ||
B.VENDOR_NAME,
' '
) DESCR
FROM
(
SELECT A.VOUCHER_NO,COUNT(DISTINCT(VENDOR_ID)) CNT,MAX(A.VENDOR_ID) VENDOR_ID,MAX(A.PAYMENT_MODE) PAYMENT_MODE
FROM DATA_TRAN_BILL A
GROUP BY A.VOUCHER_NO
) A,MAST_VENDOR B,MAST_PAYMENT_MODE C
WHERE A.VENDOR_ID=B.ID
AND A.PAYMENT_MODE=C.ID
AND A.VOUCHER_NO='<%=voucher%>'
</sql:query>
<sql:resultSet id="rs">
<TR>
<TD colspan="3" STYLE="font-size: 13px; "> <sql:getColumn colName="DESCR"/></TD>
</sql:resultSet>
</sql:preparedStatement>
<TD STYLE="font-size: 10px; ">
<DIV STYLE="height:60px; " ID="fix">
<sql:preparedStatement id="pst" conn="conn">
<sql:query>
SELECT DISTINCT V.BANK_NAME,V.ACC_NO,C.DESCR,V.IFSC_NEFT
FROM DATA_TRAN_BILL A,MAST_PAYMENT_MODE C, MAST_VENDOR V
WHERE A.PAYMENT_MODE = C.ID
AND A.VENDOR_ID = V.ID
AND C.DESCR IN ('NEFT','RTGS','RTGS/NEFT')
AND A.VOUCHER_NO = '<%=voucher%>'
</sql:query>
<sql:resultSet id="rs">
<table align="right" border="0" width="70%">
<tr>
<td>Bank Name : </td>
<td><sql:getColumn colName="BANK_NAME"/> </td>
</tr>
<tr>
<td>Account No. : </td>
<td><sql:getColumn colName="ACC_NO"/> </td>
</tr>
<tr>
<td><sql:getColumn colName="DESCR"/> Code : </td>
<td><sql:getColumn colName="IFSC_NEFT"/> </td>
</tr>
</table>
</sql:resultSet>
</sql:preparedStatement>
</DIV>
</TD>
</TR>
</TFOOT>
</table>
<br><br><br>
<table width="793" border="0" cellspacing="0" cellpadding="0">
<tr style="height:15px">
<td colspan="5"> </td>
</tr>
<tr align="center">
<td width="30"> </td>
<td width="153" style="border-top: 1px solid #6e6e6e;">Maker</td>
<td width="500"> </td>
<td width="153" style="border-top: 1px solid #6e6e6e;">Checker</td>
<td width="500"></td>
<td width="153" style="border-top: 1px solid #6e6e6e;">Approver</td>
<td width="30"> </td>
</tr>
</table><BR>
</DIV>
<BR>
</center>
<sql:closeConnection conn="conn"/>
The method println(boolean) in the type PrintStream is not applicable for the arguments
<sql:getColumn colName="SCHEME_DESC"/> is coming as empty here
There in no method is avaialable println with 0-arguments.
It seems you have mixed script lets and jstl tags together.
System.out.println( %><sql:getColumn colName="SCHEME_DESC"/><% ..

Categories