52
При вводе сумм затрат используется событие TstringList для
корректировки ввода числа и автоматического подсчета Всего на 1 ед
продукции и с учетом торговой наценки. Для этого используется следующий
программный код:
procedureTfrmCalculation.stStZatratKeyPress(Sender: TObject;
varKey: Char);
varr:integer;
begin
r:=stStZatrat.RowCount;
with Sender as TStringGrid do
begin
if key=#13 then begin
r:=row;
if r<rowcount-1 then
Selection :=TGridRect(Rect(2, r+1, 2, r+1))
else
Selection :=TGridRect(Rect(2, 1, 2, 1));
formatandsumm ;
EditorMode:=true;
exit;
end;
if Col = 2 then begin
if key = '.' then key:= ',';
if (key = DecimalSeparator) and (Length(Cells[Col, Row]) = 0) or
not (key in ['0'..'9', DecimalSeparator, #8]) then key := #0;
if (key=DecimalSeparator) and
(Pos(DecimalSeparator,Cells[Col, Row]) > 0) then key:=#0; end;
end;
end;
Процедура автоматического подсчета сумм:
procedureTfrmCalculation.Formatandsumm() ;
vari,j:integer;sum:double;
begin
sum:=0;
for i:=1 to stStZatrat.RowCount-1 do begin
if length(trim(stStZatrat.Cells[2,i]))=0 then stStZatrat.Cells[2,i]:='0,00' ;
stStZatrat.Cells[2,i]:=formatfloat('0.00',strtofloat(stStZatrat.Cells[2,i]) ) ;
sum:=sum+strtofloat(stStZatrat.Cells[2,i]);
end;
txtSumm.Text:=formatfloat('0.00',sum ) ;