import fonts.fontAwesome; import win.ui; /*DSG{{*/ mainForm = win.form(text="CircosHeatmap-aardio";right=1000;bottom=700;bgcolor=16777215) mainForm.add( btnRun={cls="plus";text="生成pdf";left=891;top=661;right=991;bottom=691;align="left";border={color=-16777216;width=1};db=1;dr=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=12}};iconText='\uF08B';textPadding={left=26};z=3}; btnSelectFile={cls="plus";text="数据源";left=786;top=661;right=886;bottom=691;align="left";border={top=1;right=1;bottom=1;color=-16777216};db=1;dr=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=18}};iconText='\uF15C';textPadding={left=35};z=2}; editConsole={cls="richedit";left=10;top=510;right=990;bottom=650;bgcolor=4274224;color=15326936;db=1;dl=1;dr=1;hscroll=1;multiline=1;readonly=1;vscroll=1;z=5}; editRScript={cls="edit";left=10;top=10;right=990;bottom=500;border=1;color=4473924;db=1;dl=1;dr=1;dt=1;font=LOGFONT(h=-16);hscroll=1;multiline=1;vscroll=1;z=4}; inputFile={cls="plus";left=10;top=661;right=786;bottom=691;align="right";border={left=1;top=1;bottom=1;color=-16736064};db=1;dl=1;dr=1;editable="edit";font=LOGFONT(h=-13);textPadding={left=5;top=8;right=5;bottom=2};z=1} ) /*}}*/ mainForm.btnSelectFile.skin({ background={ active=0xFF5AAEC4; default=0xFF71D9F5; disabled=0xFFCCCCCC; }; color={ active=0xFFFFFFFF; default=0xFF000000; disabled=0xFF6D6D6D } }); mainForm.btnRun.skin({ background={ active=0xFF30BE3F; default=0xFF7DED7B; disabled=0xFFCCCCCC; }; color={ active=0xFFFFFFFF; default=0xFF000000; disabled=0xFF6D6D6D } }); import console; import fsys.dlg; import process.r; mainForm.editRScript.print($"\script\heatmap_script.R"); var initEditConsole = function(){ mainForm.editConsole.text = null; mainForm.editConsole.appendText( textColor = 0xF5D971, point = 10, "当前仅支持 csv 格式的数据源。如果您的数据是其他格式(如 xls、xlsx),可以将其转换为 csv 格式后再使用。" ); } initEditConsole(); // 选择文件按钮点击事件 mainForm.btnSelectFile.oncommand = function(id, event) { var filePath = fsys.dlg.open("CSV 文件|*.csv||",, "选择输入文件"); if (filePath) { mainForm.inputFile.text = filePath; // 将选择的文件路径显示在输入框中 } } // 运行按钮点击事件 mainForm.btnRun.oncommand = function(id, event) { var inputFilePath = mainForm.inputFile.text; if (!inputFilePath) { mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "请先选择输入文件!"); return; } // 弹出保存文件对话框,选择PDF保存路径 var outputFilePath = fsys.dlg.save("PDF 文件|*.pdf||",, "选择保存路径"); if (!outputFilePath) { mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "请选择PDF文件的保存路径!"); return; } initEditConsole(); mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText("处理中......"); // 执行 R 脚本 var out = process.r.exec(mainForm.editRScript.text, inputFilePath, outputFilePath); mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText(out); // 结果检查 out_lines = string.split(out, '\r\n'); if (!io.exist(outputFilePath) or out_lines[#out_lines] == "Execution halted") { mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "出错了!检查日志是否有错误说明"); } else { mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText( textColor = 0x37D437, point = 10, "热图已成功保存至(注意检查是否符合预期):"); mainForm.editConsole.appendLink('\r\n'); mainForm.editConsole.appendText( textColor = 0x37D437, point = 12, outputFilePath); } // 滚动到最后一行 mainForm.editConsole.vScroll(); } //显示版本号 import fsys.version; var version = fsys.version.getInfo(io._exepath).productVersion; mainForm.text += " " ++ tostring(version); // 显示主窗口 mainForm.show(); return win.loopMessage();