利用delphi將資料表內容轉存成html檔案的相關問題 |
尚未結案
|
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
各位好,我最近在寫一個程式,是將資料表內容,利用sql語法(mysql)查詢出來,再轉存成html檔,但是裡面有一部分的資料,是利用迴圈跑出來的,就因為資料的不同,所以每個轉出來的檔案,都會出現不必要的html內碼,所以想請各位幫忙解決一下!謝謝!^^ 以下是我的程式:
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>新網頁1</title>
</head> <body>
procedure TfmDbset_History.sb_TableToHtmlClick(Sender: TObject); var // tablename:string;//資料表名稱; HtmlFile :textfile; filename :string; filename1:string; a : array[0..9999] of string;//存已填寫問卷之課程; b : array[0..9999] of string;//存已填寫問卷之建議題; c : array[0..9999] of string;//存已填寫問卷之問答題; n :string;//記錄第幾個版本; m :string;//取月; y :string;//取年; y2 :string;//年度; y3 :string;//年度<100年則前面加0如091,為了存檔用; sem :string;//學期; sem1 :string; percent :string; i :integer; j :integer;// 計算有幾個課程要轉存; x :integer;//共幾個檔案轉存成功; crs_type :string;//選課型態:選修、必修、選必; ql_no :integer;//question_ql的問答題有幾題 d :integer; begin x:=0; j:=0; //i:=0; sem:=''; sem1:=''; y:=''; y2:=''; y3:=''; percent:=''; crs_type:=''; if MessageDlg('請確定是否要轉存成歷史檔?',mtInformation, [mbYes, mbNo],0)=mrYes then begin pb_History.Position:=pb_History.min; if rb_crs.Checked=true then begin //編輯檔名; with qr_NTIS do begin close; sql.Clear; //sql.Add('select C.CRS_ID from CLASS_QUES Q ,COURSE C WHERE Q.CRS_ID=C.CRS_ID AND Q.QUES_STATE=''1'' GROUP BY C.CRS_ID'); SQL.ADD('SELECT A.CRS_ID FROM QUES_CRS_STA A,QUESTION Q WHERE A.QUES_ID = Q.QUES_ID AND Q.QUES_TYPE=''S'' GROUP BY A.CRS_ID'); Prepare; open end; //將已填寫的課程名稱放入a[i]; j:=qr_NTIS.RecordCount; i:=0; with qr_NTIS do begin first; while not eof do begin a[i]:= qr_NTIS.Fields[0].AsString; // showmessage(qr_NTIS.Fields[0].AsString); next; i:=i 1; end; end; pb_History.Position:=pb_History.min; for i:=0 to j-1 do //有幾個課程就產生幾個檔案; begin with qr_NTIS do begin close; sql.clear; sql.add('select efcrs.CRS_ID,efcrs.TEA_ID,efcrs.QUES_ID,efcrs.RESULT,'); sql.add('efcrs.ANS_RATE,efcrs.ANS_SUM,efcrs.STU_SUM,crssta.QS_NO,crssta.RESULT,crssta.QS_SUM1,crssta.QS_SUM2,'); sql.add('crssta.QS_SUM3,crssta.QS_SUM4,crssta.QS_SUM5,quqs.QS_SEL1,quqs.QS_SEL2,quqs.QS_SEL3,quqs.QS_SEL4,'); sql.add('quqs.QS_SEL5,quql.QL_TEXT,crsde.SUB_CODE,course.CRS_TYPE,course.CRS_NAME,quqs.QS_WT1, quqs.QS_WT2, quqs.QS_WT3,'); sql.add('quqs.QS_WT4, quqs.QS_WT5,teacher.TEA_CNAME,depar.DEP_LCNAME,qu.QUES_NAME'); sql.add('from QUES_CRS_STA crssta, QUESTION qu,QUESTION_QS quqs,QUESTION_QL quql, TEACHER teacher, '); sql.add('COURSE course, COURSE_DEP crsde,DEPARTMENT depar, EFFECT_CRS efcrs'); sql.add('where crssta.QUES_ID = qu.QUES_ID and qu.QUES_TYPE = ''S'' and crssta.QUES_ID = quqs.QUES_ID '); sql.add('and crssta.QUES_ID=quql.QUES_ID and quql.QL_TYPE=''0'' and quql.QL_NO= crssta.QS_NO and'); sql.add('crssta.TEA_ID = teacher.TEA_ID and crssta.CRS_ID = course.CRS_ID and crssta.CRS_ID = crsde.CRS_ID and '); sql.add('crsde.MDEP = ''1'' and crsde.DEP_ID = depar.DEP_ID and crssta.CRS_ID = efcrs.CRS_ID '); sql.add('and crssta.TEA_ID = efcrs.TEA_ID and crssta.QUES_ID = efcrs.QUES_ID and crssta.CRS_ID=''1404'''); Prepare; Open; end; //計算學年度與學期; try m:= copy(qr_NTIS.Fields[2].AsString,12,2); y:= copy(qr_NTIS.Fields[2].AsString,8,4); if ((strtoint(m)>2) and (strtoint(m)<7)) then begin y2:=inttostr(strtoint(y)-1911); sem:='二'; sem1:='b'; end else begin y2:=inttostr(strtoint(y)-1912); sem:='一'; sem1:='a'; end;//else if strtoint(y2)<100 then begin y3:='0' y2; end else y3:=y2; except showmessage('無法取得學年度與學期'); end; percent:=inttostr(qr_NTIS.fields[4].Value * 1000/10); //@091av01_1402_2002002_cyut20020107_ filename:='@' y3 sem1 'v01_' qr_NTIS.Fields[0].AsString '_' qr_NTIS.Fields[1].AsString '_' qr_NTIS.Fields[2].AsString; filename1:=path_History '@' y3 sem1 'v01_' qr_NTIS.Fields[0].AsString '_' qr_NTIS.Fields[1].AsString '_' qr_NTIS.Fields[2].AsString '.html'; while FileExists(filename1) do begin n:='0' inttostr(strtoint(copy(filename,7,2)) 1); if strtoint(n)>9 then begin n:=inttostr(strtoint(copy(filename,7,2)) 1); end; filename:='@' y3 sem1 'v' n '_' qr_NTIS.Fields[0].AsString '_' qr_NTIS.Fields[1].AsString '_' qr_NTIS.Fields[2].AsString; filename1:=path_History '@' y3 sem1 'v' n '_' qr_NTIS.Fields[0].AsString '_' qr_NTIS.Fields[1].AsString '_' qr_NTIS.Fields[2].AsString '.html'; end; IF qr_NTIS.Fields[24].TEXT='1' THEN crs_type:='必修' ELSE IF qr_NTIS.Fields[24].TEXT='2' THEN crs_type:='選修' ELSE crs_type :='選擇必修'; //用% AssignFile(HtmlFile,filename1); Rewrite(HtmlFile); Writeln(HtmlFile,'<html>'); Writeln(HtmlFile,'<head>'); Writeln(HtmlFile,'<title> 大 學 教 學 意 見 課 程 問 卷 彙 總 表</title>'); Writeln(HtmlFile,'</head>'); Writeln(HtmlFile,'<body>'); Writeln(HtmlFile,'
'); //
Writeln(HtmlFile,' ');
Writeln(HtmlFile,'
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pgdennis
資深會員 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
with qr_NTIS do begin close; sql.clear; sql.add('select efcrs.CRS_ID,efcrs.TEA_ID,efcrs.QUES_ID,efcrs.RESULT,'); sql.add('efcrs.ANS_RATE,efcrs.ANS_SUM,efcrs.STU_SUM,crssta.QS_NO,crssta.RESULT,crssta.QS_SUM1,crssta.QS_SUM2,'); sql.add('crssta.QS_SUM3,crssta.QS_SUM4,crssta.QS_SUM5,quqs.QS_SEL1,quqs.QS_SEL2,quqs.QS_SEL3,quqs.QS_SEL4,'); sql.add('quqs.QS_SEL5,quql.QL_TEXT,crsde.SUB_CODE,course.CRS_TYPE,course.CRS_NAME,quqs.QS_WT1, quqs.QS_WT2, quqs.QS_WT3,'); sql.add('quqs.QS_WT4, quqs.QS_WT5,teacher.TEA_CNAME,depar.DEP_LCNAME,qu.QUES_NAME'); sql.add('from QUES_CRS_STA crssta, QUESTION qu,QUESTION_QS quqs,QUESTION_QL quql, TEACHER teacher, '); sql.add('COURSE course, COURSE_DEP crsde,DEPARTMENT depar, EFFECT_CRS efcrs'); sql.add('where crssta.QUES_ID = qu.QUES_ID and qu.QUES_TYPE = ''S'' and crssta.QUES_ID = quqs.QUES_ID '); sql.add('and crssta.QUES_ID=quql.QUES_ID and quql.QL_TYPE=''0'' and quql.QL_NO= crssta.QS_NO and'); sql.add('crssta.TEA_ID = teacher.TEA_ID and crssta.CRS_ID = course.CRS_ID and crssta.CRS_ID = crsde.CRS_ID and '); sql.add('crsde.MDEP = ''1'' and crsde.DEP_ID = depar.DEP_ID and crssta.CRS_ID = efcrs.CRS_ID '); sql.add('and crssta.TEA_ID = efcrs.TEA_ID and crssta.QUES_ID = efcrs.QUES_ID and crssta.CRS_ID=''1402'''); Prepare; Open; end;不好意思哦!程式中的1402需改為''' 加 a[i] 加 ''' 才對!^^|| 這段sql是由我先前sql 語法select出來的課號,再利用此課號找出我需要的資料!^^ ps.我已將資料上傳!請您看一下!謝謝! |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
funging
一般會員 發表:13 回覆:41 積分:10 註冊:2002-10-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |