前回も投稿し教えていただたいたのですが、あと一つ解決していないので再度、投稿致します!
PDFフォームにてドロップダウン(Bフィールド)の項目を選び、入力フォーム(Aフィールド)で数量をうちこんだら予め設定した金額(Cフィールド)が表示するという事がしたいです。
前回は入力フォームにて数量をうちこんだら金額が表示するというスクリプトを教えていただいたのですが、今回はドロップダウンの何種類かある項目を選び、数量をうちこんだら金額が表示するというスクリプトを教えていただけないでしょうか?
1.数に予め設定した金額を表示させるようにしたいです。
1本→¥500 2本~3本→¥900 4本~11本→¥1,000
2.ドロップダウンで選んだ項目は「鉄パイプ裁断加工賃」と「研磨加工賃」と選べるようにして選んだ項目ごとに金額を変えるように出来ないかと考えております。
鉄パイプ加工賃 1本 ¥500 2本~3本→¥900 4本~11本→¥1,000
研磨加工賃 1本 ¥400 2本~3本→¥800 4本~11本→¥900
厚かましいお願いですがアドバイスよろしくお願いします!
No.4ベストアンサー
- 回答日時:
ANo1です
スクリプトでの計算方法はひとつに限っているわけではありません。
例えば、前回の質問は単純でしたので、場合分けをして値を設定しています。
今回も同様の方法でも可能ですが、少し変えて、下図のような表(赤枠内)を作成しておいて、それぞれのケース分けから表内の値を参照するという方法に変えています。
また、本数の入力が無い場合に結果欄に「\0」などと表示されるのはイマイチなので、この場合は空白になるように別に処理するようにしています。
前回に比べれば、今回の方法の方が少し一般化した解法になっていると言えるかもしれません。
例えば、加工の項目数を増やしたり、本数の場合分けを増やしたりする場合も、表を拡張すると考えれば、表のデータを変えることで拡張が可能になります。
>var result = "", i, idx = 0; ←どのような働きをするのでしょうか?
javascriptではvarは変数の宣言をする際に使用するもので、変数=値とすることで初期値を設定することも可能です。
その他の文法やPDF特有の構文などについては、ここの回答欄ではとても足りないと思いますので、前回回答で挙げました資料などを参照してください。
できました~!!!!
図を作成していただきありがとうございます!
とてもわかりやすかったです!!
javaはいろんな方法があるのですね!
奥が深い.....
これで独自の見積りシュミレーターが作れそうです♪
とても楽しみです!
この度は初心者にやさしくおしえていただき、本当にありがとうございます!!!
言葉に表せられないくらい感謝しています!
No.3
- 回答日時:
ANo1です。
記述間違いがありました。
テキストフィールドAの設定で
× (検証タブ) 値の範囲を指定 開始値:0、終了値:11
○ (検証タブ) 値の範囲を指定 開始値:1、終了値:11
ですね。1~11に規制したいので。
自分の方ではこのように設定していて、投稿時に書き間違えました。
(いろいろミスが多くて、すみません)
No.2
- 回答日時:
ANo1です。
>Adobeさんにも聞いていただいたようで~~
ダイレクトに聞いたわけではありません。
ANo1に記載したAdobeサイトの各種説明等を調べたということを、少し擬人的に表現してみただけですので・・・
(誤解なさったのなら申し訳ないです。『聞いてみたけど~書いてない』で通じるかなと・・)
>今回JavaScriptを使用するPDFフォームはまさに未知体験でした!
私も、PDFでのjavascriptはほとんど未知体験です。
>今回教えていただきましたJavaScriptは想像以上に難しいのですね!
スクリプトの内容は決して難しいものではありません。
ただ、私がPDF要素とのインターフェースやスクリプトの実装方法をまったく知らなかっただけなのです。
> ~~と記述する形で宜しいのでしょうか?
値を取得するだけなら
getField("フィールド名").value
で取得できます。
通常はフィールドの値は文字列で返されますが、AFMakeNumber()は、これを数値化するメソッドです。
(今回は扱う内容を数値に限定していますので)
>テキストAフィールドの 開始値:0, 終了値 11 ~~
入力値の規制をしています。
フォーマットで数値、少数以下0桁としていますので、整数しか入力を受付けないのですが、今回はさらに1~11の数値(及びブランク)のみに絞るためにこの指定を追加しています。
なぜこのようなことをするかと言えば、スクリプト側で入力値をチェックしなくてもよくなるからです。
(そうでない場合は、スクリプト側で、まず、おかしな数値や数値以外が入力されていないかをチェックする必要がでてきます。)
試しに20などの数字やhogeなどの文字を入力してみれば、設定の効果がわかると思います。
>ドロップダウン 書き出し値:1 は どのような働きをするのでしょうか?
項目名はPDF上で表示されている値を意味しています。
書き出し値はjavascriptなどで値を取得した際に返される値です。
(項目名が返されるわけではありません。内容を同じにしておけば同じものが返されますが)
※ 以上のような内容は、私もまったく知らなかったものですが、紹介したサイト(及び派生リンク)やドキュメントを読むことで取得が可能です。
とはいっても、超拾い読みしかしてませんので、内容的に正確かというとかなりあやしいものですので、そのおつもりでご覧になってください。
内容については、質問者様ご自身で、再度、確認なさるのが宜しいかと思います。
No.1
- 回答日時:
こんにちは
前回回答者です。
前回の「Calculate」に関して、
>プロパティでカスタム演算の編集にて教えていただいた文をコピペしておりました!
「計算」のタブが隠れていて見えなかったので、これにはまったく気が付いていませんでした!!
まさに、これが良さそうですね。(今更ながらですが・・・)
私が気付かなかっただけというオチみたいです。すみませんでした。
・・・とはいうものの、使い方がわからん。(汗)
わからないので、Adobeさんに聞いてみましたが、肝心の知りたいところは書いてないですね・・・
https://helpx.adobe.com/jp/acrobat/11/using/pdf- …
値の返し方さえわかれば、あとはなんとかなりそうなのですが・・・
いろいろ調べてもわからないので、勝手に試行錯誤。
(お蔭で、よく知らなかったフィールドについても多少知識を得ましたが)
どうやら、event.valueに値を返せばよさそうです。
(↑ちゃんと調べた上ではないので、正しいかどうかはわかりません)
・・・・と言うことで、一応、なんとか使い物になりそうな形になったかと。
(まず、前回回答はキャンセルしてスクリプトも削除しておいてください)
1)各フィールドには以下の設定をします。
(これにより入力値のチェック等が自動でできるので…)
・テキストフィールド A
(フォーマットタブ) 分類:数値、 少数以下:0桁、 通貨記号:なし
(検証タブ) 値の範囲を指定 開始値:0、 終了値:11
・ドロップダウン B
(オプションタブ) 項目:鉄パイプ裁断加工賃、 書き出し値:0
項目:研磨加工賃、 書き出し値:1
・テキストフィールド C
(フォーマットタブ) 分類:数値、少数以下:0桁、桁区切り:3桁カンマ、通貨記号:¥
2)上記の設定後、Cのプロパティの計算タブにカスタム演算スクリプトとして以下を登録
(コピペできるように、インデントは省略してあります)
※ 入力後フォーカスをはずすかリターン入力で計算が反映されます。
event.value= (function(){
var va = AFMakeNumber(getField("A").value);
var vb = AFMakeNumber(getField("B").value);
var result = "", i, idx = 0;
var bounds = [ 1,2,4 ];
var cost = [[ 500,900,1000 ], [ 400,800,900 ]]
if(va){
for(i=0; i<bounds.length; i++) if(va>=bounds[i]) idx = i;
result = cost[vb][idx];
}
return result;
})();
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
フォームの値が0だったら空白を表示するスクリプト
JavaScript
-
PDFフォームで条件つき金額を表示させるやり方 javascript
JavaScript
-
PDFフォーム内で日付計算したいのです。
JavaScript
-
-
4
PDFフォームに本日の日付を自動で表示
JavaScript
-
5
PDFのフォームで計算結果が0なら表示しない方法
PDF
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onClickとsubmitの処理順序
-
テキストフィールドに入力した...
-
PDFフォームで条件つき金額を表...
-
フォームから入力すると、入力...
-
条件により、リンク先に画面遷...
-
JSPとJavaScriptの連携について...
-
onChangeの使い方について教え...
-
日付入力欄の表示形式を自動的...
-
return trueとreturn falseの用...
-
ハイパーリンクを別ウインドウ...
-
テーブルにおける行(セルにプル...
-
フォームのメニューリストを外...
-
プルダウンで選択された値を別...
-
onchangeイベントを強制的に発...
-
<JavaScript>tableタグを入力不...
-
特定<table>内の<td>の色を変える
-
slickのレスポンシブ > center...
-
Visual Studioのデザインでの非...
-
Yahoo! UI LibraryのDataTable...
-
プルダウン 項目が多いので先頭...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
文末の改行コードを削除したい
-
JSPとJavaScriptの連携について...
-
テキストボックスを無効にする...
-
javascriptで入力フォームが空...
-
フォームの値が0だったら空白...
-
テキストボックス入力を半角英...
-
PDFフォームで条件つき金額を表...
-
strutsのhtmlタグのfileについて
-
条件により、リンク先に画面遷...
-
vbsでフォームに値を入力できない
-
イベント発生時に入力待ち状態...
-
日付入力欄の表示形式を自動的...
-
VBScript
-
javascriptのゲームで漢字を出...
-
JQueryで2つのテキストフィー...
-
javascriptでのフォーム自動入...
-
手書き入力モードを利用して、...
-
入力モード 自動 切り替え
-
Javascriptが機能せず原因が分...
おすすめ情報
前回教えていただきましたスクリプトです。
入力フォームにて数量をうちこんだら金額が表示するというスクリプトです。
本数(Aフィールド) 1を記入したら 1本 ¥500 2本~3本→¥900 5本~11本→¥1,000 が表示(Cフィールド)されるようになっています。
var f1 = this.getField("Text1");
var f2 = this.getField("Text2");
var p = 500, v = parseInt(f1.value);
if(isNaN(v) || v<1){
f2.value = "";
app.alert("有効な数値を入力してください");
} else {
if(1<v){ p = 900; }
if(4<v){ p = 1000; }
f1.value = v;
f2.value = "\\" + p;
}
ありがとうございます!
またまた、お世話になります!!!
指示通り、やってみたところ、すんなり出来ました!!!!
Adobeさんにも聞いていただいたようで本当にありがとうございます!
今までは簡易的な計算式(+,-,/,*)程度でPDFフォーム作りをやっていたのですが、今回JavaScriptを使用するPDFフォームはまさに未知体験でした! 笑
今回教えていただきましたJavaScriptは想像以上に難しいのですね!
考えが浅はかでした 笑
教えていただきましたjavaをもとに別フォーム及びドロップダウン項目を増やし作成しようと思っているのですが、Dフィールド(入力),Eフィールド(ドロップダウン),Fフィールド(表示)を作る場合 var va = AFMakeNumber(getField("A").value); var vb = AFMakeNumber(getField("B").value); の下に var va = AFMakeNumber(getField("D").value); var vb = AFMakeNumber(getField("E").value); と記述する形で宜しいのでしょうか?
また、テキストAフィールドの 開始値:0, 終了値 11 とドロップダウン Bドロップダウン 書き出し値:1 は どのような働きをするのでしょうか?
なるほど開始値と終了値は数値の設定なのですねすごいです~!
試しに20を入力したらポップアップが表示されました!
書き出し値はPDF上で表示されている値との事ですが...すみませんわかりません,,,,,
試しに鉄パイプ裁断加工賃 書き出し値:0 研磨加工賃:1 追加したい場合→木材カット工賃:2 で宜しいのでしょうか?
event.value= (function(){
var va = AFMakeNumber(getField("A").value); ←なんとなくわかりました笑
var vb = AFMakeNumber(getField("B").value);
var result = "", i, idx = 0; ←どのような働きをするのでしょうか?
var bounds = [ 1,2,4 ]; ←境界? どのような働きをするのでしょうか?
var cost = [[ 500,900,1000 ], [ 400,800,900 ]]
if(va){ ←条件命令かなと
for(i=0; i<bounds.length; i++) if(va>=bounds[i]) idx = i; ←どのような働きをするのでしょうか?
result = cost[vb][idx];←どのような働きをするのでしょうか?
}
return result;
})();
すみません。わからないことだらけですが、ご指導よろしくお願いします。
お世話になります!
試行錯誤しながらやってみたところ、別フォームを作成し同じスクリプトで動かすことは成功いたしました!
あと一つ、わからないのがドロップダウンの項目を増やす方法です!
現状況
鉄パイプ加工賃 1本 ¥500 2本~3本→¥900 4本~11本→¥1,000
研磨加工賃 1本 ¥400 2本~3本→¥800 4本~11本→¥900
ドロップダウンに何種類か追加する場合のスクリプトの記述方法がわからなく奮闘中でございます。
鉄パイプ加工賃 1本 ¥500 2本~3本→¥900 4本~11本→¥1,000 書き出し値 0
研磨加工賃 1本 ¥400 2本~3本→¥800 4本~11本→¥900 書き出し値 1
追加したい項目
折り曲げ加工賃 1本 ¥700 2本~3本→¥900 4本~11本→¥1500
穴あけ加工賃 1本 ¥100 2本~3本→¥500 4本~11本→¥1200
追加したい項目の書き出し値とjavaの記述内容はどのようにしたらよいのでしょうか?