2014年7月22日火曜日

SOL23 と adb backup

 adb backup を使ってバックアップをしてみた。

D:\SOL23\backup\20140722>adb backup -apk -all -system -all
Now unlock your device and confirm the backup operation.

D:\SOL23\backup\20140722>dir
 ドライブ D のボリューム ラベルがありません。
 ボリューム シリアル番号は BA92-6874 です

 D:\SOL23\backup\20140722 のディレクトリ

2014/07/22  17:34    <DIR>          .
2014/07/22  17:34    <DIR>          ..
2014/07/22  17:38       334,202,343 backup.ab
               1 個のファイル         334,202,343 バイト
               2 個のディレクトリ  29,830,762,496 バイトの空き領域


 でもリカバリはどうなるんだろうね。

 root を取得したときに CWM を入れたはずなんだけれど再起動しても青色点灯してくれない。
 frontmost も起動していたのが落ちちゃってるし。
 なんか SOL23 が夏バテのようだw


 リカバリをしてみた。

D:\SOL23\backup\20140722>adb restore backup.ab
Now unlock your device and confirm the restore operation.

 途中で失敗したようだけど Gmail や Play ブックスがきちんと立ち上がるようになったのでよしとしよう。
 アプリの再インストールやアカウントの同期などが色々と走るので手順を考える必要はありそうだな。
 しかし簡単に復活できるのは良いことである。

 一番の問題は Google+ で写真のアップロードが走ってしまって同じ写真や動画がダブってしまうことだな。

PC Companion で SOL23 をバックアップ

 SOL23 で Gmail や feedly などを立ち上げようとすると異常がでてしまって立ち上がらなくなって数週間。

 ここらで初期化をしてみようと思ったけれどいままで ftf ファイルを作る時くらいにしか使うことがなかった PC Companion でバックアップとリストアをしてみよう。


 しかしながら残り時間がとんでもないのでやめようと思った次第。

 こういう場合は放置プレイが正解。


 たいていは寝てる間に終わってる。
 果報は寝て待て!

2014年7月10日木曜日

もう少しきれいにしたいんだがどうしたらよいのだろうか。

 ようやく Calc に入力したセルの値を取り出して SQL の WHERE の条件にしてデータベースからデータを取得することができた。
 具体的には型式から仕入れ価格を取得する。

 実行結果は以下のとおり。
 一行目が型式で二行目が仕入れ価格である。








 次は取得した仕入れ価格をセルへコピーすることと取得したデータがなかった場合の処理をどうするかだな。

 きれいにしたいのは実行した次のコードのことだったりする。

Sub Main

  Dim DatabaseContext,DataSource,Connection As Object
  Dim Statement,ResultSet As Object
  DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
  DataSource = DatabaseContext.getByName("DataBaseFile")
  Connection = DataSource.getConnection("", "")
  Statement = Connection.createStatement()

  Dim Sheet  As Object
  Dim SheetName As string
  Dim Cell As Variant
  SheetName = "見積り"

  dim const startgyou = 11 - 1
  dim const countgyou = 6 - 1
  dim const endgyou = startgyou  + countgyou
  dim const katasiki = 1
  dim const siirekakaku = 7

  Doc = ThisComponent
  if Doc.Sheets.hasByName(SheetName) then
    Sheet = Doc.Sheets.getByName(SheetName)
    for gyou=startgyou to endgyou
      Cell = Sheet.getCellByPosition(3, gyou).String
      ResultSet = Statement.executeQuery("select * from TestTable where katasiki = '" & Cell & "'")

      If IsNull(ResultSet) Then
        MsgBox "データがありませんでした。"
      Else
        ResultSet.next
        msgbox  ResultSet.getString(katasiki) & chr(13) & ResultSet.getString(siirekakaku)
      End If

    next gyou
  else
    msgbox "シート " & SheetName & " がありません。"
  end if

Statement.Close()
Connection.Close()
Connection.Dispose()

End Sub

2014年7月6日日曜日

一行ずつ値を取得してみた。の続き

 セルの中に「 」が入る場合があるので結果はどうなるんだろうと試してみたが問題なし。








 あとは SQL とマクロ次第といったところか。
 SQL は取得した値を where 句で使うだけなのでダブルクオーテーションのエスケープ処理を調べておけば問題は出ないだろう。
 マクロは数年前に Excel で作ったのを移植するつもりなので見直しながら作っていく予定だから手こずりそうだ。

やっぱりこの png ファイルたちも Google さんに遊ばれるのだろうか。

2014年7月5日土曜日

一行ずつ値を取得してみた。

 Calc の見積りワークシートの各セル A11, A12, A13, A14, A15, A16 に入力した文字列を for next を使って取得してみた。

 こんな風に入力してみた。

 実行結果は以下のとおりで予想していた通りで問題はなし。






 コードは以下のとおり。

Sub Main
  Dim Sheet As Object
  Dim SheetName As String
  Dim Cell As Variant

  SheetName = "見積り"
  Doc = ThisComponent
  dim startgyou, endgyou, countgyou
  countgyou = 6-1
  startgyou = 11-1
  endgyou = startgyou + countgyou

  if Doc.Sheets.hasByName(SheetName) then
    Sheet = Doc.Sheets.getByName(SheetName)
    for gyou=startgyou to endgyou
      Cell = Sheet.getCellByPosition(3, gyou).String
      msgbox cell
    next gyou
  else
    msgbox "シート " & SheetName & " がありません。"
  end if

End Sub


countgyou と startgyou の値に -1 を付けているのは Calc では行と列をゼロから数えるため。

 次はこの取得した値を使って Base へアクセスだな。


MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。