请上传宽度大于 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

63

1

63

10

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