На главную   На главную   Форумы Новости Документация Скачать Купить  
Регистрация  
Система Allegro
Oб Allegro Характеристики Пример конфигурации Документация База ошибок Развитие
Версия для печати К списку книг Вернуться к оглавлению Предыдущий параграф Следующий параграф
Поиск по книге

Глава 12. РАЗРАБОТКА ОКОННОГО ИНТЕРФЕЙСА

Компонент запроса балансов TBalance

Этот компонент используется самой системой Allegro для запроса Баланса компании и Разверток. Вы можете также с успехом использовать этот компонент для своих целей, например, для построения косвенных отчетов на основе балансовых показателей.


Свойства Published  
ObjectBalance Имеет значение при запросе балансов аналитических регистров. Если установлено True, то баланс запрашивается для аналитического объекта, предварительно указанного в свойстве Object_id. Если False, то баланс запрашивается для всех объектов.
Transaction Транзакция

События  
OnProgress TProgessEvent = procedure(Sender: TObject; const Position , Max: Integer) of object;

Свойства Public тип readonly  
Dates свойство-массив элементов типа TDateTime readonly при вызове метода QueryBalance для каждого элемента массива будет запрошен отдельный баланс на дату, указанную в этом элементе.
DateCount integer readonly Количество элементов в свойстве-массиве Dates
Object_id integer   ID аналитического объекта, используется для запроса баланса аналитического регистра для одного объекта

Методы, подготовки запросов  
function AddDate(Value: TDateTime): integer; Добавляет значение в свойство-массив дат Dates. Возвращает номер добавленного элемента.
procedure ClearTotals(acc_id: integer); Освобождает внутренний буфер, в котором хранятся результаты запроса итогов , сгруппированных по объектам счета acc_id
procedure ClearAllTotals; Освобождает все буферы, в которых хранятся результаты итогов, сгруппированных по объектам
procedure Clear; Очищает все буферы и массив дат Dates
function SaldoToReg(Acc_id: integer): integer ; возвращает по acc_id сальдо-счета acc_ id его регистра

Методы, запрашивающие данные  
procedure QueryRates; Запрашивает курсы слоев, ближайшие к датам в массиве Dates
procedure QueryBalance; Запрашивает балансы на даты, хранящиеся в массиве Dates
procedure QueryTotals(acc_id: integer; differential : boolean); Запрашивает итоги по объектам счета acc_id на даты , хранящиеся в массиве Dates. Если differential=True , то запрашиваются дифференциальные итоги (разницы между итогами на соседние даты в Dates)

Методы для чтения данные из внутренних буферов компонента  
   
function RateOfExchange(Index, layer_id: integer ): Extended;  
function CheckRates(layer_id: integer): integer ; Проверяет, присутствуют ли в результатах запроса курсов курсы слоя layer_id на все даты, хранящиеся в Dates . Если все в порядке, возвращается –1. Если какой-то курс отсутствует или равен нулю, то возвращается его индекс
5 методов для чтения из внутреннего буфера готовых результаты запроса для элемента массива дат с индексом Index, для счета acc_id, слоя layer_id, типа сальдо saldo_kind. Если SumLayers = True, то суммирует все слои, конвертируя по кросс-курсам в валюту слоя layer_id. Параметр saldo _kind = 0 используется для счетов дебетового развернутого сальдо , saldo_kind = 1 для счетов кредитового развернутого сальдо, а saldo_kind = -1 для всех обычных счетов .
function Debit(Index, acc_id, layer _id, saldo_kind: integer; SumLayers : boolean): Extended; Значение дебет-оборота от начала периода.
function Credit(Index, acc_id, layer _id, saldo_kind: integer; SumLayers : boolean): Extended; Значение кредит-оборота от начала периода.
procedure DebitAndCredit(Index, acc_id, layer _id, saldo_kind: integer; SumLayers : boolean; var ADebit, ACredit: Extended); Значение дебет и кредит-оборотов от начала периода.
function Balance(Index, acc_id, layer _id, saldo_kind, root_saldo : integer; SumLayers: boolean): Extended; Значение остатка по счету. Используйте root_saldo = 1 для «правых» счетов. Если параметр root_saldo = 1, то возвращается разница кредит-оборот минус дебет-оборот от начала периода . Если параметр root_saldo <> 1, то возвращается дебет-оборот минус кредит-оборот от начала периода.
procedure Totals(Index, acc_id, layer _id, saldo_kind, aobject_id : integer; SumLayers: boolean; var ADebit , ACredit: Extended); Значение итогов для конкретного объекта object_id на счете acc_id. Во внутреннем буфере хранятся результаты запроса для всех объектов этого счета.

Последовательность работы с компонентом TBalance следующая.

Подготовка:

  1. Очистить все буферы методом Clear,
  2. Подготовить массив дат вызовами метода AddDate,
  3. Запросить курсы всех слоев метода QueryRates,
  4. Проверить наличие курсов для каждого слоя в отдельности вызовами метода CheckRates,

Далее,

Если нужно получить баланс(ы) :

  1. Запросить все балансы методом QueryBalance,
  2. Считать результаты какими-нибудь методами чтения, например, DebitAndCredit

Если нужно получить запрос итогов, сгруппированных по объектам, то для каждого счета следует:

  1. Очистить буфер методом ClearTotals
  2. Вызвать QueryTotals для конкретного счета
  3. Считать результаты вызовами метода Totals
  4. Желательно потом очистить буфер методом ClearTotals, чтобы не занимать лишнюю память.

Для работы с компонентом TBalance нужно заранее иметь список счетов и объектов, для которых Вы хотите получить финансовые данные . Для этой цели конфигурирующий может использовать обычные запросы к системным таблицам.

Как правило компонент TBalance используется для построения косвенных отчетов на основе данных из баланса, например, Отчета о движении денежных средств или Отчета о движении капитала.



Система Allegro. Руководство разработчика Наверх