Здравствуйте уважаемые знатоки Delphi и не ток, у меня такая проблемка может посоветуйте че-нить. есть у меня база в которой идет расчет коммунальных услуг в базе этой около 300 записей и при расчете я бы хотел чтоб за время етого расчета отображалось состояние Progressbar но когда я ставил его то все бесполезно прога при расчете подвисает. если кто что-нибудь знает подскажите пожалуйста. вот код на расчет по дому № 4...
| Код | if LabeledEdit101.Text='4' Then begin LabeledEdit1.Text:=LabeledEdit101.Text; LabeledEdit2.Text:='КРАВЧЕНКО ДМИТРИЙ С'; ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT SPRLS.id_sprls, SPRLS.KODLS, SPRGL.NAIMEN, SPRUL.NAIMEN, SPRLS.KODUL, SPRLS.DOM, SPRLS.KDOM, SPRLS.KVART, SPRLS.PO, SPRLS.QKOM, SPRLS.QPROG, SPRLS.SPOLZ, SPRLS.SPOLN, SPRLS.SALDV, SPRLS.NACH, SPRLS.OPL, SPRLS.PENI, SPRLS.SALDI'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); //Adoquery5.SQL.Add('WHERE (((SPRLS.KODLS) Like "400313") AND ((SPRLS.DOM) Like "2ш"));'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"));');//поиск ФИО и дома Adoquery5.Active :=False; Adoquery5.Active :=true; end; begin ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT Sum(SPRLS.QPROG) AS [Sum-QPROG]'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"))'); ADOQuery5.SQL.Add('HAVING (((Sum(SPRLS.QPROG)) Is Not Null));'); Adoquery5.Active :=False; Adoquery5.Active :=true;//поиск и вывод в определенный LabeledEdit кол-во проживающих end; begin QPROG.Text:=ADOQuery5.FieldByName('Sum-QPROG').AsString; end; begin ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT Sum(SPRLS.spoln) AS [Sum-SPOLN]'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"))'); ADOQuery5.SQL.Add('HAVING (((Sum(SPRLS.SPOLN)) Is Not Null));'); Adoquery5.Active :=False; Adoquery5.Active :=true;поиск и вывод в определенный LabeledEdit полной площади квартиры end; begin SPOLNTEH.Text:=ADOQuery5.FieldByName('Sum-SPOLN').AsString; end; begin ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT Sum(SPRLS.SPOLN) AS [Sum-SPOLN]'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"))'); ADOQuery5.SQL.Add('HAVING (((Sum(SPRLS.SPOLN)) Is Not Null));'); Adoquery5.Active :=False; Adoquery5.Active :=true; end; begin SPOLNOTOP.Text:=ADOQuery5.FieldByName('Sum-SPOLN').AsString; if SPOLNOTOP.Text='0' then SPOLNOTOP.Text:='1'; if SPOLNOTOP.Text='' then SPOLNOTOP.Text:='1' end; {?} begin ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT Sum(SPRLS.KOL) AS [Sum-KOL]'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"))'); ADOQuery5.SQL.Add('HAVING (((Sum(SPRLS.KOL)) Is Not Null));'); Adoquery5.Active :=False; Adoquery5.Active :=true; end; begin kol.Text:=ADOQuery5.FieldByName('Sum-KOL').AsString; if kol.Text='0' then kol.Text:='1'; if kol.Text='' then kol.Text:='1'; end; begin q:=StrToFloat(SPOLNTEH.Text); w:=StrToFloat(KAT0TEH.Text); e:=StrToFloat(SPOLNOTOP.Text); r:=StrToFloat(SOTOP0.Text); t:=StrToFloat(KAT0GKAL.Text); y:=StrToFloat(kol.Text); u:=StrToFloat(KAT0PODOGREV.Text); i:=StrToFloat(KUB0.Text); o:=StrToFloat(QPROG.Text); p:=StrToFloat(SMUS0.Text); a:=StrToFloat(KAT0MUSOR.Text); s:=q*w; d:=e*r*t; f:=y*u*i; g:=o*p*a; sumteh.Text:=FloatToStr(s); sumotop.Text:=FloatToStr(d); sumpod.Text:=FloatToStr(f); summus.Text:=FloatToStr(g); sum:=s+d+f+g; Edit5.Text:=FloatToStr(sum); nachisleno.Text:=Edit5.Text;//тут происходит расчет по тому что было занесено в LabeledEdit'ы end; begin
ADOQuery5.SQL.Clear ; ADOQuery5.SQL.Add('SELECT SPRLS.id_sprls, SPRLS.KODLS, SPRGL.NAIMEN, SPRUL.NAIMEN, SPRLS.KODUL, SPRLS.DOM, SPRLS.KDOM, SPRLS.KVART, SPRLS.PO, SPRLS.QKOM, SPRLS.QPROG, SPRLS.SPOLZ, SPRLS.SPOLN, SPRLS.SALDV, SPRLS.NACH, SPRLS.OPL, SPRLS.PENI, SPRLS.SALDI'); ADOQuery5.SQL.Add('FROM SPRUL INNER JOIN (SPRGL INNER JOIN SPRLS ON SPRGL.KODLS = SPRLS.KODLS) ON SPRUL.KODUL = SPRLS.KODUL'); ADOQuery5.SQL.Add('WHERE (((SPRGL.NAIMEN) Like "%'+LabeledEdit2.Text+'%") AND ((SPRLS.DOM) Like "%'+LabeledEdit1.Text+'%"));'); //Adoquery5.SQL.Add('WHERE SPRLS.DOM like "%'+LabeledEdit101.Text+'%";'); Adoquery5.Active :=False; Adoquery5.Active :=true;
{ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('SELECT OPNA.OPNA, OPNA.KODLS, SPRGL.NAIMEN, OPNA.KODNA, SPRNA.NAIMEN, OPNA.SUMMA, OPNA.IZM, OPNA.KOL, OPNA.TARIF'); ADOQuery2.SQL.Add('FROM SPRNA INNER JOIN (SPRGL INNER JOIN OPNA ON SPRGL.KODLS = OPNA.KODLS) ON SPRNA.KODNA = OPNA.KODNA'); ADOQuery2.SQL.Add('WHERE SPRLS.DOM Like "%'+LabeledEdit101.Text+'%"'); ADOQuery2.Active:=False; ADOQuery2.Active:=True;} end; begin sprglnaimen.Text:=ADOQuery5.FieldByName('SPRGL.NAIMEN').AsString; sprulnaimen.Text:=ADOQuery5.FieldByName('SPRUL.NAIMEN').AsString; KODLS.Text:=ADOQuery5.FieldByName('KODLS').AsString; KODUL.Text:=ADOQuery5.FieldByName('KODUL').AsString; DOM.Text:=ADOQuery5.FieldByName('DOM').AsString; KDOM.Text:=ADOQuery5.FieldByName('KDOM').AsString; KVART.Text:=ADOQuery5.FieldByName('KVART').AsString; PO.Text:=ADOQuery5.FieldByName('PO').AsString; QKOMN.Text:=ADOQuery5.FieldByName('QKOM').AsString; SPOLZ.Text:=ADOQuery5.FieldByName('SPOLZ').AsString; SALDOV.Text:=ADOQuery5.FieldByName('SALDV').AsString; //OPL.Text:=ADOQuery5.FieldByName('OPL').AsString; // PENI.Text:=ADOQuery5.FieldByName('PENI').AsString; //SALDI.Text:=ADOQuery5.FieldByName('SALDI').AsString; end; begin if (KDOM.Text='') then KDOM.Text:='0'; if (SALDOV.Text='') then SALDOV.Text:='0'; ADOQIZM.Parameters.ParamByName('KODLS').Value:=KODLS.Text;; ADOQIZM.Parameters.ParamByName('KODUL').Value:=KODUL.Text; ADOQIZM.Parameters.ParamByName('DOM').Value:=DOM.Text; ADOQIZM.Parameters.ParamByName('KDOM').Value:=KDOM.Text; ADOQIZM.Parameters.ParamByName('KVART').Value:=KVART.Text; ADOQIZM.Parameters.ParamByName('PO').Value:=PO.Text; ADOQIZM.Parameters.ParamByName('QKOM').Value:=QKOMN.Text; ADOQIZM.Parameters.ParamByName('QPROG').Value:=QPROG.Text; ADOQIZM.Parameters.ParamByName('SPOLZ').Value:=SPOLZ.Text; ADOQIZM.Parameters.ParamByName('SPOLN').Value:=SPOLNTEH.Text; ADOQIZM.Parameters.ParamByName('SALDV').Value:=SALDOV.Text; ADOQIZM.Parameters.ParamByName('NACH').Value:=nachisleno.Text; {ADOQIZM.Parameters.ParamByName('OPL').Value:='--'; ADOQIZM.Parameters.ParamByName('PENI').Value:='--'; ADOQIZM.Parameters.ParamByName('SALDI').Value:='--';} ADOQIZM.Parameters.ParamByName('id_sprls').Value:=ADOQuery5.FieldByName('id_sprls').AsInteger; ADOQIZM.ExecSQL; ADOQuery5.Active:=false; ADOQuery5.Active:=true; end;
|
за-ранее большое |