みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Moz様
お世話になっております。
エラー処理はしていました。
勘違いでした。
で、全てオフにしたところ、正常動作するようになりました。
またファイルアクセスでは、一度関連を全て削除し、設定をやり直しました。
何回かトライ後、エラー処理はオンにしました。
これで、都度聞いてくる認証のメッセージも出なくなりました。
しかし、今回の現象は、今まで他部署のシステムでのファイルでは全く発生していませんでした。
必ず、各ファイルはフルアクセスのアカウントは登録しています。
何か腑に落ちない点はぬぐい切れません。
とりあえず結果OKという状態です。
それにしても、Moz様、himadanees様には
大変お世話になりました。
ありがとうございました。
Moz様
お世話になっております。
エラー処理は元々設定していないです。
himadanees様、Moz様
引き続き、アドバイスありがとうございます。
メニューのマスターも完全アクセス権は設定しています。
→言葉を間違えていました。
メニューも、マスターも完全アクセス権を設定しています。です。
「このファイルへの参照の使用に~」のチェックを外してますか?
→双方のファイルのにおいて、「ファイルアクセス]のチェックを外しました。
それと説明が下手で、足りていなくて申し訳ありません。
「○○メニュー」に設定したスクリプトで、「○○マスター」にあるレイアウトを開くスクリプトを
実行するようにしています。
ところが、スクリプトで「○○マスター」を指定しても、「○○マスター」のスクリプトが表示されないのです。
で、「○○マスター2」を再度設定すると表示されます。
「このファイルへの参照の使用に~」のチェックは、双方とも外した状態ですと、
「○○メニュー」から「○○マスター」を開き、指定のレイアウトを開くことができました。
一旦、ファイルを閉じ直しても正常に動作します。
その後、「このファイルへの参照の使用に~」のチェックは、双方とも入れました。
認証を聞かれたのでOKしました。
すると、またまた、「○○メニュー」のスクリプトでは、「○○マスター」を認識してくれません。
ちなみに、他に「□□マスター」があるのですが、そちらは特に何もしなくても正常動作します。
FM19ではいくつものファイルを作ってきましたが、今回どうしてこのような現象が起きるのか・・・。
FMカンファレンス中の貴重な時にお手数おかけします。
Moz様、アドバイスありがとうございます。
メニューのマスターも完全アクセス権は設定しています。
設定を見直すのは「○○マスター」ファイル側ということです。
→ 「○○マスター」において、「○○メニュー」のファイルアクセスは設定しています。
何か私がピント外れな勘違いをしているのでしょうか?
下記の件よろしくお願いいたします。
WindowsServer2019側:FMS19.5、Windows10Pro側:FM19.5
「○○メニュー」、「○○マスター」も完全アクセスのアクセス権セットが設定されています。(同じもの)
「○○メニュー」において、「○○マスター」を開くスクリプト、「○○マスター」内のレイアウトを表示するスクリプトを設定しています。
ところが、そのスクリプトを実行しても正常に動作しないのです。
「○○メニュー」では、外部データソ-スで、「○○マスター」を指定しています。
エラーメッセージ:
「○○メニュー」には保護されたファイル「○○マスター」開く権限がありません というエラーメッセージが解決できません。
(認証は1回限りの処理で両方もファイルへの完全アクセス権が必要です)
「○○メニュー」において、セキュリティ → 詳細設定 → ファイルアクセスで、「○○マスター」を設定しました。
それでも、正常に動作してくれません。
少なくともFM18かFM19の初期バージョンでは、「ファイルアクセス」で設定などしていませんでした。
何が原因で、どうすればいいか、どうぞよろしくお願いします。
あまり詳しいことを考えずに相談投稿してしまいました。
申し訳ありません。
納品プログラムは、独自の計算式に置き換えて、今後運用していきます。
どうゆう意味でしょうか?
有償で納品するものであるならば、ここで無償で相談することはダメだということでしょうか?
ここで紹介された関数や計算式を有償で納品するということは、勝手にはできないということでしょうか?
お二人には、ここまでいろいろと考えていただき大変会社しています。余計な時間も使わせてしまったこととと思います。
で、結局、どうしたかと言いますと
元々は「データ」というフィールド・・・3206バイト
・データ_商品名から最後_DT Middle( データ ; 361 ; 800 )
・データ_右から規格名漢字_DT Right( データ ; 826 )
・データ_右からケース数_DT Right( データ ; 673 )
影響のない範囲で、元データを区切りました。
そこから、お教えいただいたカスタム関数やフィールドに設定する計算式をケースバイケースで設定しました。
そして1項目づつ、値を確認しました。
複数の発注データで検証しましたが、全てあるべき値を取得できとりあえずほっとしています。
納品までの時間もあまり残されていなかったためこんなベタことをやりました。
昨日、今日と、このベタな方法でも正常に処理できてるので、このままいきます。
ただし、何らかの理由で正常に取得できないリスクは抱えたままです。
とにもかくにも、ご指導いただきまして誠にありがとうございました。
●MiddleB ( text ; start ; length ) は
Let (
HT = Middle ( HexEncode ( TextEncode ( text ; "shift_jis" ; 1 ) ) ; start * 2 - 1 ; length * 2 ) ;
TextDecode ( HexDecode ( HT ; "shittJIS.bin" ) ; "shift_jis" )
)
これをカスタム関数で登録すればいいと思いました。
★lengthは引数として登録できない → lenに変更したらOK
★計算式に=があるのでこの計算式はエラーになってしまう
何か根本的に理解できていないところがあるのでしょうか?
そこで、直接フィールドにこ関数をセットしたところ、正常に値を取得できるフィールドと取得できないフィールドがあるのです。
項目間に空白があり、それが全角だったり半角だったりしていることが影響しているのか・・・。
※Claris社はどうしてByteで取得できる関数をやめてしまったのですかね。
日本や中国はとても困っていると思うのですが
himadaneeさん、アドバイスありがとうございます。
関数名が既存だから?
・・・既存登録済ではないのです。
ところで、倍角ではなく全角といいます。
倍角というのは、昔のワープロにあった、標準より横幅を2倍にする文字装飾のことです。
→知識不足のところありがとうございます。
shinさん
本日8:58にいただいた関数で再度トライします。
While関数のところは、私には理解できませんでした。
追ってご報告致します。
ありがとうございます。
たびたびの質問で恐縮です。カスタム関数の登録で綱拭いています。
まず、
1)RightBは
Case (
Length ( text ) + Length ( Filter ( text ; RomanZenkaku ( KanaZenkaku ( text ) ) ) ) ≤ len ; text ;
RightB ( Right ( text ; Length ( text) - 1 ) ; len )
)
を作りました。
引数は、text、len
次に
2)Middle ( Text ; n ; m )
Left ( RightB ( Text ; Length ( Text ) - n + 1 ) ) ; m )
引数は、text,n,m
この2)で「OK」ができず、エラーとなってしまいます。
何がいけないのでしょうか?
お手数おかけします。
よろしくお願いいたします。
shinさん
さっそくお教えいただきましてありがとうございます。
試してみます。
以前カスタム関数で、
1)指定バイト数で値を生成(倍角があってもOK)
LeftB ( text ; len )
というカスタム関数
Case (
Length ( text ) + Length ( Filter ( text ; RomanZenkaku ( KanaZenkaku ( text ) ) ) ) ≤ len ; text ;
LeftB ( Left ( text ; Length ( text ) - 1 ) ; len ))
2)半角バイト数を返す(倍角があってもOK)
Length( テキスト & Filter ( テキスト ; RomanZenkaku (KanaZenkaku ( テキスト ))))
の2つをお教えいただきました。
今回は、Middle関数も必要になるのかなと思いますが、なかなかうまいこと行きません。
ご指導の程よろしくお願いいたします。
Shin様
アドバイスありがとうございます。
今一度スクリプトの佳奈美を確認しました。
そしたら、なぜか「全てを選択」というのが入っていました。
別のスクリプトをコピペで持ってきていて、そこには全く気付いていませんでした。
これを外したら、正常に動作しました。
助かりました。
ありがとうございました。
★インスペクタの一番右:フィールド入力で、「フィールドに入るときに全内容を選択」の動きについて
チェックを外していれば、全内容を選択にはならない
チェックを入れると、全内容を選択する という機能。
ファイルにより、またはフィールドによって、
この機能が正常に動作したり、機能しなかったしていました。
いろいろと調査した結果、そのフィールドにスクリプトトリガーを設定していると、
チェックを外していても、全内容を選択となってしまうことを発見しました。
改めて、トリガーを外すと、全内容選択にはなりません。(チェックをしていない)
トリガー設定していても、チェックをしていない場合は、全内容を選択にならないように
するにはどうすればいいでしょうか?
どうぞご教示いただきたくよろしくお願いいたします。
qb_dp様 アドバイスありがとうございます。
先日、お礼投稿したつもりでしたが、今朝見たらその投稿がありませんでした。
改めて御礼申し上げます。
Qiitaサイトをみました。これが実現できるととても便利ですね。しかしながら、考え方や設定方法はかなり難しく感じました。
私にはちょっと扱いが難しいです。
himadanee様、ありがとうございます。
カーソルさえ抜けなければ、どこのフィールドにいどうしても確定されないことを確認できました。
また、最悪はバックアップしてあるファイルで確認、再入力というのも方法としてありなのですね。
チポ様:ありがとうございます。
1)外に抜けて確定してしまった場合は、
$$fdAとして値を取得というスクリプトを OnObjectEnterにて取得しておく。
元に戻す場合は、たとえばフィールド設定スクリプトを、そのフィールドの脇にボタンとして設置するということになるでしょうか?
この場合、複数のフィールドの時はグローバル変数、元に戻るスクリプト、ボタンはフィールド数分用意することになるでしょうか?
2)または、カーソルから抜けていない状態ということが条件ですが、「元に戻す/再実行」のスクリプトのボタンを設置する。
この場合は、どこのフィールドでも復帰できますね。
チポ様、返信の相手を間違えてしまいました。大変失礼しました。
戻せるまでのタイムリミットはケースバイケースなのですが、他のフィールドに入力する前だと入力ミスに気付かないこともあります。
他のレコードに移る前まで として考えたいと思います。
よろしくお願いいたします。
チポ様
ご回答ありがとうございます。元の値がわかっていればいいのですが、今回はメモなど控えがないし、覚えていないという状況です。
fdAの値:あいうえお
これを、かきくえこ と変更して確定しました。
あとで、ミスに気づき、元の あいうえお に戻したい場合にどうすればいいでしょうか?
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 639.87 KiB (Peak: 677.03 KiB) ]