遇到一个难题,请各位帮忙解决,谢谢。

aicaixia2008 2008-10-25 03:27:14
原数据:
计划批号 品号 仓库 客户编号 库存数量 调拨仓库 数量
4123-3 1000195500 FP L0001 -360.000 B32 720.000
7659829-1 1000453800 L22 H0008 0 FP_HNW 202.000

想要得到的数据:
计划批号 品号 仓库 客户编号 库存数量
4123-3 1000195500 FP L0001 -360.000
4123-3 1000195500 B32 L0001 720.000
7659829-1 1000453800 L22 H0008 0
7659829-1 1000453800 FP_HNW H0008 202.000
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongnaifu 2008-10-25
  • 打赏
  • 举报
回复
呵呵,他是要用数据库。
create table #tmp(
计划批号 varchar(50)
,品号 varchar(50)
,仓库 varchar(50)
,客户编号 varchar(50)
,库存数量 numeric(10,3)
,调拨仓库 varchar(50)
,数量 numeric(10,3)
)
insert into #tmp(计划批号,品号,仓库,客户编号,库存数量,调拨仓库,数量)
values('4123-3','1000195500','FP','L0001',-360.000,'B32',720.000)
insert into #tmp(计划批号,品号,仓库,客户编号,库存数量,调拨仓库,数量)
values('7659829-1','1000453800','L22','H0008',0,'FP_HNW',202.000)
--select * from #tmp
--加类型1和2是为了排序,order by 后面的内容可以根据需要修改
select 计划批号,品号,仓库,客户编号,库存数量,1 as 类型 from #tmp
union all
select 计划批号,品号,调拨仓库 as 仓库,客户编号,数量 as 库存数量,2 as 类型 from #tmp
order by 计划批号,品号,客户编号,类型
drop table #tmp
SYSSZ 2008-10-25
  • 打赏
  • 举报
回复
'数据放在"C:\11.txt"
Private Sub Form_Load()
Dim itmx As ListItem
With ListView1
.ColumnHeaders.Add , "a", "计划批号"
.ColumnHeaders.Add , "b", "品号 "
.ColumnHeaders.Add , "c", "仓库 "
.ColumnHeaders.Add , "d", "客户编号"
.ColumnHeaders.Add , "e", "库存数量"
ListView1.View = lvwReport
Open "C:\11.txt" For Input As #1
b = ""
Do Until EOF(1)
Line Input #1, nextline
b = b & nextline & Space(1)
Loop
Close #1
j = 1
k = 1
l = 1
m = 1
arr = Split(b, " ")
For i = 0 To UBound(arr)
If Trim(arr(i)) <> "" Then
If InStr(arr(i), "-") > 1 Then
.ListItems.Add , , arr(i)
.ListItems.Add , , arr(i)
ElseIf Left(arr(i), 4) = 1000 Then
.ListItems(j).SubItems(1) = arr(i)
j = j + 1
.ListItems(j).SubItems(1) = arr(i)
j = j + 1
ElseIf arr(i) = "FP" Or arr(i) = "B32" Or arr(i) = "L22" Or arr(i) = "FP_HNW" Then
.ListItems(k).SubItems(2) = arr(i)
k = k + 1
ElseIf Mid(arr(i), 2, 3) = "000" Then
.ListItems(l).SubItems(3) = arr(i)
l = l + 1
.ListItems(l).SubItems(3) = arr(i)
l = l + 1
ElseIf Mid(arr(i), 2, 3) = "000" Then
.ListItems(l).SubItems(3) = arr(i)
l = l + 1
.ListItems(l).SubItems(3) = arr(i)
l = l + 1
Else
ListView1.ListItems(m).SubItems(4) = arr(i)
m = m + 1
End If
End If
Next
End With
End Sub
tongnaifu 2008-10-25
  • 打赏
  • 举报
回复
mark,晚上解答

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧