2、 如何在显示一张Bos单据的同时给它赋值? 要想在显示Bos单据的同时给它赋值,关键是在显示前要购建m_Billinte**ce的data包,这样在显示这张同据的时候,程序会解析data包,并将里面的值赋到单据界面上来。 Dim dctData As kfo.Dictionary Dim datasrv as object Dim oTableinfo as object Set DataSrv = m_BillInte**ce.K3Lib.CreateK3Object("K3ClassTpl.DataSrv") DataSrv.ClassTypeID = lClassTypeID 'lClassTypeID 需要弹出单据的ID Set oTableInfo = DataSrv.TableInfo Set dctData = DataSrv.GetEmptyBill '然后将当前单据数据包中需要的数据填充到dctdata的对应字段 ' 在以上语句执行后,dctdata(“page2”)里只有一行表结构(即表体只有一行) '赋表头的值 dctData("Page1")(oTableinfo("map")("FText"))("FFLD") = m_BillInte**ce.GetFieldValue("FText") dctData("Page1")(oTableinfo("map")("FDeptID"))("FFLD") = m_BillInte**ce.GetFieldValue("FDeptID", -1, Enu_ValueType_FFLD) dctData("Page1")(oTableinfo("map")("FDeptID"))("FFND") = m_BillInte**ce.GetFieldValue("FDeptID", -1, Enu_ValueType_FFND) dctData("Page1")(oTableinfo("map")("FDeptID"))("FDSP") = m_BillInte**ce.GetFieldValue("FDeptID", -1, Enu_ValueType_FDSP) '赋表体的值 Dim oPage2 As Object
For i = 1 To m_BillInte**ce.Data("Page2").UBound - 1 Set oPage2 = dctData("Page2")(1).CloneAll dctData("Page2").Add oPage2 '添加到 dcData dctData("Page2")(i + 1)(oTableinfo("map")("FIndex2"))("FFLD") = i + 1 '更改分录号 Next For i = 1 To m_BillInte**ce.Data("Page2").UBound '物料 FItemID dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFLD") = m_BillInte**ce.GetFieldValue("FItemID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FDSP") = m_BillInte**ce.GetFieldValue("FItemID ", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")(" FItemID "))("FFND") = m_BillInte**ce.GetFieldValue("FItemID ", i, Enu_ValueType_FFND) '物料名称 fbaseproperty dctData("page2")(i)(oTableinfo("map")("fbaseproperty"))("FFLD") = m_BillInte**ce.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FDSP") = m_BillInte**ce.GetFieldValue("fbaseproperty", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")("fbaseproperty"))("FFND") = m_BillInte**ce.GetFieldValue("fbaseproperty", i, Enu_ValueType_FFND) '计量单位 FUnitID dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFLD") = m_BillInte**ce.GetFieldValue("FUnitID ", i, Enu_ValueType_FFLD) dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FDSP") = m_BillInte**ce.GetFieldValue("FUnitID ", i, Enu_ValueType_FDSP) dctData("Page2")(i)(oTableinfo("map")(" FUnitID "))("FFND") = m_BillInte**ce.GetFieldValue("FUnitID ", i, Enu_ValueType_FFND) '数量 FQty dctData("Page2")(i)(oTableinfo("map")("FQty"))("FFLD") = m_BillInte**ce.GetFieldValue("fqty", i, Enu_ValueType_FFLD) Next Set obj = CreateObject("K3SingleClassBill.ClassInfoManager") With obj .datasrv = datasrv
.ISCheckRight = True .Show , , , dctData End With
|