2017-02-28 4 views
0

私はこれを尋ねるために特にサインアップしました。長い時間をかけて研究してきましたが、まだ解決していません。Acrobat PDF - ドキュメントを開くときに一意の番号を生成する方法 - フィールドが空白の場合のみ - Javascriptを使用しますか?

Acrobat DCで編集しているPDFがあります。このPDFでは、PDFを開いたときに一意の番号を入力する必要があるテキストフィールド(読み取り専用)があります。それが発生し、私はそれを保存(または私がいない場合)があれば、それが正しいフィールドに数値を生成したファイルを開くと閉じ、

this.getField("Invoice No").value = util.printf("%06d", Math.floor((Math.random() * 1000000) + 1)); 

と、再びそれを開く:私が使用してこれを行ってきました新しい番号。

私はJavaScriptに全く慣れていませんが、コードが分かりません。

"ドキュメントが開かれている場合は、フィールドにスクリプトを適用します - フィールドが空の場合のみ"ページが開かれるたびにデータが入力されないようにしたいと考えていますすでに入力されている場合ユーザーはこれを「マスターファイル」として開いてフィールドを空にしますが、ファイルを開くとファイルが保存され、ファイルが保存され、一意のフォーム番号が付けられます。

私は理に適ったと思います。どんな助けも素晴らしいだろう!

答えて

0

これは、フィールドはのように、そのデフォルト値と同じ値を持っているかどうかをテストすることによって行うことができます。

if (this.getField("Invoice No").value == this.getField("Invoice No").defaultValue) { 
this.getField("Invoice No").value = util.printf("%06d", Math.floor((Math.random() * 1000000) + 1)); 
} 

そして、それはそれを行う必要があります。

更新:番号の一意性に疑問がある場合は、現在の日付をベースとして使用できます。これは次のように行うことができます。この数はかなり長く、(実際には、ミリ秒単位の価値は37年、今のような)過去に長い時代を持って

var myInvNumber = new Date().getTime() ; 

として、一つはオフセットを設定することができ、最初の日付に対応して、上記のコードから得られた数字から引きます。

+0

ありがとうございました!それはそれをした! –

+0

番号を生成するより良い方法があるかどうか知っていますか?繰り返し数の可能性を避けるため、ミリ秒単位の日付に基づいて生成するほうが良いかもしれないと私は読んだ。もしそうなら、あなたはそれをする方法を知っていますか? –

+0

最初に、請求書番号が数字でなければならず、昇順でなければならないかどうか規制をチェックしなければならない場合があります。そうでなければ、JavaScript(コア)でDateオブジェクトを使用することができます。繰り返しますが、私は自分の答えにコードを追加します(そこに書式設定できるので)。 –

関連する問題