Delphi中用服務器組件解決WEB交叉報表問題(1)(2)
然後在TLB是添加ShowCrossReport方法,參數如下,其中:ConStr為數據庫的連接字符串,Command為SQL查詢語句,ReportFile是
Delphi中用服務器組件解決WEB交叉報表問題(1)(3)
最後,翻譯項目得到Dll文件,拷貝到服務器上並注冊。服務器組件就完成了。接著,來段演示代碼。先創建一個報表模板,並保存到服務器上,命名為rpt1.frf然後是
Delphi中用服務器組件解決WEB交叉報表問題(2)(2)
其它版本或其它導出控件可按此方法修改(導出Excel控件因使用OLE技術調用Excel組件,只能保存到磁盤文件),修改後的OnEndDoc函數如下:proce
領域驅動設計實踐——流水號生成器(上)(2)
再寫一個簡單的測試用例(Test Case):TTestNumbericSerialNumberGenerator1procedure TTestNumber
領域驅動設計實踐——流水號生成器(上)(3)
再運行,Test Case通過!第一個任務完成了。注意上面代碼中的repeated,當流水號到了結束值時,應遞進更高位。任務列表支持可循環的數字序列(001’
領域驅動設計實踐——流水號生成器(上)(4)
呵呵,到了高潮部分了,我們先寫一段測試案例來測試組合流水號:TTestCompositeSerialNumberGenerator1procedure TTe
領域驅動設計實踐——流水號生成器(上)(5)
我們來想想TSerialNumberGenerator的這兩個方法應該如何實現。我們只要運用組合模式(Composite Pattern),把serialNu
領域驅動設計實踐——流水號生成器(下)(2)
其中,代碼是固定不變的,流水號會自動遞增,日期一般是當前系統日期(固定格式,比如YYYYMM、YYYYMMDD),另外當日期變化時再重置流水號。寫到這裡,我們
領域驅動設計實踐——流水號生成器(下)(3)
我們來看看客戶是如何使用這個模型的:Code1 procedure TTestNumberRule.TestCompositeNumber;2 begin3
領域驅動設計實踐——流水號生成器(下)(4)
2. 生成編號Code1 function TNumberRule.GetNextNumber(const number: string): string;2
領域驅動設計實踐——流水號生成器(下)(5)
3. 業務應用為了實現具體的業務應用,我們還需要做兩件事:1. 編號規則的持久化(一般使用XML,暫省略)2. 編號的獲取和更新我們可以在業務層定義了下面兩個
Delphi類的入門例子(7): 遍歷窗體的所有父類(2)
//procedure TForm1.Button3Click(Sender: TObject);var MyClass: TClass;begin {對象的
Delphi語言學習1-Program和Unit(2)
4.Unit間接引用program Prog;uses Unit2;const a = b;//...unit Unit2;interfaceuses Uni
Delphi語言學習5-函數和方法(2)
3.函數聲明//先聲明後實現function Calculate(X, Y: Integer): Real; forward;function Calcula
Delphi語言學習8-類成員(字段和方法)(2)
3.函數重載type T1 = class(TObject) procedure Test(I: Integer); overload; virtua