ExportCur.frm
上传用户:cntx88
上传日期:2022-08-07
资源大小:169k
文件大小:12k
源码类别:

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  3. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  4. Begin VB.Form ExportCur 
  5.    Caption         =   "导出报销记录"
  6.    ClientHeight    =   5550
  7.    ClientLeft      =   60
  8.    ClientTop       =   450
  9.    ClientWidth     =   7830
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   5550
  12.    ScaleWidth      =   7830
  13.    StartUpPosition =   3  '窗口缺省
  14.    Begin VB.Frame Frame1 
  15.       Caption         =   "导出条件【忽略的字段留空】"
  16.       Height          =   5295
  17.       Left            =   120
  18.       TabIndex        =   0
  19.       Top             =   120
  20.       Width           =   7575
  21.       Begin MSComDlg.CommonDialog CommDlg 
  22.          Left            =   2520
  23.          Top             =   2400
  24.          _ExtentX        =   847
  25.          _ExtentY        =   847
  26.          _Version        =   393216
  27.       End
  28.       Begin VB.CheckBox Check1 
  29.          Caption         =   "不限定日期"
  30.          Height          =   255
  31.          Left            =   5160
  32.          TabIndex        =   17
  33.          Top             =   1200
  34.          Width           =   2055
  35.       End
  36.       Begin VB.CommandButton Command2 
  37.          Caption         =   "退出"
  38.          Height          =   495
  39.          Left            =   4080
  40.          TabIndex        =   15
  41.          Top             =   4560
  42.          Width           =   3135
  43.       End
  44.       Begin VB.CommandButton Command1 
  45.          Caption         =   "导出"
  46.          Height          =   495
  47.          Left            =   360
  48.          TabIndex        =   14
  49.          Top             =   4560
  50.          Width           =   3135
  51.       End
  52.       Begin VB.ComboBox Combo2 
  53.          Height          =   300
  54.          Left            =   240
  55.          TabIndex        =   13
  56.          Text            =   "Combo2"
  57.          Top             =   1800
  58.          Width           =   2175
  59.       End
  60.       Begin VB.TextBox Text4 
  61.          Height          =   1935
  62.          Left            =   240
  63.          MultiLine       =   -1  'True
  64.          TabIndex        =   6
  65.          Text            =   "ExportCur.frx":0000
  66.          Top             =   2400
  67.          Width           =   7095
  68.       End
  69.       Begin VB.ComboBox Combo1 
  70.          Height          =   300
  71.          Left            =   2760
  72.          TabIndex        =   5
  73.          Text            =   "Combo1"
  74.          Top             =   600
  75.          Width           =   2175
  76.       End
  77.       Begin MSComCtl2.DTPicker DTPicker1 
  78.          Height          =   255
  79.          Left            =   2760
  80.          TabIndex        =   4
  81.          Top             =   1200
  82.          Width           =   2175
  83.          _ExtentX        =   3836
  84.          _ExtentY        =   450
  85.          _Version        =   393216
  86.          Format          =   65667073
  87.          CurrentDate     =   38012
  88.       End
  89.       Begin VB.TextBox Text3 
  90.          Height          =   270
  91.          Left            =   240
  92.          TabIndex        =   3
  93.          Text            =   "Text3"
  94.          Top             =   1200
  95.          Width           =   2175
  96.       End
  97.       Begin VB.TextBox Text2 
  98.          Height          =   270
  99.          Left            =   5160
  100.          TabIndex        =   2
  101.          Text            =   "Text2"
  102.          Top             =   600
  103.          Width           =   2175
  104.       End
  105.       Begin VB.TextBox Text1 
  106.          Height          =   270
  107.          Left            =   240
  108.          TabIndex        =   1
  109.          Text            =   "Text1"
  110.          Top             =   600
  111.          Width           =   2175
  112.       End
  113.       Begin VB.Label Label7 
  114.          Caption         =   "报销说明"
  115.          Height          =   255
  116.          Left            =   240
  117.          TabIndex        =   16
  118.          Top             =   2160
  119.          Width           =   1815
  120.       End
  121.       Begin VB.Label Label6 
  122.          Caption         =   "报销部门"
  123.          Height          =   255
  124.          Left            =   240
  125.          TabIndex        =   12
  126.          Top             =   1560
  127.          Width           =   1815
  128.       End
  129.       Begin VB.Label Label5 
  130.          Caption         =   "报销人ID编号"
  131.          Height          =   255
  132.          Left            =   240
  133.          TabIndex        =   11
  134.          Top             =   960
  135.          Width           =   1815
  136.       End
  137.       Begin VB.Label Label4 
  138.          Caption         =   "报销日期"
  139.          Height          =   255
  140.          Left            =   2760
  141.          TabIndex        =   10
  142.          Top             =   960
  143.          Width           =   1815
  144.       End
  145.       Begin VB.Label Label3 
  146.          Caption         =   "报销金额"
  147.          Height          =   255
  148.          Left            =   5160
  149.          TabIndex        =   9
  150.          Top             =   360
  151.          Width           =   1815
  152.       End
  153.       Begin VB.Label Label2 
  154.          Caption         =   "报销类别"
  155.          Height          =   255
  156.          Left            =   2760
  157.          TabIndex        =   8
  158.          Top             =   360
  159.          Width           =   1815
  160.       End
  161.       Begin VB.Label Label1 
  162.          Caption         =   "报销单号"
  163.          Height          =   255
  164.          Left            =   240
  165.          TabIndex        =   7
  166.          Top             =   360
  167.          Width           =   1815
  168.       End
  169.    End
  170. End
  171. Attribute VB_Name = "ExportCur"
  172. Attribute VB_GlobalNameSpace = False
  173. Attribute VB_Creatable = False
  174. Attribute VB_PredeclaredId = True
  175. Attribute VB_Exposed = False
  176. Option Explicit
  177. Private Sub Check1_Click()
  178.     If Check1.Value Then        '设置是否可以将时间作为搜索条件
  179.         DTPicker1.Enabled = False
  180.     Else
  181.         DTPicker1.Enabled = True
  182.     End If
  183. End Sub
  184. Private Sub Command1_Click()
  185.     Dim sql As String
  186.     Dim rs As New ADODB.Recordset
  187.     Dim FilterEmpty As Boolean      '搜索条件是否已经设置
  188.     Dim rsFilter As String     'SQL语句搜索条件
  189.     Dim i As Integer
  190.     Dim resultcount As Long     '记录数
  191.     
  192.     If (Not IsNumeric(Text2.Text)) And (Text2.Text <> "") Then      '输入有效性检查
  193.         MsgBox "报销金额必须是数字!", vbCritical
  194.         Text2.SetFocus
  195.         Exit Sub
  196.     End If
  197.     
  198.     If DbHandle.DbConnection Then
  199.         FilterEmpty = True      '设置此时搜索条件还没有设置
  200.         If Text1.Text <> "" Then        '如果报销单号设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  201.             If FilterEmpty Then
  202.                 rsFilter = "CUR_ID='" & Text1.Text & "'"
  203.             Else
  204.                 rsFilter = rsFilter & " AND CUR_ID='" & Text1.Text & "'"
  205.             End If
  206.             FilterEmpty = False
  207.         End If
  208.         If Text2.Text <> "" Then        '如果报销金额设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  209.             If FilterEmpty Then
  210.                 rsFilter = "CUR_MONEY=" & Val(Text2.Text)
  211.             Else
  212.                 rsFilter = rsFilter & " AND CUR_MONEY=" & Val(Text2.Text)
  213.             End If
  214.             FilterEmpty = False
  215.         End If
  216.         If Text3.Text <> "" Then        '如果职工ID设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  217.             If FilterEmpty Then
  218.                 rsFilter = "CUR_USER='" & Text3.Text & "'"
  219.             Else
  220.                 rsFilter = rsFilter & " AND CUR_USER='" & Text3.Text & "'"
  221.             End If
  222.             FilterEmpty = False
  223.         End If
  224.         If Text4.Text <> "" Then        '如果报销说明设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  225.             If FilterEmpty Then
  226.                 rsFilter = "CUR_REMARK='" & Text4.Text & "'"
  227.             Else
  228.                 rsFilter = rsFilter & " AND CUR_REMARK='" & Text4.Text & "'"
  229.             End If
  230.             FilterEmpty = False
  231.         End If
  232.         If DTPicker1.Enabled Then        '如果报销日期设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  233.             If FilterEmpty Then
  234.                 rsFilter = "CUR_DATE='" & DTPicker1.Value & "'"
  235.             Else
  236.                 rsFilter = rsFilter & " AND CUR_DATE='" & DTPicker1.Value & "'"
  237.             End If
  238.             FilterEmpty = False
  239.         End If
  240.         If Combo1.ListIndex <> -1 Then      '如果报销类别设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  241.             If FilterEmpty Then
  242.                 rsFilter = "CUR_TYPE=" & Combo1.ListIndex
  243.             Else
  244.                 rsFilter = rsFilter & " AND CUR_TYPE=" & Combo1.ListIndex
  245.             End If
  246.             FilterEmpty = False
  247.         End If
  248.         If Combo2.ListIndex <> -1 Then      '如果报销部门设置成为搜索条件,则增加一SQL判断语句,组合rsFilter字串
  249.             If FilterEmpty Then
  250.                 rsFilter = "CUR_PART=" & Combo2.ListIndex
  251.             Else
  252.                 rsFilter = rsFilter & " AND CUR_PART=" & Combo2.ListIndex
  253.             End If
  254.             FilterEmpty = False
  255.         End If
  256.         '组合整体SQL语句,查找符合条件的报销记录
  257.         sql = "SELECT CUR_ID,CUR_MONEY,CUR_USER,CUR_DATE,CUR_REMARK,PART_NAME,CURTYPE_NAME FROM TBL_CUR,TBL_PART,TBL_CURTYPE WHERE "
  258.         If FilterEmpty Then
  259.             sql = sql & "CUR_PART=PART_ID AND CUR_TYPE=CURTYPE_ID"
  260.         Else
  261.             sql = sql & rsFilter & " AND CUR_PART=PART_ID AND CUR_TYPE=CURTYPE_ID"
  262.         End If
  263.         rs.CursorType = adOpenDynamic
  264.         rs.LockType = adLockOptimistic
  265.         rs.Open sql, DbFinance
  266.         resultcount = DbHandle.resultcount(rs)
  267.         
  268.         CommDlg.Flags = cdlOFNOverwritePrompt       '设置保存对话框覆盖提示属性
  269.         CommDlg.Filter = "文本文件|*.txt"       '设置保存对话框显示文件类型属性
  270.         CommDlg.ShowSave
  271.         If CommDlg.FileName <> "" Then      '如果保存文件名被设置就循环读取结果集,写进文件中
  272.             Open CommDlg.FileName For Output As #1
  273.             Print #1, "报销单号"; Tab; "报销类别"; Tab; "报销金额"; Tab; "报销人ID"; Tab; "报销日期"; Tab; "报销部门"; Tab; "报销说明"
  274.             For i = 1 To resultcount
  275.                 Print #1, rs("CUR_ID"); Tab; rs("CURTYPE_NAME"); Tab; Str(rs("CUR_MONEY")); Tab; rs("CUR_USER"); Tab; rs("CUR_DATE"); Tab; rs("PART_NAME"); Tab; rs("CUR_REMARK")
  276.                 rs.MoveNext
  277.             Next i
  278.             Close #1
  279.         End If
  280.         rs.Close    '释放结果集,关闭数据库连接
  281.         DbHandle.DbClose
  282.     Else        '数据库连接出错,退出
  283.         MsgBox "数据库错误!", vbExclamation
  284.         DbHandle.DbClose
  285.         End
  286.     End If
  287. End Sub
  288. Private Sub Command2_Click()
  289.     Unload Me       '返回主窗体
  290. End Sub
  291. Private Sub Form_Load()
  292.     Dim sql As String
  293.     Dim rs As New ADODB.Recordset
  294.     
  295.     Me.Left = (Screen.Width - Me.ScaleWidth) / 2        '窗体居中显示
  296.     Me.Top = (Screen.Height - Me.ScaleHeight) / 2
  297.     If DbHandle.DbConnection Then
  298.         sql = "TBL_CURTYPE"     '提取报销类别记录
  299.         rs.CursorType = adOpenDynamic
  300.         rs.LockType = adLockOptimistic
  301.         rs.Filter = ""
  302.         rs.Open sql, DbFinance
  303.         
  304.         Do While rs.EOF = False     '循环加入下拉列表中
  305.             Combo1.AddItem (rs("CURTYPE_NAME"))
  306.             Combo1.ItemData(Combo1.NewIndex) = rs("CURTYPE_ID")
  307.             rs.MoveNext
  308.         Loop
  309.         rs.Close        '关闭结果集和数据库连接
  310.         Set rs = Nothing
  311.         DbHandle.DbClose
  312.     Else        '数据库连接失败,退出
  313.         MsgBox "数据库错误!", vbExclamation
  314.         DbHandle.DbClose
  315.         End
  316.     End If
  317.     If DbHandle.DbConnection Then
  318.         sql = "TBL_PART"    '提取报销部门记录
  319.         rs.CursorType = adOpenDynamic
  320.         rs.LockType = adLockOptimistic
  321.         rs.Filter = ""
  322.         rs.Open sql, DbFinance
  323.         
  324.         Do While rs.EOF = False     '循环加入下拉列表中
  325.             Combo2.AddItem (rs("PART_NAME"))
  326.             Combo2.ItemData(Combo2.NewIndex) = rs("PART_ID")
  327.             rs.MoveNext
  328.         Loop
  329.         rs.Close
  330.         Set rs = Nothing
  331.         DbHandle.DbClose
  332.     Else         '数据库连接失败,退出
  333.         MsgBox "数据库错误!", vbExclamation
  334.         DbHandle.DbClose
  335.         End
  336.     End If
  337.     Text1.Text = ""     '窗体元素初始化属性设置
  338.     Text2.Text = ""
  339.     Text3.Text = ""
  340.     Text4.Text = ""
  341.     Text4.MaxLength = 100
  342.     Combo1.Text = ""
  343.     Combo2.Text = ""
  344. End Sub