部品作成手順

「部品作成手順」の編集履歴(バックアップ)一覧はこちら

部品作成手順」(2009/03/31 (火) 20:45:44) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

-部品に関してのクラス定義はctlIndex.jsに一括記載するものとする -以下の部品を作成してみる※イメージ図 #image(fpShiiresaki.jpg,left) -まずは左側の項目の仕入先ラベルのクラスを作成します #image(lblShiiresaki.jpg,left) -ソースコード例 //-----仕入先テキスト(タイトル部) // Ext.form.TextField クラスの継承 var lblShiiresakiTitle = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) lblShiiresakiTitle.superclass.initComponent.call(this); }, hideLabel:true, // 見出しラベルの非表示 readOnly:true, // テキスト変更不可 renderTo:'lblShiiresakiTitle', // バインド名 style:'{background:#C3DAF9;text-align:center;}', // スタイルシートのように指定 tabIndex:-1, //タブ遷移しない value: '仕入先', width: 50 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('lblShiiresakiTitle', lblShiiresakiTitle); -次に真ん中の仕入先コード入力項目のクラスを作成します #image(txtShiiresakiCD.jpg,left) -ソースコード例 //-----仕入先コードテキスト // Ext.form.TextField クラスの継承 var txtShiiresakiCD = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) txtShiiresakiCD.superclass.initComponent.call(this); }, grow:false, //テキストの文字数の長さによって幅を変更するか hideLabel:true, // 見出しラベルの非表示 maxLength:4, // 最大文字数 renderTo:'txtShiiresakiCD', //バインド名 selectOnFocus:true, //選択時に文字列を選択状態にする style:'{text-align:center;}', //スタイル value: '0001', width: 50 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('txtShiiresakiCD', txtShiiresakiCD); -次に真ん中のボタンのクラスを作成します #image(btnShiiresaki.jpg,left) -ソースコード例 //-----仕入先検索ボタン // Ext.Button クラスの継承 var btnShiiresaki = Ext.extend(Ext.Button,{ // Ext.Buttonのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) btnShiiresaki.superclass.initComponent.call(this); }, renderTo: 'btnShiiresaki', //バインド名 text:'■' }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('btnShiiresaki', btnShiiresaki); -次に右端の仕入先名称ラベルのクラスを作成します #image(lblShiiresakiName.jpg,left) -ソースコード例 //-----仕入先名称テキスト // Ext.form.TextField クラスの継承 var lblShiiresakiName = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) lblShiiresakiName.superclass.initComponent.call(this); }, grow:false, hideLabel:true, readOnly:true, renderTo: 'lblShiiresakiName', style:'{background:#CCCCCC;text-align:left;}', tabIndex:-1, value: 'テスト仕入先', width: 200 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('lblShiiresakiName', lblShiiresakiName); -作成したクラスを元にパネルを構成します -ソースコード例 //-----仕入先パネル // Ext.FormPanel クラスの継承 // 継承したメソッドのオーバーライド var fpShiiresaki = Ext.extend(Ext.FormPanel,{ // コンポーネントの初期化 // itemsの設定はこちらで行うこと! initComponent: function(){ this.items = [{ layout:'table', //レイアウト種別 layoutConfig: { columns: 4 //4列指定 }, items:[ new lblShiiresakiTitle({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new txtShiiresakiCD({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new btnShiiresaki({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new lblShiiresakiName({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) ] }]; // 継承元のコード実行(必須) fpShiiresaki.superclass.initComponent.call(this); }, bodyStyle:'padding:0px 0px 0', renderTo:'fpShiiresaki', border:false, width: 300 }); //lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('fpShiiresaki', fpShiiresaki); 以上で部品化の記述は終わりです さらにこの作成した部品を呼び出すmain.jsを作成します。 -ソースコード例 Ext.onReady(function(){ // フォームに配置するアイテム var fp = new fpShiiresaki({ }); fp.render(Ext.getBody()); }); 動かす準備ができたのでhtmlを記述してみます。 -ソースコード例 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>仕入一覧</title> <link rel="stylesheet" type="text/css" href="../ext/resources/css/ext-all.css" /> <script type="text/javascript" src="../ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../ext/ext-all.js"></script> <script type="text/javascript" src="../ext/source/locale/ext-lang-ja.js"></script> <script type="text/javascript" src="../script/test4/ctlIndex.js"></script> <script type="text/javascript" src="../script/test4/main.js"></script> </head> <body> <div id="fpShiiresaki"></div> </body> </html> 読み込むjsファイルは自身の環境によってディレクトリを変更してください。
-部品に関してのクラス定義はctlIndex.jsに一括記載するものとする -以下の部品を作成してみる※イメージ図 #image(fpShiiresaki.jpg,left) -まずは左側の項目の仕入先ラベルのクラスを作成します #image(lblShiiresaki.jpg,left) -ソースコード例 //-----仕入先テキスト(タイトル部) // Ext.form.TextField クラスの継承 var lblShiiresakiTitle = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) lblShiiresakiTitle.superclass.initComponent.call(this); }, hideLabel:true, // 見出しラベルの非表示 readOnly:true, // テキスト変更不可 renderTo:'lblShiiresakiTitle', // バインド名 style:'{background:#C3DAF9;text-align:center;}', // スタイルシートのように指定 tabIndex:-1, //タブ遷移しない value: '仕入先', width: 50 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('lblShiiresakiTitle', lblShiiresakiTitle); -次に真ん中の仕入先コード入力項目のクラスを作成します #image(txtShiiresakiCD.jpg,left) -ソースコード例 //-----仕入先コードテキスト // Ext.form.TextField クラスの継承 var txtShiiresakiCD = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) txtShiiresakiCD.superclass.initComponent.call(this); }, grow:false, //テキストの文字数の長さによって幅を変更するか hideLabel:true, // 見出しラベルの非表示 maxLength:4, // 最大文字数 renderTo:'txtShiiresakiCD', //バインド名 selectOnFocus:true, //選択時に文字列を選択状態にする style:'{text-align:center;}', //スタイル value: '0001', width: 50 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('txtShiiresakiCD', txtShiiresakiCD); -次に真ん中のボタンのクラスを作成します #image(btnShiiresaki.jpg,left) -ソースコード例 //-----仕入先検索ボタン // Ext.Button クラスの継承 var btnShiiresaki = Ext.extend(Ext.Button,{ // Ext.Buttonのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) btnShiiresaki.superclass.initComponent.call(this); }, renderTo: 'btnShiiresaki', //バインド名 text:'■' }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('btnShiiresaki', btnShiiresaki); -次に右端の仕入先名称ラベルのクラスを作成します #image(lblShiiresakiName.jpg,left) -ソースコード例 //-----仕入先名称テキスト // Ext.form.TextField クラスの継承 var lblShiiresakiName = Ext.extend(Ext.form.TextField,{ // Ext.form.TextFieldのオーバーライド // コンポーネントの初期化 // itemsに関する設定はこちらで行うこと! initComponent: function(){ // 継承元のコード実行(必須) lblShiiresakiName.superclass.initComponent.call(this); }, grow:false, hideLabel:true, readOnly:true, renderTo: 'lblShiiresakiName', style:'{background:#CCCCCC;text-align:left;}', tabIndex:-1, value: 'テスト仕入先', width: 200 }); // lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('lblShiiresakiName', lblShiiresakiName); -作成したクラスを元にパネルを構成します -ソースコード例 //-----仕入先パネル // Ext.FormPanel クラスの継承 // 継承したメソッドのオーバーライド var fpShiiresaki = Ext.extend(Ext.FormPanel,{ // コンポーネントの初期化 // itemsの設定はこちらで行うこと! initComponent: function(){ this.items = [{ layout:'table', //レイアウト種別 layoutConfig: { columns: 4 //4列指定 }, items:[ new lblShiiresakiTitle({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new txtShiiresakiCD({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new btnShiiresaki({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) , new lblShiiresakiName({ // FormPanelのItemsに設定するときはrenderToを無効にする renderTo:'' }) ] }]; // 継承元のコード実行(必須) fpShiiresaki.superclass.initComponent.call(this); }, bodyStyle:'padding:0px 0px 0', renderTo:'fpShiiresaki', border:false, width: 300 }); //lazy initializationのためのxtypeを登録する // itemsのxtypeで指定できるようになります Ext.reg('fpShiiresaki', fpShiiresaki); 以上で部品化の記述は終わりです さらにこの作成した部品を呼び出すmain.jsを作成します。 -ソースコード例 Ext.onReady(function(){ // フォームに配置するアイテム var fp = new fpShiiresaki({ }); fp.render(Ext.getBody()); }); 動かす準備ができたのでhtmlを記述してみます。 -ソースコード例 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>仕入一覧</title> <link rel="stylesheet" type="text/css" href="../ext/resources/css/ext-all.css" /> <script type="text/javascript" src="../ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../ext/ext-all.js"></script> <script type="text/javascript" src="../ext/source/locale/ext-lang-ja.js"></script> <script type="text/javascript" src="../script/test4/ctlIndex.js"></script> <script type="text/javascript" src="../script/test4/main.js"></script> </head> <body> <div id="fpShiiresaki"></div> </body> </html> 読み込むjsファイルは自身の環境によってディレクトリを変更してください。

表示オプション

横に並べて表示:
変化行の前後のみ表示: