Foxtable(狐表)用户栏目专家坐堂 → txt要手动换行才导的进去


  共有1795人关注过本帖树形打印复制链接

主题:txt要手动换行才导的进去

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
txt要手动换行才导的进去  发帖心情 Post By:2017/11/27 19:24:00 [只看该作者]

老师,ERP导入的文件,1.txt的导不进去,相同的数据,2.txt 删掉数据,手动换行,每行复制过去就可以导进去。
不知道是不是换行的原因。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1.txt

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2.txt




我从FT表中导出的代码是这样:
Dim str As String = ""
Dim t As Table = Tables("盘点")
For Each r As Row In t.Rows
    If r("条码") <> "本库位合计" Then
        For Each c As Col In t.cols
            If c.name = "条码" Or c.name = "库位" Or c.name = "数量" Then
                str &= r(c) & ","
            End If
        Next
        str = str.Trim(",") & vbcrlf
    End If
Next

Dim pd As String = "\pd" & Date.now.Hour & Date.now.Minute & Date.now.Second & ".txt"

FileSys.WriteAllText(SpecialFolder.DesktopDirectory & pd, str, False, encoding.default)

[此贴子已经被作者于2017/11/27 19:27:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/11/27 19:28:00 [只看该作者]

1.txt的导不进去,相同的数据,2.txt 删掉数据,手动换行,每行复制过去就可以导进去。

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/11/27 19:30:00 [只看该作者]

我采用这种也是一样:
Dim ex As New Exporter  
ex.SourceTableName = "盘点"  
ex.FilePath = "C:\data\"   '& name
ex.Fields = "库位,条码,数量" '指定导出字段
ex.Format = "Delimited"
ex.Header = False
ex.NewTableName = "1"
ex.Export() '开始导出

Dim lj As String = "C:\data\1.txt"

Dim str As String = FileSys.ReadAllText(lj, Encoding.Default)
str = str.replace("""", "")
FileSys.WriteAllText(lj, str, False, Encoding.Default)

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/11/27 20:43:00 [只看该作者]

我软件接收盘点枪的代码这样写:
Forms("盘点").Controls("TextBox1").Text = Forms("盘点").Controls("TextBox1").Text  & e.Port.ReadExisting()

我从textbox1合并到表格的数据是这样:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20171127200211.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20171127200222.png
图片点击可在新窗口打开查看

代码这样写:
Dim max As String
Dim idx As Integer
max = Forms("盘点").Controls("table1").Table.DataTable.Compute("Max(库位)") '取得该月的最大编号
If max >= 1  Then '如果存在最大编号
    idx = max + 1
Else
    idx = 1 '否则顺序号等于1
End If

Dim strs As String = forms("盘点").Controls("textbox1").value
Dim xm As String = strs.SubString(0,1)
strs = strs.Replace(vblf,"")
Dim rs() As String = strs.Split(xm)
For i As Integer = 0 To rs.Length - 1
    Dim cs() As String = rs(i).Split(xm)
    If cs.Length = 1 Then
        Dim dr As DataRow = DataTables("盘点").Addnew()
        dr("门店名称") = _username
        dr("盘点日期") = Date.Today
        dr("条码") = cs(0)
        dr("盘点枪编号") = xm
        dr("库位") = Format(idx,"0000")
        dr("上传时间") =Date.now
        If dr("条码") IsNot "" Then
            dr("数量") = 1
        Else
            dr("条码") = "本库位合计"
        End If
    End If
Next



然后导出的代码这样写:
Dim str As String = ""
Dim t As Table = Tables("盘点")
For Each r As Row In t.Rows
    If r("条码") <> "本库位合计" Then
        For Each c As Col In t.cols
            If c.name = "库位" Or c.name = "条码" Or c.name = "数量" Then
                str &= r(c) & ","
            End If
        Next

        str = str.Trim(",") & vbcrlf
        'str = str.Replace(vblf,"") 
    End If
Next

Dim pd As String = "\pd" & Date.now.Hour & Date.now.Minute & Date.now.Second & ".txt"

FileSys.WriteAllText(SpecialFolder.DesktopDirectory & pd, str, False, encoding.default)

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20171127204051.png
图片点击可在新窗口打开查看
现在只要把,1移到上一行的末尾就可以导入到ERP系统里了。。。
不知道怎么会出现这个问题

[此贴子已经被作者于2017/11/27 20:48:07编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110626 积分:563032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/27 22:06:00 [只看该作者]

这种方式导出:

Dim pd As String =SpecialFolder.DesktopDirectory & "\pd\" & Date.now.Hour & Date.now.Minute & Date.now.Second & ".txt"

Dim ex As New Exporter
ex.SourceTableName = "盘点" '指定导出表
ex.FilePath = SpecialFolder.DesktopDirectory & "\pd\" '指定目标文件路径
ex.Format = "Delimited" '导出格式为符号分割的文本文件
ex.NewTableName = Date.now.Hour & Date.now.Minute & Date.now.Second '指定文件名,注意无须扩展名
ex.Fields="条码,库位,数量"
ex.Export() '开始导出

或者加上列标题
Dim str As String = """库位"",""条码"",""数量"""
Dim t As Table = Tables("盘点")
For Each r As Row In t.Rows
    If r("条码") <> "本库位合计" Then
        str = str & vbcrlf
        For Each c As Col In t.cols
            If c.name = "库位" Or c.name = "条码" Or c.name = "数量" Then
                str &= r(c) & ","
            End If
        Next
        str = str.Trim(",")
    End If
Next

 回到顶部