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

請問 QRLabel2 在無資料可秀之下,搬空白值為何還會秀出QRLabel2 ?

答題得分者是:P.D.
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-31 21:43:06 IP:220.131.xxx.xxx 訂閱
請問 各位先進 QRLabel2 在條件判斷無資料可秀,搬空白值之後為何還是秀出 元件名稱:QRLabel2
因為小弟新手學習報表輸出,碰到這樣問題,請教線上先進前輩教導如何處理讓QRLabel2不要秀出。

註:已經把 Caption 清為空白了,還是無效。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-31 22:05:42 IP:59.116.xxx.xxx 訂閱
1.把 QRLabel2 砍掉 換一各新的QRLabel 試試看.
2.如果還是不行,請貼上你的Code
TRY TRY SEE

===================引 用 K1086 文 章===================
請問 各位先進 QRLabel2 在條件判斷無資料可秀,搬空白值之後為何還是秀出 元件名稱:QRLabel2?
因為小弟新手學習報表輸出,碰到這樣問題,請教線上先進前輩教導如何處理讓QRLabel2不要秀出。

?註:已經把 Caption 清為空白了,還是無效。
P.D.
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-31 23:09:47 IP:61.67.xxx.xxx 未訂閱
你確定你的QRLABLE2的判斷式有被執行到嗎? 
驗證方法,在你的判斷式上改用一個字串取代CAPTION,看看符合條件時是否有印出你指定的字串,
我懷疑程式根本沒有執行判斷式,這是設計上常發生的事
編輯記錄
P.D. 重新編輯於 2007-05-31 23:12:13, 註解 無‧
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-01 10:17:50 IP:220.131.xxx.xxx 訂閱
<textarea class="delphi" rows="10" cols="60" name="code"> ju1:= length(S) div 2; setlength(VSno,ju1); for i:=1 to ju1 do begin VSno[i-1]:= copy(S,i*2-1,2); end; Lab_A0.Caption:= ' '; Lab_A1.Caption:= ' '; Lab_A2.Caption:= ' '; Lab_A3.Caption:= ' '; Lab_A4.Caption:= ' '; Lab_A5.Caption:= ' '; Lab_A6.Caption:= ' '; Lab_A7.Caption:= ' '; Lab_A8.Caption:= ' '; Lab_A9.Caption:= ' '; K1:=0; for i:=1 to ju1 do begin IF vak[1]=0 THEN K1:= StrToIntDef(VSno[i-1],1); IF vak[1]<>0 THEN K1:= StrToIntDef(VSno[i-1],0); for M1:= 0 to length(vak)-1 do if(k1 mod 10) = vak[M1] Then begin if vak[M1] = 1 then Lab_A1.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A1.Caption:=Lab_A1.Caption; if vak[M1] <> 1 then Twn_Anly_RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白 if vak[M1] = 2 then Lab_A2.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A2.Caption:=Lab_A2.Caption; if vak[M1] = 3 then Lab_A3.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A3.Caption:=Lab_A3.Caption; if vak[M1] = 4 then Lab_A4.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A4.Caption:=Lab_A4.Caption; if vak[M1] = 5 then Lab_A5.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A5.Caption:=Lab_A5.Caption; if vak[M1] = 6 then Lab_A6.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A6.Caption:=Lab_A6.Caption; if vak[M1] = 7 then Lab_A7.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A7.Caption:=Lab_A7.Caption; if vak[M1] = 8 then Lab_A8.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A8.Caption:=Lab_A8.Caption; if vak[M1] = 9 then Lab_A9.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A9.Caption:=Lab_A9.Caption; if vak[M1] = 0 then Lab_A0.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A0.Caption:=Lab_A0.Caption; end; end;</textarea><br /> 上傳片段程式 請教先進...
if vak[M1] <> 1 then
Twn_Anly_RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白
=====>就是不會空白還是秀出 QRLab_A1 是那裡錯了
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-01 10:23:34 IP:220.131.xxx.xxx 訂閱
<textarea class="delphi" rows="10" cols="60" name="code"> ju1:= length(S) div 2; setlength(VSno,ju1); for i:=1 to ju1 do begin VSno[i-1]:= copy(S,i*2-1,2); end; Lab_A0.Caption:= ' '; Lab_A1.Caption:= ' '; Lab_A2.Caption:= ' '; Lab_A3.Caption:= ' '; Lab_A4.Caption:= ' '; Lab_A5.Caption:= ' '; Lab_A6.Caption:= ' '; Lab_A7.Caption:= ' '; Lab_A8.Caption:= ' '; Lab_A9.Caption:= ' '; K1:=0; for i:=1 to ju1 do begin IF vak[1]=0 THEN K1:= StrToIntDef(VSno[i-1],1); IF vak[1]<>0 THEN K1:= StrToIntDef(VSno[i-1],0); for M1:= 0 to length(vak)-1 do if(k1 mod 10) = vak[M1] Then begin if vak[M1] = 1 then Lab_A1.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A1.Caption:=Lab_A1.Caption; if vak[M1] <> 1 then Twn_Anly_49RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白 if vak[M1] = 2 then Lab_A2.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A2.Caption:=Lab_A2.Caption; if vak[M1] = 3 then Lab_A3.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A3.Caption:=Lab_A3.Caption; if vak[M1] = 4 then Lab_A4.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A4.Caption:=Lab_A4.Caption; if vak[M1] = 5 then Lab_A5.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A5.Caption:=Lab_A5.Caption; if vak[M1] = 6 then Lab_A6.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A6.Caption:=Lab_A6.Caption; if vak[M1] = 7 then Lab_A7.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A7.Caption:=Lab_A7.Caption; if vak[M1] = 8 then Lab_A8.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A8.Caption:=Lab_A8.Caption; if vak[M1] = 9 then Lab_A9.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A9.Caption:=Lab_A9.Caption; if vak[M1] = 0 then Lab_A0.Caption:= FormatFloat('00',K1); Twn_Anly_49RptFm1.QRLab_A0.Caption:=Lab_A0.Caption; end; end; </textarea><br />
這個片段程式是正確的 請教先進那裡錯了
if vak[M1] <> 1 then
Twn_Anly_49RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白
======>>不等於時 因該是 不會秀出QRLab_A1 但還是秀出..

chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-01 14:37:37 IP:203.73.xxx.xxx 訂閱
.
.
for i:=1 to ju1 do begin
IF vak[1]=0 THEN
K1:= StrToIntDef(VSno[i-1],1);
IF vak[1]<>0 THEN
K1:= StrToIntDef(VSno[i-1],0);
for M1:= 0 to length(vak)-1 do
if(k1 mod 10) = vak[M1] Then
begin
if vak[M1] = 1 then
begin
Lab_A1.Caption:= FormatFloat('00',K1);
Twn_Anly_49RptFm1.QRLab_A1.Caption:=Lab_A1.Caption;
end
//if vak[M1] <> 1 then
else
Twn_Anly_RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白
if vak[M1] = 2 then
Lab_A2.Caption:= FormatFloat('00',K1);
Twn_Anly_49RptFm1.QRLab_A2.Caption:=Lab_A2.Caption;
...
紅色及藍色的修正,試試看^^
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-02 11:05:14 IP:220.131.xxx.xxx 訂閱

===================引 用 chih 文 章===================
.
.
for i:=1 to ju1 do? begin
IF vak[1]=0? THEN
K1:= StrToIntDef(VSno[i-1],1);
IF vak[1]<>0 THEN
K1:= StrToIntDef(VSno[i-1],0);
for M1:= 0 to length(vak)-1 do
if(k1 mod 10) = vak[M1] Then
begin===========================>>為何這行那掉 就OK了,但會出現警告訊息,程式還是可以執行
if vak[M1] = 1 then
begin---------------------------->>>無效
Lab_A1.Caption:= FormatFloat('00',K1);
Twn_Anly_49RptFm1.QRLab_A1.Caption:=Lab_A1.Caption;
end------------------------------>>>無效
//if vak[M1] <> 1 then
else----------------------------->>>無效

Twn_Anly_RptFm1.QRLab_A1.Caption:=' ';//若不等於1則搬空白
if vak[M1] = 2 then
Lab_A2.Caption:= FormatFloat('00',K1);
Twn_Anly_49RptFm1.QRLab_A2.Caption:=Lab_A2.Caption;
...
紅色及藍色的修正,試試看^^
=======>謝謝 chih 指導 你說加入藍色判斷還是無效,照樣不等於時,還是秀出元件名稱
begin===========================>>為何這行那掉 就OK了,但會出現警告訊息,程式還是可以執行
是否那段語法錯了??
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-03 00:36:41 IP:211.22.xxx.xxx 未訂閱
K1086兄:
你沒發現所寫的if條件句有問題嗎?
當if條件句成立時,有多項敘述要執行必須以begin..end包起來,
chih 版大提醒你前一段了,你不會後面的都沒改吧?!
還是Delphi的基本句法還沒學
到這裡?
K1086
初階會員


發表:63
回覆:148
積分:42
註冊:2007-04-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-06-03 12:09:50 IP:220.131.xxx.xxx 訂閱

===================引 用 P.D. 文 章===================
你確定你的QRLABLE2的判斷式有被執行到嗎??
驗證方法,在你的判斷式上改用一個字串取代CAPTION,看看符合條件時是否有印出你指定的字串,
我懷疑程式根本沒有執行判斷式,這是設計上常發生的事

=======>>>謝謝 PD 版主 您的提示,真的是程式根本沒有執行判斷,小弟已經抓到問題了,薑果然是老的辣,(意思不是指您很老啦!所意是您 Delphi 資格夠老夠深啦!) 同時也謝謝各位認真幫小弟找問題,多謝了
系統時間:2024-05-02 17:29:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!