全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1433
推到 Plurk!
推到 Facebook!

自動編號

答題得分者是:tech_state
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-12 15:17:29 IP:218.165.xxx.xxx 未訂閱
void __fastcall TDataModule1::ClientMaintTableNewRecord(TDataSet *DataSet) { String client_no,c1,c2,client_id,j; Integer i,leg; //AutoID這個Query元件來做自動編號 AutoID->Close(); AutoID->SQL->Clear(); //將要自動編號的值由大到小做排序動作 方便等一下取最大值,在讀取速度上較快} AutoID->SQL->Add("select * from clientmaint order by CLIENTID desc"); AutoID->Open(); //判斷如果資料庫是空的 就給起始號 if (AutoID->IsEmpty()) //then { client_no ="A00000"; } else { //{如果不是IsEmpty就將指標移到第一筆抓目前編號為最大值的客戶編號} AutoID->First(); client_no = AutoID->FieldByName("CLIENTID")->AsString; } //{開始對client_no做字串拆解及累加的動作} c1 = copy("client_no, 1, 1"); //{取出編號第一值} c2 = copy(client_no, 2, 6); //{取出後面六位數流水號} c2 = IntToStr(StrToInt(c2) 1); //{先將c2轉為數字加一筆後再轉回字串} leg = Length(client_no) - Length(c2); //{算出要補0的位數} for i = 1 to leg - 1 do { j = j '0'; {將0補上} } //將所有值相加 client_id = c1 j c2; //相加後 即可得到加一之後最新的客戶編號 BossMaint->FieldByName('CLIENTID')->AsString = client_id; //寫入建檔日期 fdBossMaint->wwDBDateTimePicker2->Field->value = Now; } } 請問我那錯了>_
------
溝通網路情、連接數位心
chih
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-12 16:55:22 IP:211.74.xxx.xxx 未訂閱
c1 = copy("client_no, 1, 1"); //{取出編號第一值} c1 = copy(client_no, 1, 1); //{取出編號第一值} c2 = copy(client_no, 2, 6); //{取出後面六位數流水號} c2 = IntToStr(StrToInt(c2) 1); //{先將c2轉為數字加一筆後再轉回字串} leg = Length(client_no) - Length(c2); //{算出要補0的位數} for i = 1 to leg - 1 do { j = j '0'; {將0補上} } //將所有值相加 client_id = c1 j c2; //相加後 即可得到加一之後最新的客戶編號 BossMaint.Edit//{給值要在inser或Edit狀態} BossMaint->FieldByName('CLIENTID')->AsString = client_id; //寫入建檔日期 fdBossMaint->wwDBDateTimePicker2->Field->value = Now; } } TRY TRY SEE 發表人 - chih 於 2003/05/12 16:56:30
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-12 17:17:27 IP:218.165.xxx.xxx 未訂閱
[C Error] DataModule1_a.cpp(61): E2268 Call to undefined function 'copy' [C Error] DataModule1_a.cpp(64): E2268 Call to undefined function 'Length' [C Error] DataModule1_a.cpp(66): E2376 For statement missing ( [C Error] DataModule1_a.cpp(72): E2451 Undefined symbol 'BossMaint' [C Error] DataModule1_a.cpp(76): E2451 Undefined symbol 'fdBossMaint' [C Warning] DataModule1_a.cpp(77): W8004 'leg' is assigned a value that is never used [C Error] DataModule1_a.cpp(78): E2190 Unexpected } ====================== 這些是錯誤訊息!!! 暗光鳥初手求學中!
------
溝通網路情、連接數位心
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-12 18:37:48 IP:61.221.xxx.xxx 未訂閱
引言: void __fastcall TDataModule1::ClientMaintTableNewRecord(TDataSet *DataSet) { String client_no,c1,c2,client_id,j; Integer i,leg; //AutoID這個Query元件來做自動編號 AutoID->Close(); AutoID->SQL->Clear(); //將要自動編號的值由大到小做排序動作 方便等一下取最大值,在讀取速度上較快} AutoID->SQL->Add("select * from clientmaint order by CLIENTID desc"); AutoID->Open(); //判斷如果資料庫是空的 就給起始號 if (AutoID->IsEmpty()) //then { client_no ="A00000"; } else { //{如果不是IsEmpty就將指標移到第一筆抓目前編號為最大值的客戶編號} AutoID->First(); client_no = AutoID->FieldByName("CLIENTID")->AsString; } //{開始對client_no做字串拆解及累加的動作} c1 = copy("client_no, 1, 1"); //{取出編號第一值} c2 = copy(client_no, 2, 6); //{取出後面六位數流水號} c2 = IntToStr(StrToInt(c2) 1); //{先將c2轉為數字加一筆後再轉回字串} leg = Length(client_no) - Length(c2); //{算出要補0的位數} for i = 1 to leg - 1 do { j = j '0'; {將0補上} } //將所有值相加 client_id = c1 j c2; //相加後 即可得到加一之後最新的客戶編號 BossMaint->FieldByName('CLIENTID')->AsString = client_id; //寫入建檔日期 fdBossMaint->wwDBDateTimePicker2->Field->value = Now; } } 請問我那錯了>_ game, 您好 將上列紅色部分修改為 c1 = client_no.SubString(1, 1); //{取出編號第一值} c2 = client_no.SubString(2, 6); //{取出後面六位數流水號} leg = client_no.Length() - c2.Length(); //{算出要補0的位數} 試試看 ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 發表人 - tech_state 於 2003/05/12 18:45:49
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-12 19:06:58 IP:218.165.xxx.xxx 未訂閱
不行! 發表人 - game 於 2003/05/12 19:10:33
------
溝通網路情、連接數位心
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-12 19:07:20 IP:218.165.xxx.xxx 未訂閱
這是出現的錯誤!    [C Error] DataModule1_a.cpp(70): E2376 For statement missing ( [C Warning] DataModule1_a.cpp(81): W8004 'leg' is assigned a value that is never used [C Error] DataModule1_a.cpp(82): E2190 Unexpected } ============================================================== void __fastcall TDataModule1::ClientMaintTableNewRecord(TDataSet *DataSet) { String client_no,c1,c2,client_id,j; Integer i,leg; AutoID->Close(); AutoID->SQL->Clear(); AutoID->SQL->Add("select * from clientmaint order by CLIENTID desc"); AutoID->Open(); if (AutoID->IsEmpty()) { client_no ="A00000"; } else { AutoID->First(); client_no = AutoID->FieldByName("CLIENTID")->AsString; } c1 = client_no.SubString(1, 1); //{取出編號第一值} c2 = client_no.SubString(2, 5); c2 = IntToStr(StrToInt(c2) 1); leg = client_no.Length() - c2.Length(); //{算出要補0的位數} for i=1 to leg - 1 do //70行 { j = j '0'; //{將0補上} } client_id = c1 j c2; ClientMaintTable->Edit();//{給值要在inser或Edit狀態} ClientMaintTable->FieldByName("CLIENTID")->AsString = client_id; ClientMaint->wwDBDateTimePicker1->Field->Value=Now; }//81行 }//82行 出現上面錯誤 暗光鳥初手求學中! 發表人 - game 於 2003/05/12 19:09:02 發表人 - game 於 2003/05/12 19:13:07
------
溝通網路情、連接數位心
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-12 19:24:37 IP:61.221.xxx.xxx 未訂閱
引言: 這是出現的錯誤! [C Error] DataModule1_a.cpp(70): E2376 For statement missing ( [C Warning] DataModule1_a.cpp(81): W8004 'leg' is assigned a value that is never used [C Error] DataModule1_a.cpp(82): E2190 Unexpected } ============================================================== void __fastcall TDataModule1::ClientMaintTableNewRecord(TDataSet *DataSet) { String client_no,c1,c2,client_id,j; Integer i,leg; AutoID->Close(); AutoID->SQL->Clear(); AutoID->SQL->Add("select * from clientmaint order by CLIENTID desc"); AutoID->Open(); if (AutoID->IsEmpty()) { client_no ="A00000"; } else { AutoID->First(); client_no = AutoID->FieldByName("CLIENTID")->AsString; } c1 = client_no.SubString(1, 1); //{取出編號第一值} c2 = client_no.SubString(2, 5); c2 = IntToStr(StrToInt(c2) 1); leg = client_no.Length() - c2.Length(); //{算出要補0的位數} for i=1 to leg - 1 do //70行 { j = j '0'; //{將0補上} } client_id = c1 j c2; ClientMaintTable->Edit();//{給值要在inser或Edit狀態} ClientMaintTable->FieldByName("CLIENTID")->AsString = client_id; ClientMaint->wwDBDateTimePicker1->Field->Value=Now; }//81行 }//82行 出現上面錯誤 暗光鳥初手求學中! 發表人 - game 於 2003/05/12 19:09:02 發表人 - game 於 2003/05/12 19:13:07
game, 您好 for i=1 to leg - 1 do 改為 for(i=1; i <= (leg - 1); i ) 您使用的應該不是C語言的語法吧! ======================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之 發表人 -
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-12 21:29:55 IP:218.165.xxx.xxx 未訂閱
謝謝您! 我的問題解決了! 您說的沒錯,我是用pascal寫的! 因為沒有學過c 所以常麻煩您! 暗光鳥初手求學中!
------
溝通網路情、連接數位心
系統時間:2024-05-15 20:57:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!