Hello, It is working fine
Dim fieldDef As DatabaseFieldDefinition = ReportDoc.Database.Tables(crTable.Name).Fields(crField.Name)
getRasSorts = targetSortField.[GetType]().GetMethod("get_RasSorts", BindingFlags.NonPublic Or BindingFlags.Instance)
rasSorts = getRasSorts.Invoke(targetSortField, System.Type.EmptyTypes)
addSort = rasSorts.[GetType]().GetMethod("Add")
rasAssembly = getRasSorts.ReturnType.Assembly
ciRasSort = rasAssembly.[GetType]("CrystalDecisions.ReportAppServer.DataDefModel.SortClass").GetConstructor(BindingFlags.[Public] Or BindingFlags.Instance, Nothing, System.Type.EmptyTypes, Nothing)
rasSort = ciRasSort.Invoke(System.Type.EmptyTypes)
setSortField = rasSort.[GetType]().GetMethod("set_SortField", BindingFlags.[Public] Or BindingFlags.Instance)
Dim getRasField As MethodInfo = fieldDef.[GetType]().GetMethod("get_RasField", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim rasField As Object = getRasField.Invoke(fieldDef, System.Type.EmptyTypes)
addSort.Invoke(rasSorts, New Object() {rasSort})
setSortField.Invoke(rasSorts, New Object() {rasField})
Dim n As Integer = ReportDoc.DataDefinition.SortFields.Count - 1
targetSortField(n).Field = fieldDef
targetSortField(n).SortDirection = CrystalDecisions.[Shared].SortDirection.AscendingOrder