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

解决方案 »

  1.   

    '数据放在"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
      

  2.   

    呵呵,他是要用数据库。
    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