請教一個報表資料排序(Sorting)的問題 |
尚未結案
|
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
我的一支報表程式...做法是:先去相關Table Select需要的欄位資料出來
然後再一筆一筆塞到 為報表開的 TempTable裡,然後以Crystal Report呈現該支報表 而我在程式中有一個Combobox是可以選擇3種不同的排序方式 試問我該如何做到Sorting呢? 因為Select出來的data排序後 再insert into並不會依據Sorting後的結果來insert... 而Crystal Report有提供排序資料的功能,但我就必須製作三張報表
然後依據user的選擇去call不同的報表 請問我能否在只寫一張報表的情況下,由delphi中控制開啟報表前的排序呢? 謝謝!
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
SQL> ED 已將 檔案 afiedt.buf 寫入 1 SELECT A.*, 2 ROWNUM 3 FROM (select empno, 4 ename 5 from emp1 6* order by ename) A SQL> / EMPNO ENAME ROWNUM ---------- ---------- ---------- 7876 ADAMS 1 7499 ALLEN 2 7698 BLAKE 3 7782 CLARK 4 7902 FORD 5 7900 JAMES 6 7566 JONES 7 7839 KING 8 7654 MARTIN 9 7934 MILLER 10 7788 SCOTT 11 EMPNO ENAME ROWNUM ---------- ---------- ---------- 7369 SMITH 12 7844 TURNER 13 7521 WARD 14 選取了 14 列 SQL>----------------------------------------------- 上述order by 依您Combobox所選排序, 此語法已幫您取出一流水號欄位, 接下來就是將此結果insert into TEMP TABLE了. |
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
若是利用DBGRID的作法產生流水號,可參考以下方式,
再作一按鈕事件從table1第一筆,INSERT INTO TEMP TABLE
-------------------------------------------------------
table1-->Active(False)
table1元件右鍵Field Editor..再右鍵new field...
Name-->Rec,Type-->Integer,Field type-->Calculated.
table1-->Active(True)
DBGrid1元件右鍵Field Editor..再右鍵Add all fields,
將Rec調整至最前面。
table1的onCalcFields之Events--> procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
if Form1.Table1.State = dsInsert then // 動態產生流水號
Form1.Table1Rec.Value := Form1.Table1.RecordCount 1
else
form1.Table1Rec.Value := Form1.Table1.RecNo;
end;
|
kjwang
一般會員 發表:11 回覆:8 積分:3 註冊:2005-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |