線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1379
推到 Plurk!
推到 Facebook!

請問該如何下【指定的兩各欄位數字若相同就不顯示】的條件限制

答題得分者是:P.D.
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-31 17:19:47 IP:60.248.xxx.xxx 訂閱
各位大大 你們好 小弟有各問題想請教
======================================
假設 欄位 A , B , C , D , E (A是主鍵)
如果 欄位B的數字 = 欄位E的數字
就不要顯示這行A...的資料
請問???部分該如何下條件呢??


[code delphi]
IF Fieldbyname('B').AsInteger = Fieldbyname('E').AsInteger
THEN BEGIN
???????

[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-31 22:21:58 IP:61.67.xxx.xxx 未訂閱
你的欄位是DBGRID 顯示方式, 還是 DBTEXT, DBEDIT .... ???
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-01 12:19:28 IP:60.248.xxx.xxx 訂閱

===================引 用 P.D. 文 章===================
你的欄位是DBGRID 顯示方式, 還是 DBTEXT, DBEDIT .... ???


抱歉 忘記備註

我是用StringGrid 顯示的
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-02 11:43:04 IP:61.67.xxx.xxx 未訂閱
你說你是用StringGrid 來顯示, StringGrid 不是資料感知元件, 那你前文所po上的是
if FieldByName('B').... 這是引用Table 的資料, 這樣我想瞭解, 你是如何把Table的資料
丟到StringGrid上的, 可否Po上這段碼看看?
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-02 15:07:45 IP:60.248.xxx.xxx 訂閱
如下

那我希望說 如果 入庫數量 = 測試數量

該行就不要秀出來

[code delphi]

//入庫
begin
with csTempWOg do
begin
Close;
Params.Clear;
w7 := 'SELECT B.WORK_ORDER "工單",C.PART_NO "機種名稱",B.TARGET_QTY "批量",B.INPUT_QTY "已投入",B.WO_START_DATE "投產時間", '
'COUNT(DISTINCT A.SERIAL_NUMBER) "入庫數量" '
'FROM SAJET.G_SN_STATUS A, '
'SAJET.G_WO_BASE B, '
'SAJET.SYS_PART C, '
'(SELECT COUNT (DISTINCT d.serial_number) cnt, work_order '
' FROM sajet.g_sn_status d '
' WHERE d.wip_process = ''0'' '
' AND d.next_process = ''0'' '
' AND d.in_process_time IS NOT NULL '
' GROUP BY work_order) E '
'WHERE A.WORK_ORDER = B.WORK_ORDER '
'AND B.WORK_ORDER = E.WORK_ORDER '
'AND B.MODEL_ID = C.PART_ID '
'AND A.STAGE_ID <> ''100015'' '
'AND A.WIP_PROCESS = ''0'' '
'AND A.NEXT_PROCESS = ''0'' '
'AND A.IN_PROCESS_TIME IS NOT NULL '
'AND B.WORK_ORDER NOT IN (''51A00001'',''99A00005'') '
'AND B.WO_STATUS NOT IN (''1'',''2'',''4'',''5'',''6'') '
'AND B.INPUT_QTY <> CNT '
'GROUP BY B.WORK_ORDER,C.PART_NO,B.TARGET_QTY,B.INPUT_QTY,B.WO_START_DATE '
'ORDER BY B.WO_START_DATE DESC ';
commandtext := w7;
open;
while not eof do
//跑迴圈
BEGIN
t:=0;
FOR u:=1 to StringGrid5.RowCount-1 do
begin
With StringGrid5 do
//如果工單=組裝工單就填入入庫
IF Cells[1,u] = Fieldbyname('工單').AsString
then begin
// With StringGrid1 do
Cells[12,u] := Fieldbyname('入庫數量').AsString;
t:=1;
end;
end;
//如果不等於組裝工單就往下填
if t=0 then begin
With StringGrid5 do
begin
RowCount := RowCount 1;
Cells[1,RowCount-1] := Fieldbyname('工單').AsString;
Cells[2,RowCount-1] := Fieldbyname('機種名稱').AsString;
Cells[3,RowCount-1] := Fieldbyname('批量').AsString;
Cells[4,RowCount-1] := Fieldbyname('投產時間').AsString;
Cells[5,RowCount-1] := Fieldbyname('已投入').AsString;
Cells[12,RowCount-1] := Fieldbyname('入庫數量').AsString;
END;
END;
NEXT;
end;
if StringGrid5.Cells[1,StringGrid5.rowcount-1] = '' then
StringGrid5.RowCount:= StringGrid5.RowCount-1;
cLOSE;
END;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-04-02 15:08:17, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-04-02 18:14:32 IP:61.67.xxx.xxx 未訂閱
我想你要的功能, 非常類似之前另一位的需求
建議你建立同等大小的二維陣列, 將判斷出來不顯示的CELL值(C.R) 就等於陣列的 (X,Y)值記錄字型顏色(例如CLWHITE或CLBLACK)
然後再ONDRAW 重繪時取出指定給 CANVAS() 應可達到你要的功能
請參考
http://delphi.ktop.com.tw/board.php?cid=30&fid=1498&tid=92742
系統時間:2024-05-04 11:22:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!