求助_这个打印模板如何实现,有数据库_产供销
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 7  1/1   1  
作者
内容
007  [个人空间]


注册  2021-01-14
发贴数  31
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2021-02-22 14:28

在鞋行业,有码数之分,但实际操作中是类似一个二维的表格来减少行记录,即分颜色不分码的建立产品信息及bom 
 
在做销售订单时,为匹配软件方式,还是用一维表格来录入,但在打印的时候,如何实现类似于二维表的展示模式(码数列是动态的,即每张单据的码数不是固定的) 
 
在打印模板中,想了好多办法,似乎只能是固定的列 
 
如何做成类似附件三的这种行列转置后的动态列显示打印模板 
 
数据库请下载附件4





附件(登录后才可下载):2102221428_77.rar  说明: 原文件:正式信息.rar   大小:359716 Byte

        于 2021-02-22 14:28 被 007 修改


fwj3861  [个人空间]
QQ名  越南-叶子(121305301)


注册  2010-09-09
发贴数  618
精华贴  10
原创贴  20
来自  越南
状态  正常

级别  贵宾
#2»发布于2021-02-22 16:08

需要找第三方服务的老师写脚本解决






官方认证第三方服务团队 (越南-叶子) QQ:121305301 TEL:+84869350626
承接越南北部-河内周边省份-OIT部署和维护服务(24小时上门或远程服务)
服务介绍:http://www.onlyit.cn/onlyit_service.html

daibiaoge  [个人空间]


注册  2020-04-30
发贴数  446
精华贴  2
原创贴  1
来自  
状态  正常

级别  会员
#3»发布于2021-02-23 11:52

可以建議老師集成免費版本的grid++,這個聽說還是很強大的。




justin  [个人空间]


注册  2021-02-24
发贴数  17
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#4»发布于2021-02-24 10:40

明细标题区与明细内容区合并为一个段落作为一个子表设定数据源,这样是不是可以实现动态列




ayangzhi  [个人空间]


注册  2010-07-18
发贴数  1047
精华贴  1
原创贴  2
来自  
状态  正常

级别  贵宾
#5»发布于2021-02-25 08:45

打印时写个脚本就好了. 做过一个这样的行转列, 鞋材行业






杨清云,承接商贸管理、人力资源实施、综合管理实施服务.
可扩展开发WEB, 物联网, 大屏展示报表, 移动端, 微信公众号等.
联系QQ:13836962    TEL:13058180007

007  [个人空间]


注册  2021-01-14
发贴数  31
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#6»发布于2021-02-25 10:19

@ayangzhi 
可否分享下这个脚本及打印模板呢,非常感谢。




langjitianyaxyb  [个人空间]


注册  2017-04-30
发贴数  17
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#7»发布于2026-05-15 20:37

这个对于制鞋企业比较适用,期待中,我也想做一个这样的模块,期盼已久,现在做了一个:代码如下 
int main() 

    db_select_dbio("data"); 
 
    // 设置扩展文本变量 
    ext_txt1 = 33;  ext_txt2 = 34;  ext_txt3 = 35; 
    ext_txt4 = 36;  ext_txt5 = 37;  ext_txt6 = 38; 
    ext_txt7 = 39;  ext_txt8 = 40;  ext_txt9 = 41; 
    ext_txt10 = 42; ext_txt11 = 43; ext_txt12 = 44; 
    ext_txt13 = 45; ext_txt14 = 46; ext_txt15 = 47; 
    ext_txt16 = 48; ext_txt17 = 49; 
 
    // 添加数据库扩展字段 
    db_add_field("ext_zd1");  db_add_field("ext_zd2"); 
    db_add_field("ext_zd3");  db_add_field("ext_zd4"); 
    db_add_field("ext_zd5");  db_add_field("ext_zd6"); 
    db_add_field("ext_zd7");  db_add_field("ext_zd8"); 
    db_add_field("ext_zd9");  db_add_field("ext_zd10"); 
    db_add_field("ext_zd11"); db_add_field("ext_zd12"); 
    db_add_field("ext_zd13"); db_add_field("ext_zd14"); 
    db_add_field("ext_zd15"); db_add_field("ext_zd16"); 
    db_add_field("ext_zd17"); 
 
    int n, i, ksm, jsm, js, a, j, k, h, sl, cmws, sl1, hs, dqh, jzh, mxsl, dqcm, dqsl; 
    string cm, pm, zdm; 
    n = db_row_count(); 
 
    if (n > 0) { 
        // 先统一排序 
        db_sort_ext("res_id,attr.cap.1,inp_price,note_info"); 
        db_go_head(); 
        db_show() 
        // 初始化合并相关变量 
        hs = db_row_count(); 
        dqh = 0;//初始化当前行 
        jzh = 0;//初始化基准行 
        mxsl = 0;//初始化明细数量 
        string lsmc, lsys, lsbz, dqys, dqmc, dqbz; 
        num lsjg, dqjg; 
 
        // 循环处理每一行 
        while (dqh < hs) { 
            db_go_row(dqh); 
            cm = db_res_ext("sub_attr_val_3");//获取尺码 
            cmws = strlen_n(cm);//计算尺码位数 
 
            if (cmws == 5) { 
                // 处理第一种情况(cm位数长度为5) 
                pm = db_res_ext("sub_attr_val_2");//获取配码 
                js = db_res_ext("ass_num");//获取件数 
                ksm = to_int(str_get_sub_n(cm, 0, 2));//获取开始尺码 
                a = strlen_n(pm);//获取配码位数 
                //msg(pm) 
                for (j = 0; j < a; j++) { 
                    k = to_int(str_get_sub_n(pm, j, 1)); 
                    h = to_int(ksm) - 32 + j; 
                    zdm = "ext_zd" + h; 
                    sl = js * k; 
                    db_set_value_ext(zdm, sl); 
                } 
                dqh++; // 移动到下一行 
            } else { 
                // 处理第二种情况(需要合并的行) 
                dqmc = db_res_ext("res_id");//当前名称 
                dqys = db_res_ext("attr.cap.1");//当前颜色 
                dqcm = to_int(db_res_ext("attr.cap.3"));//当前尺码 
                dqsl = to_int(db_res_ext("inp_num"));//当前数量 
                dqjg = db_res_ext("inp_price");//当前价格 
                dqbz = db_res_ext("note_info");//当前备注 
                zdm = "ext_zd" + (dqcm - 32); 
 
                if (lsmc == dqmc && lsys == dqys && lsjg == dqjg && lsbz == dqbz) { 
                    // 合并相同行 
                    db_go_row(jzh); 
                    //msg(jzh) 
                    int yysl = to_int(db_res_ext(zdm));//获取原有数量 
                    db_set_value_ext(zdm, num_dec_cut(yysl + dqsl, 0)); 
                    mxsl = dqsl + mxsl; 
                    db_set_value_ext("inp_num", num_dec_cut(mxsl, 0)); 
                    db_set_value_ext("inp_amount", dqjg * mxsl); 
                    db_go_row(dqh); 
                    db_del_row(); 
                    hs = db_row_count(); 
                } else { 
                    // 新的一组数据 
                    db_set_value_ext(zdm, num_dec_cut(dqsl, 0)); 
                    lsmc = dqmc;//历史名称 
                    lsys = dqys;//历史颜色 
                    lsjg = dqjg;//历史价格 
                    lsbz = dqbz;//历史备注 
                    jzh = dqh;//基准行 
                    dqh++; 
                    mxsl = dqsl; 
                    db_set_value_ext("attr.cap.3", "-"); 
                } 
            } 
        }     db_select_dbio("data_ext"); 
    } else { 
        msg("错误:数据未加载成功"); 
    } 
 
    // db_select_dbio(0); 
    // db_show() 
    return 1; 
}

表格里的数据是这样的
打印预览出来的格式

        于 2026-05-15 20:37 被 langjitianyaxyb 修改



 7  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]