JAVAScriptで指定URLを開く

ちょっと看護婦さんからの要望で、簡単なページを作ることになりました。
単にテキストボックスを作って、そこに入力した情報を元にURLを開くという、簡単なページ。
ところが、意外にそういうのって作ったことがなくて、ちょっと悩みました。
最初はASP.NET2.0で作ろうかと思ったんですが、意外にうまくいかず。
というか、そんなのサーバーサイドで動かすこと自体おかしいと言うことに気づき、結局JAVAScriptで動かすことにしました。
あんまりJAVAScriptを書いたことがなかったので、ちょっととまどいましたが、分かってしまえば楽ちん。
VBとは関数の名前とか全然違うので、そういう点ではとまどいましたが、結構融通が利きそうでおもしろそうだと思いました。
まだまだ知らないことがたくさんありますねぇ。
精進精進。

おすすめ画像編集ソフト

上の画像は、今回フリーソフトのみで書きました。
INKSCAPE
オフィシャルページ
海外のソフトですが、日本語に標準で対応しています。(ヘルプは英語。)
いわゆるドローソフト。
データはIllustratorでも扱うことが出来るようです。
ドロー系のソフトを使ったことがある人なら、すぐに使いこなせると思います。
PictBear
こちらはいわゆるペイント系のソフト。
わかりやすいインターフェースなので、初めて使ってもわかりやすい。
とっても軽いのも特徴です。
おすすめ。

アプリケーションでサーバーエラーが発生しました

職場の院内LANのサーバーにASP.NET 2.0で作成したWebサイトを公開し、リモートコンピュータからアクセスしてみたところ、
「アプリケーションでサーバーエラーが発生しました」とか「ランタイムエラー」とか表示されました。
なんという冷たいお言葉・・・。
さぁここからが大変。
にっちもさっちも行きません。
今まで買ったいろんな本をひっくり返しても解決策は見つからず。
Web上をさまよっていたら、ようやく原因発見。
IISの設定ミスでした。
IISマネージャを立ち上げ、「既定のWebサイト」を右クリックし、「プロパティ」を選択。
「ASP.NET」タブでASP.NETのバージョンを2.0に変更。
以上で解決。
分かってしまえば簡単ですが、一から調べていくのはやはりしんどいもんです・・・。

Dreamweaver8のフレームトラブル

今、Dreamweaver8でHTMLを編集しています。
(Dreamweaver使っててこれかよ、みたいな指摘が聞こえてきそうだ……。)
まぁ、変にソースを汚されたりしないし、コードを自分で書きながらデザイン見ながら、みたいなことができるのでとても重宝しています。
でも、ちょっとフレームでトラブル。
普通にデフォルトのXHTML1.0(トランジショナル)でフレームセットを新規作成し、リンクのターゲットをフレームにしてもうまくいかない!
調べた結果、フレーム名を普通に設定すると、ID属性として記録されてしまい、NAME属性として保存されないことが判明。
ここを直したところ、すぐにうまくいきました。
しかし調べてみると、意外にフレームって評判良くないんですね・・・。
アクセシビリティが良くないとか、対応していないブラウザがあるとか、ロボット検索との相性が悪いとか・・・。
ということで、フレームはできるだけ使わないことにしました。(^-^;;

だいぶ出来上がってきました。

例の職場のプロジェクトのお話です。
かなりの時間をかけ、ようやく入力画面はかなり完成の域に達してきました。
現状でもかなり使いやすいものになっているという自信がありますが、まだ使いやすさを追求できる部分があるので、あとちょっと作りこもうと思っています。
技術的には、僕のスキルがかなり上がったこともあり、そう難しいことではありませんし。
3日後に職場の電算室の方とちょっとしたテストをすることになっています。
それがうまくいけば、かなりの前進。
あとはレポートの開発と、周辺のアプリケーション開発のみです。
手元の本によると、このレポートの開発が結構なくせもののようです。
技術的な問題さえクリアできれば、多少の工数は気にならないのですが……。
ちょっと心配。
ま、こちらはそんなに差し迫った課題ではない(と、僕は思っている)ので、多少余裕があると思うんですけどね……。(^-^;;

ようやく少し先が見えてきました。

例のSQL serverとAccessを使ったプロジェクトのお話。
まぁ具体的な話はともかく、技術的な問題は結構いいところまで解決した感じです。
おとといはとんでもなくつまらないバグで病院に一晩泊っちゃいましたが……。
(Do ~ Until rs.EOF
  If
  End If
Loop
で、レコードセットのmovenextをIf~End Ifのなかに入れてしまっていました……)
これからしばらくは、インターフェース部分の開発。
月曜からまた頑張ります。

ようやく解決した問題

またコンピュータのお話。
2つのテーブルの差分を取り出すのって、主キーが1つだとすごい簡単。
でも、2つの項目で主キーを設定してるテーブルの差分を取り出すということをしたことがありませんでした。
やってみたら激ムズ。
いろいろアルゴリズムを考えてこんがらがって、いろんな制約に阻まれて。
ところがなんだかんだでコードが書き上がってみると、すごくシンプルになってビックリ。
「美しい」とすら感じてしまいます。
まぁ、言ってしまえばただの自己満足。
本職の人たちにしてみたら児戯に等しいコードなんだろうと思うんですが、それでもこういう世界の仕事をしていなければ感じられなかった感覚だと思うので、なんか得した気分です。
誰にも評価はされないんでしょうけどね……。(-_-;;

Findのワナ……(ADO)

ところでまたADOの話題。
勉強して、大分ADOのことも分かってきたぞ、という矢先。
さっそくFindを使ってコードを書いていたところ、衝撃の事実が発覚。
なんとFindでは複数条件の検索ができない!
これにはやられました。
結局SQLで書くのね……。orz

またハマった! ADOでUpdateBatch

またまたこんな話ですみません。
Access 2002を端末にしたデータベースシステムを開発していますが、ここにきて急遽あんまりさわらないでいたADOを勉強しなければならないことに気づきました。
そこで、手元にあった本やらネットやらを調べてコードを打ってたんですが、どうにもサンプルコードではうまくいかない!
具体的には、
Do Until rs.EOF
  rs.Delete
  rs.MoveNext
Loop

(前後の宣言などは省略)
と、たったこれだけのコードが動かない!
本を見てもネットを見ても同様の症状を訴えているケースはあまりなく……。
で、試行錯誤して、ヘルプをガリガリ検索してようやく分かりました。
Do Until rs.EOF
  rs.Delete
  rs.UpdateBatch
  rs.MoveNext
Loop

これでばっちりテーブルの中身を削除してくれます。
しかし、なんで巷のサンプルコードにはUpdateBatchが書かれていないんだろう……。
やっぱりAccessのバージョンが古いせいなんだろうか……。orz
まぁなんにせよ、今回のことでADOやらレコードセットやら、ちょっと苦手だったことがしっかり身に付きました。
これは大きな収穫。
だいぶAccessの上級者に近づいたという実感が湧きました。(^-^)

ASP.NETで四苦八苦。~認証なしにする方法~

またコンピュータのお話。
SQL Serverの話をしていましたが、端末から結果を見る際に、Internet Explorerで見れるようにしようということになりました。
(まぁ、規模から言って当然と言えば当然。)
というわけで、今度はASP.NETの勉強を始めました。
サーバーではないマシンにVisual Web Developer 2005 Express Editionをインストールして、ごく単純なプログラムを作製。
動かしたら余裕で動作。(ここではそのファイルをtest.aspxとします。)
気を良くしてtest.aspxをサーバー上のIISで公開しているフォルダにコピー。
が。
ここからが大変。
今回は院内からのアクセスのみなので、閲覧だけなら認証をしないことにしました。
ところが、参考書を見て、ネットで調べまくって、いろいろ設定したのにうまくいかない!
具体的には、
○IISで公開するフォルダのプロパティで「NETWORK SERVICE」(Windows server 2003の場合。普通のWindowsでは「ASPNET」。これが分かるまでも大変だった)というユーザーに権限を与える。
○IISのプロパティで匿名アクセスを許可する。
○web.configを公開フォルダに作成し、その<system.web>内に
<authorization>
<allow users=”?” />
</authorization>
と記入。

これでいけると思ったら……ダメでした。orz
test.aspxにアクセスすると、ネットワークパスワードとか要求されて、はねられます。
さんざん悩んで、いろいろ調べて、あきらめかけた時、解決しました。
○<system.web>内に
<authentication mode=”None” />
を追加。
○test.aspxのプロパティでNETWORK SERVICEに権限を付与。

他にもいろいろやってたんで抜けがあるかもしれませんが、たぶんこれでOKなはずです。
たったこれだけのことに8時間くらいかかった気がする……。
マジでへこみます……。orz