- 12, Oct 2015
- #1
Доброе время суток, уважаемые!
Есть старый проект по зарплате, писан еще в 2005 году на Delphi 6.
Отчеты генерируются в html (зеленый еще тогда был). Все хорошо, все работает, все открывает как надо.
Дали задание переделать некоторые формулы, усложнить кое что и т.д. - работа сделана. Решил изучить FastReport.
Добавил в свой проект по зарплате еще выбор отчета FastReport.
Все отлично все как надо.
Построил отчеты и т.д. НО... вот один отчет, который с условиями вывода формул - не знаю как бы его проще и доступнее сделать. Суть задачи: Есть премия начисления за сверхважность и не сверхважность, все это храниться в одной таблице (вывод отчета)
В вывод отчета попадает условие Sverh = True или Sverh = False
TbKatMgr.First;
while not TbKatMgr.Eof do
begin
if TbKatMgr['sverh']=true then
begin
writeln(f, '<tr bgcolor=#FFCCCC align=center><td align=center>+'+IntToStr(i)+'<td align=left> '+TbKatMgr['name']+'<td align=right>'+FloatToStr(TbKatMgr['plan'])+' <td align=right>'+FloatToStr(TbKatMgr['prod'])+' <td align=center>'+FloatToStr(TbKatMgr['ProcVKM'])+'%</td>');
writeln(f, '<td>'+IntToStr(TbKatMgr['NDirS'])+'ð.</td><td>'+IntToStr(TbKatMgr['NTovS'])+'ð.</td><td>'+IntToStr(TbKatMgr['PDirS'])+'ð.</td><td>'+IntToStr(TbKatMgr['PTovS'])+'ð.</td>');
ndirit:=ndirit+TbKatMgr['NDirS'];
pdirit:=pdirit+TbKatMgr['PDirS'];
ntovit:=ntovit+TbKatMgr['NTovS'];
ptovit:=ptovit+TbKatMgr['PTovS'];
end else if TbKatMgr['sverh']=false then
begin
writeln(f, '<tr align=center><td bgcolor=#eeeeee align=center>'+IntToStr(i)+'<td align=left> '+TbKatMgr['name']+'<td align=right>'+FloatToStr(TbKatMgr['plan'])+' <td align=right>'+FloatToStr(TbKatMgr['prod'])+' <td align=center>'+FloatToStr(TbKatMgr['ProcVKM'])+'%</td>');
writeln(f, '<td>'+IntToStr(TbKatMgr['NDir'])+'ð.</td><td>'+IntToStr(TbKatMgr['NTov'])+'ð.</td><td>'+IntToStr(TbKatMgr['PDir'])+'ð.</td><td>'+IntToStr(TbKatMgr['PTov'])+'ð.</td>');
ndirit:=ndirit+TbKatMgr['NDir'];
pdirit:=pdirit+TbKatMgr['PDir'];
ntovit:=ntovit+TbKatMgr['NTov'];
ptovit:=ptovit+TbKatMgr['PTov'];
end;
i:=i+1;
TbKatMgr.Next;
end;
есть ли возможность подобные отчеты выводить в FastReport используя FastScript например? Я с этим никогда не сталкивался, кто либо делал подобное?
и что то такое должно получится при выводе в FastReport
Дали задание переделать некоторые формулы, усложнить кое что и т.д. - работа сделана. Решил изучить FastReport.
Добавил в свой проект по зарплате еще выбор отчета FastReport.
Все отлично все как надо.
Построил отчеты и т.д. НО... вот один отчет, который с условиями вывода формул - не знаю как бы его проще и доступнее сделать. Суть задачи: Есть премия начисления за сверхважность и не сверхважность, все это храниться в одной таблице (вывод отчета)
В вывод отчета попадает условие Sverh = True или Sverh = False
TbKatMgr.First;
while not TbKatMgr.Eof do
begin
if TbKatMgr['sverh']=true then
begin
writeln(f, '<tr bgcolor=#FFCCCC align=center><td align=center>+'+IntToStr(i)+'<td align=left> '+TbKatMgr['name']+'<td align=right>'+FloatToStr(TbKatMgr['plan'])+' <td align=right>'+FloatToStr(TbKatMgr['prod'])+' <td align=center>'+FloatToStr(TbKatMgr['ProcVKM'])+'%</td>');
writeln(f, '<td>'+IntToStr(TbKatMgr['NDirS'])+'ð.</td><td>'+IntToStr(TbKatMgr['NTovS'])+'ð.</td><td>'+IntToStr(TbKatMgr['PDirS'])+'ð.</td><td>'+IntToStr(TbKatMgr['PTovS'])+'ð.</td>');
ndirit:=ndirit+TbKatMgr['NDirS'];
pdirit:=pdirit+TbKatMgr['PDirS'];
ntovit:=ntovit+TbKatMgr['NTovS'];
ptovit:=ptovit+TbKatMgr['PTovS'];
end else if TbKatMgr['sverh']=false then
begin
writeln(f, '<tr align=center><td bgcolor=#eeeeee align=center>'+IntToStr(i)+'<td align=left> '+TbKatMgr['name']+'<td align=right>'+FloatToStr(TbKatMgr['plan'])+' <td align=right>'+FloatToStr(TbKatMgr['prod'])+' <td align=center>'+FloatToStr(TbKatMgr['ProcVKM'])+'%</td>');
writeln(f, '<td>'+IntToStr(TbKatMgr['NDir'])+'ð.</td><td>'+IntToStr(TbKatMgr['NTov'])+'ð.</td><td>'+IntToStr(TbKatMgr['PDir'])+'ð.</td><td>'+IntToStr(TbKatMgr['PTov'])+'ð.</td>');
ndirit:=ndirit+TbKatMgr['NDir'];
pdirit:=pdirit+TbKatMgr['PDir'];
ntovit:=ntovit+TbKatMgr['NTov'];
ptovit:=ptovit+TbKatMgr['PTov'];
end;
i:=i+1;
TbKatMgr.Next;
end;
и что то такое должно получится при выводе в FastReport