プロが教えるわが家の防犯対策術!

ファイルメーカで有給休暇管理表を作成しています。
有休申請をした後、上司の承認があった際、申請内容を編集出来ないように、データを固定(確定)したいのですが、ファイルメーカ プロのソフトでそのような設定は可能ですか?

例)
氏名:A子
有休残:20日
申請日:2006/8/28
休暇予定日:2006/8/31
申請日数:1日
休暇取得後有休残:19日
承認:●許可○不許可

↑承認のフィールドは値一覧で定義をし、ラジオボタンで選択出来るよう設定してあります。
許可の選択があった時点で、このレコードの「氏名~休暇取得後有休残」までのデータを確定させ、後から編集出来ないようにしたいのですが、ファイルメーカでそのような設定は可能ですか?

また、他の人の有休データを見れないよう、パスワードを設定し管理をしたいのです。
例えば、A子、B子、C子.....数十名のレコードがあるとします。
A子が自分の名前を入力すると、予め設定したパスワードを入力することにより、自分のデータが表示され、B子やC子などのデータは、A子が見れないよう管理をしたいのですが、そのような設定は可能でしょうか?

どうか、良きアドバイスの方、宜しくお願いします。

A 回答 (10件)

個人的には、社内の「ユーザ名」管理が、きちんと出来ていれば、パスワード(機能)は、省略したいと思っていますが、


性悪説で、パスワード機能を、盛り込んでみました。

ついでに、有休所得日数の、20日 というのは、年度ごとでしょうから、年度管理も出来るように、考えました。
同時に、個人ごとに、スタート日数が異なるのも、対応可能にしました。

基本的ポリシーは、
1:氏名は、Status(ユーザ名) で、自動記入にするが、手動変更も可能。
2:パスワードは、1年間につき、1パスワードをフィールドで用意
3:通常はパスワード無しで、開くように強制設定。
4:管理者は、パスワードを入力して使用。


【フィールド定義】

フィールド名   :タイプ  :(式など)
---------:-----:---------------
ユーザ名_入力  :計算   :Status(ユーザ名)
パスワード_入力 :グローバル:(テキストタイプ)
年度_入力    :グローバル:(数字タイプ)
UPY_入力   :計算   :テキストタイプ
               :ユーザ名_入力 & パスワード_入力 & 年度_入力
申請日_入力   :グローバル:(日付タイプ)
休暇予定日_入力 :グローバル:(日付タイプ)
申請日数_入力  :グローバル:(数字タイプ)

ユーザ名_記録  :テキスト :
パスワード_記録 :テキスト :(テキストタイプ)
年度_記録    :数字   :
UPY_記録   :計算   :テキストタイプ
               :ユーザ名_記録 & パスワード_記録 & 年度_記録
               :索引設定する
申請日_記録   :日付
休暇予定日_記録 :日付
申請日数_記録  :数字
許可_記録    :テキスト

2:リレーション
自己リレーション
UPY_入力でUPY_記録を見に行く。

3:ファイルを開いたときに、実行するスクリプトで、パスワードを "" に、する。

【動作】
通常ユーザーは、ファイルを開くと、
 ユーザ名_入力  フォールドに、ユーザ名が入力されている。
 パスワード_入力 フィールドに、必要事項入力
 年度_入力    フィールドに、必要事項入力
この時点で、ポータルウインドウに、本年の取得状況と、申請、許可状況が表示されている。

続けて、
 申請日_入力   フィールドに、必要事項入力
 休暇予定日_入力 フィールドに、必要事項入力
 申請日数_入力  フィールドに、必要事項入力

「申請」ボタンを押す。
申請ボタンのスクリプトは、
 新規レコード
 フィールド設定 ユーザ名_記録  ← ユーザ名_入力
 フィールド設定 パスワード_記録 ← パスワード_入力
 フィールド設定 年度_記録    ← 年度_入力
 フィールド設定 申請日_記録   ← 申請日_入力
 フィールド設定 休暇予定日_記録 ← 休暇予定日_入力
 フィールド設定 申請日数_記録  ← 申請日数_入力
 フィールド設定 許可_記録    ← ""
 プレビューモードへ(一時停止しない)
 ブラウズモードへ

ポータルの中は、いじれないようにしておく。

うーん、とても複雑な上、申請ボタンを押した瞬間に、申請者も、変更できない状況ですね。

イマイチな、回答で、すみません。
イメージ沸きますでしょうか?

絶対、もっとスマートな方法が、有るだろうな。
とても、超初心者が組むべき命題ではないと思います。

この回答への補足

質問者のshaman_fineです。
度々すみません。先ほどの質問3.パスワードを""の意味がわかりました。落ち着いて文章を何度も読み直したら理解出来ました。
別に質問をさせて頂いてもいいですか?
申請ボタンのスクリプト設定の順序を教えて頂きましたが、新規レコード以降の設定の仕方がよくわかりません。

例えば、フィールド設定 ユーザ名_記録  ← ユーザ名_入力 の設定は、スクリプトの設定→フィールド設定→指定→計算式の指定の設定でよろしいですか?
また、「 ← 」とは = のことでしょうか?
あと、プレビューモードへ(一時停止しない)、と、ブラウズモードへ のスクリプトの設定の仕方が何度探しても分かりません。

何度もお手数をおかけして、誠に申し訳ありません。
何卒ご指導の方、宜しくお願いします。

補足日時:2006/09/01 00:22
    • good
    • 0
この回答へのお礼

himajin1さん!ありがとうございます。本当に感謝*2です!早速教えて頂いた通り設定していますが、
3:ファイルを開いたときに、実行するスクリプトで、パスワードを "" に、する。
という設定がよくわかりません。
どのように設定をすれば良いのですか?
どうか知恵を貸して下さい。
宜しくお願いします。

お礼日時:2006/08/31 22:04

ルックアップを使わないで、下記の機能を、どの様に実現したのか、正確に記述してください。



> 他のファイルから氏名や年初有休残などのデータを自動的に反映されるよう、
> テストのつもりで勝手に自作の数個(名前_データ、名前_記録、年初有休
> 残_データ、年初有休残_記録)のフィールドを作成しました。

どの様に、他のファイルから氏名や年初有休残などのデータを
自動的に反映させたのですか?
    • good
    • 0
この回答へのお礼

色々とアドバイス頂いた方法をベースに、何とか作成することが出来ました。
集計方法など、まだまだ沢山課題が残っていますが、一応これで上司に説明をし、その後に再度フォームの見直しをしたいと思います。
そのときは新たに質問をさせて頂くことになりますが、またご指導頂けますよう、よろしくお願いします。

お礼日時:2006/09/03 19:37

他のファイルから氏名や年初有休残などのデータを自動的に反映させるのは、やめた方が良いです。

1ファイルで、全て管理しましょう。

ところで、ルックアップという、単語はわかります?
    • good
    • 0
この回答へのお礼

himajin1さん、実はルックアップの方法も考えました。今回はリレーションではなく、ルックアップ機能の方が良いのでしょうか?

お礼日時:2006/09/02 15:30

私は、まだ、ゴールは遠いと思いますよ。


超初心者が挑むには、無謀なテーマですので。

さて、次に、
  他のファイルのデータを「*_入力」フィールドに取り込み、
  スクリプトの「申請」ボタンを押しても、
  「*_記録」フィールドは何もデータが転記されないのですが、
  他に何か設定が必要なのでしょうか?

に、関してですが、なんだか、滅茶苦茶な事になっているようです。

私が、教えてきたことに、「他のファイル との、リレーション」は、有りません。
すべて、1つのファイル上で、動作します。
リレーションは、1ファイルの中で完結する「自己リレーション」です。

PS ファイルメーカーの機能である、アクセス権のパスワード定義は、出口が見えてきた後半で設定しますので、まだ、掛けない方が安全ですよ。
    • good
    • 0
この回答へのお礼

himajin1さん、いつもありがとうございます。
ゴールはまだ遠かったのですね。がっかりです。
リレーションについてですが、すみません。
himajin1さんからは自己リレーションの説明をして頂いたのですが、テキストをみて、他のファイルから氏名や年初有休残などのデータを自動的に反映されるよう、テストのつもりで勝手に自作の数個(名前_データ、名前_記録、年初有休残_データ、年初有休残_記録)のフィールドを作成しました。
その結果、himajin1さんから教えて頂いたフィールドは、きちんと*_記録に転記されるのですが、自分が作った自作のフィールドは記録のフィールドに何のデータも転記されませんでした。
そこで、設定内容をhimajin1さんに教えて頂いたフィールドとの違いを見たところ、他のファイルとのリレーション違いしか思い浮かばず、質問させて頂きました。
何か良い方法ありますでしょうか?

お礼日時:2006/09/02 09:57

まず、「3:ファイルを開いたときに、実行するスクリプトで、パスワード_入力を "" に、する。

」という設定は、以下のようにします。

1:スクリプトメニュー から、スクリプト定義 を開く
2:スクリプトメニューに表示させる のチェックを外して、
  「はじめに」とか、「初期設定」の様な、スクリプト名を「作成」
3:スクリプトステップとして、フールド設定 を選び
  フィールド指定は、パスワード_入力
  指定...   には、""

ついでに、あなたの、会社が、3月末決算だと仮定して、
4:スクリプトステップとして、もう一回、フールド設定 を選び
  フィールド指定は、年度_入力
  指定...   には、Year(Status(日付)+275) - 1

5:「OK」を押して、スクリプト編集を閉じる。
6:「終了」を押して、スクリプト定義を閉じる。

ここからが、ポイントです。

7:編集 メニューから プレファレンス(初期設定) 「ファイル」を開きます。
8:下から2段目に、ファイルを開くときに「実行するスクリプト」 が有りますので、チェックを入れて、スクリプト名を、先ほど作った、スクリプト名(「はじめに」とか、「初期設定」)に、変えます。
9:「OK」を押して、ファイルプレファレンスを閉じる。

こういう事は、考えて思いつくことではないので、どんどん聞いてください。
    • good
    • 0

himajin1 です。


ごめんなさい
誤  3:ファイルを開いたときに、実行するスクリプトで、パスワードを "" に、する。

正  3:ファイルを開いたときに、実行するスクリプトで、パスワード_入力を "" に、する。

です。

フィールド設定 ユーザ名_記録  ← ユーザ名_入力 の意味は、

スクリプトの編集で
 フィールド設定
  フィールド指定  :ユーザ名_記録
  指定:計算式の指定:ユーザ名_入力
の意味のつもりです。
ややこしい書き方でごめんなさい。

やっていることは、*_入力 のフィールドの内容を、すべて、*_記録 という、本来のフィールドに転記しているのです。

あと、プレビューモードへ(一時停止しない)、と、ブラウズモードへ のスクリプトの設定は、
スクリプトの編集で
 比較的上の方 切り替え/移動
  のグループの下の方(ソ-ト/検索/印刷)の上にあります。

この2つは、フィールドから、外に出て、入力したデータを確定させるための動きですので、
無くても良いですが、これをしないと、ポータルに反映されないのです。
    • good
    • 0
この回答へのお礼

himajin1さん、丁寧なご説明大変感謝します。
早速教えて頂いた通り作ってみました。
お陰さまで、だんだんゴールが見えてきたようです!
何度も質問をしてすみません。
「3:ファイルを開いたときに、実行するスクリプトで、パスワード_入力を "" に、する。」という設定がわかりません(泣)昨日一瞬分かった気分になったのですが、今日になって、どう考えても、ど素人の私の頭脳では理解できませんでした。
また、もう一つお聞きしたいことがあるのですが、リレーション定義を使い、他のファイルのデータを「*_入力」フィールドに取り込み、スクリプトの「申請」ボタンを押しても、「*_記録」フィールドは何もデータが転記されないのですが、他に何か設定が必要なのでしょうか? 宜しくお願いします。

お礼日時:2006/09/02 00:48

「ファイル」-「アクセス権」の「パスワード定義」機能を使ってできないでしょうか?


「レコードの編集を制限」で、承認フィールドが「許可」ならばレコード編集不可にできますし、
「レコードのブラウズを制限」で、氏名フィールドが本人以外の場合はブラウズ不可にできます。

もちろん制限するための簡単な計算式を入れておく必要があります。
レコードの編集を制限するには、
If(承認 = "許可",0,1)
としておけばOKですね。
ファイルメーカーの場合、計算結果が0の場合はアクセス拒否、0以外の場合はアクセス許可となります。

レコードのブラウズを制限する場合は、例えばA子の場合
If(氏名 = "" or not 氏名 ="A子",0,1)
としておけば、氏名にA子と入っていない場合はブラウズできません。

このため、新規レコードを作成するときには氏名をまず入力するようにスクリプトで導いてあげる必要がでてきます。
これはshaman_fineさんがスクリプトが書ける方ならばそんなに難しくないと思いますので、好みのインターフェースを作ってあげて下さい。

それともうひとつ問題が残りますが、A子自身が承認フィールドをいじくれないように、「フィールド書式」の「フィールドへの入力を許可する」のチェックははずしておかなければなりません。

上司用には別のレイアウトを作って承認フィールドへの入力を許可しておきます。
(必要に応じてですが、そのほかのフィールドは入力不可にしたほうが良いと思います)
その後、「アクセス権」の「一覧」から上司用レイアウトは一般社員からはアクセス不可にしておきます。
逆に一般社員用レイアウトは上司からアクセス不可にしたほうが良いと思います。

基本概念としてはこんなところでいかがでしょうか。

この回答への補足

tsuguoさん、設定出来ました!お騒がせしてすみませんでした。アクセス不可、閲覧のみのボタンの設定が間違っていました。御迷惑をおかけしてすみません。
教えて頂いた通り、設定し直して見ます。本当にありがとうございました。

補足日時:2006/09/02 03:56
    • good
    • 0
この回答へのお礼

貴重なアドバイスありがとうございます。
早速設定してみたのですが、ファイルを開く瞬間”アクセスは拒否されました”のメッセージが出て、ファイルの中に入れません。
何か設定がおかしいのでしょうか?

お礼日時:2006/09/02 01:33

状況はわかりました。



私は、以前、ファイルメーカーサーバーを利用して、残業管理のデーターベースを作ったことがあるので、同様にすれば、ご希望の事が可能になるはずです。思い出しますので、少し、時間をください。

ファイルメーカーサーバーは、使っていないんですね?
    • good
    • 0
この回答へのお礼

ハイ、ファイルメーカーサーバーは使用しておりません。
お手数をお掛けしますが、何卒よろしくお願いします。

お礼日時:2006/08/30 09:18

もう一度確認します。



データベースは、社内の共有フォルダに入れるとして、
バージョン6の、ファイルメーカープロが、各人のマシンに
インストールされているのですね?

status(ユーザー名) を、使えるかどうかを確認するための質問です。
    • good
    • 0
この回答へのお礼

はい、その通りです。
是非ご指導の方宜しくお願いします。

お礼日時:2006/08/29 19:58

qid=2362935で、超初心者という切り出したったので、


リレーションを、使用しない方法を紹介しました。

しかし、今回の質問から想像すると、リレーションを使用した方が良さそうです。

Q1:ファイルメーカープロは、1台のマシンだけで、多人数で使用ですか?それとも、複数台のマシンに、FMPが、それぞれ導入されているのか?WEB共有なのか?
など、環境を、もう少し、詳しく教えてください。
バージョンも。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
テキストを見ながら、何とかリレーション機能を定義しました。自分なりにある程度リレーション機能を理解している?つもりですが、自信はありません・・・
ファイルメーカープロは社内の共有フォルダに入れる予定です。また、バージョンは6です。
何でも結構ですので、是非教えて下さい。
よろしくお願いします。

お礼日時:2006/08/29 12:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す