原数据:
计划批号 品号 仓库 客户编号 库存数量 调拨仓库 数量
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
计划批号 品号 仓库 客户编号 库存数量 调拨仓库 数量
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
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
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