Presentation is loading. Please wait.

Presentation is loading. Please wait.

Delphi Day ~Delphi 活用事例~

Similar presentations


Presentation on theme: "Delphi Day ~Delphi 活用事例~"— Presentation transcript:

1 Delphi Day ~Delphi 活用事例~
Sep. 7, 1999 Makoto Hattori TACMI CO.LTD.

2 AGENDA 他アプリケーションと連携した契約書作成 HTMLドキュメント作成・配布 汎用タッチパネルシステム

3 他アプリケーションと連携した契約書作成 なぜ他アプリケーションとの連携が 必要か? 適材適所 必要に応じエンドユーザーが使えるツール
開発期間の短縮

4 契約書や送付案内等の場合 書式が複雑 多数の書式 一度の印刷部数が比較的少ない 罫線が多用されている 文面の変更が多い 相手先によって違う
契約形態などによって違う 一度の印刷部数が比較的少ない 多少印刷に時間が掛かっても良い

5 表計算やワードプロセッサ 複雑な書式も簡単に作成できる 書式毎に文書を用意しておける プログラムの知識が無くても作成・変更可能
Delphi Enterprise can be described as three things It is an Multi-tier development tool that is Integrated end-to-end. Delphi Enterprise is built on an Open architecture Delphi Enterprise has been Proven by developers world wide All of this makes Delphi enterprise "Scalable Multi-tier made easy."

6 連携の為の技術 OLEオートメーションコントロール 他アプリケーション操作の為の知識 問題点もある
ExcelやWordならVBAの知識が必要 問題点もある アプリケーションのバージョンによって操作方法が変わる場合 クライアントPCにアプリケーションの配布が必要

7 実現手法(Excelを使った場合) 文書の作成 レイアウトや罫線などは自由に作成 データを差し込みたい部分に「名前」を定義する
オートメーションオブジェクトを作成し、定義した 「名前」に対してデータをセットする

8 var Appli, Excel, WorkBook, WorkSheet: Variant; begin Excel := CreateOleObject('Excel.Application'); try Appli := Excel.Application; Appli.WorkBooks.Open('テンプレート.xls'); Appli.Visible := True; WorkBook := Appli.ActiveWorkbook; WorkBook.Windows(1).Visible := True; Appli.ScreenUpdating := False; WorkSheet := WorkBook.WorkSheets('ワークシート1'); WorkSheet.Select; WorkSheet.Range('番号').Value := '12345'; WorkSheet.Range('名前').Value := ‘服部'; WorkBook.SaveCopyAs(filename :=‘契約書.xls‘); WorkBook.saved := true; finally Appli.WorkBooks.Close; Excel.Quit; end;

9 HTMLドキュメント作成・配布 大量のHTML文書、もしくは頻繁な変更がある Webサーバーを使わない(使えない) 費用や人的資源の問題
プロバイダのホームページサービスを利用したデータ提供 自社ネットワークへの外部からの侵入が無い Webサーバーの種類を問わない

10 あるボランティアグループの例 迅速・広範囲な情報提供が必要 テキスト情報に加え、写真も必要 インターネットで公開・募集
Webサーバーやドメインを持つ予算・管理者が無い

11 システム内容 スタンドアロンで良い データベースにはParadoxを使用 デジタルカメラから画像を取り込む・画像の編集も必要
フリーウエアのTWAINライブラリを使用 HTML文書の自動作成 コンテンツプロデューサーコンポーネント 文書・画像をプロバイダへ自動送信 NMFTPコンポーネント

12 コンテンツプロデューサー HTMLドキュメントへのデータ差し込み データベースから直接行う プログラムコードで行う
表形式ドキュメントの作成も可能 生成されたHTMLをテキストで取り出せる

13 PageProducer <HTML> ・ <BODY>
<BR>最終更新日<#UPDATE> </HTML> PageProducer テンプレートHTMLが読み込まれる #付きタグが有るとイベント発生 コードで#付きタグにデータをセット HTMLテキストを要求(Contentプロパティを参照する) HTMLテキスト

14 DataSetPage Producer DataSet コンポーネント ・ ・ <#CustName>様
・ ・ <#CustName>様 受注番号<#OrderNo> DataSetPage Producer #付きタグが有るとイベント発生 コードでさらに加工も可能 #付きタグが項目名と等しいとデータ取得 DataSet コンポーネント

15 タグ設定用イベント procedure TMainForm.PageProducer1HTMLTag(Sender: TObject; Tag: TTag; const TagString: String; TagParams: TStrings; var ReplaceText: String); begin if CompareText(TagString, 'UPDATE') = 0 then ReplaceText := FormatDateTime('yyyy/mm/dd', Date); end; HTMLテキストをファイルへ出力 var St : TStringList; begin St := TStringList.Create; try St.Text := PageProducer1.Content; St.SaveToFile('Doc.html'); finally St.Free; End;

16 DataSet コンポーネント データの供給 DataSetTableProducer 表形式HTMLの生成 どの項目を出力するのか設定 項目毎の書式の設定 表の前後にオプションのHTML設定 表のセル単位にイベント セルの書式設定HTMLを付加 HTMLテキストを要求 (Contentプロパティを参照する)

17 セル書式設定用イベント procedure TMainForm.DataSetTableProducer1FormatCell( Sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); begin Case CellColumn Of : begin CustomAttrs := 'Width=20%'; CellData := '<A HREF="' 'H' + FormatFloat('000', Table1Seq.AsInteger) + '.html' '">' + CellData + '</A>'; end; : CustomAttrs := 'Width=30%'; : CustomAttrs := 'Width=50%'; end; end;

18 NMFTPコンポーネント ホスト、ユーザーID、パスワードはプロパティで設定 FTP通信用コンポーネント
ディレクトリリスト、ファイルリストの取得 ファイルの送受信 アスキー、バイナリ 通信状況を知らせるイベント ホスト、ユーザーID、パスワードはプロパティで設定

19 ファイル送信の例 NMFtp1.Connect; try NMFtp1.ChangeDir('homepage'); NMFtp1.Mode(MODE_IMAGE); NMFtp1.Upload(LFileName, RFileName); finally NMFtp1.Disconnect; end;

20 汎用タッチパネルシステム Windowsのコントロール外観では不満 色や形を自由に デザイン変更を容易に さまざまな機能ボタンの実現
画面切り替え時にワイプイン・ワイプアウトが必要

21 汎用タッチパネルシステム ウインドウ全体をビットマップで作成 通常・クリック時の2枚の画像を用意
ウインドウ各部のボタン座標定義ツールを別途用意 各種の画面切り替えモードを用意


Download ppt "Delphi Day ~Delphi 活用事例~"

Similar presentations


Ads by Google