| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- include("scripts/EAction.js");
- include("scripts/simple.js");
- include("scripts/Common/DrawingUtils.js");
- include("scripts/Common/CsvToZdmConvert.js")
- include("scripts/Common/DrawZdmAll.js");
- function ZDMAdjust(guiAction) {
- EAction.call(this, guiAction);
- // 绘图比例
- this.ratio = 10.0;
- // 弹框
- this.dialog = undefined;
- }
- ZDMAdjust.prototype = new EAction();
- ZDMAdjust.includeBasePath = includeBasePath;
- ZDMAdjust.prototype.beginEvent = function () {
- EAction.prototype.beginEvent.call(this);
- var appWin = EAction.getMainWindow();
- if (RSettings.getStringValue("OpenProject/Current", "") == "") {
- QMessageBox.critical(appWin, qsTr("提示"), qsTr("请先选择工程路径"));
- return;
- }
- this.dialog = this.createWidget(ZDMAdjust.includeBasePath + "/ZDMAdjustDialog.ui", appWin);
- // 恢复默认
- var resetBtn = this.dialog.findChild("resetBtn");
- resetBtn.clicked.connect(this, this.resetClicked);
- // 恢复默认
- var calBtn = this.dialog.findChild("calBtn");
- calBtn.clicked.connect(this, this.calClicked);
- // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
- var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation()) + "/K_E_R.csv";
- // var lastOpenFileDir = ZDMAdjust.includeBasePath + "/../../../project/" + lastOpenFile + "/K_E_R.csv";
- this.zdmCsvPath = lastOpenFileDir.substring(0, lastOpenFileDir.lastIndexOf(".")) + ".csv";
- EAction.handleUserMessage("lastOpenZdmFileDirZDM:" + this.zdmCsvPath);
- this.setTable(this.zdmCsvPath);
- // this.setTable("D:\\BaiduNetdiskDownload\\20230613software\\K_E_R.csv");
- };
- ZDMAdjust.prototype.setTable = function (fileName) {
- var tableWidget = this.dialog.findChild("tableWidget");
- tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch);//布局
- var file = new QFile(fileName);
- file.open(makeQIODeviceOpenMode(QIODevice.ReadOnly, QIODevice.Text));
- var stream = new QTextStream(file);
- var row = 0;
- while (!stream.atEnd()) {
- var line = stream.readLine().trim();
- // EAction.handleUserMessage(line);
- var fields = line.split(",");//按照","分割字符,因为csv文件是以逗号间隔数据的
- var rowCount = tableWidget.rowCount;
- if (row == 0) {
- tableWidget.setHorizontalHeaderLabels(fields);
- }
- else {
- tableWidget.insertRow(rowCount);
- for (var i = 0; i < 3; i++) {
- tableWidget.setItem(rowCount, i, new QTableWidgetItem(fields[i]));
- }
- }
- row++;
- }
- if (!this.dialog.exec()) {
- EAction.handleUserMessage("clicked~");
- destr(this.dialog);
- EAction.activateMainWindow();
- return undefined;
- }
- }
- ZDMAdjust.prototype.resetClicked = function () {
- fileName = this.zdmCsvPath;
- // fileName = "D:/Project/JD_R_ls_aj.csv";
- var tableWidget = this.dialog.findChild("tableWidget");
- var rowNum = tableWidget.rowCount;
- // EAction.handleUserMessage("rowCount"+rowNum);
- for (var i = 0; i < rowNum; i++) {
- tableWidget.removeRow(0);
- }
- var file = new QFile(fileName);
- file.open(makeQIODeviceOpenMode(QIODevice.ReadOnly, QIODevice.Text));
- var stream = new QTextStream(file);
- var row = 0;
- while (!stream.atEnd()) {
- var line = stream.readLine().trim();
- var fields = line.split(",");//按照","分割字符,因为csv文件是以逗号间隔数据的
- var rowCount = tableWidget.rowCount;
- if (row == 0) {
- tableWidget.setHorizontalHeaderLabels(fields);
- }
- else {
- tableWidget.insertRow(rowCount);
- for (var i = 0; i < 3; i++) {
- tableWidget.setItem(rowCount, i, new QTableWidgetItem(fields[i]));
- }
- }
- row++;
- }
- }
- ZDMAdjust.prototype.calClicked = function () {
- var tableWidget = this.dialog.findChild("tableWidget");
- //首先获取表格内容,先试着保存到csv
- // var tmpStr = this.zdmCsvPath.substring(0, this.zdmCsvPath.lastIndexOf(".")) + "_aj.csv";
- var tmpStr = this.zdmCsvPath.replace(/.\w+$/i, "_aj.csv")
- var fileName = tmpStr;//"D:\\BaiduNetdiskDownload\\20230613software\\K_E_R_aaa.csv";
- var file = new QFile(fileName);
- file.open(makeQIODeviceOpenMode(QIODevice.ReadWrite, QIODevice.Text));
- var stream = new QTextStream(file);
- var conTents = "";
- // 写入头
- var header = tableWidget.horizontalHeader();
- if (null != header) {
- for (var i = 0; i < header.count(); i++) {
- var item = tableWidget.horizontalHeaderItem(i);
- conTents += item.text();
- if (i < header.count() - 1) {
- conTents += ",";
- }
- }
- conTents += "\n";
- }
- // 写内容
- for (var row = 0; row < tableWidget.rowCount; row++) {
- for (var column = 0; column < tableWidget.columnCount; column++) {
- var item = tableWidget.item(row, column);
- var str = item.text();
- conTents += str;
- if (column < tableWidget.columnCount - 1) {
- conTents += ",";
- }
- }
- conTents += "\n";
- }
- stream.writeString(conTents);
- file.close();
- //调用
- this.convert();
- if (this.dialog) {
- destr(this.dialog);
- }
- }
- ZDMAdjust.prototype.convert = function () {
- try {
- var csvFile = this.zdmCsvPath.replace(/.\w+$/i, "_aj.csv");
- var convert = new CsvToZdmConvert(csvFile);
- convert.convert();
- var zdmFile = convert.getZdmFileName();
- // 图层
- var layername = getLayername("CSV", csvFile);
- // addLayerToView(layername, "white", "CONTINUOUS", RLineweight.Weight025, 0);
- // setCurrentLayer(layername);
- // var exZDMImport = new FileZDM(filename, this.ratio);
- // exZDMImport.applyOperation();
- var drawZdmAll = new DrawZdmAll(this.ratio, false);
- var path = RSettings.getStringValue("OpenProject/Current", "");
- var dmxFile = path + "/诸城南-五莲北.DMX";
- var ctrFile = dmxFile.replace(/.\w+$/i, ".CTR");
- drawZdmAll.applyPainting(layername, dmxFile, zdmFile, ctrFile, false);
- if (true) {
- var tmp = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
- RSettings.setValue("OpenDisplayFile/ZDMFile", tmp + "," + zdmFile);
- }
- return true;
- } catch (error) {
- EAction.handleUserMessage("ZDMAdjust.js, ERROR: " + error.toString());
- return false;
- }
- };
|