国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
轉(zhuǎn))vb拾遺*3(2
轉(zhuǎn))vb拾遺*3(2
30.關(guān)于版本號(hào)

如果程序需要給別人使用,一定要管理好版本號(hào),否則這臺(tái)機(jī)是這個(gè)版本,那臺(tái)機(jī)是那個(gè)版本,會(huì)亂套的,
版本號(hào)由四個(gè)數(shù)字組成,但VB6里的版本號(hào)只能設(shè)置3個(gè)數(shù)字,
分別為主版本、次版本、修正,
在菜單:工程--屬性,“生成”屬性頁可以看到版本,
如果勾選上“自動(dòng)升級(jí)”,則每次編譯新程序時(shí),會(huì)將“修正”值加一。

每次編譯發(fā)布時(shí),在文檔里記錄好這次編譯的版本號(hào)、編譯時(shí)間、以及修改的地方,但很多程序員都不喜歡寫文檔,而且寫文檔攜帶也麻煩,如果沒有帶文檔也就很麻煩了,
那可以將版本號(hào)用年月日來標(biāo)志,
比如版本是:2009.1026.0.2052
表示是2009年10月26日20點(diǎn)52分編譯的,
而修改的內(nèi)容可以放到版本的備注信息里填寫,
版本號(hào)下面的版本信息,類型選擇“注釋”,輸入備注值,
比如備注填寫:
2009.1026.2052:修改了字段aaa
2009.1026.1052:刪除了表bbb
2009.826.1052:增加了表ccc

備注簡要填寫就行。

當(dāng)然,現(xiàn)在很多成熟的軟件都提供自動(dòng)更新功能,
程序自動(dòng)檢測新版本就可以更新了。
如果是信息系統(tǒng),有數(shù)據(jù)庫服務(wù)器(MySql、MsSql、Oracle等),那可以將新程序通過上傳工具上傳到數(shù)據(jù)庫,
客戶機(jī)運(yùn)行程序就檢測版本號(hào),有新版本就從數(shù)據(jù)庫里下載最新版本就行了。
如果不是信息系統(tǒng),或者是桌面版數(shù)據(jù)庫,那可以通過HTTP或者Socket的方式,這兩種方式都需要另建升級(jí)服務(wù)器,比較麻煩。

一般工廠里的信息系統(tǒng),一般都是內(nèi)部使用的,所以維護(hù)版本號(hào)時(shí),能將每臺(tái)客戶機(jī)的版本號(hào)上報(bào)給服務(wù)器,管理人員看一下各客戶機(jī)的版本,就知道哪些沒有更新版本了,即使是自動(dòng)更新,用戶可能會(huì)取消更新的,除非不更新就不給運(yùn)行程序,
但有時(shí)用戶是一天24小時(shí)運(yùn)行著程序的,不能及時(shí)更新程序,
所以知道每臺(tái)客戶機(jī)的版本號(hào),是否是最新版本還是有必要的。

說起這個(gè)一天24小時(shí)運(yùn)行的程序,就想起什么時(shí)候去檢測版本號(hào),一般打開程序時(shí)就會(huì)檢測,但用戶有時(shí)24小時(shí)開著,不關(guān)程序,
所以需要定時(shí)檢測版本,如果版本需要更新就檢查。

如果工程是VSS管理,那編譯之前需要將工程文件(vbp)簽出, 
這樣"自動(dòng)升級(jí)版本號(hào)"時(shí),版本號(hào)的修正值才能保存到工程文件里,
版本號(hào)信息是保存在vbp文件里的, 用記事本打開vbp文件就可以看到.

 

31.工程之間文件互相復(fù)制的問題

很多時(shí)候,需要從別的工程里的窗體復(fù)制到自己的工程里,
但復(fù)制過來后,發(fā)現(xiàn)打開窗體就出錯(cuò),
要復(fù)制窗體,最好在原來的工程里將窗體另存為到新工程的目錄,這樣另存為就可以更改文件名,如果不這樣,而是直接復(fù)制文件過來,然后更改文件名,那如果窗體對應(yīng)有frx文件,那窗體文件(frm)會(huì)找不到frx文件,導(dǎo)致窗體打開出錯(cuò)。
另存為時(shí),會(huì)將frm文件里引用frx文件的地方也重命名的。

另外,如果窗體里有用戶控件時(shí),要特別注意,
因?yàn)閒rm文件是通過:“工程名.用戶控件名”的方式引用用戶控件的,如果新工程與舊工程的工程名不一樣,那會(huì)找不到用戶控件,打開窗體會(huì)出錯(cuò)的,最好先將舊工程另存為到一個(gè)臨時(shí)工程里,工程名字與新工程名字一樣,之后再將窗體另存過去,最后不要保存舊工程就行了。

33.單選框與復(fù)選框的區(qū)別
====================================
在界面上放一個(gè)單選框和一個(gè)復(fù)選框,名字依次為:Check1、Option1

Form_Load里寫如下代碼:

Private Sub Form_Load()
    MsgBox Check1.Value
    MsgBox Option1.Value
    
    MsgBox TypeName(Check1.Value)
    MsgBox TypeName(Option1.Value)
End Sub

發(fā)現(xiàn)復(fù)選框的值是0,而單選框的值是false
復(fù)選框value屬性的類型是 Integer
單選框value屬性的類型是 Boolean

一般我編寫程序時(shí),只關(guān)心是否選中:要么選中,要么沒選中,
象C#等語言里,單選框和復(fù)選框都有Checked屬性,都是布爾型,
但VB是個(gè)例外,VB沒有Checked屬性,只能通過Value屬性來獲取是否選中,而單選框和復(fù)選框的Value屬性類型是不一樣的,
復(fù)選框不能當(dāng)成Boolean型處理,那些象我一樣第一次用VB的人要特別注意。

復(fù)選框三個(gè)狀態(tài):選中、未選中、部分選中

第三個(gè)狀態(tài)“部分選中”只見過很少的地方用,
比如文件夾屬性的那個(gè)“只讀”復(fù)選框,還有就是樹型控件里標(biāo)志子節(jié)點(diǎn)部分選中,做權(quán)限控制時(shí)經(jīng)常用的,瑞星殺毒軟件選擇殺毒文件夾也是三個(gè)狀態(tài)。

來源:(http://blog.sina.com.cn/s/blog_4c0c94450100g304.html) - (轉(zhuǎn))vb拾遺*3_維以不永傷_新浪博客

34.數(shù)學(xué)分配的問題
==================================== 

舉個(gè)例子,有一百斤大米,要平分給3個(gè)人,該怎么分?要求必須全部分完,每個(gè)人分得的數(shù)量合計(jì)要等于100, 保留兩位小數(shù)。

如果只是簡單的數(shù)學(xué)運(yùn)算:Round(100 3, 2) 33.33
那每個(gè)人都分得33.33公斤,總和是99.99斤,還有0.01公斤沒分完。

如果是7個(gè)人分,那每個(gè)人分得 round(100/7,2) 14.29
那每個(gè)人分得14.29公斤,總和=14.29*7=100.03
多出了0.03公斤,

所以這樣簡單的按比例分配不符合要求。比如發(fā)票與入庫單核銷,要求入庫單按數(shù)量比例分配發(fā)票金額,而入庫單金額合計(jì)必須等于發(fā)票金額,一分都不能差。

其實(shí)這里可以采用余數(shù)比例分配法,
第一個(gè)人分時(shí),用:總數(shù) 所占比例
第二個(gè)人分時(shí),用:剩余未分配數(shù) 所占比例
第三個(gè)人分時(shí),用:剩余未分配數(shù) 所占比例
.
.
.
最后一個(gè)人分時(shí),就是等于 剩余未分配數(shù) 就行了,
這樣可以做到盡量的公平,而且保證絕對能分完,不多也不少。
按七個(gè)人分的代碼:

Dim all As Double, As Long
all 100
For To 7
    Dim As Double
    Round(1 (7 1) all, 2)
    all all n
    Print n
Next i

各人依次分得的數(shù)為:

14.29、14.29、14.28、14.29、14.28、14.29、14.28

總和 14.29+14.29+14.28+14.29+14.28+14.29+14.28 100

不多不少,剛好100

上面的代碼要看到結(jié)果,需要設(shè)置窗體屬性 AutoRedraw 為 True
AutoRedraw 是自動(dòng)重繪。

如果你不想設(shè)置 AutoRedraw 為True,設(shè)置AutoRedraw為False時(shí),那就得將 Print語句放到 Paint 事件里:
Paint事件由Windows的窗口管理器自動(dòng)調(diào)用與維護(hù),
Private Sub Form_Paint()
    Dim all As Double, As Long
    all 100
    For To 7
        Dim As Double
        Round(1 (7 1) all, 2)
        all all n
        Print n
    Next i
End Sub

35.層的設(shè)計(jì)

很多復(fù)雜的系統(tǒng),功能需求相當(dāng)?shù)亩?,如果沒有分層設(shè)計(jì),所有代碼交織在一起,象一團(tuán)麻一樣,那無論是開發(fā)還是維護(hù)還是使用,都是一種災(zāi)難。而且分層設(shè)計(jì)方便分工合作。

比如曾經(jīng)用ASP/VBScript做網(wǎng)站時(shí),以前的做法就是先等美工做出頁面,客戶認(rèn)可了,我們再往頁面里填代碼。后來我采用分層的方式,抽一層業(yè)務(wù)層出來,專門處理業(yè)務(wù)和數(shù)據(jù)。美工做頁面時(shí),我就寫業(yè)務(wù)層,美工頁面做完了,我的業(yè)務(wù)層也寫完了,然后把頁面和業(yè)務(wù)層合并起來就完成了。

舉個(gè)例子,我參與的一個(gè)C/S系統(tǒng),下面是這個(gè)系統(tǒng)某模塊里某個(gè)功能的類里所有的方法:

Public Function zq_qxx_Insert(znid As String, Qyid As String, Qh As Long, qlxid As Long...
Public Function zq_qxx_update(id As Long, qlxid As Long, pzid As Long, zqid As Long
Public Function zq_qxx_delete(qid As Long) As Boolean '刪除
Public Function zq_qxx_ZuoFei(qid As Long) As Boolean '作廢
Public Function zq_qxx_HuiFu(qid As Long) As Boolean  '恢復(fù)
Public Function zq_qxx_view(znid As String, swhere As String) As Recordset '查詢視圖
Public Function IsStateDap(pLotId As Long) As Boolean '是否是安排狀態(tài)
Public Function GetMaxQianHao(ByVal Qyid As String) As String '獲取最大號(hào)
Public Function jc_Getzninfo(
Public Function jc_Rows(title As String, ParamArray args()) As Variant
Public Function jc_qyidIsLastLevel(Qyid As String) As Boolean
Public Function jc_ZheNongXinXi(znid As String) As Variant
Public Function jc_QyZn(ByVal Qyid As String, Optional pWhere As String "") As Recordset
Public Function LoadGlTj(ByVal GlTj As String, Tj_ListView As ListView) As Boolean
Public Function LoadTree(ByVal MyTree As TreeView, ByVal MyIcon As ImageList) As Boolean
Public Function GetQXxLb(rs As Recordset, VsZnXx As VSFlexGrid, RecordCountList As Label,

38.導(dǎo)出Excel單元格合并的問題

要導(dǎo)出Excel也能實(shí)現(xiàn)表頭單元格合并,有兩種處理方式,
方法一:
 通過相鄰單元格內(nèi)容相同來合并,這種只適用于表頭合并。
 VSFlexGrid就是通過這種方式來合并的,所以導(dǎo)出Excel后也
 可以通過這種方式來合并。

 先將數(shù)據(jù)按單元格導(dǎo)出到Excel,然后再合并單元格,
 完整代碼如下:
Public Sub ExportExcel(pVS As VSFlexGrid, sTitle As String, Optional sHead As String "", Optional sFoot As String "", Optional strNums As String "")
  Dim xlApp, xlSheet
  Dim As Long, As Long
  'On Error Resume Next
  
  Set xlApp CreateObject("Excel.application")
  If xlApp Is Nothing Then
    Exit Sub
  End If
  xlApp.Visible False
  Me.MousePointer vbHourglass
  xlApp.Workbooks.Add
  Set xlSheet xlApp.ActiveWorkBook.Sheets(1)

  Dim dataRow As Long
  Dim xlrow As Long
  xlrow 1
  '計(jì)算表格列數(shù)
  Dim xlColsCount As Long
  For To pVS.Cols
    If Not pVS.ColHidden(j 1) Then
      xlColsCount xlColsCount 1
    End If
  Next j
  '填充標(biāo)題
  xlSheet.cells(xlrow, 1).Value sTitle
  xlSheet.Range(xlSheet.cells(xlrow, 1), xlSheet.cells(xlrow, xlColsCount)).Select
  xlApp.Selection.HorizontalAlignment 3
  xlApp.Selection.MergeCells True
  xlrow xlrow 1
  '添加小標(biāo)題
  If (sHead <> "") Then
    xlSheet.cells(xlrow, 1).Value sHead
    xlSheet.Range(xlSheet.cells(xlrow, 1), xlSheet.cells(xlrow, xlColsCount)).Select
    xlApp.Selection.MergeCells True
    xlrow xlrow 1
  End If
  '設(shè)置文本列
  Dim sStrs
  Dim nStr As Long
  If (strNums <> "") Then
    sStrs Split(strNums, ",")
    For To UBound(sStrs)
      nStr CLng(sStrs(i))
      xlSheet.Range(xlSheet.cells(xlrow pVS.FixedRows, nStr), xlSheet.cells(vs.Rows xlrow pVS.FixedRows, nStr)).Select
      xlApp.Selection.NumberFormatLocal "@"
    Next
  End If
  dataRow xlrow
  '填充數(shù)據(jù)
  For To pVS.Rows

Dim xlcol As Long
    xlcol 0
    For To pVS.Cols
      If Not pVS.ColHidden(j 1) Then
        xlcol xlcol 1
        xlSheet.cells(xlrow, xlcol).Value pVS.TextMatrix((i 1), (j 1)) '加上“'”號(hào)則可以解決上面savegrid中銀行賬號(hào)的導(dǎo)出問題。
      End If
    Next j
    xlrow xlrow 1
    DoEvents
  Next i
  '填充表尾
  If (sFoot <> "") Then
    xlSheet.cells(xlrow, 1) sFoot
    xlSheet.Range(xlSheet.cells(xlrow, 1), xlSheet.cells(xlrow, xlColsCount)).Select
    xlApp.Selection.MergeCells True
    xlrow xlrow 1
  End If
  '合并表頭
  '--------行合并
  Dim prevText As String, sameStart As Long, sCell As String
  For dataRow To dataRow pVS.FixedRows 1
    prevText ""
    sameStart 1
    For To xlColsCount

      sCell xlSheet.cells(i, j).Value
      If (sCell <> prevText) Then
        If (j 1) Then
          xlSheet.Range(xlSheet.cells(i, sameStart), xlSheet.cells(i, 1)).Select
          xlApp.Selection.MergeCells True
          'xlSheet.cells(i, sameStart).Value prevText
        End If
        sameStart j
        prevText sCell
      Else
        xlSheet.cells(i, j).Value ""
        If (j xlColsCount) Then
          xlSheet.Range(xlSheet.cells(i, sameStart), xlSheet.cells(i, j)).Select
          xlApp.Selection.MergeCells True
        End If
        'sameStart sameStart 1
      End If
    Next j
  Next i
  '--------列合并
  If pVS.FixedRows Then
  For To xlColsCount
    prevText ""
    sameStart dataRow
    For dataRow To dataRow pVS.FixedRows 1
      sCell xlSheet.cells(j, i).Value
      If (sCell <> prevText) Then
        If (j dataRow) Then
          If prevText <> "" Then

xlSheet.Range(xlSheet.cells(sameStart, i), xlSheet.cells(j 1, i)).Select
            xlApp.Selection.MergeCells True
          End If
          'xlSheet.cells(i, sameStart).Value prevText
        End If
        sameStart j
        prevText sCell
      Else
        xlSheet.cells(j, i).Value ""
        If (j dataRow pVS.FixedRows 1) Then
          If prevText <> "" Then
            xlSheet.Range(xlSheet.cells(sameStart, i), xlSheet.cells(j, i)).Select
            xlApp.Selection.MergeCells True
          End If
        End If
        'sameStart sameStart 1
      End If
    Next j
  Next i
  End If
  
  '設(shè)置表頭居中
  xlSheet.Range(xlSheet.cells(dataRow, 1), xlSheet.cells(dataRow pVS.FixedRows 1, xlColsCount)).Select
  xlApp.Selection.HorizontalAlignment 3
          
  '自動(dòng)列寬列高
  xlSheet.Columns.AutoFit
  '調(diào)整行高
  For To vs.Rows
    xlSheet.Rows(i).RowHeight xlSheet.Rows(i).RowHeight 6  '自動(dòng)大小后上下無邊距,需要增加高度,要不太擠。
  Next i

  
  '合并單元格
  For To vs.FixedRows
    'for to
  Next i
  
  Me.MousePointer vbDefault
  xlApp.Visible True
  Set xlApp Nothing
  Set xlSheet Nothing
End Sub
上面的代碼是通過內(nèi)容相同的方式來合并的,
VB導(dǎo)出Excel有個(gè)關(guān)鍵的問題就是速度問題,如果逐個(gè)單元格賦值,速度很慢,因?yàn)檎{(diào)用的是Excel提供的Automation,調(diào)用Automation的方法,屬于進(jìn)程之間的通信,進(jìn)程之間的方法調(diào)用,比進(jìn)程內(nèi)方法調(diào)用要慢上千倍,的確是要慢上千倍,并非夸張。
為了提高速度,應(yīng)該盡量避免進(jìn)程間方法調(diào)用的次數(shù)。

以前看過一本介紹分布式編程的書,那本書介紹了分布式編程的5個(gè)基本原則,其中有一個(gè)原則就是:
 “使用Chunky接口,而不是chatty接口”
意思就是使用粗粒度接口,而不是使用細(xì)粒度接口。

使用細(xì)粒度接口,會(huì)產(chǎn)生更多的進(jìn)程間方法屬性的調(diào)用,速度會(huì)顯著降下來。而使用粗粒度接口,減少進(jìn)程間調(diào)用次數(shù),不把時(shí)間浪費(fèi)在連接調(diào)用進(jìn)程上,那速度會(huì)快很多。

如果要遵守這個(gè)原則來調(diào)用Excel的Automation,導(dǎo)出Excel時(shí),盡量減少調(diào)用Excel屬性的次數(shù),那可以通過數(shù)組賦值的方式來實(shí)現(xiàn)。通過傳遞復(fù)合數(shù)據(jù),來代替?zhèn)鬟f單個(gè)值。
數(shù)組、集合、結(jié)構(gòu)、對象等都是復(fù)合型數(shù)據(jù),最適合粗粒度數(shù)據(jù)傳遞,而這里導(dǎo)出Excel,唯一能用的復(fù)合型數(shù)據(jù)就是數(shù)組。

那如果要通過數(shù)組的方式寫Excel,該如何做?
其實(shí)很簡單,就是先將數(shù)據(jù)存儲(chǔ)到數(shù)組,然后再將整個(gè)數(shù)組一次性的寫入Excel里:

sh.Range(sh.Cells(a, b),sh.Cells(c,d)).value 數(shù)組

這里帖一個(gè)通過數(shù)組賦值方式來導(dǎo)出Excel的完整例子,
這個(gè)例子,除了使用數(shù)組賦值,還用到分頁處理,分頁處理可解決內(nèi)存使用過大導(dǎo)致速度變慢的問題,但必須每處理完一頁就立即回收內(nèi)存。代碼如下:

VBScript 文件

'快速導(dǎo)出,不支持合并單元格

'外面調(diào)用 vbExportExcelFast(tabId,sTitle,sHeader,arrStrs,hasInput) 就行了,
'它有五個(gè)參數(shù):
'tabId 是要導(dǎo)出的表格Id, 
'sTitle  是標(biāo)題,
'sHeader 是小標(biāo)題
'arrStrs 是需要設(shè)置數(shù)字為文本的列,對于一些很長的數(shù)字列,
'    比如身份證號(hào)等,Excel會(huì)采用科學(xué)計(jì)數(shù)法表示,所以需要轉(zhuǎn)換為字符,
'    有多列則用逗號(hào)分隔,注意這里的序號(hào)是從1開始的。
'hasInput 是否包含有編輯框,如果有文本框,則導(dǎo)出文本框的值 

vbExportExcelFast("DataGrid1","應(yīng)付結(jié)算明細(xì)表",getHeader(),"1,2",false)
isProgressErr false
pageCount 150  '每頁記錄數(shù)(一次粘貼一頁的數(shù)據(jù))。
public function vbExportExcelFast(tabId,sTitle,sHeader,arrStrs,hasInput)
  window.event.returnValue false
  tBegin Timer()
  set document.getElementByIdx(tabId).firstChild
  rows t.childNodes.length
  cols = t.childNodes(0).childNodes.length
  on error resume next '容錯(cuò)處理
  set oXL createObject("Excel.Application")
  if (err.number>0) then
    msgbox("請確認(rèn)已經(jīng)安裝了Excel并允許運(yùn)行Excel!")
    exit function
  end if
  oXL.Workbooks.Add
  set obook oXL.ActiveWorkBook
  set osheets obook.Worksheets
  set osheet obook.Sheets(1)
  xlrow 1
  
  '設(shè)置第二列為文本
  if(arrStrs<>"") then
    sStrs split(arrStrs,",")
    for i=0 to ubound(sStrs) 
      nStr CInt(sStrs(i))
      osheet.Range(osheet.Cells(xlrow, nStr),osheet.Cells(rows+xlrow,nStr)).Select
      oXL.Selection.NumberFormatLocal "@"
    next
  end if
  '  
  '添加標(biāo)題
  osheet.Cells(1, 1) sTitle
  osheet.Range(osheet.Cells(xlrow, 1),osheet.Cells(xlrow,cols)).Select
  oXL.Selection.HorizontalAlignment 3
  oXL.Selection.MergeCells true
  xlrow xlrow 1
  '添加小標(biāo)題
  if(sHeader <> "") then
    osheet.Cells(2, 1) sHeader
    osheet.Range(osheet.Cells(xlrow, 1),osheet.Cells(xlrow,cols)).Select

oXL.Selection.MergeCells true
    xlrow xlrow 1
  end if
  '進(jìn)度條
  winX (screen.width 300) 2
  winY (screen.height 120) 2
  set win window.open("","","directories=0,location=0,memubar=0,scrollbars=0,status=0,toolbar=0,width=230,height=75,left=" cstr(winX) ",top=" cstr(winY))
  sProcess vbmkProcessTxt(sTitle,rows)
  win.document.write(sProcess)
  set osx win.document.getElementByIdx("sx")
  set cells win.document.getElementByIdx("m_pub_wzs_progress_tab").rows(0).cells

  isProgressErr false
  pages (rows (rows mod pageCount)) pageCount
  if((rows mod pageCount) 0) then
    pages pages 1
  end if
  'dim scs()
  dim i
  for to pages-1
    call vbExportExcelPage(i,cols,rows,osx,cells,t,osheet,xlrow,hasInput)
    call CollectGarbage()
    xlrow xlrow pageCount '不能用pageCount,因?yàn)橛胁粷M頁的情況。
  next
  tEnd Timer()
  ix cint(tEnd-tBegin)
  if(not isProgressErr) then
    win.document.getElementByIdx("info").innerText "導(dǎo)出完畢,正在格式化... (" cstr(ix) "秒)"
  end if

  osheet.Range(osheet.Cells(1, 1),osheet.Cells(1,1)).Select '選擇第一個(gè)單元格列
  osheet.Columns.AutoFit
  for i=1 to xlrow
    osheet.Rows(i).RowHeight osheet.Rows(i).RowHeight 6  '自動(dòng)大小后上下無邊距,需要增加高度,要不太擠。
  next  
  if(not isProgressErr) then     '關(guān)閉進(jìn)度條
    win.close()
  end if
    
  oXL.Visible true
  oXL.UserControl true
  
  set oXL nothing
  set obook nothing
  set osheets nothing
  set osheet nothing
end function

public function vbExportExcelPage(i,cols,rows,osx,cells,t,osheet,xlrow,hasInput)
  dim scs()
  redim scs(pageCount-1,cols-1)
  for j=0 to pageCount-1
    iRow i*pageCount+j
    if(iRow >= rows) then
      exit for
    end if
    set tr t.childNodes(iRow)      
    if(not isProgressErr) then
      'on error resume next
      call vb_progress_show(osx,cells,rows,iRow+1)

if err.number then
        isProgressErr true
      end if
    end if
    for h=0 to cols-1
      set td tr.childNodes(h) 't.childNodes(iRow).cells(h)
      s ""
      if hasInput then
'        if( (h=colMileage) and (iRow>0) and (iRow<rows-1) )then
        if(td.hasChildNodes()) then
          if (lcase(td.firstChild.nodeName)="input") then
            if (lcase(td.firstChild.type)="text") then
              s td.firstChild.value 
        'elseif((h=colWay) and (iRow>0) and (iRow<rows-1)) then
            elseif (lcase(td.firstChild.type) "radio") then
              if (td.firstChild.checked) then
                s "1"
              else
                s "2"
              end if
            end if
          else
            s td.innerText
          end if
        else 
          s td.innerText
        end if
      else
        s td.innerText
      end if
      scs(j, h) s
    next
  next
  osheet.Range(osheet.Cells(xlrow, 1),osheet.Cells(xlrow+pageCount-1,cols)).value scs
  erase scs
    call CollectGarbage()
end function

public function vbmkProcessTxt(sTitle,rows)
  s "<html><title>" sTitle "導(dǎo)出Excel</title><body bgColor=white><div id='m_pub_wzs_progress_x' style='background:white;font-size:9pt;overflow:hidden;padding-top:0;position:absolute;left:10px;top:16px;'>{0}<table id='m_pub_wzs_progress_tab' border=0 cellspacing=1 bgcolor='#CCCCCC' style='border-width:1px;border-style:solid;border-left-color:#333333;border-top-color:#333333;border-right-color:#EEEEEE;border-bottom-color:#EEEEEE;'><tr height=17>"
  dim ss(19)
  dim i
  for i=0 to 19
    ss(i) "<td width=16 bgcolor='#CCCCCC'></td>"
  next
  s join(ss,"")
  skeydu "<img src='../../js/kedu.jpg'>"
  s replace(s,"{0}",skeydu)
  s "</tr></table><span id='m_pub_wzs_progress_percent' style='font-size:10pt;vertical-align:middle;color:black;font-family:宋體'>總計(jì)" cstr(rows) "行,已導(dǎo)出<font id='sx' color='#cc0000'></font>行!<br /><font id='info' color='#008800'></font></span></div><br /><br /><br /></body></html>"
  vbmkProcessTxt= s
end function
dim m_progressNum
m_progressNum 0
function vb_progress_show(osx,pCells,pTotalCount,pCurrCount)
  osx.innerText cstr(pCurrCount)
  m Int(pCurrCount pTotalCount 20)
  if(pTotalCount<=40) then
    dim i
    for i=0 to m-1
      pCells(i).bgColor="#000088"
    next
  else
    if((m<>m_progressNum) and (m>0)) then
      pCells(m-1).bgColor="#000088"
    end if
  end if
  m_progressNum m
end function

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB 讀取Excel表的內(nèi)容 |VB 網(wǎng)|VB 視頻教程|VB編程入門網(wǎng)
VB打開EXCEL的方法
excel數(shù)據(jù)導(dǎo)入VB Text控件中
VB.Net出口Excel原則
VB DataGrid 的導(dǎo)出或打印
vb調(diào)用excel方法大全(vb)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服