私は、このスプレッドシートの作成を自動化するvb.netのWinFormsのアプリケーションを作成するよう求めてきた:明らかにフォームに複数のデータフィールドを入力する適切な方法は何ですか?
、スプレッドシートを手動でタスクを壊すバックであることを作成します。
私は非常にデータの個々のフィールドを引き出すためにSQLを書くのが楽ですが、もっと良い方法があると信じています。そのような方法は144の質問を必要とするでしょう!
フィールドごとに個別のラベルを持つフォームを作成するか、またはグリッドビューを使用すると考えました。どちらもエンドユーザーにとって受け入れられるだろうが、とにかく最終製品のように見えるデータセットを作成するためにどのようにクエリを書くかは分からない。
私は誰にもコードを書く必要はありません。私が助けを求めているのは、このタスクをどのように攻撃すべきかという概念です。
ここでは、スプレッドシートの最初の週のビジネスユニット#1のフィールドを返すクエリを示します。私はそれがあまり役に立たないと思っていますが、私はこれを追加して、これに少し努力していることを示しています。
DECLARE @WeekEnding AS DATE
DECLARE @DIV AS INT
SET @WeekEnding = '11/13/2015'
SET @DIV = 20
-- A/R downpayments OPCH
SELECT
SUM(OPCH.DocTotal - OPCH.VatSum - OPCH.TotalExpns) AS 'ARDownPaymentInvoice'
FROM OPCH
LEFT JOIN INV1 ON OPCH.DocEntry = INV1.DocEntry AND INV1.VisOrder = 0
LEFT JOIN OITM ON INV1.ItemCode = OITM.ItemCode
LEFT JOIN OITB ON OITM.ItmsGrpCod = OITB.ItmsGrpCod
LEFT JOIN OACT AS CurrCode (NOLOCK) ON OITB.RevenuesAc = CurrCode.AcctCode
WHERE DATEPART(WEEK, OPCH.DocDate) = DATEPART(WEEK, @WeekEnding) AND YEAR(OPCH.DocDate) = YEAR(@WeekEnding)
AND CurrCode.Segment_4 = @DIV
-- Credits ORIN
SELECT
SUM(ORIN.DocTotal - ORIN.VatSum - ORIN.TotalExpns) * -1 AS 'Credit'
FROM ORIN
LEFT JOIN INV1 ON ORIN.DocEntry = INV1.DocEntry AND INV1.VisOrder = 0
LEFT JOIN OITM ON INV1.ItemCode = OITM.ItemCode
LEFT JOIN OITB ON OITM.ItmsGrpCod = OITB.ItmsGrpCod
LEFT JOIN OACT AS CurrCode (NOLOCK) ON OITB.RevenuesAc = CurrCode.AcctCode
WHERE DATEPART(WEEK, ORIN.DocDate) = DATEPART(WEEK, @WeekEnding) AND YEAR(ORIN.DocDate) = YEAR(@WeekEnding)
AND CurrCode.Segment_4 = @DIV
--Invoices
SELECT
SUM(OINV.DocTotal - OINV.VatSum - OINV.TotalExpns) AS 'Invoice'
FROM OINV
LEFT JOIN INV1 ON OINV.DocEntry = INV1.DocEntry AND INV1.VisOrder = 0
LEFT JOIN OITM ON INV1.ItemCode = OITM.ItemCode
LEFT JOIN OITB ON OITM.ItmsGrpCod = OITB.ItmsGrpCod
LEFT JOIN OACT AS CurrCode (NOLOCK) ON OITB.RevenuesAc = CurrCode.AcctCode
WHERE DATEPART(WEEK, OINV.DocDate) = DATEPART(WEEK, @WeekEnding) AND YEAR(OINV.DocDate) = YEAR(@WeekEnding)
AND CurrCode.Segment_4 = @DIV`
ありがとうございます。これを達成するための
動的SQLを使用して基本的にデータグリッドを作成し、そのデータグリッドをgridviewに表示することを考えています。それぞれの列が必要な日付になるように、動的SQLを使用する必要があります。これは毎月変わるでしょう。これは、ユーザーの入力が最小限に抑えられます。 – logixologist
私は質問が下に投票されて参照してください参照してください。質問をより良くするために他に何ができるのか教えてください。私は喜んでくれるでしょう。 – user3511334
私は動的SQLのアイデアを追求する場合、私は12列の一時テーブルを作成することができます。次に、日付の行を選択してtempテーブルに挿入し、クレジット番号の行を作成してtempテーブルなどに挿入するSQLを作成することができます。結果は、グリッドにバインドできる完全なデータセットになります。 – user3511334