Здравствуйте!
Необходимо, чтобы сумма по Операциям попадала в поле Сумма в Документы. Причем, если Операция с типов Расход отнималась от Прихода и эта сумма попада в документы. Я создала запрос sq_SummCashflow
SELECT
SUM([tbl_Cashflow].[Amount]) AS [Amount]
FROM
[dbo].[tbl_Cashflow] AS [tbl_Cashflow]
WHERE([tbl_Cashflow].[TypeID] = :CashflowType AND
EXISTS
(SELECT
[tbl_Invoice].[ID] AS [ID]
FROM
[dbo].[tbl_Invoice] AS [tbl_Invoice]
WHERE([tbl_Cashflow].[Invoice] = [tbl_Invoice].[ID] AND
[tbl_Invoice].[Path] LIKE '%' + :InvoiceID + '%')))
И ds_SummCashflow поле с дробным значение Amount.
Далее на событие btnOKOnClick для Документа, вызываю свой скрипт
var Dataset = dlData.Dataset;
var InvoiceID = Dataset.DataFields('ID');
SummCashflow(InvoiceID, Dataset)
Скрипт следующий:
function SummCashflow(InvoiceID, InvoiceDataset){
Finances = new Object();
Finances.Cashflow = new Object();
Finances.Cashflow.Income = new Object();
Finances.Cashflow.Outcome = new Object();
var Income = GetSystemParameterValueEx('Income');
var Outcome = GetSystemParameterValueEx('Outgo');
if (!Assigned(InvoiceDataset)) {
InvoiceDataset = GetSingleItemByCode('ds_Invoice', 'CalculateSummCashflow');
ApplyDatasetFilter(InvoiceDataset, 'ID', InvoiceID, true);
RefreshDataset(InvoiceDataset);
}
Finances.Cashflow.Income.Estimated = CalculateInvoiceCashflow(InvoiceID, Income, true);
Finances.Cashflow.Income.Actual = CalculateInvoiceCashflow(InvoiceID, Income, false);
Finances.Cashflow.Outcome.Estimated = CalculateInvoiceCashflow(InvoiceID, Outcome, true);
Finances.Cashflow.Outcome.Actual = CalculateInvoiceCashflow(InvoiceID, Outcome, false);
}
function CalculateInvoiceCashflow(InvoiceID, IsEstimated, Cashflow) {
var Cashflow;
var Dataset = GetSingleItemByCode('ds_SummCashflow', 'CalculateInvoiceCashflow');
var Parameters = Dataset.SelectQuery.Parameters;
ApplyDatasetFilter(Dataset, 'InvoiceID', InvoiceID, true);
Dataset.Open(); //Ошибка
try {
Cashflow = Dataset.ValAsFloat('Amount');
} finally {
Dataset.Close();
ApplyDatasetFilter(Dataset, 'InvoiceID', null, false);
}
return Cashflow;
}
Для начала я хотела чтобы он просто сумму мне подтягивал, без вычитания Приход-Расход. Но возникает ошибка, следующая Ошибка открытия источника данных "ds_SummCashflow". Could not convert variant of type (Dispatch) into type (OleStr). Я просмотрела поле Summa все вроде верно, с типом поля. Не могу понять в чем может быть проблема?