而且Crystal Report8.5+ Vb6中文版打包时还报错,打包都不成功

解决方案 »

  1.   

    可以根据GetUserDefaultLCID来修改其字符集,具体的可以去查MSDN。
    例子如下:
        For Each Sect In theObject.Sections       'theObject为报表对象
            For Each RptObject In Sect.ReportObjects
                If RptObject.kind = 1 Then
                    If InStr(RptObject.field.Name, "_lng") > 0 And LCase(RetVarList("show_eng")) = "n" Then
                        Select Case GetUserDefaultLCID
                            Case &H404 ' 繁体中文
                                RptObject.Font.Charset = CHINESEBIG5_CHARSET
                                RptObject.Font.Name = ChrW(&H65B0) + ChrW(&H7D30) + ChrW(&H660E) _
                                                + ChrW(&H9AD4)   'New Ming-Li
                            Case &H411 ' 日语
                                RptObject.Font.Charset = SHIFTJIS_CHARSET
                                RptObject.Font.Name = ChrW(&HFF2D) + ChrW(&HFF33) + ChrW(&H20) + _
                                                ChrW(&HFF30) + ChrW(&H30B4) + ChrW(&H30B7) + ChrW(&H30C3) + _
                                                 ChrW(&H30AF)
                            Case &H412 '朝鲜 UserLCID
                                RptObject.Font.Charset = HANGEUL_CHARSET
                                RptObject.Font.Name = ChrW(&HAD74) + ChrW(&HB9BC)
                            Case &H804 ' 简体中文
                                RptObject.Font.Charset = CHINESESIMPLIFIED_CHARSET
                                RptObject.Font.Name = ChrW(&H5B8B) + ChrW(&H4F53)           '宋体
                            Case Else   ' 其他国家/地区
                                RptObject.Font.Charset = DEFAULT_CHARSET
                                RptObject.Font.Name = "Arial"   ' 获得缺省 UI 字体。
                        End Select
                    End If
                End If
            Next
            DoEvents
        Next