ทำหน้า font ให้แสดง report jasper และ เขียน api controller ให้แสดง report และ ทำ class model รับ parameter จาก font
This commit is contained in:
@@ -15,6 +15,7 @@ using TodoAPI2.Models;
|
|||||||
using System.Data;
|
using System.Data;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
namespace TodoAPI2.Controllers
|
namespace TodoAPI2.Controllers
|
||||||
{
|
{
|
||||||
@@ -315,6 +316,44 @@ namespace TodoAPI2.Controllers
|
|||||||
return BadRequest(ModelState);
|
return BadRequest(ModelState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Download Report
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// </remarks>
|
||||||
|
/// <returns>Return list of items by specifced keyword</returns>
|
||||||
|
/// <response code="200">Returns the item</response>
|
||||||
|
/// <response code="500">Error Occurred</response>
|
||||||
|
[HttpGet("rep_eva_savemessage")]
|
||||||
|
[ProducesResponseType(typeof(FileStreamResult), 200)]
|
||||||
|
[ProducesResponseType(400)]
|
||||||
|
[ProducesResponseType(500)]
|
||||||
|
//[ValidateAntiForgeryToken]
|
||||||
|
public IActionResult rep_eva_savemessage(rep_eva_savemessageReportRequestModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
|
||||||
|
//var httpclient = MyHelper.getHttpClient(Configuration);
|
||||||
|
var httpclient = new WebClient();
|
||||||
|
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
|
||||||
|
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
|
||||||
|
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
|
||||||
|
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
|
||||||
|
string url = $"{mainurl}{reportsite}/rep_eva_savemessage.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
|
||||||
|
|
||||||
|
var data = httpclient.DownloadData(url);
|
||||||
|
var stream = new MemoryStream(data);
|
||||||
|
|
||||||
|
return File(stream, model.contentType);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogCritical($"Exception while GetReport.", ex);
|
||||||
|
return StatusCode(500, $"Exception while GetReport. {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TTSW.EF;
|
||||||
|
using TTSW.Utils;
|
||||||
|
using TTSW.Constant;
|
||||||
|
using TTSW.Common;
|
||||||
|
|
||||||
|
namespace TodoAPI2.Models
|
||||||
|
{
|
||||||
|
public class rep_eva_savemessageReportRequestModel
|
||||||
|
{
|
||||||
|
public int? quota_id { get; set; }
|
||||||
|
public string filetype { get; set; }
|
||||||
|
public string contentType { get { return MyHelper.GetContentType(filetype); } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -5,6 +5,29 @@
|
|||||||
Layout = "_LayoutDirect";
|
Layout = "_LayoutDirect";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<div class="modal fade" id="report_xModel" style="z-index:1500" tabindex="-1" role="dialog" aria-labelledby="report_xModelLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="report_xModelLabel">พิมพ์ บันทึกข้อความ</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<iframe id="report_result" style="display:none; height:500px; width:100%;"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">ปิด</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row page-title">
|
<div class="row page-title">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
@@ -103,6 +126,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<button class="btn btn-info" type="button" onclick="javascript:CalculateRemainQuota(true)">คำนวณค่าครองชีพใหม่ ตามเกณฑ์เงินเดือน 13,285</button>
|
<button class="btn btn-info" type="button" onclick="javascript:CalculateRemainQuota(true)">คำนวณค่าครองชีพใหม่ ตามเกณฑ์เงินเดือน 13,285</button>
|
||||||
|
<button type="button" class="btn btn-submit" onclick="javascript:rep_eva_savemessage_DoSearch('pdf')">พิมพ์ บันทึกข้อความ</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
10
tb320eva.xml
10
tb320eva.xml
@@ -886,6 +886,16 @@
|
|||||||
<response code="400">If the model is invalid</response>
|
<response code="400">If the model is invalid</response>
|
||||||
<response code="500">Error Occurred</response>
|
<response code="500">Error Occurred</response>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:TodoAPI2.Controllers.eva_adjust_postponement_quotaController.rep_eva_savemessage(TodoAPI2.Models.rep_eva_savemessageReportRequestModel)">
|
||||||
|
<summary>
|
||||||
|
Download Report
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
</remarks>
|
||||||
|
<returns>Return list of items by specifced keyword</returns>
|
||||||
|
<response code="200">Returns the item</response>
|
||||||
|
<response code="500">Error Occurred</response>
|
||||||
|
</member>
|
||||||
<member name="M:TodoAPI2.Controllers.eva_create_evaluationController.#ctor(Microsoft.Extensions.Logging.ILogger{TodoAPI2.Controllers.eva_create_evaluationController},TodoAPI2.Models.Ieva_create_evaluationService,Microsoft.Extensions.Configuration.IConfiguration)">
|
<member name="M:TodoAPI2.Controllers.eva_create_evaluationController.#ctor(Microsoft.Extensions.Logging.ILogger{TodoAPI2.Controllers.eva_create_evaluationController},TodoAPI2.Models.Ieva_create_evaluationService,Microsoft.Extensions.Configuration.IConfiguration)">
|
||||||
<summary>
|
<summary>
|
||||||
Default constructure for dependency injection
|
Default constructure for dependency injection
|
||||||
|
|||||||
@@ -180,3 +180,33 @@ function CalculateRemainQuota(m) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ================================================= report rep_eva_savemessage ==================================================
|
||||||
|
|
||||||
|
function rep_eva_savemessage_GetSearchParameter(fileType) {
|
||||||
|
var eva_adjust_postponement_quotaObject = new Object();
|
||||||
|
eva_adjust_postponement_quotaObject.quota_id = $("#eva_adjust_postponement_quota_id").val();
|
||||||
|
|
||||||
|
eva_adjust_postponement_quotaObject.fileType = fileType;
|
||||||
|
|
||||||
|
return eva_adjust_postponement_quotaObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
function rep_eva_savemessage_DoSearch(fileType) {
|
||||||
|
if (!ValidateForm('eva_adjust_postponement_quota', eva_adjust_postponement_quota_customValidation)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var p = $.param(rep_eva_savemessage_GetSearchParameter(fileType));
|
||||||
|
|
||||||
|
var report_url = apisite + eva_adjust_postponement_quota_API + "rep_eva_savemessage?" + p;
|
||||||
|
|
||||||
|
if (fileType === "pdf") {
|
||||||
|
$("#report_result").attr("src", report_url);
|
||||||
|
$("#report_result").show();
|
||||||
|
$("#report_xModel").modal("show");
|
||||||
|
} else {
|
||||||
|
$("#report_result").hide();
|
||||||
|
window.open(report_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user