2008年3月31日星期一

[转载]破解复杂

1、分而治之。这是算法学上的重要议题,它的核心思想是化解。依据一个总体标准,把复杂的事物化解为小的概念的集合。这些小的概念之间可能也会有各种各样的关系存在,这个关系就是分解标准的一个体现。
2、层次结构。很多事物都呈现出层次结构,这正好适合我们的思维习惯。它和分而治之有相似的地方,都是化整为零的思维方法。我们在分析复杂事物的时候多是结合分而治之和层次划分,这样慢慢的把一个复杂的整体描画出来。实际的过程多半是一种递归的模式,因为实际的复杂性也会在某种层面上呈现出递归的特性。
3、自顶向下/自底向上。这两种方法给出的是一种思维的方向,也就是说,我们对一些系统可以采用分解的办法(自顶向下),对另一些系统可能会采用整合的办法(自底向上)。自顶向下的核心思想是分解,自底向上的核心的聚合。
有了这些大的思维方向,再结合一些实用工具(各种各样的图和符号),就能在复杂性面前不至于惧怕了。科学的东西,总是要用科学的方法。设计就是先把问题弄复杂,再把问题弄简单。第一个阶段是模型的建立,一个越来越丰满的原模型就预示着越来越复杂的问题被搞定。第二个阶段是映射,把复杂的模型映射到解空间。当每个细节都被映射过去的时候,问题已经简单化了。

2008年3月26日星期三

基本の権限管理図




________________________________________
実際の運用中にはユーザ⇒ロール⇒機能の単線ではなく、ユーザ⇒機能の場合もあります。
ですので、この設計図はまだ足りないで、もう一つのユーザID+機能IDをPKとするテーブルが必要である。

今の案件のフレームワークによりの考え


簡単な考えですが、なんとなく今の案件が完了させるようです。

若いところが、間違いところがたくさん有ると思いますが、遠慮うせずに、ご指摘いただければありがたいと思います。後ほど、ソースもこちらにあげます。

2008年3月17日星期一

EXCELのCELLに関数を設定、

’難点は位置取得です。
R[-X]C[-Y] 意味は、該当CELLより、上に移動X行、左に移動Y列、
もちろん、X,Yは正数場合、下と右へ移動することです。

Dim row As Integer
Dim idx As Integer

For row = 7 To 18
Cells(row, 7).Select idx = row - 5
ActiveCell.FormulaR1C1 = "=IF(OR(R[-" & idx & "]C[-1]=0,RC[-1]="""",RC[-1]=0),"""",RC[- 1]/R[-" & idx & "]C[-1])"
Next row

2008年3月13日星期四

C# のExcel処理

// Excelアプリとブックのインスタンスを生成する
Excel.Application xlsApp = new Excel.Application();
Excel.Workbooks xlsBooks;
// Excelアプリを起動します
xlsApp.Visible = true;
// Bookを閉じる時、確認メッセージを表示させない
xlsApp.Application.DisplayAlerts = false;
// 新しいWorkBooksを取得する
xlsBooks = xlsApp.Workbooks;
// 新しいExcelブックを追加する
xlsBooks.Add(string.Empty);
// 新規Bookを取得する
Excel._Workbook bookNew = xlsBooks.get_Item(1);
// 新規Bookシートを全て取得
Excel.Sheets sheetsNew = bookNew.Worksheets;
// シートオブジェクト
Excel._Worksheet sheet;
// 処理対象となるをExcelブックを全て読み込み、シートを追加する
foreach (string strFileName in あるだけ)
{ // 既存のExcelブックを開く
xlsBooks.Open(strFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Bookを取得する
Excel._Workbook book = xlsBooks.get_Item(2);
// シートを全て取得
Excel.Sheets sheets = book.Worksheets;
// シートがあるだけ処理を回す
for (int j = 1; j <= sheets.Count; ++j)
{
// シートを取得
sheet = (Excel._Worksheet)sheets.get_Item(j);
// シートをコピー
sheet.Copy(Type.Missing, sheetsNew.get_Item(sheetsNew.Count));
}
// 開いた既存のExcelブックを閉じる
book.Close(Type.Missing, Type.Missing, Type.Missing);
// COM オブジェクトの参照カウントを解放する
Marshal.ReleaseComObject(sheets);
Marshal.ReleaseComObject(book); }

2008年3月12日星期三

C#で Excel帳票出力

やはりC#でExcel帳票出力について、もっとも共通のメッソドはHashTableで、ExcelのCELL名と対応データを保存して、出力することです。

Formatについてでも、HashTableでCell名と対応Formatを保存して、設定すればいいです。

というわけで、もっと良い方法を見つかれない場合、全部HastTableでExcelを出力しましょう。

2008年3月11日星期二

数据库的备份

今天犯了个严重的错误,
辛辛苦苦作了快一个月的两本程序,见了大量的View才搞定的,
头头把数据库重起了一下,就再也启动不起来了,可是我没有对我要用的表,view,和里面的数据作备份。

如果数据库不能够正常启动,我做的活将全都费了。
估计头头能把我吃点。:(

2008年3月5日星期三

Oracle SQL 関数についてのURL

便利な辞書です。
http://cyberam.dip.jp/database/oracle/sql/kansu/kansu_main.html

http://hisa-net.ddo.jp/php/sql/sql_list.htm

http://www.iceprobe.net/database/oracle/oraorasql/sql_kansu_group.php

Windows/WebServiceモードの開発について

注意点が幾つあります。
① BASEFORMできる限り細かくコントロール。画面設定、virual method等。
② CUSTOM_CONTROLできる限り機能わけ細かくします。
③ CODEには全局変数はできる限り一個でも使わない。