金蝶K3 BOS 二次开发怎样获取单据体中选中单元格的值

罄竹听雨 2012-02-29 09:38:51
本人刚刚接触二次开发,有人给出了道二次开发的练习题。

供应链单据录入物料时,如果该物料在同一单据中已录入过,则自动带出上一录入的项目。

大体思路有了,但不知道怎么获取选中单元格的值,以及怎样将获取值赋值给相应单元格。

本人是C#程序员,对VB的一些关键字不是太熟悉,所以解答的时候能否稍微详细些,谢谢!
...全文
1825 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzvcan 2014-01-22
  • 打赏
  • 举报
回复
Private Sub CustomNoCheck() '编码:钱坤 '日期:2014-01-21 '功能:检测客户是否已经下过订单号 Dim strSQL As String Dim Rs As ADODB.Recordset Dim lngFBillNoindex As Long '订单编号索引,检测时不包含本单,这样在检测时,不管是否保存,都不会检测本单 Dim strFBillNo As String '订单编号 Dim lngFCustIDindex As Long '客户字段的索引 Dim strFCustIDnumber As String '客户编码 Dim lngFItemIDindex As Long '物料索引 Dim strFItemIDNumber As String '物料编码 Dim lngFEntrySelfS0163index As Long '客户订单编号索引 Dim strFEntrySelfS0163 As String '客户订单编号 Dim oBillData As Object '中间层组件 Dim dicNo As New KFO.Dictionary Dim strCustomNoList As String Dim strMsg As String Dim I, J, K As Long On Error GoTo err_handle: Set oBillData = CreateObject("BIllDataAccess.GetData") '---------取索引----------------------- lngFBillNoindex = GetFieldColIndex("FBillNo", True) lngFCustIDindex = GetFieldColIndex("FCustID", True) lngFItemIDindex = GetFieldColIndex("FItemID", False) lngFEntrySelfS0163index = GetFieldColIndex("FEntrySelfS0163", False) strFCustIDnumber = m_BillTransfer.GetHeadNumber(lngFCustIDindex) '取客户编码 If strFCustIDnumber = "" Then MsgBox "请输入购货单位", vbOKOnly, "汇顶科技" Exit Sub End If strFBillNo = m_BillTransfer.GetHeadText(lngFBillNoindex) '取单据编号 '组合客户订单号 I = 1 strFItemIDNumber = m_BillTransfer.GetGridText(I, lngFItemIDindex): strCustomNoList = "" Do While strFItemIDNumber <> "" strFEntrySelfS0163 = Trim(m_BillTransfer.GetGridText(I, lngFEntrySelfS0163index)) If Not dicNo.Lookup(strFEntrySelfS0163) And strFEntrySelfS0163 <> "" Then '不存在 dicNo(strFEntrySelfS0163) = strFEntrySelfS0163 If strCustomNoList = "" Then strCustomNoList = "'" & strFEntrySelfS0163 & "'" Else strCustomNoList = strCustomNoList & ",'" & strFEntrySelfS0163 & "'" End If End If I = I + 1: strFItemIDNumber = m_BillTransfer.GetGridText(I, lngFItemIDindex) Loop strMsg = "" If strCustomNoList <> "" Then strCustomNoList = "(" & strCustomNoList & ")" strSQL = "select distinct a.FBillNo,b.FEntrySelfS0163 from SEOrder a inner join SEOrderEntry b on a.FInterID =b.FInterID left join t_Organization c on a.FCustID=c.fitemid" _ & " where b.FEntrySelfS0163 in " & strCustomNoList & " and a.fbillno<>'" & strFBillNo & "' and c.fnumber='" & strFCustIDnumber & "'" Set Rs = oBillData.ExecuteSQL(MMTS.PropsString, strSQL) If Not Rs.EOF Then Do While Not Rs.EOF If strMsg = "" Then strMsg = Rs.Fields("FEntrySelfS0163") & "(订单编号:" & Rs.Fields("fbillno") & ")" Else strMsg = strMsg & vbCrLf & Rs.Fields("FEntrySelfS0163") & "(订单编号:" & Rs.Fields("fbillno") & ")" End If Rs.MoveNext Loop MsgBox "存在重复客户订单号:" & vbCrLf & strMsg, vbOKOnly, "汇顶科技" Else MsgBox "未检测到重复客户订单号", vbOKOnly, "汇顶科技" End If End If Exit Sub err_handle: MsgBox Err.Description & vbCrLf & "Position:CustomNoCheck" End Sub
lewislei 2014-01-18
  • 打赏
  • 举报
回复
怎么获取选中单元格的值,以及怎样将获取值赋值给相应单元格,这个看下BOS开发手册就知道了。另外还要区分是单据还是序时簿,它们有不同的方法。
罄竹听雨 2012-03-29
  • 打赏
  • 举报
回复
那个,K3是VB开发的,我现在正在学习2次开发,要做插件。
guess8888 2012-03-08
  • 打赏
  • 举报
回复
金蝶K3是用VB开发的?还是你在用VB做2次开发.
要获得的单元格是K3窗体的还是你在做的?
----------------------------------------------------------- 金蝶K/3 WISE_V14.0.0 Patch说明 -编号:PT095164 ----------------------------------------------------------- (C)金蝶软件(中国)有限公司版权所有,2015年03月16日 补丁编号: PT095164 客户端组件:COMRemote.dll,k3bills.dll,K3BillExpImp.dll 中间层组件: WEB组件: 其它组件: 编译环境: WIn2003 VB6.0 SP6.0 补丁性质: 功能改进 所属系统: 供应链整体 适用版本: K/3 WISE_V14.0.0 适用范围: 所有客户 补丁发布说明: 【R20141224-0286】 功能点:仓存管理-生产领料 应用场景:仓存管理-生产领料 症状:新增领料单,录入物料、数量、单价及发料仓库,将光标移至单据头,单价和金额被清零,相应单元格变成灰色不能编辑,删除发料仓库,单价和金额又能重新编。同时,生产领料单新增后,录入了单价和金额。审核退出,再次打开单据一反审核,单价和金额就会被自动清空掉。 【R20150107-0005】 功能点:销售管理-销售订单 应用场景:销售管理-销售订单 症状:销售出库单 根据销售订单下推生成时,如果基础资料有维护销售单价,系统无法优先取销售订单上的单价。 【R20150107-0004】 功能点:销售管理-订单引入 应用场景:销售管理-订单引入 症状:在销售系统录入一张销售订单,然后通过在序时簿上引出EXCEL模板然后在EXCEL中录入内容然后引入到系统中的方式引入一张与手工录入单据客户等内容一致的销售订单。然后在销售出库单上新增选择源单为手工录入以及引入的两张单据同时选择,系统提示【多单选单时,订货机构、购货单位、收货方必须唯一】。如果是在销售订单序时簿同时选择两张单据下推可以成功。 【R20150116-0138】 功能点:仓存管理-虚仓管理 应用场景:仓存管理-虚仓管理 症状:虚仓管理,虚仓入库序时薄过滤,条件选择仓库,F7选择时“提示系统名称和代码已使用”。 【R20150115-0048】 功能点:仓存管理-销售出库 应用场景:仓存管理-销售出库 症状:1、物料进行批次及辅助数量管理,数量精度2位数; 2、录入入库单,批次01,第一次入库基本数量100,换算率为2,辅助数量为50。第二次入库基本数量为120,换算率为3,辅助数量为40,此时库存中基本数量为220,辅助数量为90; 3、销售订单自定义字段辅助单价以及辅助金额,辅助单价为手工录入的单价字段,辅助金额设置公式辅助单价*辅助数量。销售出库单也自定义字段辅助单价以及辅助金额,辅助单价取源单来源销售订单的辅助单价,辅助金额设置公式辅助单价*辅助数量; 4、销售订单录入基本数量300,辅助单价1; 5、销售订单下推销售出库单,然后F12选择库存中的批次01,系统自动携带辅助数量为90,计算辅助金额为90.16,计算不对。 【R20150126-0016】 功能点:销售管理-发票引出 应用场景:销售管理-发票引出 症状:k/3客户端工具包--bos平台--bos数据交换平台:点击‘供应链数据’,新建任务后, 在引出界面选择‘销售发票(普通)’,选择文件类型以及文件路径.步骤2:点击过滤任意一张销售发票,点击执行进行引出.步骤3:新建一空白账套,结束初始化,现将基础资料同步后。然后在将步骤2引出的excel引入到该空白账套中。 【R20150128-0271】 功能点:分销管理-数据传输 应用场景:分销管理-数据传输 症状:分销管理模块打开数据传输和基础设置报错,提示调用分销管理函数出错。 【R20150122-0298】 功能点:供应链整体-单据精度 应用场景:供应链整体-单据精度 症状:外购入库单上新增列1,列2,列1设置数字字段,精度为6位,列2用外购入库单的实收数量*列1,列2精度为6位。如果赋给列1小数位比较多的话,列2就无法正常算出数出来,系统默认保留两位,比如,列1输入0.000625,数量为1,此时列2显示为0.00。其他业务单据如销售出库单也有这样的情况出现。 【R20150203-0354】 功能点:存货核算-出库核算 应用场景:存货核算-出库核算 症状:新初始化的账套,物料采用分批认定法(批内加权平均),在录初始数据的时候,录了3个批次的数据,3个批次的价格都不相同,结束初始化之后,做了每个批次的出库单,出库核算的时候,第一个批次取的不是自己批次的批内加权平均价,而是所有批次的加权平均价,但是后面2个批次是正常的。 【R20150109-0061】 功能点:委外管理-委外订单 应用场景:委外管理-委外订单 症状:采购申请下推委外订单,单价都取了第一条分录,全部一样。 【R20150122-0104】 功能点:供应链整体-非核算仓 应用场景:供应链整体-非核算仓 症状:新增的红字销售发票下推生成红字销售出库单后,出库单中的发货仓库按 F7 选择时,无法选择核算仓库,只能选择到非核算仓。 【R20150127-0204】 功能点:供应链整体-单据字定义 应用场景:供应链整体-单据字定义 症状:销售出库单据头增加一个单价字段,设置为必录,然后在系统中录入一张销售出库单,在数据交换平台中导出该单据,在系统中删除该单据,然后进行导入,系统提示【多步操作产生错误。请检查每一步的状态】。 【R20150202-0271】 功能点:仓存管理-报表查询 应用场景:仓存管理-报表查询 症状:新建用户,授予部分物料的数据权限,登陆K/3后,查询物料收发汇总表(物料收发明细表),勾选参数“显示MTO数量调整单数据”,确定后无法进入报表;如果不勾选参数,或把用户加入管理员组,则可以正常进入报表。 前置补丁: 安装方法:(如有前置补丁,请先依次安装前置补丁) 1.中间层安装补丁; 2.升级帐套; 3.客户端安装补丁。

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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