Foxtable(狐表)用户栏目专家坐堂 → [原创]如何批量添加带图片的商品?有思路求代码


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

主题:[原创]如何批量添加带图片的商品?有思路求代码

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


加好友 发短信
等级:幼狐 帖子:151 积分:1254 威望:0 精华:0 注册:2012/5/29 16:50:00
[原创]如何批量添加带图片的商品?有思路求代码  发帖心情 Post By:2012/6/6 16:59:00 [显示全部帖子]

    我的产品库只有图片是最重要的,我想批量添加产品图片,而不是一个单元格,一个单元格地添加,其他的产品属性在慢慢添加,怎么设计啊?有办法没有啊?还有图片名称问题,能不能不覆盖,自动改成不一样的名称?

     本身就是表格,显然导入,导出无法解决上述问题,

    我的设计思路是这样的:

    狐表自身的图片管理器,就可以直接上传大量图片,我们要做的就是把图片从新分离到下面的单元格内,

  图片名字可能一样,所以上传的时候会提示是否覆盖,在表事件里需要判断是否名称一样,如果一样,名称改为不一样的名称。(这段代码怎么写啊)

     然后做一个按钮。叫产品分离器。代码写成:

     判断当前行的图片列是否有多个图片,如果当前行的图片列有多个图片,则新增加一行,将除了第一个图片外,全部移到新增行,判断新增行是否有多个图片,如果有循环上面的,如果只有一个图片,则分离结束!

 

    思路是这样的,代码我不会写啊,求高手指点啊,狐狸爸爸,帮忙写写代码啊!

     

[此贴子已经被作者于2012-6-6 17:07:13编辑过]

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


加好友 发短信
等级:幼狐 帖子:151 积分:1254 威望:0 精华:0 注册:2012/5/29 16:50:00
  发帖心情 Post By:2012/6/6 17:06:00 [显示全部帖子]

我是用苹果精神设计软件的,就是要简单至极,给客户最完美的体验。只需要轻点鼠标就可以操作的软件才是好软件,只有用最少的点击次数,才能显示智能化的精华!

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


加好友 发短信
等级:幼狐 帖子:151 积分:1254 威望:0 精华:0 注册:2012/5/29 16:50:00
一次添加多个图片为什么没有保存啊?狐狸爸爸求解!  发帖心情 Post By:2012/6/8 16:50:00 [显示全部帖子]

 

上次你说的代码的确可以一次添加多个图片,但是添加后,项目目录里并没有保存图片啊?尽当时能够看到,如果按住键盘的方向键下键,或者上键不丢,过一遍,图片就全部消失了,但是名字还在,

 

 

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        Dim dr As DataRow = DataTables("表A").AddNew()
        dr("文件") = filesys.GetName(fl)
    Next
End If

 

这个怎么保存啊?

 

我发现关于图片更改名字,是可以实现的,

使用表事件 表事件BeforeAttachFile可以完成,

DataTable:    触发事件的DataTable
DataRow:      触发事件的DataRow
DataCol:       触发事件的DataCol
SourceFolder: 要添加文件的来源目录
FileName:     要添加文件的名称,你可以根据需要改名。
SubFolder:    指定存放文件的子目录
Cancel:       逻辑型,是否取消此次添加。

 

 把图片放在不同的文件夹,就不会覆盖了

Dim dr As DataRow = e.DataRow
If
dr.IsNull("供应商") Or Dr.IsNull("日期") Then
    MessageBox.Show(
"供应商和日期不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel =
True
Else

    e.SubFolder = dr(
"供应商") & "\" & dr("日期").Year
End
If

 

我想把名字自动编号作为图片的名字,这样就不会覆盖了,这样即使当天上传同名的图片也不会覆盖了,

FileName:     要添加文件的名称,你可以根据需要改名

这个参数怎么用啊,

下面有段编号可以参考

 

If e.DataCol.Name = "日期" Then
    If
e.DataRow.IsNull("日期") Then
        e.
DataRow("编号") = Nothing
    Else
        Dim
bh As String = Format(e.DataRow("日期"),"yyyyMMdd") '取得编号的8位前缀
       
If e.DataRow("编号").StartsWith(bh) = False '如果编号的前8位不符
       
    Dim max As String
           
Dim idx As Integer
            max = e.
DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期") & "#") '取得该天的最大编号
           
If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(
9,3)) + 1 '获得最大编号的后三位顺序号,并加1
           
Else
                idx =
1 '否则顺序号等于1
           
End If
            e.
DataRow("编号") = bh & "-" & Format(idx,"000")
        End
If
    End
If
End
If

 

这个编号已经足够强大了,但是有点复杂,我只需要编号就行了,帮忙简化一下,怎么定义 FileName:,还有最上面的代码上传后不保存问题,怎么解决?


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


加好友 发短信
等级:幼狐 帖子:151 积分:1254 威望:0 精华:0 注册:2012/5/29 16:50:00
  发帖心情 Post By:2012/6/8 16:52:00 [显示全部帖子]

这个问题解决了,能给大家很大的参考价值啊,谢谢狐狸爸爸了!

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


加好友 发短信
等级:幼狐 帖子:151 积分:1254 威望:0 精华:0 注册:2012/5/29 16:50:00
  发帖心情 Post By:2012/6/8 17:28:00 [显示全部帖子]

保存问题已解决了,需要先批量上传,激发单元格保存,然后再用按钮分离,

 回到顶部