-- 作者:bobolan521
-- 发布时间:2016/10/28 9:25:00
--
下面我们来进入软件窗体的一些解讲吧
我们公司使用的是金碟K3软件,出入库单据有,外购入库、生产领料,其他入库、基他出库、委外入库、委外出库、销售出库、产品入库等常用的单据
单据比较多,所以此次设计考虑所有单据共用一个制单窗体。
此主题相关图片如下:f.png
首先我们来看仓库模块、菜单上有外购入库、和生产领料,不论我点击哪个,其他跳出来的窗体都是同一个,但是窗体的标题会自动从菜单中读取。
但是外购入库的窗体上有供应商、生产领单上不需要啊,这时我们的单据配置表就起作用了,自动来判断哪些字段该显示,哪些字段为必填字段。
项目加截事件中
添加以下代码,实现自动读取从内部函数表中的记录,来生成内部函数,以方便调用,通过数据表来保存内部函数代码
Dim drs As new List(Of DataRow) drs = DataTables("内部函数").sqlSelect("") For Each dr As DataRow In drs Functions.remove(dr("名称")) Functions.Add(dr("名称"),dr("代码") ) Functions.Complie() Next
窗体打开后 afterload的代 码
_ckmc =e.Form.Name
Dim r As Row =Tables("出入库单主表").AddNew() r("单据类型")= _djlx Tables(e.Form.Name & "_制单表").Filter ="单据编号=\'" & r("单据编号") & "\' "
Functions.Execute("打开") (此处执行的内部函数,打开窗体后,自动记录下某个用户,几点几分,登录了这个窗体) Functions.Execute("窗口") Functions.Execute("打开制单")(表头必填,表体必填的字段自动着色,不允许填写的字段自动锁定)
此主题相关图片如下:1.png
\'\'\'\'\'\'表头显示字段/表头必填字段
Dim dra As DataRow = DataTables("单据配置表").Find("单据类型=\'" & _djlx & "\' and 窗口名称=\'" & _ckmc & "\' ") _btzd = "|" & dra("单据体必填字段") & "|" \'\'\'\'\'\'\'\'\'
r("方向")=dra("方向")
Dim xszd As String = dra("单据头显示列") Dim btzd As String = dra("单据头必填字段") For Each c As WinForm.Control In e.Form.Controls If btzd.Contains(c.Name)=True Then c.BackColor = Color.yellow (表头必填字段为黄色) End If If Typeof c Is WinForm.ComboBox=True Or Typeof c Is WinForm.Label=True Or Typeof c Is WinForm.DateTimePicker =True Then If xszd.Contains(c.Name.Trim("_"))=True Or c.Name.Contains("选单号")=True Or c.Name.Contains("源单类型")=True Or c.Name.Contains("方向")=True Then c.Visible =True Else c.Visible =False End If End If Next \'\'\'\'\'\'表头显示字段/表头必填字段
Dim lx As WinForm.Label = e.Form.Controls("外购入库") lx.Text = _djlx lx.Visible =True e.Form.Text = _djlx
[此贴子已经被作者于2016/10/28 19:04:58编辑过]
|