• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Отчет "акт инвентаризации"

Автор dfreezer, Жовтень 19, 2011, 16:43:54

Попередня тема - Наступна тема

0 Користувачі і 3 Гостей дивляться цю тему.

Creat

Цитата: TheOK від Березень 26, 2013, 21:48:07
Сохраняете и должно работать

Работает! Если придираться к отчёту, то есть недочёты. Нумерация сбивается, и сумма неправильная так, как лишние позици просто прячутся, НО та цель для которой он создавался достигнута!
Спасибо.

TheOK

#16
Чтобы добавить правильную нумерацию (ее вообще можно удалить), посмотрите принцип идею следующего скрипта:

var
       myLine:integer;                                           


procedure Band1OnBeforePrint(Sender: TfrxComponent);
begin
       inc(myLine);                                       


end;


begin
       myLine:=0;     
end.

Как можно увидеть, добавлена пользовательская переменная myLine, при начале работы скрипта она выставляется в 0, на masterData на событие OnBeforePring прикрутил  увеличение данной переменной на 1.
Для суммирования используется переменная MySum. В начале кода она определяется. В коде (в самом низу) выставляется в 0, а в событии перед печатью MasterData, увеличивается, если есть разница между факт. кол-вом и в в документе (остаток).

В нужные места добавьте переменные [MyLine]  и [MySum]

var
       myLine:integer;
       MySum:double;                                   


procedure Band1OnBeforePrint(Sender: TfrxComponent);
begin
       inc(myLine);
       //Âñòàâèòü âíóòðè IF
       IF(<Òîâàð.Êîëâî><><ÈíâÍàêë.Òîâàð.ÊîëâîÍàÑêëàäå>) then
       begin                               
               band1.Visible:=true;
               MySum:=MySum+(<ÈíâÍàêë.Òîâàð.ÊîëâîÍàÑêëàäå>-<Òîâàð.Êîëâî>)*<Òîâàð.Öåíà>;
       end                                                                     
       else
               band1.Visible:=false;           
                                       


end;


begin
       myLine:=0;
       MySum:=0;                               
end.


Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

Creat

  IF(<Òîâàð.Êîëâî><><ÈíâÍàêë.Òîâàð.ÊîëâîÍàÑêëàäå>) это
(<Товар.Колво><><ИнвНакл.Товар.КолвоНаСкладе>)
Спасибо! Всё получилось.
Только inc(myLine); перенёс в
    begin                               
               band1.Visible:=true;
               MySum:=MySum+(<ÈíâÍàêë.Òîâàð.ÊîëâîÍàÑêëàäå>-<Òîâàð.Êîëâî>)*<Òîâàð.Öåíà>;
       end                                                                     

А с суммой я вас обманул. Там где было совпадение по количеству разница в сумме была же тоже 0, ну и всего совпадают.

var
       myLine:integer;
       MySum:double;                                   
 
procedure Band1OnBeforePrint(Sender: TfrxComponent);
begin
     
      IF(<Товар.Колво><><ИнвНакл.Товар.КолвоНаСкладе>) then
       begin                               
               band1.Visible:=true;
               inc(myLine);                   
               MySum:=MySum+(<ИнвНакл.Товар.КолвоНаСкладе>-<Товар.Колво>)*<Товар.Цена>;
       end                                                                     
       else
               band1.Visible:=false;                                                         
end;


begin
       myLine:=0;
       MySum:=0;                               
end. 

TheOK

Не обратил внимание. Изначально, скорее всего там в суммировании не стоит опция учитывать невидимые бэнды, следовательно, они не были бы посчитаны в сумме.
Работа мешает общаться на форуме... отвлекает  :)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

Creat

Разработчикам можно добавлять этот шаблон в стандартные. Инвентаризация -  расхождения.