📄 workdlg.frm
字号:
If FindCode = "" Then
MsgBox "没有查找代号", vbCritical Or vbOKOnly, "错误"
DoModal = RC_ERROR
Exit Function
End If
End If
m_DoMode = DoMode
m_FindCode = FindCode
Me.Show vbModal
DoModal = RC_OK
End Function
Private Sub m_PrintDlg_DoPrint()
'Printer.PaintPicture m_PrintDlg.PrintView.Picture, 10, 10
End Sub
Private Sub m_PrintDlg_PaintPage(ByVal pPage As Long, ByVal pPaintRate As Double)
Dim pDC As PictureBox
Dim t_max As Integer, i As Integer
Set pDC = m_PrintDlg.PrintView
pDC.CurrentX = m_PrintDlg.PrintView.Width - 1000
pDC.CurrentY = 100
pDC.FontSize = 10 * pPaintRate
pDC.Print "第" & pPage & "页"
If Not (p_CarProject Is Nothing) And pPage = 1 Then
pDC.FontSize = 20 * pPaintRate
pDC.CurrentX = pDC.Width / 2 * pPaintRate - pDC.TextWidth("维修结算单") / 2 * pPaintRate
pDC.CurrentY = 600 * pPaintRate
pDC.Print "维修结算单"
PrintRate pDC, "送修单位:" & p_CarProject.Company, 450, 1280, 10, pPaintRate
PrintRate pDC, "车号:" & p_CarProject.CarCode, 450, 1680, 10, pPaintRate
PrintRate pDC, "车型:" & p_CarProject.CarType, 450, 2080, 10, pPaintRate
PrintRate pDC, "送修时间:" & p_CarProject.StartDate, 6020, 1680, 10, pPaintRate
PrintRate pDC, "维修单号:" & p_CarProject.WorkHeadId, 6020, 1280, 10, pPaintRate
PrintRate pDC, "完工时间:" & p_CarProject.EndDate, 6020, 2080, 10, pPaintRate
PrintRate pDC, "联系电话:" & p_CarProject.Phone, 3020, 2080, 10, pPaintRate
pDC.Print " -------------------------------------------------------------------------"
PrintRate pDC, "维修项目", 1200, 2480, 10, pPaintRate
PrintRate pDC, "工时费", 3800, 2480, 10, pPaintRate
PrintRate pDC, "备注", 6400, 2480, 10, pPaintRate
t_max = (m_PrintDlg.PageHeight * 0.7 - 3400) / 400
If Not m_ReWorkSub_1.BOF Then m_ReWorkSub_1.MoveFirst
For i = 1 To t_max
If m_ReWorkSub_1.EOF Then Exit For
PrintRate pDC, m_ReWorkSub_1.Fields(0).Value, 1200, 2480 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(m_ReWorkSub_1.Fields(1).Value), 3800, 2480 + i * 400, 10, pPaintRate
PrintRate pDC, m_ReWorkSub_1.Fields(2).Value, 6400, 2480 + i * 400, 10, pPaintRate
m_ReWorkSub_1.MoveNext
Next i
If i <= t_max - 2 Then
pDC.Print " ------------------------------------------------------------------------"
PrintRate pDC, "维修项目合计:", 1200, 2480 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(p_CarProject.RepairSum), 3800, 2480 + i * 400, 10, pPaintRate
End If
pDC.Print " --------------------------------------------------------------------------------"
PrintRate pDC, "存货名称", 800, 2880 + i * 400, 10, pPaintRate
PrintRate pDC, "单位", 3000, 2880 + i * 400, 10, pPaintRate
PrintRate pDC, "数量", 3800, 2880 + i * 400, 10, pPaintRate
PrintRate pDC, "单价", 5000, 2880 + i * 400, 10, pPaintRate
PrintRate pDC, "金额", 6800, 2880 + i * 400, 10, pPaintRate
If Not m_ReWorkSub_2.BOF Then m_ReWorkSub_2.MoveFirst
Do While i <= t_max
If m_ReWorkSub_2.EOF Then Exit Do
PrintRate pDC, m_ReWorkSub_2.Fields(0).Value, 800, 3280 + i * 400, 10, pPaintRate
PrintRate pDC, m_ReWorkSub_2.Fields(1).Value, 3000, 3280 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(m_ReWorkSub_2.Fields(2).Value), 3800, 3280 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(m_ReWorkSub_2.Fields(3).Value), 5000, 3280 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(m_ReWorkSub_2.Fields(4).Value), 6800, 3280 + i * 400, 10, pPaintRate
i = i + 1
m_ReWorkSub_2.MoveNext
Loop
pDC.Print " ------------------------------------------------------------------------"
PrintRate pDC, "存货合计:", 800, 3280 + i * 400, 10, pPaintRate
PrintRate pDC, FormatNumber(p_CarProject.InventorySum), 6800, 3280 + i * 400, 10, pPaintRate
End If
End Sub
Private Sub RepairGrid1_ChangeSum()
WorkHead.RepairSum = RepairGrid1.RepairSum
WorkHead.Save
TextSum.Text = FormatNumber(WorkHead.RepairSum)
RaiseEvent ChangeSum(WorkHead.GetWorkId(), WorkHead.RepairSum)
End Sub
Private Sub RepairGrid1_PopupFind(pComm As String, pVal As TextBox)
Dim t_findDlg As FindDlg
Set t_findDlg = New FindDlg
If t_findDlg.DoModal(pComm) = RC_OK Then
pVal.Text = t_findDlg.FindResult
End If
End Sub
Private Sub Toolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
Case 2
RepairBillView
Case 4
Toolbar.Buttons.Item(4).Enabled = False
Toolbar.Buttons.Item(5).Enabled = False
Toolbar.Buttons.Item(6).Enabled = False
Toolbar.Buttons.Item(7).Enabled = True
Toolbar.Buttons.Item(8).Enabled = True
Toolbar.Buttons.Item(10).Enabled = False
Toolbar.Buttons.Item(11).Enabled = False
Toolbar.Buttons.Item(13).Enabled = False
Toolbar.Buttons.Item(15).Enabled = False
WorkHead.ClearData
RepairGrid1.ClearData
RepairGrid1.ShowData
WorkHead.ShowData
WorkHead.Enabled = True
RepairGrid1.Enabled = False
m_DoMode = PM_ADD
Case 5
Toolbar.Buttons.Item(4).Enabled = False
Toolbar.Buttons.Item(5).Enabled = False
Toolbar.Buttons.Item(6).Enabled = False
Toolbar.Buttons.Item(7).Enabled = True
Toolbar.Buttons.Item(8).Enabled = True
Toolbar.Buttons.Item(10).Enabled = False
Toolbar.Buttons.Item(11).Enabled = False
Toolbar.Buttons.Item(13).Enabled = False
WorkHead.Enabled = True
RepairGrid1.Enabled = False
Case 6
Case 7
If m_DoMode = PM_EDIT Then
Toolbar.Buttons.Item(4).Enabled = True
Toolbar.Buttons.Item(5).Enabled = True
Toolbar.Buttons.Item(6).Enabled = True
Toolbar.Buttons.Item(7).Enabled = False
Toolbar.Buttons.Item(8).Enabled = False
Toolbar.Buttons.Item(10).Enabled = True
Toolbar.Buttons.Item(11).Enabled = True
Toolbar.Buttons.Item(13).Enabled = True
Toolbar.Buttons.Item(15).Enabled = True
WorkHead.Enabled = False
RepairGrid1.Enabled = True
WorkHead.ShowData
Else
Unload Me
End If
Case 8
If WorkHead.Save Then
Toolbar.Buttons.Item(4).Enabled = True
Toolbar.Buttons.Item(5).Enabled = True
Toolbar.Buttons.Item(6).Enabled = True
Toolbar.Buttons.Item(7).Enabled = False
Toolbar.Buttons.Item(8).Enabled = False
Toolbar.Buttons.Item(10).Enabled = True
Toolbar.Buttons.Item(11).Enabled = True
Toolbar.Buttons.Item(13).Enabled = True
Toolbar.Buttons.Item(15).Enabled = True
WorkHead.Enabled = False
RepairGrid1.Enabled = True
RaiseEvent Update
End If
Case 10
RepairGrid1.WorkMianId = WorkHead.GetWorkId
RepairGrid1.AddRow
Case 11
Case 13
Dim InvDlg As InvWorkDlg
Set InvDlg = New InvWorkDlg
InvDlg.DoModal WorkHead.GetWorkId(), Not (m_DoMode = PM_VIWE)
Set InvDlg = Nothing
Case 15
If MsgBox("是否真的完工该项目?", vbOKCancel Or vbExclamation, "询问") = vbOK Then
WorkHead.SetWorkEnd
Unload Me
End If
Case 17
Unload Me
End Select
End Sub
Private Sub WorkHead_PopupFind(pComm As String, pVal As TextBox)
'弹出查找对话框
Dim t_findDlg As FindDlg
Set t_findDlg = New FindDlg
If t_findDlg.DoModal(pComm) = RC_OK Then
pVal.Text = t_findDlg.FindResult
End If
End Sub
Public Sub RepairBillView()
Set m_PrintDlg = New PrintViewWin
Set p_CarProject = New CarProject
Set m_ReWorkSub_1 = New ADODB.Recordset
Set m_ReWorkSub_2 = New ADODB.Recordset
Set p_CarProject.ActiveConnection = g_Conn
m_ReWorkSub_1.CursorLocation = adUseClient
m_ReWorkSub_2.CursorLocation = adUseClient
p_CarProject.FindProject "AutoId=" & CStr(WorkHead.GetWorkId)
m_ReWorkSub_1.Open "SELECT r.Name,w.Price,w.cMemo FROM WorkSub_1 as w,RepairItem as r WHERE w.RepairId=r.AutoId AND MainId=" _
& CStr(WorkHead.GetWorkId), g_Conn, adOpenDynamic, adLockReadOnly
m_ReWorkSub_2.Open "SELECT i.Name,i.Unit,w.Quantity,w.Cost,w.Price FROM WorkSub_2 as w,Inventory as i WHERE w.InvId=i.AutoId AND MainId=" _
& CStr(WorkHead.GetWorkId), g_Conn, adOpenDynamic, adLockReadOnly
If Not m_ReWorkSub_1.EOF Then m_ReWorkSub_1.MoveLast
If Not m_ReWorkSub_2.EOF Then m_ReWorkSub_2.MoveLast
PrintDlg.ShowPrinter
m_PrintDlg.MaxPage = ((m_ReWorkSub_1.RecordCount + m_ReWorkSub_2.RecordCount) * 200 + 3600) / Printer.Height * 0.7
If ((m_ReWorkSub_1.RecordCount + m_ReWorkSub_2.RecordCount) * 200 + 3600) Mod Printer.Height * 0.7 Then m_PrintDlg.MaxPage = m_PrintDlg.MaxPage + 1
m_PrintDlg.Show vbModal
Set m_PrintDlg = Nothing
Set p_CarProject = Nothing
Set m_ReWorkSub_1 = Nothing
Set m_ReWorkSub_2 = Nothing
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -