Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Исходный код загрузки параметров детали из базы данных⇐ ПредыдущаяСтр 23 из 23
function LoadSQL(pick:TZC;BDKod:integer;LoadTextere:boolean):boolean; var R:Param; TKod,i,sk,WY:integer; //Log:Tstringlist; GoldMera:String; MinW,MinG,MinH,MaxW,MaxG,MaxH, Sir,Vis,Tol,MinSir,MinVis,MinTol,MaxSir,MaxVis,MaxTol:extended; begin
TKod:=pick.Kod; pick.Kod:=BDKod; MinW:=pick.MinW; MinG:=pick.MinG; MinH:=pick.MinH; MaxW:=pick.MaxW; MaxG:=pick.MaxG; MaxH:=pick.MaxH; GoldMera:=pick.GoldMera; if BDKod<>0 then pick.BDColor:='';//Сброс привязки к цвету, если задан код //Log:=TStringList.Create; with Form1 do if k[pick.Skaf].Price<>'No Price' then begin R:=k[pick.Skaf]; QueryALL.Active:=False; QueryALL.SQL.Clear; QueryALL.SQL.add('SELECT ['+R.Price+'].Наценка, ['+R.PriceSkid+'].Скидка, [All].* FROM ['+R.Price+'],['+R.PriceSkid+'], [All] WHERE (['+R.Price+'].Код=[All].Код and ['+R.PriceSkid+'].Код=[All].Код) '); QueryALL.SQL.add('and [All].[Тип шкафа] like "%'+R.Tip[1]+'%" '); if(pick.BDColor<>'')and(pick.BDColor<>'#')then QueryALL.SQL.add('and [All].Цвет = "'+pick.BDColor+'"')else//!!!!!!!!!!!!!!!!!!!!!!!!!! if(pick.id in[8,9,16,26])and(R.NachColor<>''){and(pick.BDColor<>'#')}and(pick.BDColor='')and(BDKod=0)then begin QueryALL.SQL.add('and [All].Цвет = "'+R.NachColor+'"');//Применить цвет шкафа pick.TagText:=''; //form1.caption:='|'+pick.BDColor+'|'; end; //Доработка запроса QueryALL.SQL.add('and [All].Положение like "%\'+inttostr(pick.id)+'\%"');//<-pos if(pick.TagText='Next')then begin QueryALL.SQL.add('and [All].Код > '+inttostr(pick.Kod)+' '); pick.Kod:=0; end else if(pick.TagText='Previous')then begin QueryALL.SQL.add('and [All].Код < '+inttostr(pick.Kod)+' '); pick.Kod:=0; end else if(pick.TagText<>'')then begin if(pick.id=70)then QueryALL.SQL.add('and [All].[Код цвета] like "%'+pick.TagText+'%"')else QueryALL.SQL.add('and [All].Наименование like "%'+pick.TagText+'%"'); end; if(pick.TagText='Previous')then QueryALL.SQL.add('ORDER BY [All].Код DESC;')else QueryALL.SQL.add('ORDER BY [All].Код;');//Если что не так, то удалить //Конец Доработка запроса
QueryALL.Active:=True; //pick.BDColor:='';//Сброс привязки к цвету //log.Add(QueryALL.SQL.Text); //ShowMessage(IntToStr(QueryALL.RecordCount)+sLineBreak+IntToStr(pick.id)+slinebreak+QueryALL.SQL.Text); With QueryALL do try DisableControls; First; While not EOF do begin //if pick.id=70 then log.Add(FindField('Код').AsString+' | '+FindField('Наименование').AsString);
//Нужда в Pos отпала поле доработки запроса {if(pos('\'+inttostr(pick.id)+'\',FindField('Положение').AsString)<>0) and((pick.TagText='') or((pick.id<>70)and(pos(pick.TagText,FindField('Наименование').AsString)<>0)) or((pick.id =70)and(pos(pick.TagText,FindField('Код цвета').AsString)<>0)))then } begin
if(pick.kod<1)then begin if isNum(FindField('Толщина').AsString)=True then Tol:=FindField('Толщина').AsFloat else Tol:=0; if isNum(FindField('Мин Ширина').AsString)=True then MinSir:=FindField('Мин Ширина').AsFloat else MinSir:=0; if isNum(FindField('Мах Ширина').AsString)=True then MaxSir:=FindField('Мах Ширина').AsFloat else MaxSir:=100000; //ShowMessage(inttostr(round(pick.MaxW*Mera))+sLineBreak+FindField('Толщина').AsString); if(pick.Group in [0,10])and(round(pick.MaxG*Mera)=Tol)then pick.kod:=FindField('Код').AsInteger else if(pick.Group=1)and(round(pick.MaxH*Mera)=Tol)then pick.kod:=FindField('Код').AsInteger else if(pick.Group=2)and(round(pick.MaxW*Mera)=Tol)then pick.kod:=FindField('Код').AsInteger else if(pick.Group=3)then begin WY:=1000; if pick.GW<=900 then WY:=900; if pick.GW<=800 then WY:=800; if pick.GW<=700 then WY:=700; if pick.GW<=600 then WY:=600; if WY=MinSir then pick.kod:=FindField('Код').AsInteger; end else if(pick.Group=4)and(round(pick.MaxG*Mera)=Tol) {and(round(pick.MaxW*Mera)=FindField('Ширина').AsFloat) and(round(pick.MaxH*Mera)=FindField('Высота').AsFloat) and(round(pick.MaxG*Mera)=FindField('Толщина').AsFloat)}then begin WY:=600; if pick.GW>=400 then WY:=400; if pick.GW>=500 then WY:=500; if pick.GW>=600 then WY:=600; if WY=MaxSir then pick.kod:=FindField('Код').AsInteger end else if(pick.id in[21,36])or(pick.id>=3000)then pick.kod:=FindField('Код').AsInteger; end;
if pick.kod=FindField('Код').AsInteger then begin //Если не цифра, то = 0 if isNum(FindField('Ширина').AsString)=True then Sir:=FindField('Ширина').AsFloat else Sir:=0; if isNum(FindField('Высота').AsString)=True then Vis:=FindField('Высота').AsFloat else Vis:=0; if isNum(FindField('Толщина').AsString)=True then Tol:=FindField('Толщина').AsFloat else Tol:=0; if isNum(FindField('Мин Ширина').AsString)=True then MinSir:=FindField('Мин Ширина').AsFloat else MinSir:=0; if isNum(FindField('Мин Высота').AsString)=True then MinVis:=FindField('Мин Высота').AsFloat else MinVis:=0; if isNum(FindField('Мин Толщина').AsString)=True then MinTol:=FindField('Мин Толщина').AsFloat else MinTol:=0; if isNum(FindField('Мах Ширина').AsString)=True then MaxSir:=FindField('Мах Ширина').AsFloat else MaxSir:=100000; if isNum(FindField('Мах Высота').AsString)=True then MaxVis:=FindField('Мах Высота').AsFloat else MaxVis:=100000; if isNum(FindField('Мах Толщина').AsString)=True then MaxTol:=FindField('Мах Толщина').AsFloat else MaxTol:=100000;
pick.BDColor:=FindField('Цвет').AsString;//Позже убрать EBox1.Text:=FindField('Наименование').AsString+' '+FindField('Цвет').AsString+' '+FindField('Артикул').AsString; if pick.Group<>3 then EBox2.Text:=FindField('Цвет').AsString;
if R.PL=pick.CountNum then LBS.Text:=FindField('Код').AsString+'. '+FindField('Наименование').AsString; if R.PR=pick.CountNum then RBS.Text:=FindField('Код').AsString+'. '+FindField('Наименование').AsString; if R.PB=pick.CountNum then BBS.Text:=FindField('Код').AsString+'. '+FindField('Наименование').AsString; if R.PT=pick.CountNum then TBS.Text:=FindField('Код').AsString+'. '+FindField('Наименование').AsString; if R.PG=pick.CountNum then ZBS.Text:=FindField('Код').AsString+'. '+FindField('Наименование').AsString;
pick.NameText:=FindField('Наименование').AsString; if FindField('Цена').AsString<>'' then pick.Gold:=strtofloat(FindField('Цена').AsString); pick.GoldMera:=FindField('Единица измерения').AsString; pick.BDArtikul:=FindField('Артикул').AsString; //if pick.Nazen=0 then pick.Nazen:=FindField('Наценка').AsInteger; //if pick.Skid =0 then pick.Skid:=FindField('Скидка').AsInteger; if pick.id=70 then pick.TagText:=FindField('Код цвета').AsString;
//pick.Material.PolygonMode:=pmLines; if((LoadTextere=True)or(pick.Kod<>TKod))and(FindField('Код цвета').AsString<>'')and(FileExists(extractfilepath(paramstr(0))+'\Data\Textures\'+FindField('Код цвета').AsString)=true)then begin pick.Material.FrontProperties.Diffuse.SetColor(1,1,1); pick.Material.Texture.Image.LoadFromFile(extractfilepath(paramstr(0))+'\Data\Textures\'+FindField('Код цвета').AsString); pick.Material.Texture.Disabled:=false; pick.Material.Texture.TextureMode:=tmModulate; pick.Material.Texture.MappingMode:=tmmObjectLinear; if pick.id=70 then begin // end else if pick.Group=1 then begin pick.Material.texture.MappingSCoordinates.X:=0; pick.Material.texture.MappingTCoordinates.X:=pick.Scale.x; pick.Material.texture.MappingTCoordinates.Y:=pick.Scale.y*0.37; pick.Material.texture.MappingSCoordinates.Z:=pick.Scale.z*2.68; end else begin pick.Material.texture.MappingSCoordinates.x:=pick.Scale.x*2.68; pick.Material.texture.MappingTCoordinates.y:=pick.Scale.y; pick.Material.texture.MappingSCoordinates.Z:=pick.Scale.z*2.68; end; //pick.Material.FrontProperties.Diffuse.AsWinColor:=StringToColor('$'+FindField('Код цвета').AsString); end; if(pick.id=21) then begin pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; pick.MinG:=MinTol/mera; pick.MaxG:=MaxTol/mera;
pick.RdL:=MinSir-FindField('Высота Листа').AsFloat; pick.RsL:=MinSir-FindField('Ширина Листа').AsFloat; pick.RdR:=pick.RdL; pick.RsR:=pick.RsL;
BDMinW.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinG.Caption:=Format('%.2f',[MinTol]);
BDMaxW.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxG.Caption:=Format('%.2f',[MaxTol]); EBox7.Text:=FieldByName('Цвет').AsString; end else if(pick.id=36) then begin pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; pick.MinG:=MinTol/mera; pick.MaxG:=MaxTol/mera;
pick.RdB:=MinVis-FindField('Высота Листа').AsFloat; pick.RsB:=MinVis-FindField('Ширина Листа').AsFloat; pick.RdT:=pick.RdB; pick.RsT:=pick.RsB;
BDMinW.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinG.Caption:=Format('%.2f',[MinTol]);
BDMaxW.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxG.Caption:=Format('%.2f',[MaxTol]); EBox7.Text:=FieldByName('Цвет').AsString; end else if(pick.Group in [0]) then begin if(pick.id=70)then begin pick.RdL:=FindField('Ширина Листа').AsFloat/mera; pick.RdB:=FindField('Высота Листа').AsFloat/mera;
pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera;
pick.RdR:=pick.RdL/pick.RdB; pick.RdT:=pick.RdB/pick.RdL; end else if(GetW(pick,False)<=GetH(pick,False))or(pick.id=70)then begin pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; end else begin pick.MinH:=MinSir/mera; pick.MaxH:=MaxSir/mera; pick.MinW:=MinVis/mera; pick.MaxW:=MaxVis/mera; end; pick.MinG:=MinTol/mera; pick.MaxG:=MaxTol/mera;
BDMinW.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinG.Caption:=Format('%.2f',[MinTol]);
BDMaxW.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxG.Caption:=Format('%.2f',[MaxTol]); end else if(pick.Group in [3,4]) then begin pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; pick.MinG:=MinTol/mera; pick.MaxG:=MaxTol/mera;
BDMinW.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinG.Caption:=Format('%.2f',[MinTol]);
BDMaxW.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxG.Caption:=Format('%.2f',[MaxTol]); end else if(pick.Group=10) then begin pick.MinW:=MinSir/mera; pick.MaxW:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; pick.MinG:=MinTol/mera; pick.MaxG:=MaxTol/mera;
BDMinW.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinG.Caption:=Format('%.2f',[MinTol]);
BDMaxW.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxG.Caption:=Format('%.2f',[MaxTol]); end else if(pick.Group=1)then begin pick.MinG:=MinSir/mera; pick.MaxG:=MaxSir/mera; pick.MinW:=MinVis/mera; pick.MaxW:=MaxVis/mera; pick.MinH:=MinTol/mera; pick.MaxH:=MaxTol/mera;
BDMinG.Caption:=Format('%.2f',[MinSir]); BDMinW.Caption:=Format('%.2f',[MinVis]); BDMinH.Caption:=Format('%.2f',[MinTol]);
BDMaxG.Caption:=Format('%.2f',[MaxSir]); BDMaxW.Caption:=Format('%.2f',[MaxVis]); BDMaxH.Caption:=Format('%.2f',[MaxTol]); end else if pick.Group=2 then begin pick.MinG:=MinSir/mera; pick.MaxG:=MaxSir/mera; pick.MinH:=MinVis/mera; pick.MaxH:=MaxVis/mera; pick.MinW:=MinTol/mera; pick.MaxW:=MaxTol/mera;
BDMinG.Caption:=Format('%.2f',[MinSir]); BDMinH.Caption:=Format('%.2f',[MinVis]); BDMinW.Caption:=Format('%.2f',[MinTol]);
BDMaxG.Caption:=Format('%.2f',[MaxSir]); BDMaxH.Caption:=Format('%.2f',[MaxVis]); BDMaxW.Caption:=Format('%.2f',[MaxTol]); end; //Подгонка интервала величин if pick.id>3000 then begin pick.GoldMera:=GoldMera; if pick.Group in [0] then begin if(pick.MaxW<=pick.MaxH)then begin if(pick.MaxW>MaxW)and(MaxW>0)then pick.MaxW:=MaxW; if(pick.MaxH>MaxH)and(MaxH>0)then pick.MaxH:=MaxH; if(pick.MinW<MinW)and(MinW>0)and(MinW<pick.MaxW)then pick.MinW:=MinW; if(pick.MinH<MinH)and(MinH>0)and(MinH<pick.MaxH)then pick.MinH:=MinH; end else begin if(pick.MaxW>MaxH)and(MaxH>0)then pick.MaxW:=MaxH; if(pick.MaxH>MaxW)and(MaxW>0)then pick.MaxH:=MaxW; if(pick.MinW<MinH)and(MinH>0)and(MinH<pick.MaxW)then pick.MinW:=MinH; if(pick.MinH<MinW)and(MinW>0)and(MinW<pick.MaxH)then pick.MinH:=MinW; end; if(pick.MinG<MinG)and(MinG>0) then pick.MinG:=MinG; if(pick.MaxG>MaxG)and(MaxG>0) then pick.MaxG:=MaxG; end else if pick.Group in [1,2] then begin if(pick.MaxW>MaxW)and(MaxW>0)then pick.MaxW:=MaxW; if(pick.MaxG>MaxG)and(MaxG>0)then pick.MaxG:=MaxG; if(pick.MaxH>MaxH)and(MaxH>0)then pick.MaxH:=MaxH;
if(pick.MinW<MinW)and(MinW>0)and(MinW<=pick.MaxW)then pick.MinW:=MinW; if(pick.MinG<MinG)and(MinG>0)and(MinG<=pick.MaxG)then pick.MinG:=MinG; if(pick.MinH<MinH)and(MinH>0)and(MinH<=pick.MaxH)then pick.MinH:=MinH; end; end;
end; end; Next; end; finally EnableControls; end;
//ОБНУЛЕНИЕ КРОМКИ if pick.Kromka=-1 then pick.KrF:=0;
//Кромки if(pick.id in [6,7,8,9,16])or(pick.id>=3000)then With QueryALL do begin Active:=False; SQL.Clear; SQL.add('SELECT ['+R.Price+'].Наценка, ['+R.PriceSkid+'].Скидка, [All].* FROM ['+R.Price+'],['+R.PriceSkid+'], [All] WHERE (['+R.Price+'].Код=[All].Код and ['+R.PriceSkid+'].Код=[All].Код) '); SQL.add('and ([All].[Тип шкафа] like "%'+R.Tip[1]+'%" or [All].[Тип шкафа] = "Все") '); if(pick.id>=3000)then SQL.add('and [All].[Кромка для] like "%\'+inttostr(pick.id)+'\%"') else begin SQL.add('and [All].Наименование like "Кром%" '); end;//Перенести вниз if pick.KromTip<>'' then SQL.add('and [All].[Возможность установки] = "'+pick.KromTip+'" '); //Сюда if pick.KrColor<>'' then SQL.add('and [All].Цвет = "'+pick.KrColor+'" '); Active:=True; //ShowMessage(sql.Text+' '+inttostr(RecordCount)); try DisableControls; First; While not EOF do begin if((pick.Kromka<=0)or(pick.Kromka=FindField('Код').AsInteger))then begin //if ((pick.KromTip=FindField('Возможность установки').AsString)or(pick.KromTip='')) //and((pick.KrColor=FindField('Цвет').AsString)or(pick.KrColor='')) //then begin if FindField('Высота').AsString<>'' then sk:=FindField('Высота').AsInteger; if sk=19 then sk:=1 else if sk=28 then sk:=2 else if sk=29 then sk:=2 else if sk=35 then sk:=3 else sk:=-100;//Лубое не совподающие число
if((pick.Group=1)and(Trunc(pick.MaxH*mera/10)=sk)) or((pick.Group=2)and(Trunc(pick.MaxW*mera/10)=sk)) or((pick.Group=0)and(Trunc(pick.MaxG*mera/10)=sk))then begin pick.Kromka:=FindField('Код').AsInteger; pick.KromTip:=FindField('Возможность установки').AsString; pick.KrColor:=FindField('Цвет').AsString; EPKrom.Text:=pick.KrColor; pick.KrF:=FindField('Толщина').AsFloat/mera; pick.KrGold:=strtofloat(FindField('Цена').AsString); //ShowMessage(inttostr(pick.Kromka)+sLineBreak+pick.KromTip+sLineBreak+pick.KrColor+sLineBreak+IntToStr(Trunc(pick.MaxH*mera/10))+' = '+IntToStr(sk)); end; end; end; Next; end; finally EnableControls; end; end; PickRazKrom(pick); {ShowMessage(GLCube[pick.x1].NameText+sLineBreak+ FloatToStr(pick.Kromka)+sLineBreak+ FloatToStr(pick.KrF)+sLineBreak+sLineBreak+ FloatToStr(pick.KrL)+sLineBreak+ FloatToStr(pick.KrR)+sLineBreak+sLineBreak+ FloatToStr(pick.KrB)+sLineBreak+ FloatToStr(pick.KrT)+sLineBreak );//} //Подгонка размера и положения под кромку ALLKromRaz; //Raz(pick.CountNum); //GoldPlo(pick); //StatObj;
if LBS.Text=''then LBS.Text:='0. '; if RBS.Text=''then RBS.Text:='0. '; if BBS.Text=''then BBS.Text:='0. '; if TBS.Text=''then TBS.Text:='0. '; if ZBS.Text=''then zBS.Text:='0. '; end; if(pick.kod=0)and(pick.id in[8,9,16,26])and(R.NachColor<>'')and(pick.BDColor<>'#')then begin pick.BDColor:='#'; if(pick.Roditel<=0)or((pick.Roditel>0)and not(GLCube[pick.Roditel].id in [14,15]))then ShowMessage('Текстура устанавлеваемого ДСП будет отличаться от общей текстуры начинки шкафа!'); LoadSQL(pick,BDKod,LoadTextere); end; {if pick.id=70 then ShowMessage(Log.Text); Log.Free; //} if pick.Kod=0 then pick.Kod:=TKod; end;
ЗАКЛЮЧЕНИЕ
Целью данной курсовой работы была разработка модели системы программного обеспечения для построения корпусной мебели «НИКА-ПРЕСТИЖ». Данная цель была достигнута и в ходе разработки были реализованы следующие диаграммы и модели: · Концептуальная модель системы · Диаграмма вариантов использования; · Диаграмма классов; · Диаграмма состояний. Все эти диаграммы очень важны при разработке программного кода дипломного проекта, они несомненно упрощают задачу разработки программного продукта.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ И ИСТОЧНИКОВ
1. Советов Б.Я., Яковлев С.А. Моделирование систем: Практикум. – М.: Высшая школа, 2005. – 224 с. 2. Советов Б.Я., Яковлев С.А. Моделирование систем: Учебник для вузов. – М.: Высшая школа, 2005. – 320 с. 3. Колесов Ю.Б Моделирование систем. – Спб.: БХВ-Петербург, 2006. — 224 с. 4. Колесов Ю.Б., Сениченков Ю.Б Моделирование систем. Практикум по компьютерному моделированию. – Спб.: БХВ-Петербург, 2005. — 282 с. 5..Киреев В.И. Численные методы в примерах и задачах— М.: Высшая школа, 2004.-184с. 6. Гладкий С. Л. Степанов Н. А. Ясницкий Л.Н. Интеллектуальное компьютерное математическое моделирование. — Пермь: - Изд-во ПГУ, 2005.— 158 с. 7.. Лоу А.М. Имитационное моделирование. — СПб.: Изд-во Питер, 2006.— 846 с - 8. Бордовский Г.А., Кондратьев А.С., Чоудери А.Д. Физические основы математического моделирования.— М.: Академия, 2005.— 316 с. 9..Мельников Ю.Б Математическое моделирование: структура, алгебра моделей, обучение построению моделей. – Екатеринбург: Урал, 2004. - 383 с. Date: 2015-07-17; view: 448; Нарушение авторских прав |