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

📄 +

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
   Begin MSComctlLib.ImageList ImageList2 
      Left            =   0
      Top             =   0
      _ExtentX        =   1005
      _ExtentY        =   1005
      BackColor       =   -2147483643
      ImageWidth      =   16
      ImageHeight     =   16
      MaskColor       =   12632256
      _Version        =   393216
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
         NumListImages   =   4
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "设置_档案细节设置.frx":42F2
            Key             =   "xttb"
         EndProperty
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "设置_档案细节设置.frx":4BCC
            Key             =   "gnqx"
         EndProperty
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "设置_档案细节设置.frx":54A6
            Key             =   "stb"
         EndProperty
         BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "设置_档案细节设置.frx":64F8
            Key             =   "szk"
         EndProperty
      EndProperty
   End
End
Attribute VB_Name = "Set_ArItemsFrm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'*******************************************************
'*    模块名称    :档案细节设置设置
'*    功能描述    : 设置档案项目、界面的模块
'*    程序员姓名  : 刘刚
'*    最后修改人  : 刘刚
'*    最后修改时间:2001/12/03
'*    备        注:经过自己测试
'*******************************************************
 
Dim RecDigest As New ADODB.Recordset     '常用摘要表
Dim jdzygs As Integer                    '控件焦点转移个数
Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
Dim ReportTitle As String                '报表主标题
Dim Str_RightEdit As String             '编辑(新增、修改、删除)权限索引

  
'以下为固定使用变量(网格)
Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
Dim GridCode As String                   '显示网格网格代码
Dim GridInf() As Variant                 '整个网格设置信息
Dim Tsxx As String                       '系统提示信息
Dim Qslz As Long                         '网格隐藏(非操作显示)列数
Dim Sjhgd As Double                      '网格数据行高度
Dim GridBoolean() As Boolean             '网格列信息(布尔型)
Dim GridStr()  As String                 '网格列信息(字符型)
Dim GridInt() As Integer                 '网格列信息(整型)
Dim Szzls As Integer                     '数组总列数(网格列数-1)

'以下为固定使用变量(文本框)
Dim Textvar() As Variant                 '存储变体型文本框信息
Dim Textboolean() As Boolean             '存储布尔型文本框信息
Dim Textint() As Integer                 '存储整型文本框信息
Dim Textstr() As String                  '存储字符型文本框信息
Dim Max_Text_Index As Integer            '最大录入文本框索引值
Dim TextGroupCode As String              '文本框录入分组编码
Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
Dim CurTextIndex As Integer              '当前文本框索引值
Dim TextChangeLock As Boolean            '文本框内容变换控制锁

'<<<<<<<<<<<<<<<<<<
Dim nodX As Node
Dim sortId As Integer
Dim listId As Integer

Private Sub Cmd_No_Click()
    '首先要把主表的网格重新刷新
    GridCode = "Rs_SetArItems"
    Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
    
    '设置网格的列属性不可移动
    sSql = "UPDATE Xt_Grid SET explorerbar=0 WHERE System_Code='Rs_User' AND ColIndex = '000' "
    Cw_DataEnvi.DataConnect.Execute (sSql)
    
    Qslz = GridInf(1)
    Sjhgd = GridInf(2)
    Szzls = CzxsGrid.Cols - 1
    
    Call Tree_List_Click
    Call Toolfbjzt
    
    With GsToolbar
        .Buttons("bcgs").Enabled = True
        .Buttons("hfmrgs").Enabled = True
        .Buttons("szxsxm").Enabled = True
    End With
    Fra_face.Enabled = False
End Sub

Private Sub Cmd_Yes_Click()
    If Not TxtDataPass(Txt_TitleH) Then Exit Sub
    Call Bcwggs_U(vsFlexGrid1, GridCode, GridStr())
    Call BzWgcsh(vsFlexGrid1, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
    vsFlexGrid1.ColHidden(Sydz("001", GridStr(), Szzls)) = True
    vsFlexGrid1.ColHidden(Sydz("002", GridStr(), Szzls)) = True
    vsFlexGrid1.AddItem ""
End Sub


Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
    
    jdzygs = 5
    Select Case KeyAscii
        
        Case vbKeyReturn
            If Kjjdzy(jdzygs) Then
                KeyAscii = 0
            End If
        Case 39           '屏蔽"'"
            KeyAscii = 0
    End Select

End Sub

Private Sub Form_Load()
  
  
    '定义可变部分变量
    ReportTitle = "档案项目"
  
    '调入打印页面设置窗体

    XtReportCode = "Rs_SetArItems"
    Load Dyymctbl
  
    '以下为文本框处理程序
    Add_Tree
  
    TextGroupCode = "Rs_SetArItems"
    Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
    Call Wbkcsh
  
    '调 入 网 格
    GridCode = "Rs_SetArItems"
  
    Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  
    Qslz = GridInf(1)
    Sjhgd = GridInf(2)
    Szzls = CzxsGrid.Cols - 1
  
    '填 充 网 格
    ' Call Cxnrtcwg
       
    '初始化toolbar,tab卡状态
       
    StTab.Tab = 0
    StTab.TabEnabled(1) = False
    StTab.TabEnabled(2) = False
    Frame1.Enabled = False
    Lrzt = 0
    
    Call FillTypeCbo
    Call FillAlignCbo
    
    Lbl_Indicate.Caption = "1.明细编码最多可以录入3位数字,在同一类别中不得重复" + Chr(10) _
                          & "2.明细名称最长可以录入30个汉字,在所有类别中不得重复"
      
    '编辑(新增、修改、删除)权限索引
    Str_RightEdit = "Rs_Set_ArItems_Edit"
End Sub

Private Sub Cxnrtcwg()                               '查 询 内 容 填 充 网 格
  
    Dim Sqlstr As String
    Dim jsqte As Long
  
    '查询连接串
    Sqlstr = "select * from Xt_Grid where FieldsName <> '' and FieldsName <> 'EmpNo' AND FieldsName<>'EmpName'  AND Grid_Code = '" & F_Sort.Tag & "' ORDER BY ColIndex"
  
    Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Cxnrrec
        CzxsGrid.Clear , flexClearData
        CzxsGrid.Rows = .RecordCount + CzxsGrid.FixedRows
        If .EOF And .BOF Then
            Exit Sub
        End If
        jsqte = CzxsGrid.FixedRows
        Do While Not .EOF
'            If .Fields("FieldsName") <> "EmpNo" And .Fields("FieldsName") <> "EmpName" Then
                
                If jsqte >= CzxsGrid.Rows Then
                    CzxsGrid.AddItem ""
                End If
                Call Jltcwg(Cxnrrec, jsqte)
                CzxsGrid.RowHeight(jsqte) = Sjhgd
'            End If
            .MoveNext
            jsqte = jsqte + 1
            
        Loop
    End With

End Sub

Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)                                     '记录内容填充网格
Dim tmpStr As String
    '[以下为自定义部分
    With Jlbrec
        CzxsGrid.TextMatrix(Rowjsq, 0) = Trim(.Fields("FieldsName"))
        CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("ColTitle1"))
        CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = ConvertCode2Type(Trim(.Fields("Text_Data_Type")))
        CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = "" & .Fields("Text_Length")
        CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = "" & .Fields("Text_Deci_Length")
        CzxsGrid.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)) = ConvertCode2Align("" & .Fields("ColAlignment"))
    End With
    '以上为自定义部分]

End Sub

Private Sub Form_Resize()
    
    On Error Resume Next
    
    If Me.Height < 5000 Then Me.Height = 5000
    If Me.Width < 8805 Then Me.Width = 8805
  
End Sub

Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
    
    Set Cxnrrec = Nothing
    Unload Dyymctbl

End Sub

Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
    
    Dim jsqte As Integer
    Dim sSql As String
    Dim tLen As Integer                         '数字型总长度或是字符型总长度
    Dim dLen As Integer                         '小数位数
    
    Dim nulStr As String
    Dim nnulStr As String
    Dim FieldName As String
    Dim Colid As Integer
    Dim tmpRs As New ADODB.Recordset
    
    Bclrsj = False
    With RecDigest
        For jsqte = 0 To Max_Text_Index
            If Textint(jsqte, 8) = 1 Then     '字段不能为空
                If Len(Trim(LrText(jsqte).Text)) = 0 Then
                    Tsxx = Textstr(jsqte, 7) & "不能为空!"
                    Call Xtxxts(Tsxx, 0, 1)
                    LrText(jsqte).SetFocus
                    Bclrsj = False
                    Exit Function
                End If
            Else
                If Textint(jsqte, 8) = 2 Then   '字段不能为零
                    If Val(Trim(LrText(jsqte).Text)) = 0 Then
                        Tsxx = Textstr(jsqte, 7) & "不能为零!"
                        Call Xtxxts(Tsxx, 0, 1)
                        LrText(jsqte).SetFocus
                        Bclrsj = False
                        Exit Function
                    End If
                End If
            End If
        Next jsqte
    
        '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
        For jsqte = 0 To Max_Text_Index
            If Textboolean(jsqte, 2) Then
                If Not TextYxxpd(jsqte) Then
                    Exit Function
                End If
            End If
        Next jsqte
    
        '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        On Error GoTo Swcwcl
        
        tLen = Val(Trim(LrText(1).Text))
        dLen = Val(Trim(LrText(2).Text))
        
        If GetDataType = -1 Then
                Call Xtxxts("请选择项目类型!", 0, 3)
                Exit Function
        End If
        
        If (GetDataType = 0) Then
            dLen = 0
            If tLen > 30 Then
                Call Xtxxts("字符型长度不能大于30!", 0, 1)
                dLen = 0
                Exit Function
            End If
        End If
        
        If (GetDataType = 5) And (tLen - dLen > 10) Then
                Call Xtxxts("数字型整数长度不能大于10!", 0, 1)
                Exit Function
        End If
        If (GetDataType = 5) And (dLen > tLen - 1) Then
                Call Xtxxts("数字型小数长度必须小于总长度!", 0, 1)
                Exit Function
        End If
        If (GetDataType = 5) And (dLen > 2) Then
                Call Xtxxts("数字型小数长度不能大于2!", 0, 1)
                Exit Function
        End If
        
        
                              
            
                
        If (GetDataType = 7) Then tLen = 10: dLen = 0
        
        If Lrzt = 1 Then  '增 加

'------------------------------------------------
            sSql = "SELECT Col=MAX(ColIndex)+1 FROM Xt_Grid WHERE Grid_Code ='" & F_Sort.Tag & "'"
            Cw_DataEnvi.DataConnect.BeginTrans
            
                Set tmpRs = Cw_DataEnvi.DataConnect.Execute(sSql)
                If Not tmpRs.EOF Then
                    Colid = Trim(tmpRs!Col)
                    FieldName = Trim(F_Sort.Tag) & Format(Colid - 2, "000") 'Right("000" & (Colid - 2), 3)           '去掉职工号,姓名两条记录
                End If
                
                sSql = "INSERT INTO Xt_Grid (System_Code,Grid_Code,ColId,ColIndex,ColTitle1,FieldsName,ColAlignment,Text_Data_Type,Text_Length,Text_Deci_Length,Edit_Flag,SelectRow_flag,AssistantRows) " + Chr$(10) _
                & "SELECT 'Rs_User','" & F_Sort.Tag & "','" & Colid & "','" & Format(Colid, "000") & "','" & Trim(LrText(0).Text) & "','" & FieldName & "','" & GetDataAlign & "','" & GetDataType & "','" & tLen & "','" & dLen & "','1','0','0'"
                Cw_DataEnvi.DataConnect.Execute sSql
                
                sSql = "ALTER TABLE Rs_ArMain ADD " & FieldName & " NVARCHAR(30) NULL"
                Cw_DataEnvi.DataConnect.Execute sSql
            
            Cw_DataEnvi.DataConnect.CommitTrans
            Sqlstr = "SELECT * FROM Xt_Grid WHERE FieldsName ='" & FieldName & "'"
            Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)

⌨️ 快捷键说明

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