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

📄 frmsugorder.frm

📁 用VB6.0编写的关于车辆运输调度的系统
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmSugOrder 
   Caption         =   "Suggest Order"
   ClientHeight    =   3495
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   5625
   BeginProperty Font 
      Name            =   "宋体"
      Size            =   9
      Charset         =   134
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   LinkTopic       =   "Form5"
   MDIChild        =   -1  'True
   ScaleHeight     =   3495
   ScaleWidth      =   5625
   WindowState     =   2  'Maximized
   Begin VB.CommandButton cmdPrint 
      Caption         =   "Order List"
      Height          =   495
      Left            =   3480
      TabIndex        =   1
      Top             =   1440
      Width           =   1215
   End
   Begin VB.CommandButton cmdRelease 
      Caption         =   "Release"
      Height          =   495
      Left            =   840
      TabIndex        =   0
      Top             =   1440
      Width           =   1215
   End
End
Attribute VB_Name = "frmSugOrder"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Const iniCode = 1000

Const LineWidth = 400
Const ColWidth = 2000

Private Enum enuDetailCols
     procode = 1
     prodesc
     maxleve
     safleve
     currlev
     inleve
     ordnum
     Qty
     
     MaxCols = Qty          '总的列数
End Enum

Private Sub cmdDBF_Click()

End Sub

Private Sub cmdprint_Click()
'    Call PrintOrder
    frmOrderlist.Show
End Sub

Private Sub cmdRelease_Click()
On Error GoTo err
Dim lOrderCount As Long
Dim sSQL As String, sSQL1 As String, sSQL2 As String
Dim rstCut As New Recordset
Dim rstcus As New Recordset
Dim iCount As Long, i As Long
Dim lprocode As Long, lSugNumber As Long
Dim lsugonum As Long, lSugoCre As Long
Dim OrderSum As Long, lMaxLeve As Long, lMinLeve As Long, lActLeve As Long, lSafLeve As Long
Dim lcuscode As Long, sCusCode As String, sitedesc As String
Dim smeaunit As String
    
    lOrderCount = 0
    iCount = 1
    sSQL = "select distinct cuscode from appcut where astatus='Y'"
    Set rstcus = Acs_cnt.Execute(sSQL)
    With rstcus
    Do While Not .EOF
        lcuscode = rstcus!cuscode
        sSQL = "select a.*,b.itedesc from appcut a,appite b where a.actleve + a.orderso + a.orderdo + a.orderto < a.safleve and a.astatus='Y' and a.cuscode=" & lcuscode & " and a.procode=b.itecode"
        Set rstCut = Acs_cnt.Execute(sSQL)
        If Not rstCut.EOF Then
            lOrderCount = lOrderCount + 1
            lsugonum = GetSugONum
            lSugoCre = ChangeDate(Date)
                       
            i = 0
            Do While Not rstCut.EOF
                OrderSum = rstCut!orderso + rstCut!orderdo + rstCut!orderto
                lMaxLeve = rstCut!maxleve
                lMinLeve = rstCut!minleve
                lSafLeve = rstCut!safleve
                lActLeve = rstCut!actleve
                smeaunit = rstCut!Meaunit
                
                i = i + 1
                If lActLeve + OrderSum < lSafLeve Then
                    lSugNumber = lMaxLeve - (OrderSum + lActLeve)
                    lprocode = rstCut!procode
                    sitedesc = rstCut!Itedesc
                    sSQL1 = "insert into orderd(cmpcode,entcode,cuscode,sugonum,sugolin,sugolnc,itecode,itedesc,sugoqty,meaunit)" & _
                         " values('" & gsCmpCode & "','" & gsEntCode & "'," & lcuscode & "," & lsugonum & "," & i & "," & lSugoCre & "," & lprocode & ",'" & sitedesc & "'," & lSugNumber & ",'" & smeaunit & "')"
                    
                    sSQL2 = "update appcut set orderso=" & lSugNumber & " where cuscode=" & lcuscode & " and Procode=" & lprocode & ""
                    
                    Acs_cnt.BeginTrans
                    Acs_cnt.Execute (sSQL1)
                    Acs_cnt.Execute (sSQL2)
                    Acs_cnt.CommitTrans
                    
                End If
                rstCut.MoveNext
              Loop
        End If

        .MoveNext
    Loop
    End With
    
    MsgBox "" & lOrderCount & " Order is released!", vbOKOnly
        
    
    rstcus.Close
    Set rstcus = Nothing
    
    If lOrderCount > 0 And Printer.Orientation = 2 Then
        Call PrintOrder
    ElseIf lOrderCount > 0 And Printer.Orientation = 1 Then
        Printer.Orientation = 2
        Call PrintOrder
    End If
    
    Exit Sub
    
err:
    MsgBox err.Description, vbOKOnly, "Error"
    
End Sub


Private Sub PrintOrder()
On Error Resume Next
Dim sCompany As String, lcuscode As Long, lentcode As Long
Dim lMaxLeve As Long, lSafLeve As Long, lActLeve As Long, lOrdNum As Long
Dim rstOrderH As Recordset, rstOrderd As Recordset
Dim sStr As String, sSQL As String
Dim lsugonum As Long
Dim iRow As Long
Dim scusdesc As String

Printer.Orientation = 2

sSQL = "select distinct a.cuscode,b.cusdesc,a.sugonum from orderd a,appcus b where a.cuscode=b.cuscode and a.sugonum>0"
Set rstOrderH = Acs_cnt.Execute(sSQL)
With rstOrderH
    Do While Not .EOF
        lsugonum = rstOrderH!sugonum
        lcuscode = rstOrderH!cuscode
        scusdesc = rstOrderH!Cusdesc
       
        sSQL = "select a.*,b.maxleve,b.safleve,b.actleve,b.orderso,b.orderdo,b.orderto from orderd a,appcut b where a.cuscode=" & lcuscode & " and a.itecode=b.procode and a.sugonum=" & lsugonum & ""
        Set rstOrderd = Acs_cnt.Execute(sSQL)
        With rstOrderd
'Print Head
            sStr = "Suggested Order"
            Call PrintString(8000, 1000, 14, sStr)
            
            sStr = "Company:" & gsCmpDesc
            Call PrintString(500, 1500, 12, sStr)
            
            sStr = "Enity:" & gsEntDesc
            Call PrintString(500, 2000, 12, sStr)
            
            sStr = "Report Date:" & Format(Date, "dd/mm/yyyy")
            Call PrintString(12000, 2000, 12, sStr)
            
            sStr = "Customer Code/Desc:" & lcuscode & "/" & scusdesc
            Call PrintString(500, 2500, 12, sStr)
            
            sStr = "Report Time:" & Format(Time, "hh:mm")
            Call PrintString(12000, 2500, 12, sStr)
            
            sStr = "Product Code/Desc:"
            Call PrintString(500, 3000, 12, sStr)
            
            sStr = "Max Tank Lvl"
            Call PrintString(3000, 3000, 12, sStr)
            
            sStr = "Safety Stock"
            Call PrintString(5000, 3000, 12, sStr)
            
            sStr = "Curr Tank Lvl"
            Call PrintString(7000, 3000, 12, sStr)
            
            sStr = "In-Transit Level"
            Call PrintString(9000, 3000, 12, sStr)
            
            sStr = "Order Num"
            Call PrintString(11000, 3000, 12, sStr)
            
            sStr = "Ln Num"
            Call PrintString(12000, 3000, 12, sStr)
            
            sStr = "Qty"
            Call PrintString(13000, 3000, 12, sStr)
            
            sStr = "EOQ Order"
            Call PrintString(14000, 3000, 12, sStr)
            
            iRow = 0
            Do While Not .EOF
'Print Detail
                iRow = iRow + 1
                
                sStr = rstOrderd!Itecode & "/" & rstOrderd!Itedesc
                Call PrintString(500, 3000 + iRow * LineWidth, 12, sStr)
    
                'sStr = rstOrderD!maxleve
                'Call PrintString(4000, 5000, 12, sStr)
                sStr = rstOrderd!maxleve
                Call PrintString(3000, 3000 + iRow * LineWidth, 12, sStr)
                
                sStr = rstOrderd!safleve
                Call PrintString(5000, 3000 + iRow * LineWidth, 12, sStr)
                
                sStr = rstOrderd!actleve
                Call PrintString(7000, 3000 + iRow * LineWidth, 12, sStr)
                
                sStr = rstOrderd!orderso + rstOrderd!orderdo + rstOrderd!orderto
                Call PrintString(9000, 3000 + iRow * LineWidth, 12, sStr)
                
                sStr = lsugonum
                Call PrintString(11000, 3000 + iRow * LineWidth, 12, sStr)
                
                sStr = rstOrderd!sugolin
                Call PrintString(12000, 3000 + iRow * LineWidth, 12, sStr)
    
                sStr = rstOrderd!sugoqty
                Call PrintString(13000, 3000 + iRow * LineWidth, 12, sStr)
                
            
                .MoveNext
            Loop
        End With
  'Print Detail
        sStr = "Verified by(OPS):"
        Call PrintString(500, 3000 + (iRow + 2) * LineWidth, 12, sStr)
'        Printer.Line (2000, 3000 + (iRow + 2) * LineWidth)-(8000, 3000 + (iRow + 2) * LineWidth)
                
        sStr = "Date:"
        Call PrintString(10000, 3000 + (iRow + 2) * LineWidth, 12, sStr)
'        Printer.Line (11000, 3000 + (iRow + 2) * LineWidth)-(16000, 3000 + (iRow + 2) * LineWidth)
                        
        sStr = "Confirmed by(Sales):"
        Call PrintString(500, 3000 + (iRow + 3) * LineWidth, 12, sStr)
'        Printer.Line (2000, 3000 + (iRow + 3) * LineWidth)-(8000, 3000 + (iRow + 3) * LineWidth)
                        
        sStr = "Date:"
        Call PrintString(10000, 3000 + (iRow + 3) * LineWidth, 12, sStr)
'        Printer.Line (11000, 3000 + (iRow + 3) * LineWidth)-(16000, 3000 + (iRow + 3) * LineWidth)
        
        .MoveNext
        Printer.NewPage
    Loop
    Printer.EndDoc
    End With
    
End Sub

Private Sub PrintString(ByVal X As Long, ByVal Y As Long, lFontSize As Long, sStr As String)
On Error Resume Next
'Printer.ScaleMode = vbCentimeters
Printer.CurrentX = X
Printer.CurrentY = Y
Printer.FontSize = 12
Printer.Print sStr
'Printer.EndDoc

End Sub

Private Function GetSugONum() As Long
Dim sSQL As String
Dim rstCode As Recordset

sSQL = " select max(sugonum) as maxcode from orderd where sugonum>0"
Set rstCode = Acs_cnt.Execute(sSQL)
If rstCode.EOF Then
    GetSugONum = CLng(iniCode)
ElseIf IsNull(rstCode!maxcode) = False And rstCode!maxcode <> "" Then
    GetSugONum = CLng(rstCode!maxcode) + 1
Else
    GetSugONum = CLng(iniCode) + 1
End If

End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -