SWIFT

SWIFT 又称“环球同业银行金融电讯协会”,是国际银行同业间的国际合作组织,成立于一九七三年,目前全球大多数国家大多数银行已使用SWIFT系统。SWIFT的使用,使银行的结算提供了安全、可靠、快捷、标准化、自动化的通讯业务,从而大大提高了银行的结算速度。由于SWIFT的格式具有标准化,目前信用证的格式主要都是用SWIFT电文。

SWIFT(Society for Worldwide Interbank Financial Telecommunications—环球同业银行金融电讯协会),是一个国际银行间非盈利性的国际合作组织,总部设在比利时的布鲁塞尔,同时在荷兰阿姆斯特丹和美国纽约分别设立交换中心(Swifting Center),并为各参加国开设集线中心(National Concentration),为国际金融业务提供快捷、准确、优良的服务。SWIFT运营着世界级的金融电文网络,银行和其他金融机构通过它与同业交换电文(Message)来完成金融交易。除此之外,SWIFT还向金融机构销售软件和服务,其中大部分的用户都在使用SWIFT网络。

SWIFT组织成立于1973年5月,其全球计算机数据通讯网在荷兰和美国设有运行中心,在各会员国设有地区处理站,来自美国、加拿大和欧洲的15个国家的239家银行宣布正式成立SWIFT,其总部设在比利时的布鲁塞尔,它是为了解决各国金融通信不能适应国际间支付清算的快速增长而设立的非盈利性组织,负责设计、建立和管理SWIFT国际网络,以便在该组织成员间进行国际金融信息的传输和确定路由。

从1974年开始设计计算机网络系统。

1977年夏,完成了环球同业金融电信网络(SWIFT网络)系统的各项建设和开发工作,并正式投入运营。

1977年时SWIFT在全世界就拥有会员国150多个,会员银行5000多家,SWIFT系统日处理SWIFT电讯300万笔,高峰达330万笔。

到2007年6月为止,SWIFT的服务已经遍及207个国家,接入的金融机构超过8100家。台湾地区唯一的具有商业策略以及服务供应伙伴资格的是资通电脑Ares。

在国际贸易结算中,SWIFT信用证是正式的、合法的,被信用证各当事人所接受的、国际通用的信用证,信用证是指凡通过SWIFT系统开立或予以通知的信用证。采用SWIFT信用证必须遵守SWIFT的规定,也必须使用SWIFT手册规定的代号(Tag),而且信用证必须遵循国际商会2007年修订的《跟单信用证统一惯例》各项条款的规定。在SWIFT信用证可省去开证行的承诺条款(Undertaking Clause),但不因此免除银行所应承担的义务。SWIFT信用证的特点是快速、准确、简明、可靠。

该组织创立之后,其成员银行数逐年迅速增加。从1987年开始,非银行的金融机构,包括经纪人、投资公司、证券公司 和证券交易所等,开始使用 SWIFT。至2010年,该网络已遍布全球206个国家和地区的8,000多家金融机构,提供金融行业安全报文传输服务与相关接口软件,支援80多个国家和地区的实时支付清算系统。

1980年SWIFT联接到香港。我国的中国银行于1983年加入SWIFT,是SWIFT组织的第1034家成员行,并于1985年5月正式开通使用,成为我国与国际金融标准接轨的重要里程碑。之后,我国的各国有商业银行及上海和深圳的证券交易所,也先后加入SWIFT。

进入90年代后,除国有商业银行外,中国所有可以办理国际银行业务的外资和侨资银行以及地方性银行纷纷加入SWIFT。SWIFT的使用也从总行逐步扩展到分行。1995年,SWIFT在北京电报大楼和上海长话大楼设立了SWIFT访问点SAP(SWIFT Access Point),它们分别与新加坡和香港的SWIFT区域处理中心主节点连接,为用户提供自动路由选择。

为更好地为亚太地区用户服务,SWIFT于1994 年在香港设立了除美国和荷兰之外的第三个支持中心,这样,中国用户就可得到SWIFT支持中心讲中文的员工的技术服务。SWIFT还在全球17个地点设有办事处,其2000名的专业人员来自55个国家,其中北京办事处于1999年成立。

全世界金融数据传输、文件传输、直通处理STP(Straight Through Process)、撮合,清算和净额支付服务、操作信息服务、软件服务、认证技术服务、客户培训和24小时技术支持。

SWIFT自投入运行以来,以其高效、可靠、低廉和完善的服务,在促进世界贸易的发展,加速全球范围内的货币流通和国际金融结算,促进国际金融业务的现代化和规范化方面发挥了积极的作用。我国的中国银行、中国农业银行、中国工商银行、中国建设银行、交通银行、中信实业银行等已成为环球银行金融通信协会的会员。这也就是为什么PP只支持电汇这几家国内银行的原因。

SWIFT的设计能力是每天传输1100万条电文,而当前每日传送500万条电文,这些电文划拨的资金以万亿美元计,它依靠的便是其提供的240种以上电文标准。SWIFT的电文标准格式,已经成为国际银行间数据交换的标准语言。这里面用于区分各家银行的代码,就是SWIFT Code,依靠SWIFT Code便会将相应的款项准确的汇入指定的银行。

SWIFT Code是由该协会提出并被ISO通过的银行识别代码,其原名是BIC(Bank Identifier Code),但是BIC这个名字意思太泛,担心有人理解成别的银行识别代码系统,故渐渐大家约定俗成地把BIC叫作SWIFT Code了。SWIFT是(Society for Worldwide Interbank Financial Telecommunications)环球银行间金融通信协会是一个由金融机构共同拥有的私营股份公司,按比利时的法律登记注册,由会员银行和其他金融 机构协同管理。

SWIFT银行识别代码

每家申请加入SWIFT组织的银行都必须事先按照SWIFT组织的统一原则,制定出本行的SWIFT地址代码,经 SWIFT组织批准后正式生效。银行识别代码(Bank Identifier Code—BIC)是由电脑可以自动判读的八位或是十一位英文字母或阿拉伯数字组成,用于在SWIFT电文中明确区分金融交易中相关的不同金融机构。 凡该协会的成员银行都有自己特定的SWIFT代码,即SWIFT Code。在电汇时,汇出行按照收款行的SWIFT Code发送付款电文,就可将款项汇至收款行。该号相当于各个银行的身份证号。

十一位数字或字母的BIC可以拆分为银行代码、国家代码、地区代码和分行代码四部分。以中国银行北京分行为例,其银行识别代码为BKCHCNBJ300。其含义为:BKCH(银行代码)、CN(国家代码)、BJ(地区代码)、300(分行代码)。

(1)银行代码(Bank Code):由四位英文字母组成,每家银行只有一个银行代码,并由其自定,通常是该行的行名字头缩写,适用于其所有的分支机构。

(2)国家代码(Country Code):由两位英文字母组成,用以区分用户所在的国家和地理区域。

(3)地区代码(Location Code):由0、1以外的两位数字或两位字母组成,用以区分位于所在国家的地理位置,如时区、省、州、城市等。

(4)分行代码(Branch Code):由三位字母或数字组成,用来区分一个国家里某一分行、组织或部门。如果银行的BIC只有八位而无分行代码时,其初始值订为“XXX”。

同时,SWIFT还为没有加入SWIFT组织的银行,按照此规则编制一种在电文中代替输入其银行全称的代码。所有此类代码均在最后三位加上“BIC”三个字母,用来区别于正式SWIFT会员银行的SWIFT地址代码。

SWIFT Code的查询方法

要查询某家银行的SWIFT Code,推荐的方式是:

(1)直接去银行询问工作人员

(2)可以打电话咨询。

(3)通过SWIFT的官方网站查询:

①精确查找,进入网站后,如果你知道银行的SWIFT代码(BIC Code)或机构关键字(Institution Keyword),可以做快速查找它的信息;例如:中国银行的 关键字是Bank of China,输入就可以查询中国银行在全世界的分行的SWIFT Code,当然包括大陆各地的代码。从搜索结果可以看到,内地分行的开始8位全部是BKCHCNBJ,可以直接在BIC搜索下输入这8位,列出国内中国银 行各地分行的SWIFT Code。

②若不太清楚,那么就可进入另一个查询页面,进行详细的查找,点击下方的位置即可进入。

国内各银行总行的SWIFT代码

中国银行:BKCHCNBJ

工商银行:ICBKCNBJ

建设银行:PCBCCNBJ

农业银行:ABOCCNBJ

招商银行:CMBCCNBS

交通银行:COMMCN

中信银行:CIBKCNBJ

兴业银行:FJIBCNBA

民生银行:MSBCCNBJ

华夏银行:HXBKCN

浦发银行:SPDBCNSH

汇丰银行:HSBCCNSH

渣打银行:SCBLCNSX

花旗银行:CITICNSX

德意志银行:DEUTCNSH

瑞士银行:UBSWCNBJ

荷兰银行:ABNACNSH

香港汇丰:BLICHKHK

香港花旗:CITIHK

香港东亚银行:BEASCNSH

代码后需要统一添加分行阿拉伯数字代号。

AutoCAD 选择图元

‘本节介绍几个知识点,即建立过滤器、建立选择集、四种方式选择图元。

'打开并绑定文件 D:/Test.dwg
Dim I As Integer, J As Integer
Dim oAutoCAD As Object
Call BindAutoCAD(True)
Dim oDraw As Object
Set oDraw = oAutoCAD.Application.Documents.Open("D:/Test.dwg")

'申明选择集及集成员
Dim oSelset As Object, oItem As Object

'建立过滤器,目标是位于 0 层的红色的单行文字、直线、圆(半径为15)、样条曲线、多义线
Dim FilterType(13) As Integer
Dim FilterData(13) As Variant
FilterType(0) = -4
FilterData(0) = "<AND"
FilterType(1) = 8 'Layer
FilterData(1) = "0"
FilterType(2) = 62 'Color
FilterData(2) = 1 'Red
FilterType(3) = -4
FilterData(3) = "<OR"
FilterType(4) = 0 '图元
FilterData(4) = "text"
FilterType(5) = 0 '图元
FilterData(5) = "line"
FilterType(6) = -4
FilterData(6) = "<AND"
FilterType(7) = 0 '图元
FilterData(7) = "circle"
FilterType(8) = 40 '半径
FilterData(8) = 15
FilterType(9) = -4
FilterData(9) = "AND>"
FilterType(10) = 0 '图元
FilterData(10) = "spline"
FilterType(11) = 0 '图元
FilterData(11) = "Polyline"
FilterType(12) = -4
FilterData(12) = "OR>"
FilterType(13) = -4
FilterData(13) = "AND>"

'点选式选择图元,同时满足过滤器原则
Call AppActivate(oAutoCAD.Caption)
Set oSelset = oDraw.SelectionSets.Add(SelName(8))
oSelset.Select 5, , , FilterType, FilterData
'acSelectionSetWindow = 0;
'acSelectionSetCrossing = 1;
'acSelectionSetFence = 2;
'acSelectionSetPrevious = 3;
'acSelectionSetLast = 4;
'acSelectionSetAll = 5;
For I = 0 To oSelset.Count - 1
Debug.Print Replace(oSelset(I).ObjectName, "AcDb", "", 1, -1, vbTextCompare)
Next I
Debug.Print

'屏幕选择图元,同时满足过滤器原
Call AppActivate(oAutoCAD.Caption)
Set oSelset = oDraw.SelectionSets.Add(SelName(8))
oSelset.SelectOnScreen FilterType, FilterData
For I = 0 To oSelset.Count - 1
Debug.Print Replace(oSelset(I).ObjectName, "AcDb", "", 1, -1, vbTextCompare)
Next I
Debug.Print

'多边形选择图元,同时满足过滤器原则
Call AppActivate(oAutoCAD.Caption)
Set oSelset = oDraw.SelectionSets.Add(SelName(8))
Dim PointArray(0 To 11) As Double
PointArray(0) = 0
PointArray(1) = 0
PointArray(2) = 0
PointArray(3) = 77
PointArray(4) = 380
PointArray(5) = 0
PointArray(6) = 215
PointArray(7) = 425
PointArray(8) = 0
PointArray(9) = 466
PointArray(10) = 188
PointArray(11) = 0
oSelset.SelectByPolygon 2, PointArray, FilterType, FilterData
'acSelectionSetFence = 0
'acSelectionSetWindowPolygon = 1
'acSelectionSetCrossingPolygon = 2
For I = 0 To oSelset.Count - 1
Debug.Print Replace(oSelset(I).ObjectName, "AcDb", "", 1, -1, vbTextCompare)
Next I
Debug.Print

'通过某点选择图元,同时满足过滤器原则
Call AppActivate(oAutoCAD.Caption)
Set oSelset = oDraw.SelectionSets.Add(SelName(8))
Dim TempPoint(0 To 2) As Double
TempPoint(0) = 10
TempPoint(1) = 10
TempPoint(2) = 0
oSelset.SelectAtPoint TempPoint, FilterType, FilterData
For I = 0 To oSelset.Count - 1
Debug.Print Replace(oSelset(I).ObjectName, "AcDb", "", 1, -1, vbTextCompare)
Next I
Debug.Print

字符串函数系列之一

Public Function SelName(ByVal iNumber As Integer) As String ‘生成 iNumber 位数的字符串
Dim I As Integer, J As Integer
Dim ReservedArray As Variant
ReservedArray = Array(“MANUALLY”, “SUPPORT”, “OHTLLINE”, “ACAD”, “WCAD”)
ERR_AVOID:
SelName = “”
Randomize
For I = 1 To iNumber
SelName = SelName & Chr((64 + Int((26 * Rnd) + 1)))
Next I
If IsInArray(SelName, ReservedArray) Then GoTo ERR_AVOID
End Function

Public Function CountStr(ByVal bOverlapable As Boolean, ByVal sMom As String, ByVal sSon As String) As Integer ‘sSon 在 sMom 中出现的次数
CountStr = 0
Do While InStr(1, sMom, sSon, vbTextCompare) > 0
CountStr = CountStr + 1
If bOverlapable Then ‘允许重复计数,如 nnn 中含两个 nn
sMom = Right(sMom, Len(sMom) – InStr(1, sMom, sSon, vbTextCompare))
Else ‘不允许重复计数,如 nnn 中含一个 nn
sMom = Right(sMom, Len(sMom) – InStr(1, sMom, sSon, vbTextCompare) – (Len(sSon) – 1))
End If
Loop
End Function

Public Function ExtractDivide(ByVal sLetter As String, ByVal sData As String, ByVal iOrder As Integer) As String ‘读出由 sLetter 分割的第 IOrder 节子字符串
ExtractDivide = “”
If sData = “” Then Exit Function
If iOrder < 1 Then Exit Function If iOrder > CountStr(False, sData, sLetter) + 1 Then Exit Function
sData = Trim(sData)
Dim TempArray As Variant
TempArray = Split(sData, sLetter, -1, vbTextCompare)
ExtractDivide = TempArray(iOrder – 1)
ExtractDivide = Trim(ExtractDivide)
End Function

Public Function CutLeft(ByVal sOriginal As String, ByVal sCut As String) As String ‘去掉左侧字符 sCut 一次(如果有)
CutLeft = LTrim(sOriginal)
If InStr(1, sOriginal, sCut, vbTextCompare) = 1 Then CutLeft = Right(sOriginal, Len(sOriginal) – Len(sCut))
End Function

Public Function CutRight(ByVal sOriginal As String, ByVal sCut As String) As String ‘去掉右侧字符 sCut 一次(如果有)
CutRight = RTrim(sOriginal)
If CutRight = “” Then Exit Function
If InStrRev(sOriginal, sCut, -1, vbTextCompare) = Len(sOriginal) – Len(sCut) + 1 Then CutRight = Left(sOriginal, Len(sOriginal) – Len(sCut))
End Function

Public Function CutTerminal(ByVal sOriginal As String, ByVal sCut As String) As String ‘去掉两端字符 sCut 一次(如果有)
CutTerminal = Trim(sOriginal)
CutTerminal = CutLeft(CutTerminal, sCut)
CutTerminal = CutRight(CutTerminal, sCut)
End Function

Public Function PurgeLeft(ByVal sOriginal As String, ByVal sPurge As String) As String ‘去掉左侧字符 sPurge(所有)
sOriginal = LTrim(sOriginal)
If sPurge = vbCr Or sPurge = vbLf Or sPurge = vbCrLf Then
Do While Asc(Left(sOriginal, Len(sPurge))) = Asc(sPurge)
sOriginal = Right(sOriginal, Len(sOriginal) – Len(sPurge))
sOriginal = LTrim(sOriginal)
Loop
Else
Do While InStr(1, sOriginal, sPurge, vbTextCompare) = 1 And Len(sOriginal) – Len(sPurge) > -1
sOriginal = Right(sOriginal, Len(sOriginal) – Len(sPurge))
sOriginal = LTrim(sOriginal)
Loop
End If
PurgeLeft = sOriginal
End Function

Public Function PurgeRight(ByVal sOriginal As String, ByVal sPurge As String) As String ‘去掉右侧字符 sPurge(所有)
sOriginal = RTrim(sOriginal)
If sPurge = vbCr Or sPurge = vbLf Or sPurge = vbCrLf Then
Do While Asc(Right(sOriginal, Len(sPurge))) = Asc(sPurge)
sOriginal = Left(sOriginal, Len(sOriginal) – Len(sPurge))
sOriginal = RTrim(sOriginal)
Loop
Else
Do While InStrRev(sOriginal, sPurge, -1, vbTextCompare) = Len(sOriginal) – Len(sPurge) + 1 And Len(sOriginal) – Len(sPurge) > -1
sOriginal = Left(sOriginal, Len(sOriginal) – Len(sPurge))
sOriginal = RTrim(sOriginal)
Loop
End If
PurgeRight = sOriginal
End Function

Public Function PurgeTerminal(ByVal sOriginal As String, ByVal sPurge As String) As String ‘去掉两端字符 sPurge(所有)
sOriginal = PurgeLeft(sOriginal, sPurge)
sOriginal = PurgeRight(sOriginal, sPurge)
PurgeTerminal = sOriginal
End Function

Public Function GetAPIString(ByVal sAPI As String) As String ‘字符包装,用于处理 API 返回字符
On Error Resume Next
Dim iZeroPos As Integer
iZeroPos = InStr(sAPI, Chr$(0))
If iZeroPos > 0 Then
GetAPIString = Left$(sAPI, iZeroPos – 1)
Else
GetAPIString = sAPI
End If
On Error GoTo 0
End Function

数组函数系列之一

Public Function IsInArray(ByVal sData As String, ByVal vData As Variant) As Boolean ‘某字符串是否在某一维数组中
IsInArray = False
If Not IsArray(vData) Then Exit Function
If IsEmptyArray(vData) Then Exit Function
Dim I As Integer
For I = LBound(vData) To UBound(vData)
If sData = vData(I) Then IsInArray = True
Next I
End Function

Public Function IsEmptyArray(ByVal sArray As Variant) As Boolean ‘判断一维数组为空或者尚未初始化
‘类似 Dim TestArray(0 To 2) As String,一经申明,各元素即被赋 “” 值,IsEmptyArray 为 False;
‘类似 Dim TestArray() As String,虽经申明,仍为空数组,IsEmptyArray 为 True。
Dim I As Integer, J As Integer
On Error GoTo ERR_EMPTY
I = UBound(sArray) ‘试错
If LBound(sArray) > UBound(sArray) Then GoTo ERR_EMPTY
IsEmptyArray = False
On Error GoTo 0
Exit Function
ERR_EMPTY:
IsEmptyArray = True
On Error GoTo 0
End Function

Public Function IndexInArray(ByVal sData As String, ByVal vData As Variant) As Integer ‘某数值在某一维数组中的位次(以最小号为准, 不存在则为 -1)
Dim I As Integer, J As Integer
IndexInArray = -1
If Not IsArray(vData) Then Exit Function
If IsEmptyArray(vData) Then Exit Function
For I = LBound(vData) To UBound(vData)
If LCase(sData) = LCase(vData(I)) Then
IndexInArray = I
Exit For
End If
Next I
End Function

Public Sub CleanUpArray(vData As Variant) ‘剔除数组中的重复数据
If Not IsArray(vData) Then Exit Sub ‘数组判断
If IsEmptyArray(vData) Then Exit Sub
Dim LO, HI As Integer ‘上下界
LO = LBound(vData)
HI = UBound(vData)
Dim I, J, KCount As Integer
KCount = 0 ‘计数器
Dim DupeIndex() As String ‘重复数据的序号组成的数组,记后不记前
For I = HI To LO Step -1
For J = I – 1 To LO Step -1
If vData(I) = vData(J) Then
KCount = KCount + 1
ReDim Preserve DupeIndex(1 To KCount) As String
DupeIndex(KCount) = CStr(I)
Exit For
End If
Next J
Next I
If KCount > 0 Then ‘有重复
Dim iCount As Integer
iCount = LO – 1 ‘计数器
Dim TempArray() As String
For I = LO To HI
If Not IsInArray(CStr(I), DupeIndex()) Then ‘首次出现或未重复的数据
iCount = iCount + 1
ReDim Preserve TempArray(LO To iCount) As String
TempArray(iCount) = vData(I)
End If
Next I
ReDim vData(LO To iCount) ‘ As String ‘重新赋值并返回
For I = LO To iCount
vData(I) = TempArray(I)
Next I
Else
‘无重复,不处理
End If
Erase DupeIndex
End Sub

施华洛世奇

在奥地利西部蒂罗尔州, 有一个名叫瓦腾斯的小镇,这里地处偏僻的阿尔卑斯山下,常住居民不过数千人,每天却有成千上万的游客蜂拥而至。

在山麓间,远远便能看到一个造型奇特的阿尔卑斯山巨人,两只镶嵌了宝石的眼睛在阳光下闪闪夺目。这个巨人正是大名鼎鼎的奥地利水晶品牌施华洛世奇在1995年百年华诞之际,依山而建的“施华洛世奇水晶世界”。其总部和水晶世界博物馆也坐落于此。

作为全球首屈一指的水晶品牌,施华洛世奇2017年销售额达到42亿美元。目前在全球约170个国家开设了2680 间分店,员工人数超过2.6万人。历经五代,这家建立超过百年的古老而神秘的公司仍保持着家族经营方式,独揽与水晶切割有关的专利,把水晶制作工艺作为商业秘密代代相传。

如今,人们络绎不绝来到瓦腾斯小镇,为的不仅是一饱眼福参观名师之手设计而成的各种流光溢彩的水晶作品,更是来探寻这个家族背后隐藏的保存了一百多年的水晶秘密。

发明自动水晶切割机

在瓦腾斯小镇,你能看到最华贵的水晶墙、各式光怪陆离的玻璃和水晶艺术品和栩栩如生的水晶雕像。但如果想要到不远处的水晶工厂参观,工作人员则会礼貌地拒绝你。他们会告诉你,施华洛世奇水晶制作过程不向外人开放。

从创始人丹尼尔·施华洛世奇开始,水晶制作工艺的不断创新便成为这个品牌发展的不竭动力。

1862年,丹尼尔出生在前奥匈帝国版图内的波西米亚(今捷克境内),那里是世界玻璃和水晶手工制造的发源地。丹尼尔的父母曾在那里经营着一间水晶切割小作坊。从小他便跟随父亲学习宝石打磨,用于装饰胸针、发针、发梳等饰物。

1883年,丹尼尔接手家族生意,成立了一家珠宝公司,专营宝石切割打磨。彼时,西门子在1866年发明了世界上第一台直流电动机;爱迪生在1879年发明了电灯。这场电气革命给了丹尼尔灵感,他决心发明一台自动水晶切割机。

经过九年反复的实验,1892年,第一台可以完美切割水晶的自动切割机问世。与当时的手工技术相比,这台机器的切割速度更快,精准度更高,能将水晶巧妙地打磨出数十个切面,对光线有极好的折射能力。丹尼尔带领水晶制造业进入了一个新时代。

为了保证自己发明的技术和机器不被同行窃取,丹尼尔一方面对技术申请了专利;另一方面,丹尼尔背井离乡从波希米亚迁至奥地利,与魏斯、考斯曼两个合伙人建立起施华洛世奇公司,开始生产水晶。

丹尼尔把厂址选在阿尔卑斯山奥地利一侧的瓦腾斯。这里不仅有足够的水源带动水晶加工机器运转,也远离他们的竞争对手,可以避免别人偷取他们的技术和设计。此外,这里交通便利,方便抵达水晶制品需求量极大的时尚之都巴黎。

至此,丹尼尔一手打造的施华洛世奇水晶帝国雏形初现。

缔造水晶帝国

丹尼尔是一个有野心的人,面对水晶有限的存量,如何能够不断扩大自己的事业是个难题。善于创新的丹尼尔产生了制造人造水晶的念头。

1908年,丹尼尔和他的三个儿子开始试制人造水晶。他们花3年时间设计制作了融化炉。从1913年起,施华洛世奇开始大规模生产无瑕疵人造水晶石,这些水晶及宝石产品很快受到了市场的热烈追捧。

创新是施华洛世奇面对困境时绝处逢生的密钥。在一战期间,战乱频仍、经济动荡,面对缺少机械设备和原材料的窘境,施华洛世奇开始生产自己的水晶打磨工具。几年后,为响应市场需求,施华洛世奇又建立了自己的高档玻璃工厂。

20世纪20年代,欧美时尚界开始流行装饰着珍珠和水晶的裙装。丹尼尔从中看到了新商机。1931年,施华洛世奇发明了一种大受时尚界欢迎的饰带,上面缀满漂亮的碎水晶,可以直接缝在衣服或鞋子上。施华洛世奇的水晶由此成了抢手货,在香奈儿、GUCCI、迪奥等顶级时尚品牌以及电影公司和众多好莱坞明星之间左右逢源。

此后,施华洛世奇声名鹊起,公司的产品线不断地延伸到各行业:时装、鞋帽、手表、首饰等。他的长子威廉·施华洛世奇甚至将产品延伸至望远镜。而像纽约大都会剧院、巴黎凡尔赛宫这样的世界级殿堂的水晶吊灯都是来自施华洛世奇出品的“STRASS”。

1956年,为施华洛世奇贡献了一生的丹尼尔去世,但施华洛世奇的创新脚步并未停止。20世纪80年代,施华洛世奇首间专卖店开设,并以创新别致的首饰和仿水晶塑像风靡全球。其每年推出的限量版圣诞挂饰,亦会在全球收藏家中掀起一股新热潮。

目前,施华洛世奇在奥地利、印度、泰国、越南、塞尔维亚和美国都有生产基地,而中国则是其最大的市场。

奥地利的洛克菲勒

施华洛世奇家族的成功,一方面得益于创新,更离不开传承。

施华洛世奇一直采用家族经营模式。创始人丹尼尔去世后,他身后留下了一个庞大的家族。目前,施华洛世奇已经传了5代,家族的成员已超过150人。

虽然这家企业中的家族股东超过60位,但据穆迪的分析公司Bureau van Dijk数据分析显示,家族中的最大股东为掌控了家族事业35年的第四代传人葛诺·朗恩斯·施华洛世奇。根据彭博亿万富翁指数显示,葛诺控股的股份价值约13亿美元。

葛诺于2002年把接力棒传到了第5代成员的手中,如今家族中有28人在公司内从事高级管理工作,并由5人构成公司的最高决策和管理层。葛诺的儿子马可思·朗恩斯·施华洛世奇负责水晶业务。

近些年来,相比于其主要竞争对手,未能跟上电商趋势的施华洛世奇的业绩显得有些逊色。在接受彭博社采访时,负责集团公关、设计服务的娜佳·施华洛世奇表示,伴随着亚马逊和阿里巴巴等电商巨头的崛起,升级数字战略显得尤其重要,而首次公开募股(IPO)有助于集团在北美市场和数字渠道的扩张。不过,她也坦承,IPO目前对家族成员来说并非热门话题。

此外,这一被《福布斯》杂志誉为奥地利的“洛克菲勒”的家族,面对全球化带来的财富和声誉,现在更加注重于企业形象的维护。除了完善职工福利设施之外,还把大量资金投入环保节能、艺术文化上的项目。

2011年,施华洛世奇选用了天鹅作为公司的标识。在希腊、罗马、印度和德国的神话故事里,天鹅象征着纯洁、力量和神圣不可侵犯。如今,在第五代家族成员的带领下,这只优雅的“天鹅”正在靠着不断的传承和坚持大胆创新向远空飞翔。