0228

0227

目黒でカレーを食べた。
お店の店長がよく喋る人で、最初見た時にはとても店長さんだとは思えなかった。
お味の方はとても素晴らしく、これを毎日食べたらとても幸せだろうなぁと思った。

どうも僕は胃下垂らしい。
食べた後は腰を伸ばしたい衝動に駆られたりお腹がいたくなったりする症状は通常の現象ではないらしい。
あんなに食べたのに何故すぐにお腹がすくのだろうと今日も思う。

0226

歯が十数本抜けてしまった夢をみた。
夢占いとかでの「歯」の意味は仕事関係にあるらしく、歯が抜けてしまう事は仕事で失敗しないかどうかの不安とか、仕事上でなんらかの変化を示す予兆だのとかいう意味らしい。

0225

週末、あぐらをかいて長時間ゲームをしていたわけなのだが、どうもその事が原因で痔がひどくなったような気がする。
あまり気持ちが悪いので、早め(22時くらい)に会社をあがる事にした。

0224

母の誕生日だった。…という事を催促の電話で思い出した。
そう言えば去年は自分の誕生日も忘れていたし、日付とそういったイベントとが結びつかないような思考になってきた。

0223

携帯電話の広告メールがあまりにもひどいので、iモード以外からのメールは全て拒否設定を行う。
これでインターネット経由のメールは全てシャットアウトされるのだが、ezwebやらJ-phoneやらのメールも全てシャットアウト。
一応例外条件で「@ezweb.ne.jp」とは入れてみたものの、実際にちゃんと届くかどうかは未確認。

0221

カネボウ<ロッテ<グリコ
硬さの相関関係

0220

今月のあなたは、ちょっぴり自信なげです。ライバルと比較して、自分が劣っていると思い込んだり、強引な人に、ついつい振り回されてしまったり。あなたの良さはちっとも変わらないはず。もっとあなたの個性、あなたの能力に自信をもって下さい。ところで今月は、知性運が乱れています。とかく勘違いを起こしがち。ことに、連絡ミスは大きなトラブルに発展します。大切な用件は、しっかり確認しておきたいものです。恋愛運は、わがままを聞いてばかりいてはだめ。時には、ノーを言うことだってなくては。
獅子座 - MSN ホロスコープ

BigDecimalはNULL回避するように。

0219

時々はぼんやり考える。

0218

SubReport使用時(ReportForm内) 合理的かどうかは不明

setUp()内で、メインとなるRowSetの他にサブ用のRowSetを用意してSQLをセット。
firstFlagチェック内でSubReportSectionを定義し、サブ用のRowSetをセット。
後、fistFlagを寝かせる。

  public void setUp() throws Exception {
    ParamSet paramSet = new ParamSet();
    paramSet.setDataSource(xDataSources[0]);

    rsMain.setClientConnection(getConnection());
    rsMain.setQueryActionName("xxxxxxxxxx");
    rsMain.addDataHandleListener(this);

    rsNyuka.setClientConnection(getConnection());
    rsNyuka.getParamSet().addParam(H.HUKUGO_TORIHIKI_ID, Type.BIGDECIMAL, ParamType.IN);
    rsNyuka.setQueryActionName("xxxxxxxxxx");

    rsShukka.setClientConnection(getConnection());
    rsShukka.getParamSet().addParam(H.HUKUGO_TORIHIKI_ID, Type.BIGDECIMAL, ParamType.IN);
    rsShukka.setQueryActionName("xxxxxxxxxx");

    if (this.firstFlag) {
      this.loadProperty(this.xmlFileURL);

      SubReportSection subNyuka = (SubReportSection)(this.getSectionByName("SubReportSection1"));
      subNyuka.setRowSet(rsNyuka);

      SubReportSection subShukka = (SubReportSection)(this.getSectionByName("SubReportSection2"));
      subShukka.setRowSet(rsShukka);

      this.setRowSet(rsMain);
      this.firstFlag = false;
    }

    rsMain.getParamSet().copy(xDataSources[0]);
  }

前処理(beforeCreate())内で、各RowSetをアクティブにして、バインドパラメータを直接代入。

  public void beforeCreate() throws Exception{
    //バインドするパラメータをSubReportのQueryに代入
    if (rsMain.isActive()) rsMain.setActive(false);
    rsMain.setActive(true);

    if (rsNyuka.isActive()) rsNyuka.setActive(false);
    rsNyuka.getParamSet().getBigDecimal(H.HUKUGO_TORIHIKI_ID);
    rsNyuka.setActive(true);

    if (rsShukka.isActive()) rsShukka.setActive(false);
    rsShukka.getParamSet().getBigDecimal(H.HUKUGO_TORIHIKI_ID);
    rsShukka.setActive(true);
  }

これで一応動きます。

0215

サーバーの調子が悪いのは、ボクのSQLのせいだと言う事が判明した。
よってTempRowSetを使用する事にする。

0213

/*日付関係のフォーマットをセット*/
rsEdit.getColumn(S.SHUKKABI).setFormatPattern("yyyy/MM/dd");

フォーマットパターンは間違わないように

0212

for (int i = 0; i < hListEdit.getFieldCount(); i++) {
  if(hListEdit.getField(i).isVisible())
    System.out.println(hListEdit.getField(i).getCaption());
}

表示画面のチェック用
onFieldSetUp中にまわす。

0211

  public final static String ZAIHURI_KUBUN_URIAGE                   = "1";
  public final static String ZAIHURI_KUBUN_URIAGE_NAME              = "売上";
  public final static String ZAIHURI_KUBUN_SHUKKO                   = "2";
  public final static String ZAIHURI_KUBUN_SHUKKO_NAME              = "出庫";
  public final static String ZAIHURI_KUBUN_SHANAI_URIAGE            = "3";
  public final static String ZAIHURI_KUBUN_SHANAI_URIAGE_NAME       = "社内売上";
  public final static String ZAIHURI_KUBUN_TAKANJO_SHUKKO           = "4";
  public final static String ZAIHURI_KUBUN_TAKANJO_SHUKKO_NAME      = "他勘定出庫";
  public final static String ZAIHURI_KUBUN_HOKANBASHO_HENKO         = "5";
  public final static String ZAIHURI_KUBUN_HOKANBASHO_HENKO_NAME    = "保管場所変更";
  public final static String ZAIHURI_KUBUN_SHIIRE_HENPIN            = "6";
  public final static String ZAIHURI_KUBUN_SHIIRE_HENPIN_NAME       = "仕入返品";
  public final static String ZAIHURI_KUBUN_KAKO_SHUKKO              = "7";
  public final static String ZAIHURI_KUBUN_KAKO_SHUKKO_NAME         = "加工出庫";

CodeManagerに定義してコンボにする。後、ReadOnlyで表示する。

0209

秋葉原にX-Boxを見に行った…が、コンパニオンのお姉さんの方が気になった。

0208

エクスプローラーのショートカットキーを発見する。
「Windowキー」+「E」

0207

オレなんかが人のソースを直すなんて10年早いのかな…。
よけいなお世話だったのかもと思い始める。

0205

しあわせって何だろうと思ってみる。

0204

お茶の水で常駐。2ヶ月は帰らない予定。
早く終わらないかなぁ。

「焦ってやってもデグレード起こさない?」 って事で余裕を持ってやるようにこころがける事にする。

0203

for (int l = 0; l < rsShukkaId.getRowCount(); l++) {
  rsShukkaId.moveAt(l);
  System.out.println("" + rsShukkaId.getValueAsString(S.SHUKKA_ID));
}

RowSetの中身を取得するにはgetValueAsString()が最適?
getParamSet()はバインド変数を使用する際に必要で、使わない時は必要ない。

0202

No. 部門 遅延 2001/09/08 2001/09/09 2001/09/10 2001/09/11 2001/09/12 以降
1 半導体 124 127 128 129 130 131 132
2 デバイス 125 128 129 130 131 132 133
3 アジレント 126 129 130 131 132 133 134
4 産業機 127 130 131 132 133 134 135

Form

for (int i = 0; i < rsList.getRowCount(); i++) {
  rsList.moveAt(i);
  vCheckBox.removeAllElements();
  //部門毎に出荷IDを取得
  for (int j = 0; j < checkCount.length; j++) {
    if (rsDate.getBoolean(checkHead[j]) ||
        rsList.getBoolean(checkCount[j])) {
      //出荷日を取得
      vCheckBox.addElement(new Integer(j-1));
    }
  }
  if (!vCheckBox.isEmpty()) {
    if (rsShukkaId.isActive()) rsShukkaId.setActive(false);
    rsShukkaId.getParamSet().setString(H.HOKANBASHO_CODE, param.getString(H.HOKANBASHO_CODE));
    rsShukkaId.getParamSet().setString(B.BUMON_CODE, rsList.getParamSet().getString(B.BUMON_CODE));
    rsShukkaId.getParamSet().setObject(S.SHUKKABI, vCheckBox);
    rsShukkaId.setActive(true);
  }
}

Query
今日以前のビューと今日以降のビューを使用

SELECT A.BUMON_CODE,
       M010.BUMON_NAME,
       DECODE(B.CHIEN_CNT,'',0,B.CHIEN_CNT) CHIEN_CNT,
       A.CNT1,
       A.CNT2,
       A.CNT3,
       A.CNT4,
       A.CNT5,
       A.TOTAL_CNT - (B.CHIEN_CNT+A.CNT1+A.CNT2+A.CNT3+A.CNT4+A.CNT5) IKO_CNT
  FROM (SELECT BUMON_CODE,
               SUM(CNT) TOTAL_CNT,
               MAX(DECODE(SHUKKABI,TRUNC(SYSDATE),CNT,0))
               CNT1,
               MAX(DECODE(SHUKKABI,TRUNC(SYSDATE+1),CNT,0)) CNT2,
               MAX(DECODE(SHUKKABI,TRUNC(SYSDATE+2),CNT,0)) CNT3,
               MAX(DECODE(SHUKKABI,TRUNC(SYSDATE+3),CNT,0)) CNT4,
               MAX(DECODE(SHUKKABI,TRUNC(SYSDATE+4),CNT,0)) CNT5
          FROM (SELECT D700.BUMON_CODE,
                       D700.SHUKKABI,
                       COUNT(D700.SHUKKABI) CNT
                  FROM D700_SHUKKA D700,
                       D010_TORIHIKI D010
                 WHERE D700.JIDO_SAIBAN = D010.JIDO_SAIBAN
                   AND D700.SHUKKA_JOTAI = '0'
                   AND D700.SHUKKA_SHIJIHYO_OUTPUT_FLAG = '0'
                   AND D700.BUMON_CODE = NVL(null,D700.BUMON_CODE)
                   AND D700.HOKANBASHO_CODE = '00510'
                 GROUP BY D700.BUMON_CODE, D700.SHUKKABI
               )
         GROUP BY BUMON_CODE
       ) A,
       (SELECT D700.BUMON_CODE,
               COUNT(D700.SHUKKABI) CHIEN_CNT
          FROM D700_SHUKKA D700,
               D010_TORIHIKI D010
         WHERE D700.JIDO_SAIBAN = D010.JIDO_SAIBAN
           AND D700.SHUKKA_JOTAI = '0'
           AND D700.SHUKKA_SHIJIHYO_OUTPUT_FLAG = '0'
           AND D700.BUMON_CODE = NVL(null,D700.BUMON_CODE)
           AND D010.HAMBAISAKI_KONYUSAKI_CODE = NVL(null,D010.HAMBAISAKI_KONYUSAKI_CODE)
           AND D700.HOKANBASHO_CODE = nvl(null,D700.HOKANBASHO_CODE)
           AND D700.HOKANBASHO_CODE = '00510'
           AND D700.SHUKKABI < TRUNC(SYSDATE)
         GROUP BY D700.BUMON_CODE
       ) B,
       M010_BUMON M010
 WHERE A.BUMON_CODE = B.BUMON_CODE(+)
   AND A.BUMON_CODE = M010.BUMON_CODE