⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workdlg.frm

📁 汽车维修管理软件。其中包含三个编辑控件。
💻 FRM
📖 第 1 页 / 共 2 页
字号:
   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 + -