Правильная ссылка на эту страницу
http://az-design.ru/Projects/AzBook/AZMicro/AZMicro39.shtml

Отображение "Оборотной ведомости" с ссуммированием

       Для отображения новой оборотной ведомости немного изменим управляющие элементы.
       — удалим кнопку "Выполнить";
       — добавим счетчик уровней. Для этого возьмем с вкладки "Samples" компонент TSplinEdit и положим его на ToolBar;
       — добавим ComboBox для выбора необходимого действия.
       В остальном все остается по прежнему.
       Для ComboBox нужно изменить следующие свойства:
       — Name=cbxSelTurnSheet;
       — Text='Выберите действие';
       — в свойстве Items нужно последовательно добавить следующие строки: 'Оборотная ведомость', 'План счетов', 'Бухгалтерский Баланс', 'Отчет о прибылях';
       — и, наконец, для события onSelect создать процедуру cbxSelTurnSheetSelect.
       То, что получилось показано ниже:

разработка Оборотной Ведомости
Рис.AzMicro014 — разработка "Оборотной Ведомости"

       Теперь можно наполнить процедуру содержанием.

procedure TForm1.cbxSelTurnSheetSelect(Sender: TObject);
Var
  sBeg,sEnd,sLev : String;
  dBeg,dEnd :TDate;
begin
   dBeg := dtDateBeg.Date;     sBeg := ''''+DateToStr(dBeg)+'''';
   dEnd := dtDateEnd.Date;     sEnd := ''''+DateToStr(dEnd)+'''';
   sLev := IntToStr(sedLevel.Value);

       Сначала подготовим входные параметры, преобразовав их в строковый вид.

   If trExeTemp.Active then trExeTemp.Commit;
   trExeTemp.Active := true;
   qrExeTemp.Close;
   qrExeTemp.SQL.Clear;
Case cbxSelTurnSheet.ItemIndex of
  0 : begin
      qrExeTemp.SQL.Add('Execute procedure TurnSheetCore('+sBeg+','+sEnd+')');
      end;

       Для "Оборотной ведомости" достаточно выполнить процедуру TurnSheetCore с соответствующими параметрами

  1 : begin
      qrExeTemp.SQL.Add('Execute procedure TurnSheetCore('+sBeg+','+sEnd+')');
      qrExeTemp.ExecSQL;
      trExeTemp.Commit;    trExeTemp.Active := true;
      qrExeTemp.Close; qrExeTemp.SQL.Clear;
      qrExeTemp.SQL.Add('Execute procedure TurnSum(0,'+sLev+')');
      end;
  2 : begin
      qrExeTemp.SQL.Add('Execute procedure TurnSheetCore('+sBeg+','+sEnd+')');
      qrExeTemp.ExecSQL;
      trExeTemp.Commit;    trExeTemp.Active := true;
      qrExeTemp.Close; qrExeTemp.SQL.Clear;
      qrExeTemp.SQL.Add('Execute procedure TurnSum(1,'+sLev+')');
      end;
  3 : begin
      qrExeTemp.SQL.Add('Execute procedure TurnSheetCore('+sBeg+','+sEnd+')');
      qrExeTemp.ExecSQL;
      trExeTemp.Commit;    trExeTemp.Active := true;
      qrExeTemp.Close; qrExeTemp.SQL.Clear;
      qrExeTemp.SQL.Add('Execute procedure TurnSum(2,'+sLev+')');
      end;

       Для остальных случаев, после выполнения процедуры TurnSheetCore, выпоняется процедура ссуммирования TurnSum параметрами, которые выбирают номер дерева и уровень ссуммирования.

end;
  qrExeTemp.ExecSQL;   trExeTemp.Commit;
  qrTurnSheet.Close;
  qrTurnSheet.Open;
end;

       Результаты можно манипуляций показаны ниже:

ссуммирование
Рис.AzMicro015 — ссуммирование "Оборотной ведомости" по 2 уровню

ссуммирование Оборотной ведомости как Бухгалтерского баланса
Рис.AzMicro016 — ссуммирование "Оборотной ведомости" как Бухгалтерского баланса

 

Архангельский Андрей




<<< Пред. Оглавление
Начало раздела
След. >>>

Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:56 MSK


Постоянный адрес статьи:
http://az-design.ru/Projects/AzBook/AZMicro/AZMicro39.shtml