SSpread

Q1
SSpreadクラスを利用した表の作成(初級編その2) 
A1
(初級編その2)では、SSpreadで表のレイアウト、表示するデータにあわせた形式の設定方法とSSpread独自のバイナリ形式ファイルの読込みと保存までの実装を紹介します。

【SSpreadで表を作成】
  [STEP1] 行ヘッダと列ヘッダを指定する
  [STEP2] 罫線と背景色を設定する
  [STEP3] 行、列のセルのデータ型を設定
  [STEP4] バイナリ形式(SSpread独自の形式)で保存されたスプレッドシートの内容を読込みSSpreadへ表示
  [STEP5] SSpreadのデータをバイナリ形式(SSpread独自の形式)のファイルとして保存
[STEP1] 行ヘッダと列ヘッダを指定する
 
  [サンプルコード]
 /* 列ヘッダへ表示するデータ */
 CSVDocument col_h;
 col_h << CSV{
	"区分","商品","在庫","出荷期限","出荷数","出荷先"
 };
 /* 列ヘッダへ表示するデータ */
 SSpread SSpread1 {
  X = 14;
  Y = 29;
  Width = 565;
  Height = 144;
  /* 使用できる列の総数を設定 */
  /* ※表示するデータの列数を設定 */
  MaxCols = ^.col_h.columns;
  /* 使用できる行の総数を設定 */
  MaxRows = 100;  
  /* 全ての行の高さを指定 */
  RowHeight(-1) = 20;
  /* 全ての列の幅を指定 */
  ColWidth(-1) = 80;
  
  /* 行ヘッダの列幅を指定 */
  ColWidth(0) = 60;
  /* 行ヘッダの列を指定(任意のデータを表示する場合) */
  Col = 0;
  /* 表示するデータ分ループ */
  for(var i = 0; i < MaxRows; i ++ ){   
   Row =  i + 1;      /* 行の指定 */
   /* セルの値を指定 */
   if(Row < 10){
    Value = "ID00"+ str(Row);
   }else if(Row > 9  && Row < 100){
    Value = "ID0"+ str(Row);
   }else{
    Value = "ID"+ str(Row);
   }
  }
  
  /* 列ヘッダの行を指定 */
  Row = 0;
  /* 表示するデータ分ループ */
  for(var i = 0; i < ^.col_h.columns; i ++ ){   
   Col =  i + 1;      /* 列の指定 */
   Value = ^.col_h.getCell( 0 , i );  /* セルの値を指定 */
  }
 }

▲ページのトップへ

[STEP2] 罫線と背景色を設定する
 
  [サンプルコード]
 SSpread SSpread1 {
  X = 14;
  Y = 29;
  Width = 565;
  Height = 144;

  ・・・・・・・(略)

  /* 罫線を指定 */
  /* 上下左右の罫線 */
  var d_index = $CellBorderIndexLeft + $CellBorderIndexRight 
                    + $CellBorderIndexTop + $CellBorderIndexBottom;
  /* 灰色、上下左右、 実線で罫線を表示*/
  SetCellBorder( 1, 1, 6, MaxRows, d_index, 
                                    $DGRAY, $CellBorderStyleSolid);
  
  /* 行をストライプ表示 */
  /* 奇数行の背景を水色、テキストを標準色、
     偶数行の背景を標準色、テキストを青色へ設定 */
  SetOddEvenRowColor($CCFFFF, $STD, $STD, $BLUE);
 }

▲ページのトップへ

[STEP3] 行、列のセルのデータ型を設定
 
 
★ポイント★
「CellType=$CellTypeDate」のセルが入力モード(「▲」表示)の状態になると「F4」キーを押下またはセルダブルクリックでカレンダーが表示されます。
  [サンプルコード]
 SSpread SSpread1 {
  X = 14;
  Y = 29;
  Width = 565;
  Height = 144;
 
  ・・・・・・・(略)

  /* セルのデータ型を設定 */
  /* 区分列をコンボボックス型へ指定 */
  Col = 1;
  Row = -1;
  CellType = $CellTypeComboBox;
  /* コンボボックス内のリストを設定 */
  TypeComboBoxList  = "食品\t衣類\t医薬品\t家具\tその他";
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
  
  /* 区分列を文字列型へ指定 */
  Col = 2;
  Row = -1;
  CellType = $CellTypeEdit;
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
  
  /* 在庫列を数値型へ指定 */
  Col = 3;
  Row = -1;
  CellType = $CellTypeNumber;
  /* 小数点以下の表示桁数設定 */
  TypeNumberDecPlaces = 0;
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
  
  /* 出荷期限列を日付型へ指定 */
  Col = 4;
  Row = -1;
  /* ★ポイント★ */
  CellType = $CellTypeDate;
  /* 日付フォーマット */
  TypeDateFormat = $TypeDateFormatYYMMDD;
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
  
  /* 出荷数列を数値型へ指定 */
  Col = 5;
  Row = -1;
  CellType = $CellTypeNumber;
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
  
  /* 出荷先列をコンボボックス型へ指定 */
  Col = 6;
  Row = -1;
  CellType = $CellTypeComboBox;
  /* コンボボックス内のリストを設定 */
  TypeComboBoxList  = "百貨店\tスーパー\t商店\t飲食店\t個人";
  /* セル内の垂直方向の配置を設定 */
  TypeVAlign = $TypeVAlignCenter;
 }

▲ページのトップへ

[STEP4] バイナリ形式(SSpread独自の形式)で保存されたスプレッドシートの内容を読込みSSpreadへ表示
 
  [サンプルコード]
 SSpread SSpread1 {
  X = 14;
  Y = 29;
  Width = 565;
  Height = 144;
  ・・・・・・・(略)

 }
  ・・・・・・・(略)

 Button Button2 {
  X = 186;
  Y = 376;
  Width = 157;
  Height = 36;
  Title = "インポート";
  Function OnTouch( e ) {
   var fs = new FileSystem();
   try{
    var f = fs.OpenDialog("開く", 
          "バイナリ形式で保存されたSSpreadの内容(*.*)=*.*", "", "saveFile");
    /* バイナリ形式で保存されたスプレッドシートの内容を読込み */
    ^.SSpread1.LoadFromFile(f);
    f.Close();
   }catch(e){
    //.MessageBox(e.Message);
   }
  }
 }

▲ページのトップへ

[STEP5] SSpreadのデータをバイナリ形式(SSpread独自の形式)のファイルとして保存
  [サンプルコード]
 SSpread SSpread1 {
  X = 14;
  Y = 29;
  Width = 565;
  Height = 144; 
  ・・・・・・・(略)

 }
  ・・・・・・・(略)

 Button Button1 {
  X = 14;
  Y = 376;
  Width = 157;
  Height = 36;
  Title = "エクスポート";
  
  Function OnTouch( e ) {
   var fs = new FileSystem();
   try{
    var f = fs.SaveDialog("保存", 
        "バイナリ形式で保存されたSSpreadの内容(*.*)=*.*","", "saveFile");
    /* スプレッドシートの内容をバイナリ形式のファイルに保存 */
    ^.SSpread1.SaveToFile(f, $FALSE);
    f.Close();
   }catch(e){
    //.MessageBox(e.Message);
   }
  }
 }

▲ページのトップへ

SSpreadクラスを利用した表については、CRSファイル形式のサンプル
    「SSpreadクラスを利用した表の作成 (初級編その2) (Sspd50_003.zip)」
をご確認ください。

管理番号:Sspd50_003
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ