- 1
- 2
- 3
- 4
if i>c then c:=i;
cc:=i;
for i:=0 to 10 do while Length(strs[i])<col_nam_width+col_norm_width+col_rez_width+col_nam_width+col_norm_width do strs[i]:=strs[i]+' ';
if cc>c then c:=cc;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 22
−51
if i>c then c:=i;
cc:=i;
for i:=0 to 10 do while Length(strs[i])<col_nam_width+col_norm_width+col_rez_width+col_nam_width+col_norm_width do strs[i]:=strs[i]+' ';
if cc>c then c:=cc;
а вдруг?
−52
{$IF (current_arm_id=6) }
if (CS_data.FieldByName('TYPE_DVIG').AsInteger=38) then
begin
MessageDlg('Выберите амбулаторное посещение рядом'+#10+#13+'(c той же датой - то есть первое посещение по этой карте)',mtConfirmation,[mbok],0);
exit;
end;
IF (CS_data.FieldByName('TYPE_DVIG').AsInteger=31) or (CS_data.FieldByName('TYPE_DVIG').AsInteger=0) or
(CS_data.FieldByName('TYPE_DVIG').AsInteger=39)
then
begin
MainForm.createMDIwindow('', 'Thist_form',CS_data.FieldByName('TYPE_KART').AsInteger,
CS_data.FieldByName('ID_KART').AsInteger,
0, dm1.current_timestamp,NULL);
end else
begin
with( MainForm.createMDIwindow('Движение','TDvig_form',4,
CS_data.FieldByName('ID_DVIG').AsInteger,
CS_data.FieldByName('id_kart').AsInteger,dm1.current_timestamp,NULL) as TDvig_form) do
begin
{
tip_:=4;
id_doc_mk:=CS_data.FieldByName('id_kart').AsInteger;
id_doc:=CS_data.FieldByName('ID_DVIG').AsInteger;
_init(0); }
end;
end;
{$IFEND}
{$IF (current_arm_id=4) }
if (CS_data.FieldByName('TYPE_DVIG').AsInteger=38) then
begin
MessageDlg('Выберите амбулаторное посещение рядом'+#10+#13+'(c той же датой - то есть первое посещение по этой карте)',mtConfirmation,[mbok],0);
exit;
end;
IF (CS_data.FieldByName('TYPE_DVIG').AsInteger=31) or
(CS_data.FieldByName('TYPE_DVIG').AsInteger=39)
then
begin
if DM1.Get_Sanction(CS_data.FieldByName('TYPE_KART').AsInteger,
CS_data.FieldByName('ID_KART').AsInteger,current_user_id,[3]) then
MainForm.createMDIwindow('','Treg_form',CS_data.FieldByName('TYPE_KART').AsInteger,
CS_data.FieldByName('ID_KART').AsInteger,
// CS_data.FieldByName('pac_id').AsInteger,
CS_data.FieldByName('ID_DVIG').AsInteger,
dm1.current_timestamp,NULL)
else MessageDlg('Вы не имеете право выполнять это действие!',mtInformation,[mbok],0);
end else
begin
MainForm.createMDIwindow('Движение','TDvig_form',4,
CS_data.FieldByName('ID_DVIG').AsInteger,
CS_data.FieldByName('id_kart').AsInteger,dm1.current_timestamp,null);
end;
{$IFEND}
Переопределение метода через current_arm_id
−50
s:=LongTimeFormat;
LongTimeFormat:='h:mm';
read_spr_cs2.FieldByName('time_str').AsString:=TimeToStr(dt);
LongTimeFormat:=s;
−53
function get_filenamebyid(req_file_id_in:integer;is_answer:boolean;X_MESS_SWAP_path:string):string;
var FILENAME_ONSERVER,FILE_PATH_ONSERVER,s,ss:string;
req_file_id:integer;
begin //sdsd
req_file_id:=abs(req_file_id_in);
s:=inttostr(req_file_id div (1000*1000*1000));
while length(s)<3 do s:='0'+s;
ss:=s;
s:=inttostr(req_file_id div (1000*1000));
while length(s)<3 do s:='0'+s;
ss:=ss+'\'+s;
s:=inttostr(req_file_id div (1000));
while length(s)<3 do s:='0'+s;
ss:=ss+'\'+s;
FILE_PATH_ONSERVER:=ss;
FILENAME_ONSERVER:=inttostr(req_file_id)+ ifthen(is_answer,'.answer','')+'.xml';
result:=X_MESS_SWAP_path+FILE_PATH_ONSERVER+'\'+ FILENAME_ONSERVER;
end;
Предлагаю отрефакторить
−2
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/1|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/1|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/2|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/2|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
...
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/9|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/9|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|<span style="color:red">Превышено количество включений — 1024</span>}}
Циклы нельзя, никаких переменных нельзя, только параметры. Казалось бы, ничего страшного — так и рекурсии тоже нельзя!
−1
Func<int,int> fact = (int i_in) => i_in;
fact = (int i_in) =>
{
if (i_in>1) return (fact(i_in-1)*i_in);
else return (1);
};
−49
select row_idx.row,row_idx.row_name,
sum(
case
when exists(select R_USERS_DOLGN.ID_REC
from R_USERS_DOLGN
where R_USERS_DOLGN.USER_ID = USERS.ID_USER) then 1
else 0
end) SHTAT,
---и так далее---
---...---
sum(
case
when exists(select R_USERS_DOLGN.ID_REC
from R_USERS_DOLGN
where R_USERS_DOLGN.USER_ID = USERS.ID_USER) and TAB_PLACE.TYPE_PLACE in (2, 3) then 1
else 0
end) STACZAN_v from USERS
left outer join R_USERS_DOLGN on R_USERS_DOLGN.user_id = USERS.id_user
left outer join SPR_DOLGN on SPR_DOLGN.ID_DOLGN=R_USERS_DOLGN.DOLGN_ID and
R_USERS_DOLGN.LPID = USERS.LPID and
R_USERS_DOLGN.BEG_WORK <= :O_BEG and
R_USERS_DOLGN.END_WORK >= :O_END
join TAB_PRVD on TAB_PRVD.ID_PRVD= SPR_DOLGN.PRVD_ID
right outer join (select 1 row,'Врачи – всего' row_name from rdb$database
union select 2 row,'Специалисты с высшим немедицинским образованием (т.1100 стр.122)' row_name from rdb$database
union select 3 row,'Средний медперсонал – всего (т.1100 стр.128)' row_name from rdb$database
union select 4 row,'Провизоры (т.1100 стр.175)' row_name from rdb$database
union select 5 row,'Фармацевты (т.1100 стр.176)' row_name from rdb$database
union select 6 row,'Младший медперсонал (т.1100 стр.177)' row_name from rdb$database
union select 7 row,'Прочий персонал (т.1100 стр.179)' row_name from rdb$database
union select 8 row,'Всего должностей (т.1100 стр.184)' row_name from rdb$database) row_idx
on (row_idx.row=1 and (spr_dolgn.group_dolgn=1))
or (row_idx.row=2 and ', '||(select first (1) spec_list
from spr_mkb_group_tabl_spec where num_pp=122)||',' like '%, '||tab_prvd.id_prvd||',%')
or (row_idx.row=3 and (spr_dolgn.group_dolgn=2))
or (row_idx.row=4 and (tab_prvd.id_prvd in (3,6,111,112,5003,5004,5005)))
or (row_idx.row=5 and (spr_dolgn.id_dolgn=307))
or (row_idx.row=6 and (spr_dolgn.group_dolgn=3))
or (row_idx.row=7 and (spr_dolgn.group_dolgn=4))
or (row_idx.row=8)
left outer join TAB_PLACE on TAB_PLACE.ID_PLACE = R_USERS_DOLGN.PODR_ID
where USERS.LPID = '+inttostr(LPU_CURRENT_ID)+
' group by 1,2
Что-то меня накрыло. Вообще-то для таких вещей у нас тут есть отдельная таблица. В крайнем случае можно было сделать временную таблицу.
−51
if (class_name='Tnabl_Form') then
begin
nabl_Form:=Tnabl_Form.create(Application);
with nabl_Form do
begin
Caption := 'Наблюдение '+dop_caption;
tool_btn_task_bar:=
create_tb(1,Handle,'Наблюдение','Наблюдение '+dop_caption);
Name:=tool_btn_task_bar.Name;
about_kart_Frame1.id_med_kart:=id_parent;
end;
nabl_Form.id_doc:=id_doc;
nabl_Form._init;
Result:=nabl_Form;
end;
if class_name='To_spiski_5201_Form' then
begin
o_spiski_5201_Form:=To_spiski_5201_Form.create(Application);
o_spiski_5201_Form.FormStyle:=fsMDIChild;
o_spiski_5201_Form.tool_btn_task_bar:=
create_tb(0, o_spiski_5201_Form.Handle,'Списки больных','Списки больных'+dop_caption);
o_spiski_5201_Form.Name:=o_spiski_5201_Form.tool_btn_task_bar.Name;
result:=o_spiski_5201_Form;
end;
if (class_name='Td_diagn_Form') then
begin
d_diagn_Form:=Td_diagn_Form.create(Application);
with d_diagn_Form do
begin
Caption := 'Постановка диагноза '+dop_caption;
tool_btn_task_bar:=
create_tb(1,Handle,'Диагноз','Постановка диагноза '+dop_caption);
Name:=tool_btn_task_bar.Name;
about_kart_Frame1.id_med_kart:=id_parent;
end;
d_diagn_Form.id_doc:=id_doc;
d_diagn_Form._init;
Result:=d_diagn_Form;
end;
//И ещё около 600 строк в том же духе
Наследование? Полиморфизм? ООП? Это слишком сложно!
−17
try
if (cs_parentMK.delta=null) and (changes_flag=false) then changes_flag:= false
else changes_flag:=true;
except
if changes_flag<>true then changes_flag:=false;
end;
Вдруг boolean как здесь: http://govnokod.ru/3274
−50
...
TMAINForm = class (TForm)
...
N50:TMenuItem;
N51:TMenuItem;
N52:TMenuItem;
...
end;
implementation
{$include ../common/common_main.inc}
После 10 лет развития проекта возникла потребность вынести куда-то повторяющийся код.