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

📄 tjlxgs.frm

📁 一个机械产品(产品、部件、零件)的工时、工资及进度软件
💻 FRM
📖 第 1 页 / 共 2 页
字号:
    mskdate2.Text = NOWDate
    MonthView2.Visible = False
    MonthView2.Value = NOWDate
End Sub
Private Sub cmdfind_Click()
    If cmbcj.Text = "" Then
        MsgBox "车间必须选择!", vbOKOnly, "车间选择"
        Exit Sub
    End If
    
    frmwait.Show 0
    DoEvents
    
    If Mskdate1.Text = "" Then gsdate1 = (NOWDate - 30) Else gsdate1 = Mskdate1.Text
    If mskdate2.Text = "" Then gsdate2 = NOWDate Else gsdate2 = mskdate2.Text
    
    lblym.Caption = Left(mskdate2.Text, 4) & Mid(mskdate2.Text, 6, 2)
    
    dofillgrid1  '工时列按工序、行按部件统计
    
    Unload frmwait
End Sub
Private Sub dofillgrid1()
    If cmbcj.Text <> "全部车间" Then
         '取得工序表agx中所选车间的工序数,以设置表格的列数,并填列
        Set rsTempC = oDb.Execute("select * from agx where gxtj='Y' and gxcj='" & cmbcj.Text & "' order by gxbh")
        i = rsTempC.RecordCount
        rsTempC.MoveLast
        Igx = rsTempC.RecordCount
        rsTempC.MoveFirst
        
        Grid1.Rows = 1
        Grid1.Cols = 4 + Igx + 1    '列数
        i = 4
        Do Until rsTempC.EOF
            Grid1.Cell(0, i).Text = rsTempC!gxmc
            Grid1.Column(i).Width = 50
            Grid1.Column(i).Alignment = cellRightCenter
            rsTempC.MoveNext
            i = i + 1
        Loop
        Grid1.Cell(0, i).Text = "小计工时"
        Grid1.Column(i).Alignment = cellRightCenter
        
        cpgstot = 0
        Set rsTempA = oDb.Execute("select * from acplx order by cpbh")
        Do Until rsTempA.EOF
            '填序号+产品名称+产品型号
            griditem = Grid1.Rows & Chr(9) & Trim(rsTempA!cpmc)
            Grid1.AddItem griditem
            cpgssub = 0
            
            '部件
            Set rsTempB = oDb.Execute("select * from abjlx where cpbh='" & rsTempA!cpbh & "' order by bjbh")
            Do Until rsTempB.EOF
                griditem = Grid1.Rows & Chr(9) & "" & Chr(9) & Trim(rsTempB!bjmc)
                
                '按工序统计工时数
                Gxgstot = 0
                Set rsTempC = oDb.Execute("select * from agx where gxtj='Y' and gxcj='" & cmbcj.Text & "' order by gxbh")
                Do Until rsTempC.EOF
                    '按车间名称、日期、部件编号条件小计工序名称相同的工时数
                    szSql = "select sum(gplxb.gpgs) as sumgs from gplxh,gplxb where (gplxh.gpbh=gplxb.gpbh) and gplxh.gprq>='" & Mskdate1.Text & "' and gplxh.gprq<='" & mskdate2.Text & "'" _
                             & " and gplxb.gpbjbh='" & rsTempB!bjbh & "' and gplxb.gpgxmc='" & rsTempC!gxmc & "'"
                    Set rsTempD = oDb.Execute(szSql)
                    griditem = griditem & Chr(9) & Round(rsTempD!sumgs / 60, 1)
                    If Not IsNull(rsTempD!sumgs) Then Gxgstot = Gxgstot + rsTempD!sumgs
                    rsTempC.MoveNext
                Loop
                 
                Grid1.AddItem griditem & Chr(9) & Round(Gxgstot / 60, 1) & Chr(9) & "0"
                cpgssub = cpgssub + Gxgstot
                cpgstot = cpgstot + Gxgstot
                rsTempB.MoveNext
            Loop
            Grid1.AddItem "" & Chr(9) & "小计" '& Chr(9) & Round(cpgstot / 60, 1)
            Grid1.Cell(Grid1.Rows - 1, Grid1.Cols - 1).Text = Round(cpgssub / 60, 1)
            rsTempA.MoveNext
        Loop
        Grid1.AddItem "" & Chr(9) & "合计"
        Grid1.Cell(Grid1.Rows - 1, Grid1.Cols - 1).Text = Round(cpgstot / 60, 1)
    Else
        Set rsTempC = oDb.Execute("select * from acj  where  cjbh<>1003 order by cjorder ")
        Igx = 2
        Grid1.Rows = 1
        Grid1.Cols = 4 + Igx + 1    '列数
        i = 4
        Do Until rsTempC.EOF
            Grid1.Cell(0, i).Text = rsTempC!cjmc
            Grid1.Column(i).Width = 70
            Grid1.Column(i).Alignment = cellRightCenter
            rsTempC.MoveNext
            i = i + 1
        Loop
         
        Grid1.Cell(0, i).Text = "小计工时"
        Grid1.Column(i).Alignment = cellRightCenter
        
        cpgstot = 0
        Set rsTempA = oDb.Execute("select * from acplx order by cpbh")
        Do Until rsTempA.EOF
            '填序号+产品名称+产品型号
            griditem = Grid1.Rows & Chr(9) & Trim(rsTempA!cpmc)
            Grid1.AddItem griditem
            cpgssub = 0
            
            '部件
            Set rsTempB = oDb.Execute("select * from abjlx where cpbh='" & rsTempA!cpbh & "' order by bjbh")
            Do Until rsTempB.EOF
                griditem = Grid1.Rows & Chr(9) & "" & Chr(9) & Trim(rsTempB!bjmc)
                
                '按工序统计工时数
                Gxgstot = 0
                Set rsTempC = oDb.Execute("select * from acj  where  cjbh<>1003 order by cjorder ")
                Do Until rsTempC.EOF
                    '按车间名称、日期、部件编号条件小计工序名称相同的工时数
                    szSql = "select sum(gplxb.gpgs) as sumgs from gplxh,gplxb where (gplxh.gpbh=gplxb.gpbh) and gplxh.gprq>='" & Mskdate1.Text & "' and gplxh.gprq<='" & mskdate2.Text & "'" _
                             & " and gplxb.gpbjbh='" & rsTempB!bjbh & "' and gplxh.gpcjmc='" & rsTempC!cjmc & "'"
                    Set rsTempD = oDb.Execute(szSql)
                    griditem = griditem & Chr(9) & Round(rsTempD!sumgs / 60, 1)
                    If Not IsNull(rsTempD!sumgs) Then Gxgstot = Gxgstot + rsTempD!sumgs
                    rsTempC.MoveNext
                Loop
                 
                Grid1.AddItem griditem & Chr(9) & Round(Gxgstot / 60, 1) & Chr(9) & "0"
                cpgssub = cpgssub + Gxgstot
                cpgstot = cpgstot + Gxgstot
                rsTempB.MoveNext
            Loop
            Grid1.AddItem "" & Chr(9) & "小计" '& Chr(9) & Round(cpgstot / 60, 1)
            Grid1.Cell(Grid1.Rows - 1, Grid1.Cols - 1).Text = Round(cpgssub / 60, 1)
            rsTempA.MoveNext
        Loop
        Grid1.AddItem "" & Chr(9) & "合计"
        Grid1.Cell(Grid1.Rows - 1, Grid1.Cols - 1).Text = Round(cpgstot / 60, 1)
    End If
    
End Sub
 Private Sub dogridfill()
    Grid1.Cell(0, 1).Text = "序号"
    Grid1.Cell(0, 2).Text = "产品类别"
    Grid1.Cell(0, 3).Text = "部件类别"
End Sub
Private Sub cmddate1_Click()
    MonthView1.Visible = True
End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
    MonthView1.Visible = False
    Mskdate1.Text = MonthView1.Value
End Sub

Private Sub cmddate2_Click()
    MonthView2.Visible = True
End Sub
  Private Sub MonthView2_DateClick(ByVal DateClicked As Date)
    MonthView2.Visible = False
    mskdate2.Text = MonthView2.Value
End Sub

Private Sub cmdexcel_Click()
    Dim irowNo As Integer, sRange As String
    If excelsetup = False Then
        Set mobjexcel = CreateObject("Excel.application")  '启动excel  在 Form load ()过程
    End If
    Me.MousePointer = vbHourglass
    excelsetup = True

    With mobjexcel         '添加工作表
        .workbooks.Add
    End With

    With mobjexcel        '设置工作表字体,列宽
        .ActiveCell.Columns("A:A").ColumnWidth = 3
        .ActiveCell.Columns("B:B").ColumnWidth = 8
        .ActiveCell.Columns("C:C").ColumnWidth = 10
        .ActiveCell.Columns("D:D").ColumnWidth = 10
        .ActiveCell.Columns("E:E").ColumnWidth = 10
        .ActiveCell.Columns("F:F").ColumnWidth = 4
        .ActiveCell.Columns("G:G").ColumnWidth = 6
        .ActiveCell.Columns("H:H").ColumnWidth = 6
        .ActiveCell.Columns("I:I").ColumnWidth = 6
        .ActiveCell.Columns("J:J").ColumnWidth = 6
        .ActiveCell.Columns("K:K").ColumnWidth = 6
        .ActiveCell.Columns("L:L").ColumnWidth = 6
        .ActiveCell.Columns("M:M").ColumnWidth = 6
        .ActiveCell.Columns("N:N").ColumnWidth = 6
        .ActiveCell.Columns("O:O").ColumnWidth = 6
        .ActiveCell.Columns("P:P").ColumnWidth = 6
        .ActiveCell.Columns("Q:Q").ColumnWidth = 6
        .ActiveCell.Columns("R:R").ColumnWidth = 6
    End With

    mobjexcel.Visible = True    'Excel visible
    
    With mobjexcel
        .ActiveCell.Cells(1, 1).Value = "绍兴金氏机械设备有限公司  零星工时完成情况"
        .ActiveCell.Cells(3, 1).Value = "日期:" & Mskdate1.Text & "--" & mskdate2.Text & Space(6) & "车间名称:" & cmbcj.Text & Space(20) & "单位:小时、kg"
    End With
    
    For irowNo = 0 To Grid1.Rows - 1
            For j = 1 To Grid1.Cols - 1
                With mobjexcel
                    .ActiveCell.Cells(irowNo + 4, j).Value = Grid1.Cell(irowNo, j).Text
                End With
            Next j
    Next irowNo

     
    
    With mobjexcel        '设置工作表字体,列宽
        'sRange = Chr(Asc("A")) & "2" & ":" & Chr(Asc("AL")) & irowNo
        sRange = "(" & "A4:Q" & (irowNo + 4) & ")"
        .Range(sRange).Select            '设置范围
        .Selection.RowHeight = 16        'Excel行高
        .Selection.Font.Name = "宋体"    'Excel 字体
        .Selection.Font.Size = 9         'Excel 字号
        .Selection.Borders.LineStyle = tvwRootLines   '画边框线
    End With
    Me.MousePointer = vbDefault
   excelsetup = True

          '打印设置
    With mobjexcel                 '定义页眉、页尾
        .ActiveSheet.PageSetup.LeftHeader = ""
        '.ActiveSheet.PageSetup.CenterHeader = "海亮集团 "
        '.ActiveSheet.PageSetup.RightHeader = curdate2 & "     "
        '.ActiveSheet.PageSetup.PaperSize = vbPRPSA4  'A4 纸纵向打印
        .ActiveCell.Range("A1").Select  '焦点行 取消黑框
    End With
End Sub
Private Sub cmdexit_Click()
    If excelsetup = True Then
        mobjexcel.activeworkbook.saved = True   '放弃对工作表的改变
        excelsetup = False
        mobjexcel.Quit
    End If

    Set mobjexcel = Nothing
    Unload Me
End Sub





⌨️ 快捷键说明

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