| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 300 人关注过本帖
标题:由费用明细帐.dbf动态生成 费用统计表.dbf
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:801
专家分:3
注 册:2018-1-4
结帖率:97.38%
收藏
已结贴  问题点数:20 回复次数:10 
由费用明细帐.dbf动态生成 费用统计表.dbf
由费用明细帐.dbf动态生成 费用统计表.dbf。要求:费用统计表.dbf中字段 “车费”、“餐费”、“住宿费”、“快递费”由 费用明细帐.dbf中的“费用明细”动态生成,不固定,随着记录的增加还可能出现 “交通费”、“通讯费”、……
请高手赐教,万分感谢!!!
费用明细帐.rar (594 Bytes)

原始表样式:
图片附件: 游客没有浏览图片的权限,请 登录注册

结果表样式
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 统计 通讯 dbf 样式 动态生成 
前天 23:09
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2285
专家分:4774
注 册:2012-2-29
收藏
得分:2 
回复 楼主 王咸美
前些天讨论 https://bbs.bc-cn.net/thread-514544-2-1.html 第19楼已经给出了解决办法,只需要将竖表变横表就可以啦。
昨天 06:28
王咸美
Rank: 1
等 级:新手上路
帖 子:801
专家分:3
注 册:2018-1-4
收藏
得分:0 
19楼不是我想要的结果,未用上我提供的原始表文件,字段名也不是动态生成的。
昨天 06:31
sam_jiang
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:14
帖 子:1021
专家分:1555
注 册:2021-10-13
收藏
得分:0 
自己是一点脑子都不动啊
昨天 06:46
王咸美
Rank: 1
等 级:新手上路
帖 子:801
专家分:3
注 册:2018-1-4
收藏
得分:0 
因为是新手,请见谅。
昨天 09:30
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2316
专家分:4189
注 册:2007-4-27
收藏
得分:15 
程序代码:
       ***************
       * 名称:将费用明细转换成按项目列表
       * 来源:https://bbs.bc-/thread-514545-1-1.html
       * 时间:2025-10-20
       * 思路:因原表费用明细中的记录缺少规律,第一步去掉 “,”号,使之有规律性;
       *       第二步提取“XX费”的名称;第三步创建统计;第四步进行统计;第五步算合计。
       *       以上五步中有一个BUG,即 当“XX费”的长度超过5个汉字,会出错。
       ***************
       SET SAFETY off
       SET engi 70
       CLOSE DATABASES 
       
       SELECT * from 费用明细帐 into table ls
       SELECT ls
       REPLACE 费用明细 with STRTRAN(费用明细,[],[]) ALL   &&& 第一步完成
       zfc=[,]
       SELECT ls
       GO top
       SCAN
         fymx=费用明细
         n=OCCURS([],fymx)
         k1=1
         FOR i=1 to n
           k2=AT([],fymx,i)
           y=AT([],fymx,i)
           c_zf=SUBSTR(fymx,k1,k2-k1+2)
           IF !c_zf$zfc
             zfc=zfc+[0000000.00 as ]+c_zf+[,]
           ENDIF 
           k1=y+2
         ENDFOR 
         SELECT ls
       ENDSCAN      &&& 第二步完成
       c_zdm=[日期]+zfc+[合计]
       SELECT &c_zdm. from ls into table 费用统计表   &&& 第三步完成
       SELECT 费用统计表
       USE 费用统计表 alia bmk
       SELECT ls
       GO top
       SCAN
         fymx=费用明细
         n=OCCURS([],fymx)
         k1=1
         FOR i=1 to n
           k2=AT([],fymx,i)
           y=AT([],fymx,i)
           zdm=SUBSTR(fymx,k1,k2-k1+2)
           n_rmb=VAL(SUBSTR(fymx,k2+2,y-k2-2))
           SELECT bmk
           LOCATE for bmk.日期=ls.日期
           IF FOUND()
             REPLACE ([bmk.]+zdm) with n_rmb
           ENDIF 
           k1=y+2
         ENDFOR 
         SELECT ls
       ENDSCAN      &&& 第四步完成
       SELECT bmk
       GO top
       SCAN
         sn=0
         FOR i=2 to FCOUNT()-1
           sn=sn+EVALUATE(FIELD(i))
         ENDFOR 
         REPLACE 合计 with sn
         SELECT bmk
       ENDSCAN      &&& 第五步完成
       CLOSE DATABASES 
       QUIT 


只求每天有一丁点儿的进步就可以了
昨天 13:21
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:363
专家分:865
注 册:2014-6-12
收藏
得分:3 
以下是引用王咸美在2025-10-19 23:09:26的发言:

由费用明细帐.dbf动态生成 费用统计表.dbf。要求:费用统计表.dbf中字段 “车费”、“餐费”、“住宿费”、“快递费”由 费用明细帐.dbf中的“费用明细”动态生成,不固定,随着记录的增加还可能出现 “交通费”、“通讯费”、……
请高手赐教,万分感谢!!!

原始表样式:

结果表样式

你这种不符合财务、编程规范,鉴于楼房不高,建议赶紧拆了重建,否则以后麻烦的事情更多

日期            科目/项目    金额    备注
2025.10.06    101 车费        0.68
2025.10.06    102 餐费        106
2025.10.06    103 住宿费      1600
...

这样建立表格,以后统计汇总都方便。你那种属于自己挖坑,以后的麻烦事情更多
收到的鲜花
  • sam_jiang昨天 15:50 送鲜花  1朵  
昨天 14:22
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:363
专家分:865
注 册:2014-6-12
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

参考百度上的各种表格
昨天 14:27
sxcl7899
Rank: 2
等 级:论坛游民
帖 子:8
专家分:35
注 册:2022-6-30
收藏
得分:0 
楼上说得对,最好采用主、子表方式,建立明细子表,不能把所有内容都放在主表的一个字段里面。
昨天 14:28
王咸美
Rank: 1
等 级:新手上路
帖 子:801
专家分:3
注 册:2018-1-4
收藏
得分:0 
谢谢!能否将“合计”字段放在最后
昨天 15:24
快速回复:由费用明细帐.dbf动态生成 费用统计表.dbf
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026535 second(s), 12 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved