请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
Kennethq(uid:3010035)
职业资格认证:尚未取得认证
  • 在对数据复选后,获取当前行的数据,下发到别的数据库表 console.log('cesi-----------')//获取当前值var boxes = _g().getWidgetsByName("box");console.log('查看-----------',boxes);//获取当前页的复选按钮控件数组var selectedRows = ;console.log('查看-----------',selectedRows)if (typeof(boxes) != "undefined") {for (i = 0; i < boxes.length; i++) { if (boxes.selected()) { selectedRows.push(boxes.options.location); //如果控件大于1个,则遍历判断是否选中,将选中的控件所在的单元格编号塞进数组中 } }} else { if (boxes.selected()) { selectedRows.push(boxes.options.location); //如果控件只有1个,则直接判断是否选中,选中的话把单元格编号塞进数组中 }}console.log('查看-----------',selectedRows)// 转义函数:处理SQL中的单引号等特殊字符function escapeSql(str) {    if (str === null || str === undefined) return '';    return String(str).replace(/'/g, "''"); // 将单引号替换为两个单引号避免SQL语法错误}// 2. 定义目标表(按设备名称分类)var tableMap = {    "成型机": "plan_production_schedule_cx",    "硫化机": "plan_production_schedule_lh"};// 3. 遍历选中行,分类处理(从0开始遍历所有选中行)for (var i = 0; i < selectedRows.length; i++) {    var rowIndex = selectedRows; // 选中行的索引    // 4. 获取当前行数据(修复对象语法,添加逗号分隔)    var rowData = {        "equipment_code": escapeSql(FR.cellStr(rowIndex, 1)),  // 第2列:设备编码        "equipment_name": escapeSql(FR.cellStr(rowIndex, 2)),  // 第3列:设备名称        "work_team_code": escapeSql(FR.cellStr(rowIndex, 3)),  // 第4列:班组编码        "work_team_name": escapeSql(FR.cellStr(rowIndex, 4)),  // 第5列:班组名称        "work_team_time": escapeSql(FR.cellStr(rowIndex, 5)),  // 第6列:班次        "plan_code": escapeSql(FR.cellStr(rowIndex, 6)),       // 第7列:任务编号        "status": escapeSql(FR.cellStr(rowIndex, 7)),          // 第8列:任务状态        "process_order": escapeSql(FR.cellStr(rowIndex, 8)),   // 第9列:生产顺序号        "product_code": escapeSql(FR.cellStr(rowIndex, 9)),    // 第10列:物料编码        "product_name": escapeSql(FR.cellStr(rowIndex, 10)),   // 第11列:物料名称        "product_spec": escapeSql(FR.cellStr(rowIndex, 11)),   // 第12列:规格        "qty": escapeSql(FR.cellStr(rowIndex, 12)),            // 第13列:数量        "unit": escapeSql(FR.cellStr(rowIndex, 13)),           // 第14列:单位        "start_time": escapeSql(FR.cellStr(rowIndex, 14)),     // 第15列:计划开始时间        "end_time": escapeSql(FR.cellStr(rowIndex, 15)),       // 第16列:计划结束时间        "stock_out_time_of_next_process": escapeSql(FR.cellStr(rowIndex, 16)), // 第17列:下工序缺料时间点        "importance": escapeSql(FR.cellStr(rowIndex, 17)),     // 第18列:重要程度        "formula_code": escapeSql(FR.cellStr(rowIndex, 18)),   // 第19列:指定配方编码        "formula_version": escapeSql(FR.cellStr(rowIndex, 19)), // 第20列:指定配方版本        "process_method_code": escapeSql(FR.cellStr(rowIndex, 20)), // 第21列:指定工艺编码        "process_method_version": escapeSql(FR.cellStr(rowIndex, 21)) // 第22列:指定工艺版本    };    // 5. 判断设备类型(使用equipment_name字段,修复之前的"设备编号"错误)    var deviceName = rowData.equipment_name;    var targetTable = tableMap;    if (!targetTable) {        FR.Msg.alert("提示", `设备类型【${deviceName}】无匹配目标表,跳过该行!`);        continue;    }    // 6. 拼接SQL(修复VALUES部分的逗号缺失问题)    var sql = `        INSERT INTO ${targetTable} (            equipment_code, equipment_name, work_team_code, work_team_name, work_team_time,             plan_code, status, process_order, product_code, product_name, product_spec,             qty, unit, start_time, end_time, stock_out_time_of_next_process, importance,             formula_code, formula_version, process_method_code, process_method_version        ) VALUES (            '${rowData.equipment_code}',            '${rowData.equipment_name}',            '${rowData.work_team_code}',            '${rowData.work_team_name}',            '${rowData.work_team_time}',            '${rowData.plan_code}',            '${rowData.status}',            '${rowData.process_order}',            '${rowData.product_code}',            '${rowData.product_name}',            '${rowData.product_spec}',            '${rowData.qty}',            '${rowData.unit}',            '${rowData.start_time}',            '${rowData.end_time}',            '${rowData.stock_out_time_of_next_process}',            '${rowData.importance}',            '${rowData.formula_code}',            '${rowData.formula_version}',            '${rowData.process_method_code}',            '${rowData.process_method_version}'        )    `;    // 7. 执行SQL    try {        FR.remoteEvaluate({            sql: sql,            dbLink: "服务器1(计划)" // 确保连接名与设计器配置一致        });        FR.Msg.alert("提示", `第 ${rowIndex + 1} 行数据已下发到【${targetTable}】`);    } catch (e) {        FR.Msg.alert("错误", `第 ${rowIndex + 1} 行下发失败:${e.message}`);        console.error("SQL执行错误:", e, "SQL语句:", sql); // 控制台打印详细错误    }}FR.Msg.alert("完成", "数据下发处理完成!");
  • 现在可以批量选择数据,想在点击 计划下发的时候,会自动根据设备字段不同的值下发到不同数据库的不同表(这个地方想的是添加内置sql,添加提交条件)。主要是不知道批量选择后怎么和计划下发连接起来,怎么实现批量下发或者全选下发
  • 报表有一条数,添加记录后提交,不是新增数据,而是覆盖之前的数据,日志报错
  • 目前的db文件在C:\Users\kenneth\Desktop\study\FCP\chapter0.db 这个目录下,该怎么在数据连接处写,finereport的安装地址D:\FineReport_11.0
  • 报表页面本身有数,在填报的时候有导入、增删改的操作,我想在现有数据发生变化的时候,在一个空的单元格上做字段变化判断,从而生成版本号在原有数据的基础上出现变化,版本号就加一,变成2若是新增的一条数,版本号就自动判断为1
  • 计划初版(2).zip测试.zip填报导入的时候 提示报错,但是单元格是设置了扩展属性,报【内容区域没有设置扩展属性】检查了每一列都设置了扩展的
  • 根据表中字段A的值,通过点击按钮  把数据存到不同的表中   A=1 选择这条数  点击按钮 就到A表  A=2 选择这条数    点击按钮就到B表
  • 选择数据 点击删除列行后再提交  但是249在数据库只有一条
  • 要在填报报表里加一个全选和批量选择按钮,现在每一行前的框展示不出来
  • 想对拖进来的字段也进行增删改查 能否实现

67

1

67

10

个人成就
内容被浏览2,327
加入社区289天
返回顶部