FastReport 自定義數據集


1、可以自定義一個新的數據源

  參考:

internal class VirtualDataSource : DataSourceBase
{
   private int FVirtualRowsCount;

   public int VirtualRowsCount
   {
     get { return FVirtualRowsCount; }
     set { FVirtualRowsCount = value; }
   }

   #region Protected Methods
   /// <inheritdoc/>
   protected override object GetValue(Column column)
   {
     return null;
   }
   #endregion

   #region Public Methods
   public override void InitSchema()
   {
    // do nothing
   }

   public override void LoadData(ArrayList rows)
   {
     rows.Clear();
     for (int i = 0; i < FVirtualRowsCount; i++)
     {
       rows.Add(0);
     }
   }
   #endregion
}

2、可以繼承 TableDataSource    修改 LoadData 方法。

 

3、想要可視化設計,必須繼承 DataConnectionBase 實現相應的方法。

public override string[] GetTableNames()

public override string QuoteIdentifier(string value, DbConnection connection)

public override Type GetConnectionType()

public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection,
  CommandParameterCollection parameters)

/// <inheritdoc/>
  public override ConnectionEditorBase GetEditor()
  {
    return new MsSqlConnectionEditor();
  }

  /// <inheritdoc/>
  public override Type GetParameterType()
  {
    return typeof(SqlDbType);
  }

  /// <inheritdoc/>
  public override int GetDefaultParameterType()
  {
    return (int)SqlDbType.VarChar;
  }

  /// <inheritdoc/>
  public override string GetConnectionId()
  {
    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConnectionString);
    string info = builder.InitialCatalog;
    if (String.IsNullOrEmpty(info))
      info = builder.AttachDBFilename;
    return "MS SQL: " + info;
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM