纯vb 根据excel模版 生成窗体

本文介绍了一个使用VB.NET编写的模版生成器程序,该程序可根据不同客户需求生成特定格式的广告位展示表格。支持多种模版,如同方、三星、惠普等,并能够动态显示日期范围内的广告位信息。

首先看页面样子,见上图

以下是vb代码

Option Explicit
Public pTags As String
Dim aaa As String
Dim iTags() As String

Dim i, j, k, M, p, T, r As Long
Dim cSql As String
Dim cSql1 As String
Dim cRec As rdoResultset
Dim cRec1 As rdoResultset
Dim cRecT As rdoResultset
Dim cType_Code As String
Dim iType As String
Dim bPact As Boolean
Dim c1 As String
Dim c2 As String
Dim GroupNo As String
Dim Size As String             '广告尺寸
Dim Position As String         '广告位置
Dim sType As String            '广告类型
Dim VarOld, VarNew As Long
Dim var As Long
Dim var2 As Long
Dim a As Long
Dim b As Long
Dim dMin As String     '最小日期
Dim dMax As Long       '最大日期
Dim cMonth As String
Dim dtend As Date             '当前月的最后一天
Dim dtbegin As Date             '当前月的第一天
Dim oldGroup_no As String
Dim newGroup_no As String
Dim price As String     '单价
Dim d1 As Date
Dim d2 As Date

 

Private Sub cmdOk_Click()

        If Option1(0).Value = True Then '同方模版
            TongFang
            fpSpr.SetText 1, 2, "网站"
            fpSpr.SetText 1, 4, "It168"
            fpSpr.SetText 2, 2, "创意形式/尺寸"
            fpSpr.SetText 3, 2, "位置"
            fpSpr.SetText 4, 2, "广告形式"
            fpSpr.SetText 5, 1, "日均"
            fpSpr.SetText 5, 2, "页面流量"
            fpSpr.SetText 5, 3, "(‘000)"
            fpSpr.SetText 6, 1, "计划"
            fpSpr.SetText 6, 2, "浏览量"
            fpSpr.SetText 6, 3, "(‘000)"
            fpSpr.SetText 7, 1, "预计"
            fpSpr.SetText 7, 2, "点击率"
            fpSpr.SetText 7, 3, "%"
            fpSpr.SetText 8, 1, "预计"
            fpSpr.SetText 8, 2, "点击数量"
            fpSpr.SetText 9, 1, "预计"
            fpSpr.SetText 9, 2, "点击成本"
            fpSpr.SetText 9, 3, "RMB"
            fpSpr.SetText k, 2, "总天数"
           
            fpSpr.SetText k + 1, 2, "单价"
            fpSpr.SetText k + 2, 2, "折扣"
            fpSpr.SetText k + 3, 2, "价格/天"
            fpSpr.SetText k + 4, 2, "总计人民币"
           
            fpSpr.ColWidth(1) = 6
            fpSpr.ColWidth(2) = 14
            fpSpr.ColWidth(3) = 14
            fpSpr.ColWidth(4) = 14
            fpSpr.ColWidth(5) = 10
            fpSpr.ColWidth(6) = 9
            fpSpr.ColWidth(7) = 9
            fpSpr.ColWidth(8) = 9
            fpSpr.ColWidth(9) = 10
'            fpSpr.ColWidth(10) = 6
            fpSpr.ColWidth(k) = 6
            fpSpr.ColWidth(k + 1) = 8
            fpSpr.ColWidth(k + 2) = 6
            fpSpr.ColWidth(k + 3) = 6
            fpSpr.ColWidth(k + 4) = 12
        End If
        If Option1(1).Value = True Then
            SanXin
'            bPact = False
            fpSpr.SetText 1, 2, "Media"
            fpSpr.SetText 1, 4, "It168"         'Impression
            fpSpr.SetText 2, 2, "Impression"
            fpSpr.SetText 3, 2, "CTR"
            fpSpr.SetText 4, 2, "Click"
            fpSpr.SetText 5, 2, "Channel"
            fpSpr.SetText 6, 2, "Site"
            fpSpr.SetText 7, 2, "Type"
            fpSpr.SetText 8, 2, "Size"
            fpSpr.SetText 9, 2, "投放天数"
            fpSpr.SetText 10, 2, "单价"
            fpSpr.SetText 11, 2, "折扣"
            fpSpr.SetText 12, 2, "折后价"
            fpSpr.SetText 13, 2, "Total Net Cost"
            fpSpr.SetText k, 2, "URL"

            fpSpr.ColWidth(1) = 6
            fpSpr.ColWidth(2) = 14
            fpSpr.ColWidth(3) = 6
            fpSpr.ColWidth(4) = 8
            fpSpr.ColWidth(5) = 10
            fpSpr.ColWidth(6) = 9
            fpSpr.ColWidth(7) = 9
            fpSpr.ColWidth(8) = 9
            fpSpr.ColWidth(9) = 10
            fpSpr.ColWidth(10) = 6
            fpSpr.ColWidth(11) = 8
            fpSpr.ColWidth(12) = 8
            fpSpr.ColWidth(13) = 8
'        MsgBox "三星模版"
        End If
        If Option1(2).Value = True Then
            HuiPu
'            bPact = False
            fpSpr.SetText 1, 2, "Website(站点)"
            fpSpr.SetText 1, 4, "It168"
            fpSpr.SetText 2, 2, "Channel/Position"
            fpSpr.SetText 3, 2, "Format"
            fpSpr.SetText 4, 2, "Size"
            fpSpr.SetText 5, 2, "Position"
            fpSpr.SetText 6, 2, "URL"
            fpSpr.SetText 7, 2, "Impression"
            fpSpr.SetText 8, 2, "投放天数"

            fpSpr.SetText k, 2, "刊特价"
            fpSpr.SetText k + 1, 2, "折后价"
            fpSpr.SetText k + 2, 1, "Negotiated Cost Per "
            fpSpr.SetText k + 2, 2, "Spot Local Net Net"
            fpSpr.SetText k + 3, 1, "Cost Per Spot US"
            fpSpr.SetText k + 3, 2, "$ Net Net"
            fpSpr.SetText k + 4, 2, "Total Local Net Net"
            fpSpr.SetText k + 5, 1, "Total Nett Cost "
            fpSpr.SetText k + 5, 2, "(USD)"

            fpSpr.ColWidth(1) = 6
            fpSpr.ColWidth(2) = 14
            fpSpr.ColWidth(3) = 6
            fpSpr.ColWidth(4) = 8
            fpSpr.ColWidth(5) = 10
            fpSpr.ColWidth(6) = 9
            fpSpr.ColWidth(7) = 9
            fpSpr.ColWidth(8) = 9
            fpSpr.ColWidth(k) = 6
            fpSpr.ColWidth(k + 1) = 6
            fpSpr.ColWidth(k + 2) = 14
            fpSpr.ColWidth(k + 3) = 14
            fpSpr.ColWidth(k + 4) = 14
            fpSpr.ColWidth(k + 5) = 14
'        MsgBox "惠普模版"
        End If
        If Option1(3).Value = True Then
            FangZheng
'            bPact = False
            fpSpr.SetText 1, 2, "媒体"
            fpSpr.SetText 1, 4, "It168"
            fpSpr.SetText 2, 2, "位置"
            fpSpr.SetText 3, 2, "广告形式"
            fpSpr.SetText 4, 2, "预估PV"
            fpSpr.SetText 5, 2, "广告规格"
            fpSpr.SetText 6, 2, "单位"
            fpSpr.SetText 7, 2, "数量"
            fpSpr.SetText 8, 2, "单价"
            fpSpr.SetText 9, 2, "折扣"
            fpSpr.SetText 10, 2, "金额"
            fpSpr.SetText k, 2, "预估总PV"
           
            fpSpr.ColWidth(1) = 6
            fpSpr.ColWidth(2) = 14
            fpSpr.ColWidth(3) = 14
            fpSpr.ColWidth(4) = 14
            fpSpr.ColWidth(5) = 10
            fpSpr.ColWidth(6) = 4
            fpSpr.ColWidth(7) = 4
            fpSpr.ColWidth(8) = 6
            fpSpr.ColWidth(9) = 6
            fpSpr.ColWidth(10) = 6
            fpSpr.ColWidth(k) = 9
'        MsgBox "方正模版"
        End If
        If Option1(4).Value = True Then
         DianTong
         fpSpr.SetText 1, 1, "类型"
         fpSpr.SetText 1, 2, "Type"
         fpSpr.SetText 2, 1, "网站"
         fpSpr.SetText 2, 2, "WebSite"
         fpSpr.SetText 2, 4, "It168"
         fpSpr.SetText 3, 1, "广告位置"
         fpSpr.SetText 3, 2, "Position"
         fpSpr.SetText 4, 1, "nb"
         fpSpr.SetText 4, 2, "AD Form"
         fpSpr.SetText 5, 1, "广告规格"
         fpSpr.SetText 5, 2, "Size"
         fpSpr.SetText 6, 1, "投放量"
         fpSpr.SetText 7, 1, "单位"
         fpSpr.SetText 7, 2, "Unit"
         fpSpr.SetText k, 2, "刊例单价"
         fpSpr.SetText k + 1, 2, "刊例总价"
         fpSpr.SetText k + 2, 2, "折扣"
         fpSpr.SetText k + 3, 2, "折后单价"
         fpSpr.SetText k + 4, 2, "折后总价"
         fpSpr.SetText k + 5, 2, "网站总价"
        fpSpr.ColWidth(1) = 8
        fpSpr.ColWidth(2) = 8
        fpSpr.ColWidth(3) = 14
        fpSpr.ColWidth(4) = 14
        fpSpr.ColWidth(5) = 14
        fpSpr.ColWidth(6) = 6
        fpSpr.ColWidth(7) = 6
        fpSpr.ColWidth(k) = 7
        fpSpr.ColWidth(k + 1) = 7
        fpSpr.ColWidth(k + 2) = 7
        fpSpr.ColWidth(k + 3) = 7
        fpSpr.ColWidth(k + 4) = 7
        fpSpr.ColWidth(k + 5) = 7
'        MsgBox "电通模版"
        End If
        If Option1(5).Value = True Then
        Intel
        fpSpr.SetText 1, 2, "Online"
        fpSpr.SetText 1, 4, "It168"
        fpSpr.SetText 2, 2, "URL(页面地址)"
        fpSpr.SetText 3, 2, "广告尺寸"
        fpSpr.SetText 4, 2, "广告位置"
        fpSpr.SetText 5, 2, "广告类型"
        fpSpr.SetText 6, 1, "Total"
        fpSpr.SetText 6, 2, "Daily Traffic"
        fpSpr.SetText 6, 3, "Pg View(000)"
        fpSpr.SetText 7, 1, "Planned"
        fpSpr.SetText 7, 2, "Total"
        fpSpr.SetText 7, 3, "Imp.(000)"
        fpSpr.SetText 8, 1, "Estimated"
        fpSpr.SetText 8, 2, "CTR*"
        fpSpr.SetText 9, 1, "Projected"
        fpSpr.SetText 9, 2, "Clicks"
        fpSpr.SetText k, 2, "投放天数"
        fpSpr.SetText k + 1, 2, "折扣"
        fpSpr.SetText k + 2, 2, "Cost / Day"
        fpSpr.SetText k + 2, 3, "US$"
        fpSpr.SetText k + 3, 2, "Cost / '000"
        fpSpr.SetText k + 3, 3, "Imp."
        fpSpr.SetText k + 4, 2, "Cost / Click"
        fpSpr.SetText k + 5, 2, "Net Media"
        fpSpr.SetText k + 5, 3, "Total US$"
        fpSpr.SetText k + 6, 2, "Tax  US$"
        fpSpr.SetText k + 7, 2, "Grand Total"
        fpSpr.SetText k + 7, 3, "US$"
        fpSpr.SetText k + 8, 2, "Grand Total"
        fpSpr.SetText k + 8, 3, "RMB"
        fpSpr.SetText k + 9, 2, "Share %"
      
       
        fpSpr.ColWidth(1) = 6
        fpSpr.ColWidth(2) = 10
        fpSpr.ColWidth(3) = 14
        fpSpr.ColWidth(4) = 14
        fpSpr.ColWidth(5) = 14
        fpSpr.ColWidth(6) = 9
        fpSpr.ColWidth(7) = 8
        fpSpr.ColWidth(8) = 8
        fpSpr.ColWidth(9) = 8
        fpSpr.ColWidth(k) = 8
        fpSpr.ColWidth(k + 1) = 4
        fpSpr.ColWidth(k + 2) = 8
        fpSpr.ColWidth(k + 3) = 8
        fpSpr.ColWidth(k + 4) = 8
        fpSpr.ColWidth(k + 5) = 8
        fpSpr.ColWidth(k + 6) = 8
        fpSpr.ColWidth(k + 7) = 9
        fpSpr.ColWidth(k + 8) = 8
        fpSpr.ColWidth(k + 9) = 8
       
'        MsgBox "Intel模版"
        End If
        If Option1(6).Value = True Then
            IBM

            fpSpr.SetText 1, 2, "Titles/Channels/WebSites"
            fpSpr.SetText 1, 4, "It168"
            fpSpr.SetText 2, 2, "广告形式"
            fpSpr.SetText 3, 2, "广告位置"
            fpSpr.SetText 4, 1, "URL/Description"
            fpSpr.SetText 4, 2, "(页面地址)"
            fpSpr.SetText 5, 2, "广告尺寸"
            fpSpr.SetText 6, 2, "广告大小"
            fpSpr.SetText 7, 2, "净价"
            fpSpr.SetText 8, 2, "天数"
            fpSpr.SetText 9, 2, "总价=单价*日期"
            fpSpr.SetText 10, 2, "总额 /RMB"
            fpSpr.SetText 11, 2, "总额/USD"
           
            fpSpr.ColWidth(1) = 18
            fpSpr.ColWidth(2) = 10
            fpSpr.ColWidth(3) = 10
            fpSpr.ColWidth(4) = 12
            fpSpr.ColWidth(5) = 10
            fpSpr.ColWidth(6) = 8
            fpSpr.ColWidth(7) = 8
            fpSpr.ColWidth(8) = 8
            fpSpr.ColWidth(9) = 14
            fpSpr.ColWidth(10) = 8
            fpSpr.ColWidth(11) = 8
'        MsgBox "IBM模版"
        End If
       
End Sub
 
Sub TongFang() '同方模版
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF
       
        k = 10
        pTags = Left(pTags, Len(pTags) - 0)     'pTags是传过来的字符串
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
         Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 10 To DateDiff("m", dtbegin, dtend) + 10 '日历头显示(月,星期,日)
          
            fpSpr.Col = k
            fpSpr.Row = 1
            cMonth = Format(DateAdd("m", p - 10, dtbegin), "yyyy-mm-dd")
            fpSpr.Text = Format(cMonth, "mm")
            d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
            d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
        '                d1 = DateTime.DateAdd("d", -2, cMonth)
        '                d2 = DateTime.DateAdd("d", 1, cMonth)
            For j = 10 To DateDiff("d", d1, d2) + 10
               fpSpr.Col = k
               fpSpr.Row = 3
               fpSpr.Text = Format(DateAdd("d", j - 10, d1), "dd")
               fpSpr.ColWidth(k) = 2
               k = k + 1
               Select Case Weekday(DateAdd("d", j - 10, d1))
                 Case 7:
                        fpSpr.Row = 2
                        fpSpr.Text = "六"
                        fpSpr.BackColor = &HC0C0FF
                 Case 1:
                        fpSpr.Row = 2
                        fpSpr.Text = "日"
                        fpSpr.BackColor = &HC0C0FF
                 Case 2:
                        fpSpr.Row = 2
                        fpSpr.Text = "一"
                 Case 3:
                        fpSpr.Row = 2
                        fpSpr.Text = "二"
                 Case 4:
                        fpSpr.Row = 2
                        fpSpr.Text = "三"
                 Case 5:
                        fpSpr.Row = 2
                        fpSpr.Text = "四"
                 Case 6:
                        fpSpr.Row = 2
                        fpSpr.Text = "五"
               End Select
            Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
        For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                      M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 10 + var To DateDiff("d", c1, c2) + 10 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      '                  fpSpr.Text = Format(DateAdd("d", a - 11 - var, CDate(c1)), "MM-DD")
                      fpSpr.Text = Format(DateAdd("d", a - 10 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                 Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 10 + var To DateDiff("d", c1, c2) + 10 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                    '                  fpSpr.Text = Format(DateAdd("d", a - 11 - var, CDate(c1)), "MM-DD")
                      fpSpr.Text = Format(DateAdd("d", a - 10 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                End If
'                fpSpr.SetText k, M, T
                oldGroup_no = cRec1("iType_id")
            cRec1.MoveNext
            Wend
           cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
           Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)

            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
                '用一行显示出现的日期
            '            dtbegin = DateSerial(Year(c1), Month(c1), 1)
            '            var = DateDiff("d", dtbegin, c1)
            '            dtend = DateSerial(Year(c1), Month(c1) + 1, 1) - 1
            '            var = Format(DateAdd("m", 0, dtbegin), "mm")
            '            VarOld = Format(DateAdd("m", 0, dtbegin), "mm")
                '              For j = 10 To DateDiff("d", CDate(c1), CDate(c2)) + 10
                '                fpSpr.Col = k
                '                fpSpr.Row = M
                '                fpSpr.Text = Format(DateAdd("d", j - 10, CDate(c1)), "yyyy-mm-dd")
                '                k = k + 1
                '                '周六,周日用不同的颜色显示
                '                If Weekday(DateAdd("d", j - 10, CDate(c1))) = 7 Then
                '                    fpSpr.Text = fpSpr.Text + "(六)"
                '                    fpSpr.Row = M
                '                    fpSpr.BackColor = &HC0C0FF
                '                End If
                '                If Weekday(DateAdd("d", j - 10, CDate(c1))) = 1 Then
                '                    fpSpr.Text = fpSpr.Text + "(日)"
                '                    fpSpr.Row = M
                '                    fpSpr.BackColor = &HC0C0FF
                '                End If
                '                fpSpr.ColWidth(k) = 10
                '              Next j
                fpSpr.SetText 2, M, Size
                fpSpr.SetText 3, M, Position
                fpSpr.SetText 4, M, sType
                fpSpr.SetText k, M, T
                fpSpr.SetText k + 1, M, price

            cRec.MoveNext
            Wend

       Next
        fpSpr.MaxCols = k + 4
        fpSpr.MaxRows = M + 1
End Sub

Sub SanXin() '三星模版
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF   '无色
       
        k = 14
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 14 To DateDiff("m", dtbegin, dtend) + 14 '日历头显示(月,星期,日)
          fpSpr.Col = k
          fpSpr.Row = 1
          cMonth = Format(DateAdd("m", p - 14, dtbegin), "yyyy-mm-dd")
          fpSpr.Text = fun(Format(cMonth, "mm"))
          d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
          d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
          For j = 14 To DateDiff("d", d1, d2) + 14
             fpSpr.Col = k
             fpSpr.Row = 3
             fpSpr.Text = Format(DateAdd("d", j - 14, d1), "dd")
             fpSpr.ColWidth(k) = 2
             k = k + 1
             Select Case Weekday(DateAdd("d", j - 14, d1))
               Case 7:
                      fpSpr.Row = 2
                      fpSpr.Text = "六"
                      fpSpr.BackColor = &HC0C0FF
               Case 1:
                      fpSpr.Row = 2
                      fpSpr.Text = "日"
                      fpSpr.BackColor = &HC0C0FF
               Case 2:
                      fpSpr.Row = 2
                      fpSpr.Text = "一"
               Case 3:
                      fpSpr.Row = 2
                      fpSpr.Text = "二"
               Case 4:
                      fpSpr.Row = 2
                      fpSpr.Text = "三"
               Case 5:
                      fpSpr.Row = 2
                      fpSpr.Text = "四"
               Case 6:
                      fpSpr.Row = 2
                      fpSpr.Text = "五"
             End Select
          Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
        For i = 0 To UBound(iTags)
             iType = iTags(i)
             cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                     & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                     & " from tbl_NetPosition_Group g " _
                     & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                     & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                     & "where  " _
                     & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
             Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
             While Not cRec1.EOF
                    newGroup_no = cRec1("iType_id")
                    If newGroup_no = oldGroup_no Then
                       If M = 3 Then
                           M = 4
                       End If
                       c1 = cRec1("dFrom_date")
                       c2 = cRec1("dTo_Date")
                       var = DateDiff("d", dtbegin, c1)
                       var2 = DateDiff("d", dtbegin, c2)
                       For a = 14 + var To DateDiff("d", c1, c2) + 14 + var
                         fpSpr.Col = a
                         fpSpr.Row = M
                         fpSpr.BackColor = &HFF00&
                         fpSpr.Text = Format(DateAdd("d", a - 14 - var, CDate(c1)), 1)
                         T = T + 1
                       Next a
                    Else
                       T = 0
                       M = M + 1
                       c1 = cRec1("dFrom_date")
                       c2 = cRec1("dTo_Date")
                       var = DateDiff("d", dtbegin, c1)
                       var2 = DateDiff("d", dtbegin, c2)
                       For a = 14 + var To DateDiff("d", c1, c2) + 14 + var
                         fpSpr.Col = a
                         fpSpr.Row = M
                         fpSpr.BackColor = &HFF00&
                         fpSpr.Text = Format(DateAdd("d", a - 14 - var, CDate(c1)), 1)
                         T = T + 1
                       Next a
                    End If
                    fpSpr.SetText 9, M, T
                    oldGroup_no = cRec1("iType_id")
              cRec1.MoveNext
             Wend
             cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                 & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                 & " from tbl_NetPosition_Group g " _
                 & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                 & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                 & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                 & "where  nn.cUnit ='/天' and " _
                 & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
            Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
       
            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
           
                fpSpr.SetText 8, M, Size
                fpSpr.SetText 5, M, Position
                fpSpr.SetText 7, M, sType
                fpSpr.SetText 10, M, price
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k
        fpSpr.MaxRows = M + 1
End Sub

Sub HuiPu()
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF   '无色
'
        k = 9
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 9 To DateDiff("m", dtbegin, dtend) + 9 '日历头显示(月,星期,日)
          fpSpr.Col = k
          fpSpr.Row = 1
          cMonth = Format(DateAdd("m", p - 9, dtbegin), "yyyy-mm-dd")
          fpSpr.Text = fun(Format(cMonth, "mm"))
          d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
          d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
          For j = 9 To DateDiff("d", d1, d2) + 9
             fpSpr.Col = k
             fpSpr.Row = 3
             fpSpr.Text = Format(DateAdd("d", j - 9, d1), "dd")
             fpSpr.ColWidth(k) = 2
             k = k + 1
             Select Case Weekday(DateAdd("d", j - 9, d1))
               Case 7:
                      fpSpr.Row = 2
                      fpSpr.Text = "六"
                      fpSpr.BackColor = &HC0C0FF
               Case 1:
                      fpSpr.Row = 2
                      fpSpr.Text = "日"
                      fpSpr.BackColor = &HC0C0FF
               Case 2:
                      fpSpr.Row = 2
                      fpSpr.Text = "一"
               Case 3:
                      fpSpr.Row = 2
                      fpSpr.Text = "二"
               Case 4:
                      fpSpr.Row = 2
                      fpSpr.Text = "三"
               Case 5:
                      fpSpr.Row = 2
                      fpSpr.Text = "四"
               Case 6:
                      fpSpr.Row = 2
                      fpSpr.Text = "五"
             End Select
          Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
         For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                        M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 9 + var To DateDiff("d", c1, c2) + 9 + var
                        fpSpr.Col = a
                        fpSpr.Row = M
                        fpSpr.BackColor = &HFF00&
                        fpSpr.Text = Format(DateAdd("d", a - 9 - var, CDate(c1)), 1)
                        T = T + 1
                    Next a
                 Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 9 + var To DateDiff("d", c1, c2) + 9 + var
                        fpSpr.Col = a
                        fpSpr.Row = M
                        fpSpr.BackColor = &HFF00&
                        fpSpr.Text = Format(DateAdd("d", a - 9 - var, CDate(c1)), 1)
                        T = T + 1
                    Next a
                End If
                fpSpr.SetText 8, M, T
                oldGroup_no = cRec1("iType_id")
             cRec1.MoveNext
            Wend
                
            cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
           Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
        
                fpSpr.SetText 4, M, Size
                fpSpr.SetText 5, M, Position
                fpSpr.SetText 2, M, Position + "-" + sType
                fpSpr.SetText 3, M, sType
                fpSpr.SetText k, M, price
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k + 5
        fpSpr.MaxRows = M + 1
End Sub

Sub FangZheng()
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF
'
        k = 11
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 11 To DateDiff("m", dtbegin, dtend) + 11 '日历头显示(月,星期,日)
          fpSpr.Col = k
          fpSpr.Row = 1
          cMonth = Format(DateAdd("m", p - 11, dtbegin), "yyyy-mm-dd")
          fpSpr.Text = Format(cMonth, "mm") + "月"
          d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
          d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
          For j = 11 To DateDiff("d", d1, d2) + 11
             fpSpr.Col = k
             fpSpr.Row = 3
             fpSpr.Text = Format(DateAdd("d", j - 11, d1), "dd")
             fpSpr.ColWidth(k) = 2
             k = k + 1
             Select Case Weekday(DateAdd("d", j - 11, d1))
               Case 7:
                      fpSpr.Row = 2
                      fpSpr.Text = "六"
                      fpSpr.BackColor = &HC0C0FF
               Case 1:
                      fpSpr.Row = 2
                      fpSpr.Text = "日"
                      fpSpr.BackColor = &HC0C0FF
               Case 2:
                      fpSpr.Row = 2
                      fpSpr.Text = "一"
               Case 3:
                      fpSpr.Row = 2
                      fpSpr.Text = "二"
               Case 4:
                      fpSpr.Row = 2
                      fpSpr.Text = "三"
               Case 5:
                      fpSpr.Row = 2
                      fpSpr.Text = "四"
               Case 6:
                      fpSpr.Row = 2
                      fpSpr.Text = "五"
             End Select
          Next j
        Next p
         T = 0
         fpSpr.MaxRows = UBound(iTags) + 4
         For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                      M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 11 + var To DateDiff("d", c1, c2) + 11 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      fpSpr.Text = Format(DateAdd("d", a - 11 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 11 + var To DateDiff("d", c1, c2) + 11 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      fpSpr.Text = Format(DateAdd("d", a - 11 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                End If
                fpSpr.SetText 7, M, T
                oldGroup_no = cRec1("iType_id")
             cRec1.MoveNext
            Wend
            cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
           Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
           
                fpSpr.SetText 5, M, Size
                fpSpr.SetText 2, M, Position
                fpSpr.SetText 3, M, sType
                fpSpr.SetText 6, M, "天"
                fpSpr.SetText 8, M, price
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k
        fpSpr.MaxRows = M + 1
End Sub

Sub DianTong()
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF   '无色
'
        k = 8
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 8 To DateDiff("m", dtbegin, dtend) + 8 '日历头显示(月,星期,日)
            fpSpr.Col = k
            fpSpr.Row = 1
            cMonth = Format(DateAdd("m", p - 8, dtbegin), "yyyy-mm-dd")
            fpSpr.Text = Format(cMonth, "mm") + "月"
            d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
            d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
            For j = 8 To DateDiff("d", d1, d2) + 8
               fpSpr.Col = k
               fpSpr.Row = 3
               fpSpr.Text = Format(DateAdd("d", j - 8, d1), "dd")
               fpSpr.ColWidth(k) = 2
               k = k + 1
               Select Case Weekday(DateAdd("d", j - 8, d1))
                 Case 7:
                        fpSpr.Row = 2
                        fpSpr.Text = "六"
                        fpSpr.BackColor = &HC0C0FF
                 Case 1:
                        fpSpr.Row = 2
                        fpSpr.Text = "日"
                        fpSpr.BackColor = &HC0C0FF
                 Case 2:
                        fpSpr.Row = 2
                        fpSpr.Text = "一"
                 Case 3:
                        fpSpr.Row = 2
                        fpSpr.Text = "二"
                 Case 4:
                        fpSpr.Row = 2
                        fpSpr.Text = "三"
                 Case 5:
                        fpSpr.Row = 2
                        fpSpr.Text = "四"
                 Case 6:
                        fpSpr.Row = 2
                        fpSpr.Text = "五"
               End Select
            Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
        For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                      M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 8 + var To DateDiff("d", c1, c2) + 8 + var
                        fpSpr.Col = a
                        fpSpr.Row = M
                        fpSpr.BackColor = &HFF00&
                        fpSpr.Text = Format(DateAdd("d", a - 8 - var, CDate(c1)), 1)
                        T = T + 1
                    Next a
                Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 8 + var To DateDiff("d", c1, c2) + 8 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      fpSpr.Text = Format(DateAdd("d", a - 8 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                End If
                fpSpr.SetText 6, M, T
                oldGroup_no = cRec1("iType_id")
            cRec1.MoveNext
            Wend
            cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
            Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
           
                fpSpr.SetText 5, M, Size
                fpSpr.SetText 3, M, Position
                fpSpr.SetText 4, M, sType
                fpSpr.SetText 7, M, "天"
                fpSpr.SetText k, M, price
                fpSpr.SetText k + 1, M, price * T
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k + 5
        fpSpr.MaxRows = M + 1
End Sub

Sub Intel()
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF   '无色
'
        k = 10
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
        & " from tbl_NetPosition_Group g " _
        & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
        & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
        & "where " _
        & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 10 To DateDiff("m", dtbegin, dtend) + 10 '日历头显示(月,星期,日)
          fpSpr.Col = k
          fpSpr.Row = 1
          cMonth = Format(DateAdd("m", p - 10, dtbegin), "yyyy-mm-dd")
          fpSpr.Text = fun(Format(cMonth, "mm"))
          d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
          d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
          For j = 10 To DateDiff("d", d1, d2) + 10
             fpSpr.Col = k
             fpSpr.Row = 3
             fpSpr.Text = Format(DateAdd("d", j - 10, d1), "dd")
             fpSpr.ColWidth(k) = 2
             k = k + 1
             Select Case Weekday(DateAdd("d", j - 10, d1))
               Case 7:
                      fpSpr.Row = 2
                      fpSpr.Text = "六"
                      fpSpr.BackColor = &HC0C0FF
               Case 1:
                      fpSpr.Row = 2
                      fpSpr.Text = "日"
                      fpSpr.BackColor = &HC0C0FF
               Case 2:
                      fpSpr.Row = 2
                      fpSpr.Text = "一"
               Case 3:
                      fpSpr.Row = 2
                      fpSpr.Text = "二"
               Case 4:
                      fpSpr.Row = 2
                      fpSpr.Text = "三"
               Case 5:
                      fpSpr.Row = 2
                      fpSpr.Text = "四"
               Case 6:
                      fpSpr.Row = 2
                      fpSpr.Text = "五"
             End Select
          Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
        For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
       
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                      M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 10 + var To DateDiff("d", c1, c2) + 10 + var
                    fpSpr.Col = a
                    fpSpr.Row = M
                    fpSpr.BackColor = &HFF00&
                    fpSpr.Text = Format(DateAdd("d", a - 10 - var, CDate(c1)), 1)
                    T = T + 1
                    Next a
                 Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 10 + var To DateDiff("d", c1, c2) + 10 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      fpSpr.Text = Format(DateAdd("d", a - 10 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                End If
                fpSpr.SetText k, M, T
                oldGroup_no = cRec1("iType_id")
             cRec1.MoveNext
            Wend
                
            cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
           Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
           While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
        
                fpSpr.SetText 3, M, Size
                fpSpr.SetText 4, M, Position
                fpSpr.SetText 5, M, sType
               
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k + 9
        fpSpr.MaxRows = M + 1
End Sub
Sub IBM()
        fpSpr.Col = -1
        fpSpr.Row = -1
        fpSpr.Text = ""
        fpSpr.BackColor = &HFFFFFF   '无色
'
        k = 12
        pTags = Left(pTags, Len(pTags) - 0)
        iTags = Split(pTags, ",")
        M = 3
        cSql = " select min(dFrom_date) as dMin,max(dTo_date) as dMax " _
            & " from tbl_NetPosition_Group g " _
            & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
            & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
            & "where " _
            & "r.iReg_no in ( " & pTags & ")  "
        Set cRecT = gData.OpenResultset(cSql, rdOpenKeyset)
        dtbegin = DateSerial(Year(cRecT("dMin")), Month(cRecT("dMin")), 1)
        dtend = DateSerial(Year(cRecT("dMax")), Month(cRecT("dMax")) + 1, 1) - 1
        For p = 12 To DateDiff("m", dtbegin, dtend) + 12 '日历头显示(月,星期,日)
          fpSpr.Col = k
          fpSpr.Row = 1
          cMonth = Format(DateAdd("m", p - 12, dtbegin), "yyyy-mm-dd")
          fpSpr.Text = fun(Format(cMonth, "mm"))
          d1 = DateSerial(Year(cMonth), Month(cMonth), 1)           ' 当月第一天
          d2 = DateSerial(Year(cMonth), Month(cMonth) + 1, 1) - 1    '当月最后一天
          For j = 12 To DateDiff("d", d1, d2) + 12
             fpSpr.Col = k
             fpSpr.Row = 3
             fpSpr.Text = Format(DateAdd("d", j - 12, d1), "dd")
             fpSpr.ColWidth(k) = 2
             k = k + 1
             Select Case Weekday(DateAdd("d", j - 12, d1))
               Case 7:
                      fpSpr.Row = 2
                      fpSpr.Text = "六"
                      fpSpr.BackColor = &HC0C0FF
               Case 1:
                      fpSpr.Row = 2
                      fpSpr.Text = "日"
                      fpSpr.BackColor = &HC0C0FF
               Case 2:
                      fpSpr.Row = 2
                      fpSpr.Text = "一"
               Case 3:
                      fpSpr.Row = 2
                      fpSpr.Text = "二"
               Case 4:
                      fpSpr.Row = 2
                      fpSpr.Text = "三"
               Case 5:
                      fpSpr.Row = 2
                      fpSpr.Text = "四"
               Case 6:
                      fpSpr.Row = 2
                      fpSpr.Text = "五"
             End Select
          Next j
        Next p
        T = 0
        fpSpr.MaxRows = UBound(iTags) + 4
        For i = 0 To UBound(iTags)
            iType = iTags(i)
            cSql1 = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                    & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,n.iType_id " _
                    & " from tbl_NetPosition_Group g " _
                    & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                    & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                    & "where  " _
                    & "r.iReg_no = " & iType & "  order by dFrom_Date,dTo_date"
            Set cRec1 = gData.OpenResultset(cSql1, rdOpenKeyset)
       
            While Not cRec1.EOF
                newGroup_no = cRec1("iType_id")
                If newGroup_no = oldGroup_no Then
                    If M = 3 Then
                      M = 4
                    End If
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 12 + var To DateDiff("d", c1, c2) + 12 + var
                        fpSpr.Col = a
                        fpSpr.Row = M
                        fpSpr.BackColor = &HFF00&
                        fpSpr.Text = Format(DateAdd("d", a - 12 - var, CDate(c1)), 1)
                        T = T + 1
                    Next a
                 Else
                    T = 0
                    M = M + 1
                    c1 = cRec1("dFrom_date")
                    c2 = cRec1("dTo_Date")
                    var = DateDiff("d", dtbegin, c1)
                    var2 = DateDiff("d", dtbegin, c2)
                    For a = 12 + var To DateDiff("d", c1, c2) + 12 + var
                      fpSpr.Col = a
                      fpSpr.Row = M
                      fpSpr.BackColor = &HFF00&
                      fpSpr.Text = Format(DateAdd("d", a - 12 - var, CDate(c1)), 1)
                      T = T + 1
                    Next a
                End If
                fpSpr.SetText 8, M, T
                oldGroup_no = cRec1("iType_id")
             cRec1.MoveNext
            Wend
                
            cSql = " select g.cGroup_No,cast(g.iWidth as char(6))+'*'+cast(g.iHeight as char(6)) as size, " _
                & "g.cPosition , r.dFrom_date, r.dTo_Date, n.cType,nn.iLargess_Invo " _
                & " from tbl_NetPosition_Group g " _
                & "inner join tbl_NetPosition n on N.cGroup_No=G.cGroup_No " _
                & "inner join tbl_Register_Position r on R.iType_Id=N.iType_Id " _
                & "inner join tbl_NetPrice_NoProduct nn on nn.cGroup_No = g.cGroup_No " _
                & "where  nn.cUnit ='/天' and " _
                & "r.iReg_no = " & iType & " order by dFrom_Date,dTo_date"
           Set cRec = gData.OpenResultset(cSql, rdOpenKeyset)
       
            While Not cRec.EOF   '显示选定日期
                GroupNo = cRec(0)
                c1 = cRec("dFrom_date")
                c2 = cRec("dTo_Date")
                Size = cRec("size")
                Position = cRec("cPosition")
                sType = cRec("cType")
                price = cRec("iLargess_Invo")
        
                fpSpr.SetText 5, M, Size
                fpSpr.SetText 3, M, Position
                fpSpr.SetText 2, M, sType
                fpSpr.SetText 7, M, price
                fpSpr.SetText 9, M, price * T
            cRec.MoveNext
            Wend
        Next
        fpSpr.MaxCols = k - 1
        fpSpr.MaxRows = M + 1
End Sub

 
Private Sub Form_Load()
Dim dTags As String
'iTags = Split(pTags, ",")
End Sub

Function fun(sa As String) As String
    Select Case sa
    Case "01":
        fun = "January"
    Case "02":
        fun = "February"
    Case "03":
        fun = "March"
    Case "04":
        fun = "April"
    Case "05":
        fun = "May"
    Case "06":
        fun = "June"
    Case "07":
        fun = "July"
    Case "08":
        fun = "August"
    Case "09":
        fun = "September"
    Case "10":
        fun = "October"
    Case "11":
        fun = "Noverber"
    Case "12":
        fun = "December"
    End Select
End Function

Private Sub Form_Resize()
  
'    If Me.WindowState = 1 Then Exit Sub
'    i = Me.Width - 580
'    If i <= 0 Then i = 1
'    fpSpr.Width = i
'
'     'flexgrid 和 flexgridno 按照3:1显示
'        i = Me.Height - 1500
'        If i < 0 Then
'        Else
'            fpSpr.Height = i / 4 * 4
'            fpSpr.Top = 1000
'            i = Me.Height - fpSpr.Height - 1500
'                If i > 0 Then
'                    fpSpr.Height = i
'                End If
'        End If
       
   '当窗体移动时,设置fpSpr的大小及位置
   '如果窗口状态为最小化,跳出过程
   If Me.WindowState = 1 Then Exit Sub
    With fpSpr
     .Width = IIf(Me.Width - 300 > 1, Me.Width - 300, 10)
     .Height = IIf(Me.Height - 1600 > 1, Me.Height - 1600, 10)
    End With
 
End Sub


根据模版生成的窗体

由于生成窗体太宽,所以分两部分显示,上面是左边,下面是右边



转载于:https://www.cnblogs.com/A-I/archive/2008/06/19/1225699.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值