0

製品のシリアルナンバーを保存したいので、テーブルを作成しました

dbo.tStock
productType tinyint,
IdProduct int, 
ItemTypeNum tinyint, 
FirstSNum  nchar (20), 
LastSNum   nchar (20), 
TotalQty   bigint

totalQtyユーザーが最初のシリアル番号を挿入するとFirstSNum、アプリケーションは最後のシリアル番号を順番に計算する必要があります。
私のページでは、JavaScript関数を使用しました:

function Calculate() {
            var txt1 = document.getElementById('<%= txtTotalQty.ClientID%>').value
            var txt2 = document.getElementById('<%= txtFirstserial.ClientID%>').value
            if (txt1 != '' && txt2 != "")
                document.getElementById('<%= txtLastSerial.ClientID%>').value = 
                eval((parseFloat(txt1)-1 + parseFloat(txt2)))
        }

問題は、シリアル番号がゼロ (先頭のゼロ) で始まる場合です。たとえば、
totalQty: 100
Firstserial: 01000
LastSerial: 1099 ( WRONG ) it should be=01099 と
なります
? 私はどんな努力にも感謝します;-)

4

1 に答える 1

0

eval((parseFloat(txt1)-1 + parseFloat(txt2)))

必要ありませんeval()。値を追加するだけです。

parseFloat()缶に書かれていることを正確に行います。文字列を数値に変換します"01000": 1000. したがって、最終的には数字だけになり、数字には先行ゼロがありません。

結果の数値をゼロで埋めたい場合は、自分で行う必要があります。

("00000" + (parseFloat(txt1)-1 + (parseFloat(txt2))).toString()).substr(-5,5);

計算を行い、それを文字列に変換し、先頭に「00000」を追加してから、右端の 5 文字を取得します。

于 2012-04-24T12:07:09.607 に答える