2011/06/11

access2010 Webデータベース その66 DatePicker再び -4-

** Office365beta(プランP1) 環境 **
ざっくりだけどなんとか形になったので、オフライン時であっても使用できるようにしてみる。
オフラインで使用できるようにするためには、データマクロ以外を使用する。フォーム上の表示ロジックはそのまま使うとして、テーブル/クエリで必要な情報を拾ってくるでもよいのだけど、クライアントマクロで情報を生成してみる。
Webフォームのイベントでクライアントマクロの実行は可能。
今回使用しなかったけれどもWebフォームでVBAコード実行させることも可能。これについては、Use the IsClient() expression to conditionally run VBA from Web forms
クライアントフォームを開くことができるということは、開いたフォームを介して任意のプロシージャを実行できる。onOpenかonLoadでプロシージャ実行しフォームを閉じてしまえばいい。


<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application">
  <UserInterfaceMacro MinimumClientDesignVersion="14.0.0000.0000">
    <Statements />
    <Sub Name="GetData">
      <Statements>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclDate</Argument>
          <Argument Name="Expression">[TempVars]![DialogDatePickerForClient]</Argument>
        </Action>
        <Action Collapsed="true" Name="RemoveTempVar">
          <Argument Name="Name">DialogDatePickerForClient</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclYear2</Argument>
          <Argument Name="Expression">Year([LocalVars]![lclDate])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclMonth2</Argument>
          <Argument Name="Expression">Month([LocalVars]![lclDate])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDateOfMonth1</Argument>
          <Argument Name="Expression">DateSerial([LocalVars]![lclYear2],[LocalVars]![lclMonth2],0)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDateOfMonth2</Argument>
          <Argument Name="Expression">DateSerial([LocalVars]![lclYear2],[LocalVars]![lclMonth2]+1,0)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDateOfMonth3</Argument>
          <Argument Name="Expression">DateSerial([LocalVars]![lclYear2],[LocalVars]![lclMonth2]+2,0)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclYear1</Argument>
          <Argument Name="Expression">Year([LocalVars]![EndDateOfMonth1])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclMonth1</Argument>
          <Argument Name="Expression">Month([LocalVars]![EndDateOfMonth1])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclYear3</Argument>
          <Argument Name="Expression">Year([LocalVars]![EndDateOfMonth3])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclMonth3</Argument>
          <Argument Name="Expression">Month([LocalVars]![EndDateOfMonth3])</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDateOfLastMonth1</Argument>
          <Argument Name="Expression">DateSerial([LocalVars]![lclYear1],[LocalVars]![lclMonth1],0)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfMonth1</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfMonth1]),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfMonth2</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfMonth2]),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfMonth3</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfMonth3]),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfLastMonth1</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfLastMonth1]),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfLastMonth2</Argument>
          <Argument Name="Expression">[LocalVars]![EndDayOfMonth1]</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">EndDayOfLastMonth3</Argument>
          <Argument Name="Expression">[LocalVars]![EndDayOfMonth2]</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">FirstDayOfCalendar1</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfLastMonth1]-Weekday([LocalVars]![EndDateOfLastMonth1]+1)+2),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">FirstDayOfCalendar2</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfMonth1]-Weekday([LocalVars]![EndDateOfMonth1]+1)+2),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">FirstDayOfCalendar3</Argument>
          <Argument Name="Expression">Right("0" &amp; FormatNumber(Day([LocalVars]![EndDateOfMonth2]-Weekday([LocalVars]![EndDateOfMonth2]+1)+2),0,0,0,0),2)</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclVar01</Argument>
          <Argument Name="Expression">FormatNumber([LocalVars]![lclYear1],0,0,0,0) &amp; Right("0" &amp; FormatNumber([LocalVars]![lclMonth1],0,0,0,0),2) &amp; [LocalVars]![FirstDayOfCalendar1] &amp; [LocalVars]![EndDayOfLastMonth1] &amp; [LocalVars]![EndDayOfMonth1]</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclVar02</Argument>
          <Argument Name="Expression">FormatNumber([LocalVars]![lclYear2],0,0,0,0) &amp; Right("0" &amp; FormatNumber([LocalVars]![lclMonth2],0,0,0,0),2) &amp; [LocalVars]![FirstDayOfCalendar2] &amp; [LocalVars]![EndDayOfLastMonth2] &amp; [LocalVars]![EndDayOfMonth2]</Argument>
        </Action>
        <Action Collapsed="true" Name="SetLocalVar">
          <Argument Name="Name">lclVar03</Argument>
          <Argument Name="Expression">FormatNumber([LocalVars]![lclYear3],0,0,0,0) &amp; Right("0" &amp; FormatNumber([LocalVars]![lclMonth3],0,0,0,0),2) &amp; [LocalVars]![FirstDayOfCalendar3] &amp; [LocalVars]![EndDayOfLastMonth3] &amp; [LocalVars]![EndDayOfMonth3]</Argument>
        </Action>
        <Action Collapsed="true" Name="SetTempVar">
          <Argument Name="Name">DialogDatePickerForClient</Argument>
          <Argument Name="Expression">[LocalVars]![lclVar01] &amp; [LocalVars]![lclVar02] &amp; [LocalVars]![lclVar03]</Argument>
        </Action>
      </Statements>
    </Sub>
  </UserInterfaceMacro>
</UserInterfaceMacros>



0 件のコメント: