Pleasanterより開いている画面の情報をExcelテンプレート出力したい
Q&A
Closed
Pleasanterより開いている画面の情報をExcelテンプレート出力したい
Pleasanterより開いている画面の情報をExcelテンプレート出力したいです。
Excelテンプレートは出力されましたが、開いているデータIDの取得方法で困っています。
ご教授をお願い致します。
###自分で試した事
①記録テーブルを作成します。
②記録テーブルのスクリプトへ以下を作成しました。
ここで、新規作成 編集画面の下記にEXCEL出力ボタンが表示されます。
$p.events.on_editor_load = function () {
$('#GoBack').after('<button id="ID" class="button button-icon ui-button ui-corner-all ui-widget applied" type="button" onclick="excel02();" data-icon="ui-icon-calculator"><span class="ui-button-icon ui-icon ui-icon-calculator"></span><span class="ui-button-icon-space"> </span>Excel出力</button>');
};
③記録テーブルのHTMLへ下記を作成しました。
ここで、新規作成 編集画面の下記のEXCEL出力ボタンが押されると
function excel02(obj)が呼び出されます。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
<script type="text/javascript">
function excel02(obj) {
alert(obj)
event.stopPropagation();
const em = new PleasanterExcelMaker();
em.ExcelDownloadItemAttach(80015,'A','wbs_excel02.xlsx')
.then(function(value){
workbook = value;
let data = {"ApiVersion": 1.0, "View": em.getFilter()}
data.View.ApiDataType = "KeyValues";
data.View.ApiColumnKeyDisplayType = "ColumnName";
data.View.GridColumns = ["IssueId","Ver","Title","Body","StartTime","CompletionTime","WorkValue","ProgressRate","RemainingWorkValue","Status","ClassA","ClassB","ClassC","Owner","Manager"];
alert(value)
em.ApiGet(80020, data)
.then(function(value){
workbook.worksheets[0].name = "サンプル02";
let sheet = workbook.worksheets[0];
const rset = value.data.Response.Data;
if( Object.keys(rset).length == 1 ) {
sheet.getCell(`B3`).value = rset[0].IssueId;
sheet.getCell(`B4`).value = rset[0].ClassA;
sheet.getCell(`B5`).value = rset[0].ClassB;
sheet.getCell(`B6`).value = rset[0].ClassC;
sheet.getCell(`B7`).value = rset[0].Title;
sheet.getCell(`B8`).value = rset[0].Body;
sheet.getCell(`B9`).value = rset[0].Manager;
sheet.getCell(`B10`).value = rset[0].Owner;
let t;
t = new Date(rset[0].StartTime);
sheet.getCell(`B11`).value = t.getFullYear() + "/" + (t.getMonth()+1) + "/" + t.getDate();
t = new Date(rset[0].CompletionTime);
sheet.getCell(`B12`).value = t.getFullYear() + "/" + (t.getMonth()+1) + "/" + t.getDate();
sheet.getCell(`B13`).value = rset[0].WorkValue;
sheet.getCell(`B13`).numFmt = '0"h"'
sheet.getCell(`B14`).value = rset[0].ProgressRate;
sheet.getCell(`B14`).numFmt = '0.0"%"'
sheet.getCell(`B15`).value = rset[0].RemainingWorkValue;
sheet.getCell(`B15`).numFmt = '0.0"h"'
sheet.getCell(`B16`).value = rset[0].Status;
sheet.getCell(`B17`).value = rset[0].Ver;
}
em.SaveAs(workbook);
});
});
}
</script>
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
④記録テーブルへEXCELテンプレートファイルを添付します。
###困っている事
上の処理でEXCELテンプレートファイルは出力されましたが、
★★スクリプトの function excel02(obj) で
em.ApiGet(80020, data) の箇所があります。80020の箇所を
開いているデータIDにしたいです。
どうぞよろしくお願いいたします。