4

私が行っているプロジェクトのタイムシート アプリをコーディングしようとしていますが、この 1 か月のほとんどの間、システムの重要な部分を進めていません。月曜から日曜までの毎週のビューを介して、データを編集してアプリに追加できるようにする必要があります。毎日入力するデータを返すことができる SQL (サーバー) ピボットがありますが、週の日付に動的ヘッダーを使用しているため、編集する gridview 関数は機能しません。データをバインドしようとしましたが、これには日付に関して同じ問題があります。データを入力してこのように更新するためのテキストボックスを持つフォームを作成する必要があると思いますが、クエリを使用してそのようなフォームにデータを入力するにはどうすればよいですか? また、新しい行を追加できる必要があります。私はこれで私のテザーの終わりにあり、コーディングを放棄する寸前です.

データを正確に表示するSQLは次のとおりです。

ALTER PROCEDURE [dbo].[list_weekly_times]
as



DECLARE @offSetmon int, @fromdt datetime,@todt datetime,@offsetsun int, @COLName    varchar (max)
,     @SQL        varchar (max), @fromdate as date, @todate as date, @offsetmonval as int, @offsetsunval as int

SELECT @offSetmon = 1
select @fromdt = GETDATE()
SELECT @offSetSun = 7
select @todt = GETDATE()
SELECT @fromdt = CONVERT(DATETIME, CONVERT(INT, @fromdt) - (DATEPART(WEEKDAY, @fromdt) - @offSetmon))
SELECT @todt = CONVERT(DATETIME, CONVERT(INT, @todt) - (DATEPART(WEEKDAY, @todt) - @offSetsun))


select @COLName    = ''
 ,    @SQL        = ''


while @FromDt <= @ToDt
begin
      if    (@COLName = '')
      begin
            set   @COLName    = '[' + convert (varchar (10), @FromDt, 121) + ']'
      end
      else
      begin
            set   @COLName    = @COLName + ', [' + convert (varchar (10), @FromDt, 121) + ']'
      end
      set   @FromDt = dateadd (d, 1, @FromDt)
end
print @COLName
select      @SQL  = 'select project_code, activity_code,' + @COLName + 
              ' From (select project_code, activity_code, project_date, Project_time from timesheet) as P 
                pivot 
                  (     sum (Project_time)
                        for project_date in (' + @COLName + ')
                  ) as pvt
                order by project_code

              '
print @SQL
exec  (@SQL)

ピボットはデータ編集ではなくデータ表示用に設計されているため、編集では機能しません。

ピボット アプローチが間違っている可能性があり、別の方向性が必要です。

どんなヘルプ、チュートリアル、例も役に立ちます。

4

2 に答える 2