/// <summary> /// 获取表格数据 /// </summary> /// <param name="grid">表格</param> /// <returns>流</returns> public byte[] GetBytes(GridA grid) { Binary br = new Binary(); br.WriteString(grid.Name); List <GridColumn> columns = grid.GetColumns(); int columnsSize = columns.Count; br.WriteInt(columnsSize); for (int i = 0; i < columnsSize; i++) { GridColumn column = columns[i]; br.WriteString(column.Name); br.WriteString(column.ColumnType); } List <GridRow> rows = grid.GetRows(); int rowsCount = rows.Count; br.WriteInt(rowsCount); for (int i = 0; i < rowsCount; i++) { GridRow row = rows[i]; for (int j = 0; j < columnsSize; j++) { GridColumn column = columns[j]; String columnType = column.ColumnType.ToLower(); GridCell cell = row.GetCell(j); if (columnType == "bool") { br.WriteBool(cell.GetBool()); } else if (columnType == "double") { br.WriteDouble(cell.GetDouble()); } else if (columnType == "float") { br.WriteFloat(cell.GetFloat()); } else if (columnType == "int") { br.WriteInt(cell.GetInt()); } else if (columnType == "long") { br.WriteDouble(cell.GetLong()); } else if (columnType == "string") { br.WriteString(cell.GetString()); } } } byte[] bytes = br.GetBytes(); br.Close(); return(bytes); }
/// <summary> /// 发送请求 /// </summary> /// <param name="functionID"></param> /// <param name="requestID"></param> /// <param name="socketID"></param> /// <param name="dataInfo"></param> /// <returns></returns> public int Send(int functionID, int requestID, int socketID, HistoryDataInfo dataInfo) { Binary binary = new Binary(); binary.WriteString(dataInfo.m_securityCode); binary.WriteChar((char)dataInfo.m_type); binary.WriteInt(dataInfo.m_size); binary.WriteInt(dataInfo.m_cycle); binary.WriteInt(dataInfo.m_subscription); binary.WriteDouble(dataInfo.m_startDate); binary.WriteDouble(dataInfo.m_endDate); binary.WriteBool(dataInfo.m_pushData); byte[] bytes = binary.GetBytes(); int num = this.Send(new CMessage(base.GroupID, base.ServiceID, functionID, base.SessionID, requestID, socketID, 0, base.CompressType, bytes.Length, bytes)); binary.Close(); return(num); }