'网格中:保存后,使光标停留在当前行
If DBEngine.SaveRecord() = true then
'保存后,要从数据库更新当前行数据
If bNewRecord <> true then '保存修改
DBGrid14.UpdateCurRecordFromServer(DBEngine.GetCurRecordSQLWhere())
Else '保存新增记录
DBGrid14.UpdateFromDataSourceUrl("")
DBGrid14.SelectRow(DBGrid14.GetRowCount()-1)
End if
End if
'网格中行、列定位
grd_Main.SetFocusCell nRowIndex, nColIndex
grd_Main.SelectRow nRowIndex
'网格中移动记录:
Sub btnFirst_Click() '移到首项
MainGrid.SetFocusRow (maingrid.GetFixedRowCount )
End Sub
Sub btnLast_Click() '移到尾项
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetRecordCount-1)
End Sub
Sub btnNext_Click() '移到上一项
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetCurRecordIndex + 1)
End Sub
Sub btnPre_Click() '移到下一项
MainGrid.SetFocusRow (maingrid.GetFixedRowCount + mainGrid.GetCurRecordIndex - 1)
End Sub
'---------------------------------------------------------------------------------------------------------------------
'填充网格时设置网格状态
Sub MainGrid_EventBeforeFillGrid()
lblCount2.Caption = MainGrid.GetRecordCount()
Call DBGrid.SetFieldColWidth "编号",True '设置列宽
Call DBGrid.SetHideField("ID",True) '隐藏网格中列
End Sub
'---------------------------------------------------------------------------------------------------------------------
'隐藏网格中某列
Call DBGrid.SetHideField("ID",True) '隐藏网格中列
'设置网格某列宽
Call DBGrid.SetFieldColWidth "编号",0 '设置列宽
'---------------------------------------------------------------------------------------------------------------------
'取网格中字段值
RowIndex = DBGrid14.GetCurRowIndex‘得到当前行索引
nRowIndex = DBGrid14.GetCurRecordIndex ‘为空
(DBGrid14.GetFieldStringValue("项目名称",RowIndex-1))’得到当前行相应字段值
(DBGrid14.GetFieldStringValue("项目名称",nRowIndex))’得到当前行相应字段值
'设置网格中字段值
grd_Main.SetFieldStringValue "字段名", RowIndex,"0"
'---------------------------------------------------------------------------------------------------------------------
'响应网络当前行改变事件
Sub DBGrid31_EventCurRowChanged(nRowIndex)
'改变数据引擎的当前记录
if DBEngine.CurIndex() <> nRowIndex-DBGrid31.GetFixedRowCount then
DBEngine.GoToRecord nRowIndex-DBGrid31.GetFixedRowCount
end if
End Sub
'---------------------------------------------------------------------------------------------------------------------
'网格中多行选择的处理
'全选/撤消全选
Sub chkSel_Change()
If chkSel = True Then
DBGrid.SelectAllCells()
ElseIf chkSel = False Then
DBGrid.UnSelectAllCells()
End If
End Sub
'判断多选
Sub btnInsert_Click()
nRowIndex = DBGrid14.GetCurRowIndex()
RowHeadHeight=DBGrid14.GetFixedRowCount
For i = 0 To DBGrid14.GetRecordCount - 1
If DBGrid14.IsRowSelected(i + RowHeadHeight) then
if lstrKey = "" THEN
lstrKey ="'"+ DBGrid14.GetFieldStringValue("序号",i) +"'"
ELSE
lstrKey =lstrKey & "," & "'"+ DBGrid14.GetFieldStringValue("序号",i) +"'"
END IF
End If
Next
If lstrKey="" then
MsgBox "没有选择订单明细项目!"
exit sub
end If
strSql = "Select 序号 From 出货表_明细 Where 出货单号 = '"+ebCode.Text+"' And 序号 IN("+lstrKey+") "
strRet = DBEngine.WebFunction("SqlQuery",strSql,"")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
strCode = DBEngine.GetElemData(strRet,"序号")
If strCode <> "" Then
DBEngine.Msgbox "同一笔订单的明细项不能重复添加,请重新选择!"
Exit Sub
End If
strInsert = "Insert 出货表_明细(出货单号,订单号,序号,料号,品名_1,品名_2,批号,单位,规格型号,客户要求交货期,预交日期,交货日期) " +_
"Select "+ebCode.Text+" AS 出货单号,订单号,序号,料号,品名_1,品名_2,批号,单位,规格型号,客户要求交货期,预交日期,'"+dtcDate.Text+"' AS 交货日期"
strInsert = strInsert + " FROM 订单表_明细 WHERE 序号 IN("+lstrKey+") "
StrRet = DBEngine.WebFunction("SqlNonQuery", StrInsert, "")
strError = DBEngine.GetElemData(strRet, "Error")
If strError<>"" Then
Msgbox "SQL语句执行失败:" + strError
exit Sub
End If
MainGrid.UpdateFromDataSourceUrl("")
End Sub
'---------------------------------------------------------------------------------------------------------------------
'注释:导出网格中数据至Excel
Sub btnOutput_Click()
RowIndex = MainGrid.GetCurRecordIndex
If RowIndex = -1 then
Msgbox "没有数据可导出!"
exit sub
Else
MainGrid.ExportGrid("")
End If
End Sub