回 帖 发 新 帖 刷新版面

主题:来看看我的问题,急死了!

以下为TXT文件的内容,要求导入DBF后用一个程序实现以下功能:

编号 序号 图号 名称 数量 材料 单重 总重 备注

14JS313 省煤器吊挂管 1 装配件 11097 
(由14JS3-0中的序号3~13组成) 
1 3 14JS313-1 管子Φ42X6 6 20G 7.87 47.2 
2 4 14JS313-2 管子Φ42X6 46 20G 8.16 375 
3 5 14JS313-3 管子Φ42X6 8 20G 20.3 162 
4 6 14JS313-4 管子Φ42X6 44 20G 20.7 911 
7 14JS313-5-0 管件 3 装配件 39.1 117 
5 7/1 14JS313-5-0 管子Φ42?;L=7310.5 3 20G 38.9 117 
6 7/2 4JS313-5-1 挂耳板δ10;№1 3 1Cr6Si2Mo 0.18 0.54 


1、导入数据表以后增加1列为标记列(次数据为A表)

2、新建一个数据表为B表

3、用一个程序代码实现以下功能:

a、当a表标记列=b表编号时提取a表有标记列整行的数据内容,提取b表整行的内容,并把a表的总重列求和保存到c表中,以下为例子:

如:

b表的编号为1,a表标记列为1的有序号1和序号3

b表的编号为2,a表的标记列为2的有序号5和序号6

那么c表的内容就应该是

编号(顺序号) 序号(=b表的编号) 图号(b表的图号) 名称(=b表的名称) 总重 (=满足条件求和后的重量) 

1 1 14JS313-1 管子Φ42X6 209.2

2 3 14JS313-3 管子Φ42X6 209.2

3 7/1 14JS313-5-0 管子Φ42?;L=7310.5 117.54

4 7/2 14JS313-5-1 挂耳板δ10;№1 117.54


请问如何实现以上功能??请高手赐教!!! 

回复列表 (共11个回复)

沙发

一、从你的TXT文件看,好像是用空格作为分隔符,但以下的数据却无规律。

[color=FF0000]1 3 14JS313-1 管子Φ42X6 6 20G 7.87 47.2 
2 4 14JS313-2 管子Φ42X6 46 20G 8.16 375 
3 5 14JS313-3 管子Φ42X6 8 20G 20.3 162 
4 6 14JS313-4 管子Φ42X6 44 20G 20.7 911 [/color]

这几行可以与“编号 序号 图号 名称 数量 材料 单重 总重 备注”对应上,而“[color=FF0000]7 14JS313-5-0 管件 3 装配件 39.1 117 [/color]”中的“[color=FF0000]7[/color]”是编号还是序号,就不得而知了。

二、标记列用什么做标记?怎样标记?根据是什么?


板凳

不要急,再急也得把事儿说清楚.否则,怎么帮你?
从你的意思看,你是想把.TXT文件的数据导入到表A以后,再建一相同结构的表B,在表A中增加一标记字段,然后,根据具体情况,人工方法在表A的标记字段上填入相应的序号,然后再把表A中标记号相同的记录在总重字段上求和,将结果写入表B中,表B的编号就是表A中的标记号.
是不是这个意思?
另外,你的数据的编号、序号也令人费解。
而且,.txt文件中数据的格式行也不一致,需要进一步的筛选,甄别。

3 楼

我来说下我的具体意思:
1、从txt导入数据表的步骤我已经做好了
2、jinlonggao 老师理解的意识是正确的
3、经过今天一天的实验,求和的问题已经解决了,现在的问题有以下几点:
我先把正确的表文件再写下,上边的有点问题(sywzs老师说的问题) 
编号 序号 图号 名称 数量 材料 单重 总重 备注

14JS313 省煤器吊挂管 1 装配件 11097 
(由14JS3-0中的序号3~13组成) 
1 3 14JS313-1 管子Φ42X6 6 20G 7.87 47.2 
2 4 14JS313-2 管子Φ42X6 46 20G 8.16 375 
3 5 14JS313-3 管子Φ42X6 8 20G 20.3 162 
4 6 14JS313-4 管子Φ42X6 44 20G 20.7 911 
  7 14JS313-5-0 管件 3 装配件 39.1 117 
5 7/1 14JS313-5-0 管子Φ42?;L=7310.5 3 20G 38.9 117 
6 7/2 4JS313-5-1 挂耳板δ10;№1 3 1Cr6Si2Mo 0.18 0.54
在序号7前面的编号为空,解释几个问题:表B的编号就是表A中的标记号;序号是所引用的图纸上的序号不等于编号;编号是表上的顺序号

4 楼

先把我的原代码发上来帮我看看
close all
use 发货清单
delete all
pack
*****1步
select sum(val(总重)),fh.包装形式,fh.编号 group by 包装形式,fh.编号 from abcd,fh  where val(abcd.发货号)=VAL(fh.编号) union;
    select sum(val(总重)),fh.包装形式,fh.编号 group by 包装形式,fh.编号 from abcd,fh  where val(abcd.发货号)=VAL(fh.编号) union;
    select sum(val(总重)),fh.包装形式,fh.编号 group by 包装形式,fh.编号 from abcd,fh  where val(abcd.发货号)=VAL(fh.编号) into cursor temp
**1.1步
select sum(val(fh.包装数))from fh into cursor temp_包装数
*******2步
    insert into 发货清单("零件清单号","图号","名称","包装形式","数量","单重","总重","包装图号","备注","发货号","总包数","包数");
        select abcd.编号,abcd.图号,abcd.名称,fh.包装形式,ALLTRIM(abcd.数量),ALLTRIM(str(temp.sum_exp_1)),ALLTRIM(str(temp.sum_exp_1+fh.增重)),fh.包装图号,fh.备注,;
        alltrim(fh.编号)+"/"+alltrim(str(temp_包装数.sum_exp_1)),temp_包装数.sum_exp_1,fh.包装数 from;
        abcd,fh,temp,temp_包装数 where val(abcd.发货号)=VAL(fh.编号) and VAL(temp.编号)=VAL(fh.编号)

*******3步
select 发货清单
n=1
go top
do while .t.
    replace 编号 with ALLTRIM(STR(n))
    if eof()
        exit
    else
        skip
        n=n+1
    endif
enddo


do form d:\包装设计系统\发货清单aaa.scx

5 楼

先贴表的内容在说问题
发货号   编号 序号 图号 名称 数量 材料 单重 总重 备注
   1       1 3 14JS313-1 管子Φ42X6 6 20G 7.87 47.2 
   1       2 4 14JS313-2 管子Φ42X6 46 20G 8.16 375 
   2       3 5 14JS313-3 管子Φ42X6 8 20G 20.3 162 
   2       4 6 14JS313-4 管子Φ42X6 44 20G 20.7 911 
   3         7 14JS313-5-0 管件 3 装配件 39.1 117 
           5 7/1 14JS313-5-0 管子Φ42?;L=7310.5 3 20G 38.9 117 
           6 7/2 4JS313-5-1 挂耳板δ10;№1 3 1Cr6Si2Mo 0.18 0.54
1、从上边的代码可以看出当发货号为“1”,发货清单表上的零件清单号为编号1和2内容为第一行和第二行当发货号为“3”时,我要做成零件清单号为5和6内容为第五行,请问如何返回5和6的编号?
2、当包装的数量>1时,发货清单表上的单重写为2×b表.总重/2,总重写为2×b表.总重/2+a表.增重,2是个不定值(反正是>1的时候),请问如何实现呢?
现在就遇到这2个问题解决不了,请老师们赐教,小弟不胜感激!!!

6 楼

没人能搞定吗?
jinlonggao老师和sywzs老师没在吗,帮我看看啊!
小弟先谢谢了!!!

7 楼

无知!

8 楼

反思……

9 楼

你大概是想通过A表和B表生成C表吧,最好能把三个表的数据结构(包括数据类型)说清楚。
从你的程序上看,觉得有点乱,怎么又出现了“增重”、“包装数”等,发货号和标记号是什么关系,又是根据什么填写的数据?B标有哪些数据?能不能把这几个问题说明白一点?

10 楼

可能是 我表达的不清楚吧?
生成c表的内容是:
编号  零件清单号    图号     名称         单重    总重  包装形式   包装图号  发货号  备注 
1        1        14JS313-1  管子Φ42X6    47.2   47.2+增重  xxx   14JS313B    1/3
2        2        14JS313-2  管子Φ42X6    375     375+增重  xxx   14JS313B    1/3
3        3        14JS313-3  管子Φ42X6    162     162+增重  xxx   14JS313B    2/3
4        4        14JS313-4  管子Φ42X6    911     911+增重  xxx   14JS313B    2/3
5        5~6      14JS313-5-0  管件       117     117+增重  xxx   14JS313B    3/3
这个是我要生成的c表内容
给位老大再帮忙看看吧,我们领导要求我这个月底完成这个项目,现在无法交差啊!!急

另外我把源文件发给sywzs老师,请老师查阅下,给我解决下这些问题!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册