Member 12654313 Ответов: 1

Как делать Открытие и закрытие ... Пожалуйста помочь


Я столкнулся с проблемой в crystal reports. Я не могу получить или решить проблему начального баланса, который является закрытием баланса предыдущего дня. Позвольте мне показать вам мою структуру книги в ms sql.

[dbo].[ledgerreport](
[ledgerautonumber] [int] IDENTITY(1,1) NOT NULL,
[serialno] [varchar](50) NULL,
[accountiddr] [varchar](50) NULL,
[accountnamedr] [varchar](50) NULL,
[accountidcr] [varchar](50) NULL,
[accountnamecr] [varchar](50) NULL,
[dateledger] [date] NULL,
[voucherid] [varchar](50) NULL,
[debitamount] [decimal](18, 2) NULL,
[creditamount] [decimal](18, 2) NULL,
[description] [varchar](50) NULL,
[closingbalance] [decimal](18, 2) NULL,
[unit] [varchar](50) NULL


и мой код, который я использую в vb.net

<pre>Try
        con = New SqlConnection(appx.myconnection)
        con.Open()
        Dim cb2 As String = "insert into ledgerreport(serialno,dateledger,voucherid,debitamount,creditamount,description,closingbalance,unit,accountiddr,accountnamedr,accountidcr,accountnamecr) VALUES (@d100,@d101,@d102,@d103,@d104,@d105,@d106,@d107,@d108,@d109,@d110,@d111)"
        cmd = New SqlCommand(cb2)
        cmd.Connection = con
        ' Prepare command for repeated execution
        cmd.Prepare()
        ' Data to be inserted
        For Each row As DataGridViewRow In DataGridView1.Rows
            If Not row.IsNewRow Then
                cmd.Parameters.AddWithValue("@d100", row.Cells(0).Value) 'serial no
                cmd.Parameters.AddWithValue("@d101", row.Cells(3).Value) 'dateledger
                cmd.Parameters.AddWithValue("@d102", row.Cells(2).Value) 'voucher id
                cmd.Parameters.AddWithValue("@d103", row.Cells(7).Value) 'debit amount
                cmd.Parameters.AddWithValue("@d104", row.Cells(8).Value) 'credit amount
                cmd.Parameters.AddWithValue("@d105", row.Cells(6).Value) 'description
                cmd.Parameters.AddWithValue("@d106", row.Cells(13).Value) 'closing balance
                cmd.Parameters.AddWithValue("@d107", row.Cells(1).Value) 'unit
                cmd.Parameters.AddWithValue("@d108", row.Cells(4).Value) 'accountiddr
                cmd.Parameters.AddWithValue("@d109", row.Cells(5).Value) 'accoutnamedr
                cmd.Parameters.AddWithValue("@d110", AccountidcrTextEdit.Text) 'accountidcr
                cmd.Parameters.AddWithValue("@d111", cashaccounttxtedit.Text) ' accountnamecr


                cmd.ExecuteNonQuery()
                cmd.Parameters.Clear()
            End If
        Next
        con.Close()
    Catch ex As Exception
        MsgBox(ex.Message & " " & "Error Code : CPV-LG-002", vbOKOnly + vbCritical, "Error Code : CPV-LG-002")
    End Try


теперь то, что я делаю здесь, - это всякий раз, когда пользователь делает транзакцию в денежном платеже, код книги сохраняет детали в таблице sql. А в отчете я использую поля и параметры для создания отчета. но я не могу получить начальный баланс, который является заключительным балансом моего отчета за последний день. Здесь я сталкиваюсь с проблемой. как я могу получить начальный баланс, используя мои вышеуказанные коды.

пожалуйста, направьте меня и помогите решить эту проблему

позвольте мне объяснить подробнее

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

предположим, у меня есть два счета

наличные в кассе 10 000

поставщик 0

теперь счет поставщика равен 0, и я взял у него какой-то материал стоимостью 5000 долларов. теперь я должен заплатить ему

так что я пройду запись

счет поставщика 5000

наличные в кассе 5000

теперь начальный баланс поставщика был равен 0 в его бухгалтерской книге

после вышеуказанного входа баланс закрытия будет равен 5000

точно так же, если я открою кассовую книгу, она даст мне начальный баланс = 5000

после входа он даст мне закрытие баланса = 0

вот что мне нужно

так что я могу использовать ваш код

Спасибо

Что я уже пробовал:

я попробовал вышеописанные коды, но я совершенно не знаю, как это сделать на самом деле.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Вам нужны "даты" или "периоды".

Если текущий период равен 2020-02 (февраль), то "начальный баланс" за 2020-02-это сумма всех записей до этого периода (даты до 2020-02).

Текущий начальный баланс = деятельность за предыдущий период + начальный баланс за предыдущий период (который является заключительным балансом за предшествующий период и т. д.). Или общий срок службы на сегодняшний день, который необходим только в том случае, если у вас нет надлежащего закрытия периода.


Member 12654313

Привет Джерри

Спасибо за ваш комментарий и я буду следовать вашим инструкциям но у меня есть вопрос

я попробовал одну вещь. я сделал одну таблицу бухгалтерской книги в sql.

теперь в этой таблице то, что я делаю, - это сохранение заключительного баланса после закрытия дня, и я делаю это вручную, и тот же самый заключительный баланс я сохраняю заключительный баланс, как открытие на следующий день. возможно ли, что я делаю это, кодируя в vb.net после каждой записи ?

теперь смотрите на 1-й рисунок . я сохраняю остаток наличных денег вручную после закрытия дня или вы можете сказать после каждой записи в модуле оплаты наличными. возможно ли, что я могу сделать это из vb.net а на 2-й картинке баланс открывается, и после закрытия входов наступило закрытие, и это будет открытие следующего дня .

ссылка на картинку

https://i.stack.imgur.com/fI6lO.png
https://i.stack.imgur.com/dQi6P.png