📄 施工网络图.frm
字号:
VERSION 5.00
Object = "{D76D7130-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSFLEX7D.OCX"
Begin VB.Form frmsgwlt
BorderStyle = 3 'Fixed Dialog
Caption = "施工网络图"
ClientHeight = 5235
ClientLeft = 45
ClientTop = 345
ClientWidth = 8325
Icon = "施工网络图.frx":0000
KeyPreview = -1 'True
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 5235
ScaleWidth = 8325
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton Command2
Caption = "关闭"
Height = 375
Left = 7440
TabIndex = 5
Top = 4800
Width = 855
End
Begin VB.CommandButton Command1
Caption = "计算"
Height = 375
Left = 6480
TabIndex = 4
Top = 4800
Width = 855
End
Begin VB.Frame Frame1
Caption = "原始数据"
Height = 615
Left = 0
TabIndex = 2
Top = 0
Width = 8295
Begin VB.TextBox Text2
Height = 270
Left = 7080
TabIndex = 1
Text = "Text2"
Top = 280
Width = 1095
End
Begin VB.TextBox Text1
Height = 270
Left = 1560
TabIndex = 0
Text = "Text1"
Top = 280
Width = 1095
End
Begin VB.Label Label2
Caption = "网络图工序数目="
Height = 255
Left = 5520
TabIndex = 7
Top = 300
Width = 1455
End
Begin VB.Label Label1
Caption = "网络图节点数目="
Height = 255
Left = 120
TabIndex = 6
Top = 300
Width = 1455
End
End
Begin VSFlex7DAOCtl.VSFlexGrid VSFlexGrid1
Height = 4095
Left = 0
TabIndex = 3
Top = 600
Width = 8295
_cx = 14631
_cy = 7223
_ConvInfo = 1
Appearance = 1
BorderStyle = 1
Enabled = -1 'True
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
MousePointer = 0
BackColor = -2147483643
ForeColor = -2147483640
BackColorFixed = -2147483633
ForeColorFixed = -2147483630
BackColorSel = -2147483635
ForeColorSel = -2147483634
BackColorBkg = 14737632
BackColorAlternate= -2147483643
GridColor = 14737632
GridColorFixed = -2147483632
TreeColor = -2147483632
FloodColor = 192
SheetBorder = -2147483642
FocusRect = 3
HighLight = 1
AllowSelection = -1 'True
AllowBigSelection= -1 'True
AllowUserResizing= 3
SelectionMode = 0
GridLines = 1
GridLinesFixed = 2
GridLineWidth = 1
Rows = 3
Cols = 12
FixedRows = 2
FixedCols = 1
RowHeightMin = 0
RowHeightMax = 0
ColWidthMin = 0
ColWidthMax = 0
ExtendLastCol = 0 'False
FormatString = ""
ScrollTrack = 0 'False
ScrollBars = 3
ScrollTips = 0 'False
MergeCells = 1
MergeCompare = 0
AutoResize = -1 'True
AutoSizeMode = 0
AutoSearch = 0
AutoSearchDelay = 2
MultiTotals = -1 'True
SubtotalPosition= 1
OutlineBar = 0
OutlineCol = 0
Ellipsis = 0
ExplorerBar = 0
PicturesOver = 0 'False
FillStyle = 0
RightToLeft = 0 'False
PictureType = 0
TabBehavior = 0
OwnerDraw = 0
Editable = 2
ShowComboButton = -1 'True
WordWrap = 0 'False
TextStyle = 0
TextStyleFixed = 0
OleDragMode = 0
OleDropMode = 0
DataMode = 0
VirtualData = -1 'True
ComboSearch = 3
AutoSizeMouse = -1 'True
FrozenRows = 0
FrozenCols = 0
AllowUserFreezing= 3
BackColorFrozen = 0
ForeColorFrozen = 0
WallPaperAlignment= 9
End
Begin VB.Label Label4
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
BorderStyle = 1 'Fixed Single
Caption = "Label4"
ForeColor = &H80000008&
Height = 405
Left = 1440
TabIndex = 9
Top = 4800
Width = 4935
End
Begin VB.Label Label3
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
BorderStyle = 1 'Fixed Single
Caption = "Label3"
ForeColor = &H80000008&
Height = 405
Left = 0
TabIndex = 8
Top = 4800
Width = 1335
End
End
Attribute VB_Name = "frmsgwlt"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
'计算
Dim II1(2000), j1(2000), aa(2000), S(1000), TT1(1000), JJ(1000), F(2000)
On Error GoTo handlerror
For i = 2 To VSFlexGrid1.Rows - 1
For j = 5 To VSFlexGrid1.Cols - 1
VSFlexGrid1.TextMatrix(i, j) = ""
Next j
Next i
n = Val(Text1.Text)
r = Val(Text2.Text)
II1(r) = n: j1(r) = n + 1: aa(r) = 1
For i = 2 To VSFlexGrid1.Rows - 1
II1(i - 2) = Val(VSFlexGrid1.TextMatrix(i, 2))
j1(i - 2) = Val(VSFlexGrid1.TextMatrix(i, 3))
aa(i - 2) = Val(VSFlexGrid1.TextMatrix(i, 4))
Next i
For k = 0 To r
l = r - k
d = S(II1(k) - 1) + aa(k)
If d > S(j1(k) - 1) Then S(j1(k) - 1) = d
d = TT1(j1(l) - 1) + aa(l)
If d > TT1(II1(l) - 1) Then TT1(II1(l) - 1) = d
Next k
For k = 0 To n
TT1(k) = S(n) - TT1(k)
Next k
For k = 0 To r - 1
F(k) = S(n)
For l = k + 1 To r
If II1(l) > j1(k) Then GoTo bl10
If j1(k) = II1(l) And F(k) > S(II1(l) - 1) Then
F(k) = S(II1(l) - 1)
End If
Next l
bl10: Next k
t = 0: x = 1
JJ(0) = 1
For k = 0 To r - 1
i = II1(k) - 1
j = j1(k) - 1
b = aa(k) + S(i)
ls = TT1(j) - aa(k)
fr = TT1(j) - b
VSFlexGrid1.TextMatrix(k + 2, 5) = S(i)
VSFlexGrid1.TextMatrix(k + 2, 6) = b
VSFlexGrid1.TextMatrix(k + 2, 7) = ls
VSFlexGrid1.TextMatrix(k + 2, 8) = TT1(j)
VSFlexGrid1.TextMatrix(k + 2, 9) = fr
VSFlexGrid1.TextMatrix(k + 2, 10) = F(k) - b
If fr = 0 Then JJ(x) = j1(k): x = x + 1
Next k
NR = 0
Label3.Caption = "总工期 T=" + Trim$(Str(S(n) - 1)) + "天"
wjm = "关键线路:"
wjm = wjm + "1"
bt1 = "1"
For k = 1 To n
If JJ(k) <> 0 Then GoTo A1 Else GoTo A2
A1: NR = NR + 1: wjm = wjm + "→"
If NR / 10 <> Int(NR / 10) Then
wjm = wjm + Trim$(Str(JJ(k)))
bt2 = Str(JJ(k))
Else
wjm = wjm + Trim$(Str(JJ(k)))
bt2 = Str(JJ(k))
End If
For i = 2 To VSFlexGrid1.Rows - 1
If Val(bt1) = Val(VSFlexGrid1.TextMatrix(i, 2)) And Val(bt2) = Val(VSFlexGrid1.TextMatrix(i, 3)) Then
VSFlexGrid1.Cell(flexcpBackColor, i, 1) = &HFFFFC0
VSFlexGrid1.Cell(flexcpBackColor, i, 2) = &HFFFFC0
VSFlexGrid1.Cell(flexcpBackColor, i, 3) = &HFFFFC0
End If
Next i
bt1 = bt2
A2: Next k
Label4.Caption = wjm
Exit Sub
handlerror:
xianshi = MsgBox("请检查输入的数据后再计算。", vbInformation, "问题提示")
End Sub
Private Sub Command2_Click()
'关闭
On Error GoTo handlerror
If rjsfzc = 88 And VSFlexGrid1.Rows > 3 Then
frmMain.Text1 = frmMain.Text1 & vbCrLf & ""
frmMain.Text1 = frmMain.Text1 & vbCrLf & " 《施工网络图计算结果》"
frmMain.Text1 = frmMain.Text1 & vbCrLf & ""
frmMain.Text1 = frmMain.Text1 & vbCrLf & " 网络图节点数目= " + Text1.Text
frmMain.Text1 = frmMain.Text1 & vbCrLf & " 网络图工序数目= " + Text2.Text
frmMain.Text1 = frmMain.Text1 & vbCrLf & ""
For i = 1 To VSFlexGrid1.Rows - 1
wjj = " "
For j = 0 To VSFlexGrid1.Cols - 2
wjj = wjj + VSFlexGrid1.TextMatrix(i, j)
If Len(VSFlexGrid1.TextMatrix(i, j)) = 0 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 1 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 2 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 3 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 4 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 5 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 6 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 7 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 8 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 9 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 10 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 11 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 12 Then kgg = " "
If Len(VSFlexGrid1.TextMatrix(i, j)) = 13 Then kgg = ""
If i = 1 Then wjj = wjj + " "
If i <> 1 And j <> 0 Then wjj = wjj + kgg
If i <> 1 And j = 0 Then wjj = wjj + " "
Next j
frmMain.Text1 = frmMain.Text1 & vbCrLf & wjj
Next i
frmMain.Text1 = frmMain.Text1 & vbCrLf & ""
frmMain.Text1 = frmMain.Text1 & vbCrLf & " 总工期 T = " + Label3.Caption
frmMain.Text1 = frmMain.Text1 & vbCrLf & " 关键线路: = " + Label4.Caption
frmMain.Text1 = frmMain.Text1 & vbCrLf & " --------------------------------------"
End If
Unload Me
Exit Sub
handlerror:
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
'Esc键退出,VbEscape可以用27代替
On Error GoTo handlerror
If KeyAscii = 27 Then
Unload Me
End If
Exit Sub
handlerror:
End Sub
Private Sub Form_Load()
'启动
On Error GoTo handlerror
Text1.Text = ""
Text2.Text = ""
With VSFlexGrid1
.MergeCol(0) = True
.TextMatrix(0, 0) = "序号"
.TextMatrix(1, 0) = "序号"
.MergeRow(0) = True
.TextMatrix(0, 1) = "各工序原始资料"
.TextMatrix(0, 2) = "各工序原始资料"
.TextMatrix(0, 3) = "各工序原始资料"
.TextMatrix(0, 4) = "各工序原始资料"
.TextMatrix(0, 5) = "各工序时间参数计算结果"
.TextMatrix(0, 6) = "各工序时间参数计算结果"
.TextMatrix(0, 7) = "各工序时间参数计算结果"
.TextMatrix(0, 8) = "各工序时间参数计算结果"
.TextMatrix(0, 9) = "各工序时间参数计算结果"
.TextMatrix(0, 10) = "各工序时间参数计算结果"
.MergeCol(11) = True
.TextMatrix(0, 11) = "关键线路"
.TextMatrix(1, 11) = "关键线路"
.TextMatrix(1, 1) = "工序名称"
.TextMatrix(1, 2) = "始节点I"
.TextMatrix(1, 3) = "终节点J"
.TextMatrix(1, 4) = "持续时间T"
.TextMatrix(1, 5) = "最早开始ES"
.TextMatrix(1, 6) = "最早结束EF"
.TextMatrix(1, 7) = "最迟开始LS"
.TextMatrix(1, 8) = "最迟结束LF"
.TextMatrix(1, 9) = "总时差TF"
.TextMatrix(1, 10) = "自由时差FF"
For i = 0 To .Cols - 1
.ColAlignment(i) = flexAlignCenterCenter
Next i
.ColWidth(0) = 360
.ColWidth(1) = 1500
.ColWidth(2) = 600
.ColWidth(3) = 600
.ColWidth(4) = 600
.ColWidth(5) = 700
.ColWidth(6) = 700
.ColWidth(7) = 700
.ColWidth(8) = 700
.ColWidth(9) = 700
.ColWidth(10) = 700
.ColWidth(11) = 0
.RowHeight(1) = 500
.WordWrap = True
End With
Label3.Caption = ""
Label4.Caption = ""
Exit Sub
handlerror:
End Sub
Private Sub Text2_Change()
'表格行数
On Error GoTo handlerror
If Val(Text2.Text) >= 2 Then
VSFlexGrid1.Rows = Val(Text2.Text) + 2
For i = 1 To VSFlexGrid1.Rows - 2
VSFlexGrid1.TextMatrix(i + 1, 0) = i
Next i
End If
Exit Sub
handlerror:
End Sub
Private Sub VSFlexGrid1_AfterRowColChange(ByVal OldRow As Long, ByVal OldCol As Long, ByVal NewRow As Long, ByVal NewCol As Long)
'表格
VSFlexGrid1.Editable = flexEDKbdMouse
If VSFlexGrid1.Col <> 1 And VSFlexGrid1.Col <> 2 And VSFlexGrid1.Col <> 3 And VSFlexGrid1.Col <> 4 Then
VSFlexGrid1.Editable = flexEDNone
End If
End Sub
Private Sub VSFlexGrid1_Click()
'表格
VSFlexGrid1.Editable = flexEDKbdMouse
If VSFlexGrid1.Col <> 1 And VSFlexGrid1.Col <> 2 And VSFlexGrid1.Col <> 3 And VSFlexGrid1.Col <> 4 Then
VSFlexGrid1.Editable = flexEDNone
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -