代码的优化问题 |
答題得分者是:cashxin2002
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
一段代码如下:
begin if not (key in['0'..'9',#13,#8,#46,#45]) then begin key:=#0; MessageBeep(1); Application.MessageBox('请输入数字','提示',MB_OK); end; if (Edit8.Text='') and (key=#13) then begin Application.MessageBox('请输入数字','提示',MB_OK); end else begin if key=#13 then begin if (zl='药品项目') and (kcsl-strtofloat(edit8.Text)<=0) then begin if MessageDlg('确定添加吗?',mtConfirmation,[mbYes,mbno],0)= mrYes then begin ADOTable2.Last; ADOTable2.Insert; ADOTable2.FieldByName('id').AsInteger:=strtoint(zdbh); ADOTable2.FieldByName('项目类型').AsString :=label22.Caption; ADOTable2.FieldByName('项目名称').AsString := Edit5.Text; ADOTable2.FieldByName('单价').AsString := Edit6.Text; ADOTable2.FieldByName('规格').AsString := Edit7.Text; ADOTable2.FieldByName('数量').AsString := Edit8.Text; ADOTable2.FieldByName('单项累计').Asstring :=format('%.2f',[ StrToFloat(Edit6.Text)*StrToFloat(Edit8.Text)]); ADOTable2.Post; end; end else begin ADOTable2.Last; ADOTable2.Insert; ADOTable2.FieldByName('id').AsInteger:=strtoint(zdbh); ADOTable2.FieldByName('项目类型').AsString :=label22.Caption; ADOTable2.FieldByName('项目名称').AsString := Edit5.Text; ADOTable2.FieldByName('单价').AsString := Edit6.Text; ADOTable2.FieldByName('规格').AsString := Edit7.Text; ADOTable2.FieldByName('数量').AsString := Edit8.Text; ADOTable2.FieldByName('单项累计').Asstring :=format('%.2f',[ StrToFloat(Edit6.Text)*StrToFloat(Edit8.Text)]); ADOTable2.Post; end; end; end; end;这段代码如何优化一下呢 我的起步始于ktop,我将永远支持ktop。
------
我的编程起步于ktop,我将永远支持ktop |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗
begin if Not (key in ['0'..'9',#13,#8,#46,#45]) then begin key := #0; end else if (Edit8.Text = '') and (key = #13) then begin Application.MessageBox('请输入数字','提示',MB_OK); end else begin if (zl = '药品项目') and (kcsl-strtofloat(edit8.Text)<=0) then begin if MessageDlg('确定添加吗?',mtConfirmation,[mbYes,mbno],0)= mrYes then begin ADOTable2.Insert; ADOTable2.FieldByName('id').AsInteger:=strtoint(zdbh); ADOTable2.FieldByName('项目类型').AsString :=label22.Caption; ADOTable2.FieldByName('项目名称').AsString := Edit5.Text; ADOTable2.FieldByName('单价').AsString := Edit6.Text; ADOTable2.FieldByName('规格').AsString := Edit7.Text; ADOTable2.FieldByName('数量').AsString := Edit8.Text; ADOTable2.FieldByName('单项累计').Asstring :=format('%.2f',[ StrToFloat(Edit6.Text)*StrToFloat(Edit8.Text)]); ADOTable2.Post; end; end; end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
前辈,代码可能和我的要求有一点不同,我的意思如下:
如果
if (zl = '药品项目') and (kcsl-strtofloat(edit8.Text)<=0) then
那么提问,如果回答是,则执行adotable2.last到adotable2.post那一段代码。如果回答否,则不执行。
如果 not
if (zl = '药品项目') and (kcsl-strtofloat(edit8.Text)<=0) then
那么问也不要问就直接执行adotable2.last到adotable2.post那一段代码。
说的具体的话就是zl='检查项目'时那么就不问了,直接执行,等于药品项目时先查查库存数量,够的话就执行,不够的话问问是否仍然添加收费项目。 我的起步始于ktop,我将永远支持ktop。
------
我的编程起步于ktop,我将永远支持ktop |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗
begin if Not (key in ['0'..'9',#13,#8,#46,#45]) then begin key := #0; end else if (Edit8.Text = '') and (key = #13) then begin Application.MessageBox('请输入数字','提示',MB_OK); end else begin if (zl = '药品项目') and (kcsl-strtofloat(edit8.Text)<=0) then begin if MessageDlg('确定添加吗?',mtConfirmation,[mbYes,mbno],0)= mrYes then begin ADOTable2.Insert; ADOTable2.FieldByName('id').AsInteger:=strtoint(zdbh); ADOTable2.FieldByName('项目类型').AsString :=label22.Caption; ADOTable2.FieldByName('项目名称').AsString := Edit5.Text; ADOTable2.FieldByName('单价').AsString := Edit6.Text; ADOTable2.FieldByName('规格').AsString := Edit7.Text; ADOTable2.FieldByName('数量').AsString := Edit8.Text; ADOTable2.FieldByName('单项累计').Asstring :=format('%.2f',[ StrToFloat(Edit6.Text)*StrToFloat(Edit8.Text)]); ADOTable2.Post; end; end else if (zl = '检查项目') and (kcsl-strtofloat(edit8.Text)<=0) then begin ADOTable2.Insert; ADOTable2.FieldByName('id').AsInteger:=strtoint(zdbh); ADOTable2.FieldByName('项目类型').AsString :=label22.Caption; ADOTable2.FieldByName('项目名称').AsString := Edit5.Text; ADOTable2.FieldByName('单价').AsString := Edit6.Text; ADOTable2.FieldByName('规格').AsString := Edit7.Text; ADOTable2.FieldByName('数量').AsString := Edit8.Text; ADOTable2.FieldByName('单项累计').Asstring :=format('%.2f',[ StrToFloat(Edit6.Text)*StrToFloat(Edit8.Text)]); ADOTable2.Post; end; end; end;若需再簡化一些﹐就把ADOTable2新增儲存那段Code寫成單獨的程序Procedure﹐然后分別替換在以上兩段紅色程式碼處﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/11/29 15:09:59
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |