[[PrimeKarte]] > [[PkKanjaIchiran]] > [[KanjaIchiranControl_SearchFlex]] *検索用 擬似コントロール [#ue3e00c3] #contents **全般 [#hdba16f4] -患者一覧の検索条件を表示/入力設定 を行うためのコントロールである。 -VS FLEXを用いて、テキストボックス・チェックボックス・ボタン などを擬似的に再現するコントロールである。 ~ **処理の流れ [#n4bca128] +[[コントロールの初期化 (InitFlex:InitSearchFlex) >#InitSearchFlex]] +[[検索種別に対応した 擬似コントロールの形成 >#InitKanjaSearch_XXX_]]("InitKanjaSearch_XXX"((XXXは検索種別毎に用意))) +[[検索種別に対応した 擬似コントロールの形成 >#InitKanjaSearch_XXX_]](''InitKanjaSearch_XXX''((XXXは検索種別毎に用意))) +検索(今すぐ検索する場合 且つ 必須検索項目が満たされている場合) // これ以降は 患者一覧コントロール的処理の流れ... //・検索結果を一覧フレックスにて表示し、フォーカスを一覧フレックスに設定する //・統計情報を表示する設定の場合は、統計情報を取得し、表示する ~ **構成 [#waa59ac8] ***大分類 [#p157d43f] 擬似コントロールの構成は以下のとおり~ -ラベル -テキストボックス(編集不可)~ 呼び出し元より指定される、または、マスタダイアログなどの呼び出しにより取得する表示文言の場合~ 例) 診療科名, 病棟名, 医師名 など~ -テキストボックス(編集可能) フリーで入力可能なテキスト。 例) 患者のカナ名称、性別、日付表示・入力 など~ -ボタン -チェックボックス(通常) -チェックボックス(排他制御あり=>ラジオボタンの代用) ~ ***&aname(KsCtrlKind){細分化}; [#x3ae01ca] enum KsCtrlKind に定義している。~ 実際のコントロール構築にはこちらを使用している...。~ -ラベル -病棟名表示テキストボックス -診療科名表示テキストボックス -医師名表示テキストボックス -性別入力テキストボックス(直接入力可) -テキストボックス(直接入力可) -日付入力テキストボックス(直接入力可) -時刻入力テキストボックス(直接入力可) -読み取り専用テキストボックス -ラジオボタン -チェックボックス -「○○設定」用ボタン -マスタダイアログ呼び出しボタン -カレンダー呼び出しボタン(日付版) -カレンダー呼び出しボタン(日時版)((日付変更時と制御が異なるため、分離)) -日付フォーマット選択ボタン(和暦・西暦 選択ボタン) -期間指定スライド(過去・現在・未来) ~ ***定義など [#fa4897d2] 擬似コントロールに対応した 定義は以下のとおり -総列数~ 擬似コントロールを形成するために使用している~ コントロールが増えるたびに定義しなおさないといけないのが難点であり、改善すべき事である。~ -擬似コントロール幅 -[[擬似コントロールクラス >#KanjaSearchInfo]]~ 擬似コントロールを形成する際、フレックスの UserDataとして設定する -操作コード(enum KsSosaCode)~ --操作コードに対応した処理をそれぞれイベント内で処理する~ --[[擬似コントロールクラス >#KanjaSearchInfo]] にて設定しておく -[[コントロール種別 >#KsCtrlKind]]~ フレックス→コントロールのように見せかける ために使用する ~ ***制御など [#a18fa9ca] フレックスのイベントにおける制御の主なものは以下のとおりである。 -入力可否セルの判断 -IME制御 -マスク(入力フォーマット) -入力値チェック(文字数, 日付の正当性 など...) -入力値に紐付くセルの値変更(表示含む) など ~ **詳細 [#n67cda42] ***&aname(InitSearchFlex){初期化}; [#sbe00380] 擬似コントロールフレックスの初期化処理について。~ -プロパティ設定~ 以下のプロパティ以外はdefault設定でよい(と思われる...)。~ ~ |プロパティ名|概要|設定値|備考| |Rows.Fixed|固定行|0|| |Cols.Fixed|固定列|0|| |Rows.Count|行数|1|| |Cols.Count|列数|検索種別毎(処理しやすさのため、定義などしてもよい)|| |FocusRect|矩形領域|矩形領域(太い枠)|枠線を強調するのが目的| |HighLight|ハイライト設定|なし|| |BorderStyle|境界線設定|浮き出た境界線|枠線を強調するようなものであればよい| |ExtendLastCol|最終列調整|する|最終列の線(境界線)が出ないようにするため| |AllowSorting|ソート設定|ソート不可|| |AllowResizing|リサイズ設定|列|| |BackColor|背景色|システムカラーのコントロール(3D要素の表面の色)|ダイアログ他に貼り付けた際に浮き出ないため| ~ -セルスタイルの準備~ 擬似コントロール+α にセルスタイルを準備する。~ セルスタイルの設定は少ないほうがいい?ようである(メモリの関連?)。~ --ラベル --テキストボックス(エディットボックス) --ボタン --チェックボックス --性別入力((入力文字数などの制限を行うため、独立)) --日付入力((マスク処理・入力文字制御を行うため、独立)) --時刻入力((マスク処理・入力文字制御を行うため、独立)) --日付フォーマット表示ラベル ~ ***&aname(KanjaSearchInfo){擬似コントロールクラス}; [#bd97dce9] クラスの要素は以下のとおり。~ -[[コントロール種別 >#KsCtrlKind]](enum KsCtrlKind) -操作コード(enum KsSosaCode) -表示文言~ チェックボックス・ラジオボタンの場合は、チェックしたい際に''1''を立てる -編集可能セル フラグ(0:不可 1:可) -連動フラグ(配列)~ どの列番号と連動するか を 保持する(列番号:配列のインデックス) -必須フラグ(0:必須ではない 1:必須) -コントロール幅 ***&aname(InitKanjaSearch_XXX_){検索種別に対応した 擬似コントロールの形成}; [#w4f25820] 以下の順に 擬似コントロールの形成を行っていく。~ -列総数の設定&br; 擬似コントロール用 検索種別毎の列総数 は enum KsCtrlColNum にて定義しており、&br; フレックスの列総数の設定を行う。&br; -列情報クラス(配列)の初期化&br; enum KsCtrlColNum にて定義している擬似コントロール用 検索種別毎の列総数を元に&br; 列情報クラスの配列の初期化を行う。&br; -列情報クラスの設定&br; 列情報クラスのない用を1カラムずつ設定していく。&br; --擬似コントロール --列幅 --表示文言 及び チェックボックス状態 --連動するカラムの有無 -列情報の設定(InitKanjaSearch_XXX 呼び出し元にて行う) SetUserData にて 列情報を列に埋め込んでいく。&br; ~ **備考 [#y6926621] -本コントロールは イベント抑止フラグ(内部変数)による制御も行っているので注意すること -DoctorX時の患者一覧にあるカードリーダ用テキストボックスは それぞれ イベント内に組み込んでいる...