/// 用 rptTableId(從1開始) 取得「回報表單格式」, 回報表單可能會有相同名稱. /// - cfg 必須是在 FnOnConfig_ 事件裡面提供的那個; /// - 這裡取得的 layout 將在下次 FnOnConfig_ 事件之後銷毀. /// - 可自行設定 retval->IdxUserFields_[], 不可更改 retval 的其他 members; public static unsafe Layout *GetReportLayout(ref f9rc.ClientSession ses, ref ClientConfig cfg, uint rptTableId) => GetReportLayout(ref *ses.RcSes_, ref cfg, rptTableId);
// ------------------------------------------------------------------ /// 訂閱回報, ses 與 cfg 必須是 FnOnConfig_ 事件通知時提供的 ref. public static unsafe void SubscribeReport(f9rc.ClientSession ses, ref ClientConfig cfg, SNO from, RptFilter filter) => SubscribeReport(ref *ses.RcSes_, ref cfg, from, filter);
/// 用指定名稱取得「下單表單格式」. /// - cfg 必須是在 FnOnConfig_ 事件裡面提供的那個; /// - 這裡取得的 layout 將在下次 FnOnConfig_ 事件之後銷毀. /// - 建議您在處理 FnOnConfig_ 事件時, 取得需要的 request layout. /// - 可自行設定 retval->IdxUserFields_[], 不可更改 retval 的其他 members; /// - 您也可以透過 cfg->RequestLayoutArray_[] 循序搜尋 layout. public static unsafe Layout *GetRequestLayout(f9rc.ClientSession ses, ref ClientConfig cfg, string reqName) => GetRequestLayout(ref *ses.RcSes_, ref cfg, reqName);
// C# 不提供此功能, 請自行組裝好傳送字串後呼叫: SendRequestString(); // /// 傳送下單要求: 已填妥下單欄位字串陣列: reqFieldArray[0 .. reqLayout->FieldCount_); // /// \retval 1=true 下單要求已送出. // /// \retval 0=false 無法下單: 沒有呼叫過 f9OmsRc_Initialize(); // /// 或建立 ses 時, 沒有提供 f9OmsRc_ClientSessionParams 參數. // [DllImport(fon9.DotNetApi.kDllName, EntryPoint = "f9OmsRc_SendRequestFields", CharSet = CharSet.Ansi)] // unsafe static extern int f9OmsRc_SendRequestFields(ref f9rc.RcClientSession ses, ref Layout reqLayout, fon9.CStrView* reqFieldArray); /// 傳送下單要求之前, 可以自行檢查流量. /// 傳回需要等候的 microseconds. 傳回 0 表示不需管制. public static unsafe uint CheckFcRequest(f9rc.ClientSession ses) => CheckFcRequest(ref *ses.RcSes_);
public static unsafe int SendRequestString(f9rc.ClientSession ses, ref Layout reqLayout, fon9.CStrView reqStr) => SendRequestString(ref *ses.RcSes_, ref reqLayout, reqStr);
public static unsafe int SendRequestString(f9rc.ClientSession ses, ref Layout reqLayout, byte[] reqBytes) => SendRequestString(ref *ses.RcSes_, ref reqLayout, reqBytes);
unsafe static public ResultCode Unsubscribe(f9rc.ClientSession ses, ref SeedName seedName, ReportHandler unregHandler) => Unsubscribe(ses.RcSes_, ref seedName, unregHandler);
unsafe public static ResultCode Query(f9rc.ClientSession ses, ref SeedName seedName, ReportHandler handler) => Query(ses.RcSes_, ref seedName, handler);