首页 » 技术分享 » 付款流程的付款单

付款流程的付款单

 

这是给房地产项目做报销流程时的填报报销单。报销单的所用到的知识有:

利用jquery计算合计值,给另一个文本框直接赋值,利用script增减行信息,显示和隐藏下拉框,利用json向后台传递信息。
其中选择项目信息时,利用json向后台查询是否有本项目对应的合同信息。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABKwAAAC8CAYAAABVPjbBAAAgAElEQVR4Ae3dW6xtV3kY4Hl8zvHx5RBjfAwcICoQ7GBjHG4NRVRIiaIEuSYByxDZUt/60AtNxANFpagvRVYpDy0Vah4S9aFSITjGOMG1aJBaKaIBWiHAGBtwaoeLapANxonBNj726f63/duDccaca67LXtdvSfa4/eMyv7nHXHsN77196Ic/OXW68yJAgAABAgQIECBAgAABAgQIECCwJgJHzj68JiuxDAIECBAgQIAAAQIECBAgQIAAAQJ7AmdRIECAAAECBAgQIECAAAECBAgQILBOAg6s1uluWAsBAgQIECBAgAABAgQIECBAgEB36PTeiwMBAgQIECBAgAABAgQIECBAgACBdRHwE1brciesgwABAgQIECBAgAABAgQIECBAYF/AgZUvBAIECBAgQIAAAQIECBAgQIAAgbUScGC1VrfDYggQIECAAAECBAgQIECAAAECBBxY+RogQIAAAQIECBAgQIAAAQIECBBYKwEHVmt1OyyGAAECBAgQIECAAAECBAgQIEDAgZWvAQIECBAgQIAAAQIECBAgQIAAgbUScGC1VrfDYggQIECAAAECBAgQIECAAAECBBxY+RogQIAAAQIECBAgQIAAAQIECBBYKwEHVmt1OyyGAAECBAgQIECAAAECBAgQIEDgyLQEt91137RdxBMgQIAAAQIECBAgQIAAAQIECBBoClx12ckz6qc+sIoRWgOdMbIKAgQIENgogfgPEp7vG3XLLJYAAQJTCdTP+bo81WCCCYwU8HU2EkoYgR0WiOdE6+VXAlsq6ggQIECAAAECBAgQIECAAAECBFYm4MBqZfQmJkCAAAECBAgQIECAAAECBAgQaAk4sGqpqCNAgAABAgQIECBAgAABAgQIEFiZgAOrldGbmAABAgQIECBAgAABAgQIECBAoCXgwKqloo4AAQIECBAgQIAAAQIECBAgQGBlAg6sVkZvYgIECBAgQIAAAQIECBAgQIAAgZbAkValOgIECBAgQIAAAQIECBAgQGCywE033zo5SASBOQSuvebqOXpvblcHVpt776ycAAECBAgQIECAAAECBNZAYFcPFNaAfuuXsMsHon4lcOu/vF0gAQIECBAgQIAAAQIECBAgQGCzBBxYbdb9sloCBAgQIECAAAECBAgQ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rPd5X1xrXHUECBAgQIBAW8D7adtFLYGDEKi/F67LrTnt0ZbKdtY5sNrO+zrzVdUfgGOgVl1OMNSWMVICBPoFcg/lm3OW+3s81ZLxdVyrfuyY9VjKBAg8JdDaV2nT19a37yK+ry3HlBIgsDoBe3R19mbeTYHyPbHef33vsbsptZtX7cBqR+67zb4jN9plbqRA7s94w269Ubfqyzf3vOi6b9ZLCRCYT6C132JEe24+V70JHKRAvrdOO0fffp92HPEECByMgPfeg3Fd11EdWK3rnVnwuobefMe+oY+NW/DSDUdgawVyT5X7M/L5RpxpANT1fSg5Zt1ezlG3KRMgsByBck8vZ0azENhdgaH3Pe+Vu/t14crXT6Dej3V5aMWt2Lpu6FkwNLa29RA4dHrvNc1Sbrvrvu6qy052mU7TVywBAssVsE+X6202ArMK2KuzyulHYLkC9upyvc1GYFYBe3VWOf0ILFcg92qm9exn1RXKBAgQIECAAAECBAgQIECAAAECBFYp4MBqlfrmJkCAAAECBAgQIECAAAECBAgQOEPAgdUZJCoIECBAgAABAgQIECBAgAABAgRWKeDAapX65iZAgAABAgQIECBAgAABAgQIEDhDYK7/S2D8YSwvAgTWW8A+Xe/7Y3UEUsBeTQkpgfUWsFfX+/5YHYEUsFdTQkpgcwXmOrCK/1ugFwEC6ysQb9T26freHysjkAL2akpICay3gL263vfH6gikgL2aElIC6y0Qe3Xo5VcCh3S0ESBAgAABAgQIECBAgAABAgQILF3AgdXSyU1IgAABAgQIECBAgAABAgQIECAwJODAakhHGwECBAgQIECAAAECBAgQIECAwNIFHFgtndyEBAgQIECAAAECBAgQIECAAAECQwIOrIZ0tBEgQIAAAQIECBAgQIAAAQIECCxdwIHV0slNSIAAAQIECBAgQIAAAQIECBAgMCRwZKhx09tuuvnWTb8E619zgWuvuXrNV7gZy7NXN+M+bfIq7dXF3D17dTGORukXsFf7baZpsVen0RI7i4C9OovamX3s1TNN1CxWYNP36lYfWMWt3vQbtNgvV6MtUsAbzCI17dXFahqtFLBXS435895X5zc0QlvAXm27zFprr84qp98kAXt1ktB07fbqdF6ixwtsw171K4Hj77dIAgQIECBAgAABAgQIECBAgACBJQg4sFoCsikIECBAgAABAgQIECBAgAABAgTGCziwGm8lkgABAgQIECBAgAABAgQIECBAYAkCDqyWgGwKAgQIECBAgAABAgQIECBAgACB8QIOrMZbiSRAgAABAgQIECBAgAABAgQIEFiCgAOrJSCbggABAgQIECBAgAABAgQIECBAYLyAA6vxViIJECBAgAABAgQIECBAgAABAgSWIODAagnIpiBAgAABAgQIECBAgAABAgQIEBgv4MBqvJVIAgQIECBAgAABAgQIECBAgACBJQg4sFoCsikIECBAgAABAgQIECBAgAABAgTGCziwGm8lkgABAgQIECBAgAABAgQIECBAYAkCDqyWgGwKAgQIECBAgAABAgQIECBAgACB8QIOrMZbiSRAgAABAgQIECBAgAABAgQIEFiCgAOrJSCbggABAgQIECBAgAABAgQIECBAYLyAA6vxViIJECBAgAABAgQIECBAgAABAgSWIODAagnIpiBAgAABAgQIECBAgAABAgQIEBgv4MBqvJVIAgQIECBAgAABAgQIECBAgACBJQg4sFoCsikIECBAgAABAgQIECBAgAABAgTGCziwGm8lkgABAgQIECBAgAABAgQIECBAYAkCR5Ywx0qnuOnmW1c6v8kJEBgnYK+OcxJFYNUC9uqq74D5CYwTsFfHOYkisGoBe3XVd8D86yyw1QdW115z9TrbWxsBAk8L2Ku+FAhshoC9uhn3ySoJ2Ku+BghshoC9uhn3ySpXJ+BXAldnb2YCBAgQIECAAAECBAgQIECAAIGGgAOrBooqAgQIECBAgAABAgQIECBAgACB1QnM9SuBt9113+pWbmYCBEYJ2KejmAQRWLmAvbryW2ABBEYJ2KujmAQRWLmAvbryW2ABBOYWmOknrGz+ud0NQIAAAQIECBAgQIAAAQIECBDYaYGh86WZfsLqqstO7jSoiydAgMA2CsSbhef7Nt5Z10SAAIGnBDznfSUQIECAwDoK9B1azfQTVut4gdZEgAABAgQIECBAgAABAgQIECCwHQIOrLbjProKAgQIECBAgAABAgQIECBAgMDWCDiw2ppb6UIIECBAgAABAgQIECBAgAABAtsh4MBqO+6jqyBAgAABAgQIECBAgAABAgQIbI2AA6utuZUuhAABAgQIECBAgAABAgQIECCwHQIOrLbjProKAgQIECBAgAABAgQIECBAgMDWCBzZmitxIRsncNPNt27cmi14swSuvebqzVqw1RLYIgHP+C26mWt6KZ7xa3pjLIsAAQIECCxIwIHVgiANM5uAbzZnc9NrsoAPy5ONRBA4aAHP+IMW3t3xPeN399678sUKfPSjH+2+973vdY899thiB17iaMeOHete8pKXdO9+97uXOOtqpnK/VuNu1tUJOLBanb2ZCRAgQIAAAQIECBAgsBKBf/fhD3fn7B32vOc97+lOnDixkjUsYtIHHnig+8QnPtHF9fyL9753EUOu5Rju11reFos6YAEHVgcMbHgCBAgQIECAAAECBAism8AD99/fvXfvgOe5z31u99Of/nTdljd6Pc973vO66667rvvw3oHVNr/cr22+u66tT8AfXe+TOcD6Q299/6jRx8ZNGmzMOEMxQ22T5tZOgACBXRJYxfNy7Jxj43bpfrlWAgQI7LLA448/3sVhz6OPPrrRDLH+uI64nm1+uV/bfHddW5+An7Dqkzmg+vjAcPozN3SZDk3TF9f60BGxrVfOk2krJur65uqLV0+AAAECZwqMeZbWz/Dsc+ZoT9X0Pd+jNZ/tmfaNEfU5Tz1evZ6MHRpLGwECBAhsh8Dp06e7+GfodcEFF3QPPfTQfkiZj4q6nOP01Wd7Xzprv0nX0DffptWPuV9915S2mU6K62sv6yeNVcaW+V25X+U1y88m4MBqNreZepUfKPo+OMTA9YeHshz98sNGOV5rQWX70HytvuoIECBAYFigfDbXkX1t+fzONOOyXI8zVB77jM85cqyyHPPm3OV4GSslQIAAge0XGHN4EDHxq4PxikOK8hXlH//4x2XVfn7MuGWnGD/GKecq21tzlO27kp/WtXSJvmlc1tf5MXO4X7Wa8kEIOLA6CNXGmK0PAvEhoVUf3fMDRDlU+SGjr1/EZ1w9Rs4XMXVbX13UexEgQIBAW6D1LG1HPvts7mufpr71HpDP+NaaWnX5XhHztsabZj1iCRAgQGBzBcYcTmTMgw8+uH+hF154YVfms71UqOuiT/nK/lGX42Wfsi37ZFuWdzXtc0jD2rl0ykPH2jf7ZmzOUddne9ZnXD1exGVb9pESmEXAgdUsalP2Gfog0PqAkR8s6n5lfSyh/LCR40R9xkW+fmVb9s1yHadMgAABAsMC9fOzfmbX5Unxw7M921qP+2zLU8//uj3nHaqPMaI9X9kny1ICBAgQ2E6BOFR48sknJ15cxsRBxQ9/+MP9+Ki76KKLnslHJsuRj9h8ZZ9MIy7HjHzU53gZk33HpLtyODJ0v8ItzVuG6RyeaV/alnWZzzHL8XIc96vUkz8oAQdWByW7N25+8x/f+Ge+NV3ZXn9IKPuVbWU+Y1p1ffP1xUZ9jlf2revK/mWcPNfKVPQAAA5fSURBVAECBHZVIJ+f0z4f6+dryy/HjrYyPya2jCnnKtdZ5suYsq88AQIECGynQN9hz4kTJ5654DikiNcDDzzwzE/ORL8oR1yOEeV4RV2Zz/ZMIybzOWb2ybkipn7lmHX9LpXTrXXN4ZP3I9J8pVurb7qXbWU++sY9yTEijfbs536lsvQgBBxYHYTq02OWHwDKfHwYKMsRXpfzA0PWZ7lcbmucbM9+WR5KMzbnyHL2GZqnjIl83TfbpQQIENhWgfIZOc0zMGLLvunTqou2cuwy34ov26NvxMQr67O8X/n0v1rjZHvGZ/+slxIgQIDA5guUhxPl1dx///37xYsvvriLfKTlIUiZb41R1mU+0xi4zMfYWZfz7lfs/Svnz/as39W0dOsziJjSMftEWnpmPttzvLoc9WWd+5VS0oMWcGB10MIzjF9+aPAhYQZAXQgQILBEgTjEKZ/bs05dj1GXFzGu95RZFfUjQIDAdgqcOnWq+QfT66uNP9R9991319XPlFt/EL2sy3ym0THzl1xyyf7YkWbdMwM/nemrz7jzzz8/s1udTnO/wjNfee/SMdOoz3zGRlrXlXHuVyklf9ACDqwOWDg/HNTTtOrzv1xnWn5YKfP1WHW5NXYdk3PU9bOWFz3erOvQjwABAqsQqJ+B0zyz+9YbY9bj9D3fW/W5pkzLscp83/xlfY5R1skTIECAwHYIlD8503dFGXPppZeeEfKtb33rjLqoyD5lvlUX/bM+03rAvvo6bhfKYywyJmzjnmU5DptK7z6vjI++9f0t+2dcPU5ffR2nTGCSgAOrSUJztre+yR/zQaGOiXHquqGltebN+BjHiwABAgTmE5j0LG219z2bxz7fW/3H9K1jpn1PmU9KbwIECBBYV4E4WMg/sD20xjLmG9/4xjOhr3zlK3v7l30yn2kMUOZzwFZdX2z2iXRXDkgm3a+4H/FKxzot2/YDG/+K+xv9YqzMN8L2q3L8ur2vPuN25X7l9UpnF3BgNbvd6J71B4W6Y92e5UjLV+uDStm+qHzOP814udZlrXGatYklQIDAQQj0Pe/yGZppa+6xz8zWwdLQuDFX3Z7lnDPX07f+bC/T7DtNn7K/PAECBAisr8Ckw4VYeRxe3HnnnfsXkYcieUV1/8svv3w/tqzPfKbRt8z3jTWpPtt3KW25xfWne6QZk/cqy3EPy3vZcov+8YrY7NeKi7q+9r76vnHUE+gTcGDVJ7PA+tYHjqHhyw8Emc8PC9GvHC8/iAyNN03bosebZm6xBAgQ2HSB8hlaPqvr68pne9SXfeq4Vnlo3L74rM95Y858leNNu5YcQ0qAAAECmykw9BM7V1xxxf5F3XHHHftpHkJkOSojJuv3g57+V12X5TwMibCsG+qXba3YbIt0V35iZ+h+xX1Jp0jL+xTuUU7/jCsN++53GVPnW+NETF999t+V+5XXK51dwIHV7HYL6Tnpw0H5oSInLPuUHzSyPdJWv7K9L58fZvra++pn7dc3nnoCBAhskkA+c+tnYd8zury2uk/ZFvlJ7WV8+f5Q1mc+15nlSMs+feudZg3l2PIECBAgsP4CfYcLt99++/7i6/Y82MgrK9uvvPLKLvpFXeTjleXMRxptZb+oi1dZl/3r+v3AHf5XaVQzlP7ZVtbFvSjtS+O++53jtNJyLeVYZX2rnzoCYwUcWI2VmiGu/mBQlvvy9YeCLGd8pFk3tKShmByr7j/Up45VJkCAAIFn/+PA0PMz2sY8u/uezelct5flvny9rixnfKRZl/NICRAgQGB3BOInXab5aZevfvWrZ+CU/aM9yxlbllv5HLDsG3XZP/LZL/Kt16T2Vp9NrIvrHLrW2jCusa4ry9MY117lODlPxgytMWImtec4UgIOrA7wa2DeDwFl/8xnWi67rqvLZWzkJ7XPG1/3VyZAgMC2Cox9npZxZb506avPmEntGdeXlv0zn2nZp1VXtssTIECAwHYIHD16tHvwwQe7F7/4xd13v/vdjb2oX/zFX9y/jriebX65X9t8d11bn4ADqz4Z9QQIECBAgAABAgQIENhSgYsvvrj75Cc/2b3zne/sXvGKV2zsVT700EP71xHXs80v92ub765r6xNwYNUno54AAQIECBAgQIAAAQJbKvDe9763+9CHPtR95CMf6R5//PGNvcr4yaOLLrqoe9/73rex1zBm4e7XGCUx2ybgwGrb7uiGXc9NN9+6YSu2XAIECBAYK+AZP1ZKHAECBFYjsO2HPKtRPbhZ3a+DszXyego4sFrP+7ITq7r2mqt34jpdJAECBHZRwDN+F++6ayZAgAABAgQILE7grMUNZSQCBAgQIECAAAECBAgQIECAAAEC8ws4sJrf0AgECBAgQIAAAQIECBAgQIAAAQILFDh0eu81zXi33XXfNOFiCRAgQIAAAQIECBAgQIAAAQIECPQKXHXZyTPapj6wOmMEFQQIECBAgAABAgQIECBAgAABAgQWKOBXAheIaSgCBAgQIECAAAECBAgQIECAAIH5BRxYzW9oBAIECBAgQIAAAQIECBAgQIAAgQUKOLBaIKahCBAgQIAAAQIECBAgQIAAAQIE5hdwYDW/oREIECBAgAABAgQIECBAgAABAgQWKODAaoGYhiJAgAABAgQIECBAgAABAgQIEJhfwIHV/IZGIECAAAECBAgQIECAAAECBAgQWKCAA6sFYhqKAAECBAgQIECAAAECBAgQIEBgfgEHVvMbGoEAAQIECBAgQIAAAQIECBAgQGCBAg6sFohpKAIECBAgQIAAAQIECBAgQIAAgfkFjjz82BPzj2IEAgQIECCwZIGP3Pi/lzzjfNP9/rt+db4BGr0/+if/q1G7vlXvfueb13dxVkaAAAECBAgQILBWAkfWajUWQ4AAAQIEphC4/h1vmiJ6daEf+9TnD2zyd73tLQc29iIHvvHTf7HI4YxFgAABAgQIECCw5QIOrLb8Brs8AgQIbLvAy46v9xXe+/DBr+/lFxz8HPPMcM9D8/TWlwABAgQIECBAYBcFjnSHDu3idbtmAgQIENgSgUc35ToO8P320U357f4DNNiULwPrJECAAAECBAgQGCfgJ6zGOYkiQIAAgQ0XOPc3P9A98ucf3L+KyNevbKvro1z2bbVvQt25/+D93SP/7YYzlhr1+Srby/psb6Vln1a7OgIECBAgQIAAAQKzCDiwmkVNHwIECBBYH4FTUyyliH3ktqcOr6L3uVftHWA93bafbwzZPOQqxmh0WVrVk09Onuonn76hi0OoSM9/27OHVFHOVz1O2ZYxZRrj1H3KdnkCBAgQIECAAAECswo4sJpVTj8CBAgQ2AiB8gAq8nlQVdaXF5LtUVfGt8plv03LTzqM2rTrsV4CBAgQIECAAIHtEnBgtV3309UQIEBg5wQeLX5qqnXxD/7ZUz9JdeFvf6CLfMZnffSJtqzPMer4qI8+cYhV9s34VaY/m2CQa3vwUzd0GVv+lFXZnvlII/bCdzz701jZFuPkK8fLspQAAQIECBAgQIDAIgQcWC1C0RgECBAgsBECeQgVi4183yvjMs24LGea9euelodOediUaa69jMm6TMvYobiMlxIgQIAAAQIECBCYV8CB1byC+hMgQIDASgXG/F8CTz59OHVf/ITV3mojrV85TsRmXMRkfcZn/7o+21eRPnJ6eNb/d/NTPxH1omv2/vD607GRRjnaMs22HC3Lmdb1Ua7bMkZKgAABAgQIECBAYB4BB1bz6OlLgAABAmsvkAdQeWiVaWvhcVDVOsxqxW5DXXlYNXQ9caDlRYAAAQIECBAgQGCZAg6slqltLgIECBBYuMAjE/5+0z03f7DLmEij/PJrPvBzaS4q47IcsXHAVfapYzJ2lWn997eG1hKHT/fceMP+3+x6+bueymdd3S/Hjfh8RZ+sj7oynzFSAgQIECBAgAABAvMKnDXvAPoTIECAAIFNFojDq/in71UeVvXFbFJ9Hj7lYVWsPeqi3HplfLbV5ayXEiBAgAABAgQIEFikgJ+wWqSmsQgQIEBg7QXKn66KxcaBVN8rD7Ly0GpSfN8461CfB1SZ1gdPdTnW3HeItQ7XYw0ECBAgQIAAAQLbLeDAarvvr6sjQIDA1gtM+pW0y9/17E9PxQHUnTfu/eH1vV8NjDTa8lAqoLIu0aIcr4yPfB0fdUOvc5bwTjvR4Pr3d3d+7KlfA4x06CAq2vNV5rOuTC/fG3fS3BF/7HDZS54AAQIECBAgQIDAZIFDf/vYExP+30KTBxFBgAABAgSWLfCRT3yxu/4db+oeXaf/XV8D4Zxzuu5jn/p89/u/+8ZG63xVH73xc9273vaW7uHH5xvnoHsfP9p1N376L7p3v+vvH/RUxidAgAABAgQIENgSgSX8d98tkXIZBAgQILCWAmt+XtXtnVcd+OuJJw98ChMQIECAAAECBAgQWKqAA6ulcpuMAAECBBYtMOZX0hY957qN98iaH1hdsG5g1kOAAAECBAgQILD2Ag6s1v4WWSABAgQIDAm88PhQ6260vfDc3bhOV0mAAAECBAgQILA7Ag6sdudeu1ICBAhsnUD8bahdf8XfhvIiQIAAAQIECBAgsG0C/uj6tt1R10OAAAECBAgQIECAAAECBAgQ2HCBszZ8/ZZPgAABAgQIECBAgAABAgQIECCwZQIOrLbshrocAgQIECBAgAABAgQIECBAgMCmCziw2vQ7aP0ECBAgQIAAAQIECBAgQIAAgS0TcGC1ZTfU5RAgQIAAAQIECBAgQIAAAQIENl3AgdWm30HrJ0CAAAECBAgQIECAAAECBAhsmYADqy27oS6HAAECBAgQIECAAAECBAgQILDpAg6sNv0OWj8BAgQIECBAgAABAgQIECBAYMsEHFht2Q11OQQIECBAgAABAgQIECBAgACBTRf4/5NGw1Qzm6OeAAAAAElFTkSuQmCC" alt="" />
付款单jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/jsp/public/common.jspf"%>
<html>
<head>
<title>报销信息</title>
<script type="text/javascript">
function contract(){
 var projectid=$("#projectid").val();
      $.ajax({           type:"POST",
                          url:"<%=request.getContextPath()%>/paymentAction_getContract.action?projectid="+ projectid,
  dataType : "json",
  timeout : 8000,
success : function(data) {
$("#contractname").val("");
var objs = eval(data);
if(objs.length>0){
$("#contractname").val(objs[0].name);
}else{
$("#contractname").val("没有对应的合同信息");
}
},
error : function() {
$("#contractname").val("没有对应的合同信息");
}
});
}
</script>
<script type="text/javascript">
num = 1;//记录行数
function add() {//增加行
var tr = document.createElement('tr');
var td = document.createElement('td');


td.innerHTML = "<td ><input type='text' id='mc"+num+"' name='addlist["+num+"].mc'></td>";
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = "<td ><input type='text' id='sl"+num+"' name='addlist["+num+"].sl'></td>";
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = "<td ><input type='text' id='dj" + num
+ "' name='addlist[" + num + "].dj' οnblur=\"jisuanzhi('" + num
+ "')\"></td>";
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = "<td ><input type='text' id='hj"+num+"' name='addlist["+num+"].hj' readonly='readonly'></td>";
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = "<td ><input type='text' id='bz"+num+"' name='addlist["+num+"].bz'></td>";
tr.appendChild(td);
var dct = document.getElementById("table");
dct.tBodies[0].appendChild(tr);
++num;
};
function del() {//删除一行
var i = document.getElementById("table").rows.length;
if (i < 3) {
alert("不能再删除了!!");
} else {
num--;
document.getElementById("table").deleteRow(i - 1);
}
};


function sum() {//计算总金额
var zhjje = 0;
for ( var i = 1; i <= num; i++) {
var hj = document.getElementById("hj" + (i - 1) + "").value;//取出每行合计的值
zhjje = parseFloat(zhjje) + parseFloat(hj);
}
zhjje = Math.round(zhjje * 100) / 100;
$("#zhj").val(zhjje);
}
</script>
<script type="text/javascript">
function jisuanzhi(num) {
var sl = document.getElementById("sl" + num + "").value;
var dj = document.getElementById("dj" + num + "").value;
if (isNaN(sl)) {
alert("'数量'的格式不对,应该输入数字!");
}
if (isNaN(dj)) {
alert("'单价'的格式不对,应该输入数字!");
}
if (!isNaN(sl) && !isNaN(dj)) {
$("#hj" + num + "").val(Math.round(sl * dj * 100) / 100);
}
}
</script>
<style type="text/css">
.tab {
border: none;
border-collapse: collapse;
}


td {
height: 28px;
border: 1px solid #b5d6e6;
text-align: center;
}
</style>
</head>
<body>


<!-- 标题显示 -->
<div id="Title_bar">
<div id="Title_bar_Head">
<div id="Title_Head"></div>
<div id="Title">
<!--页面标题-->
<img border="0" width="13" height="13"
src="${pageContext.request.contextPath}/style/images/title_arrow.gif" />
报销申请信息
</div>
<div id="Title_End"></div>
</div>
</div>


<!--显示表单内容-->
<div id=MainArea>
<div class="ItemBlock_Title1" style=" margin-left:50px;">
<!-- 信息说明 -->
<div class="ItemBlock_Title1">
<img border="0" width="4" height="7"
src="${pageContext.request.contextPath}/style/blue/images/item_point.gif" />
付款申请信息
</div>
</div>
<div class="ItemBlock" style=" margin-left:-50px; ">
<s:form action="flowAction_paymentsubmit" method="post" id="myForm">
<table style=" border:none; border-collapse:collapse; width:100%;">
<tr>
<td style="height:28px; border:1px solid #b5d6e6; text-align:center;">报销依据</td>
<td style="height:28px; border:1px solid #b5d6e6; text-align:center;">项目:<selectid="projectid" name="projectid" οnchange="contract()">
<option value="">请选择</option>
<c:forEach items="${projectlist}" var="bean">
<option value="${bean.projectid}">${bean.projectname}</option>
</c:forEach>
</select> </td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">合同信息:
<input type="text" name="contractname" id="contractname" readonly="readonly">
</td>  
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">知情人/经办人
</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">
<input type="text" name="jbr" />
</td>
</tr>
<tr>
<td colspan="5"
style="height:28px; border:1px solid #b5d6e6; text-align:center;">
<table id="table"
style=" border:none; border-collapse:collapse; width:100%;">
<tr>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">名称</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">数量</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">单价</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">合计</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;">
备注</td>
</tr>
<tr>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"><input
type="text" name="addlist[0].mc" id="mc0" />
</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"><input
type="text" name="addlist[0].sl" id="sl0" />
</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"><input
type="text" name="addlist[0].dj" id="dj0"
οnblur="jisuanzhi('0')">
</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"><input
type="text" name="addlist[0].hj" id="hj0" readonly="readonly">
</td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"><input
type="text" name="addlist[0].bz" id="bz0">
</td>
</tr>
<tr>
</tr>
</table></td>
</tr>


<tr>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"
colspan="1">金额合计:<input type="text" id="zhj" name="zhj"
readonly="readonly" οnclick="sum()" /></td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"
colspan="1">实际金额:<input type="text" id="reallypay"
name="reallypay" /></td>
<td
style="height:28px; border:1px solid #b5d6e6; text-align:center;"
colspan="3"><input type="button" id="bt1" value="增加行"
οnclick="add()" />       <input
type="button" id="bt1" value="减少行" οnclick="del()" /></td>
</tr>


</table>
<div id="InputDetailBar">
<input type="image"
src="${pageContext.request.contextPath}/style/blue/images/button/submit.PNG" />
<a href="javascript:history.go(-1);"><img
src="${pageContext.request.contextPath}/style/images/goBack.png" />
</a>
</div>
</s:form>
</div>
</div>
</body>

json根据项目查询合同信息时的controller:
@Controller
@Scope("prototype")
public class PaymentAction extends BaseAction{
private String projectid;

public String getProjectid() {
return projectid;
}
public void setProjectid(String projectid) {
this.projectid = projectid;
}
/** 合同申请添加页面 */
private HttpServletResponse response;
public String paymentaddUI() throws Exception {
List<Project> projectlist=projectService.findAllexit();
//查找登录人员的角色有没有员工或部门主管的角色
User user=getCurrentUser();
Set<Role> userolelist = user.getRoles();
Iterator<Role> it = userolelist.iterator();
boolean flag = false;
while (it.hasNext()) {
Role str = it.next();
if (str.getName() .contains("员工")||str.getName().contains("主管")) {
flag = true;
break;
}
}
if(flag == true){

// 准备数据
List<ProcessDefinition> processDefinitionList = processDefinitionService.findAllLatestVersions();
ActionContext.getContext().put("processDefinitionList", processDefinitionList);
ActionContext.getContext().put("projectlist", projectlist);
return "paymentaddUI";
}

else{
return "errorUI";
}
}
public void getContract()throws Exception{
response=ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
        StringBuffer sb=new StringBuffer();
        sb.append("[");
        long id=Long.parseLong(projectid);
        List<Contract> contractlist=contractService.Byprojectid(id);
        for(int i=0;i<contractlist.size();i++){
        Contract contract = new Contract();
        contract = (Contract) contractlist.get(i);
sb.append("{\"id\":"+contract.getContractid()+",\"name\":\""+contract.getContractname()+"\"},");
}
 
sb.deleteCharAt(sb.length()-1);
sb.append("]");
        String str=sb.toString();
        System.out.println(str+"************str");
        
    PrintWriter out = null;
response.setCharacterEncoding("UTF-8");// 指定返回值的编码方式,必须放在out声明之前
response.setContentType("text/html;charset=UTF-8");
try {
out = response.getWriter();
out.print(str);
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
out.close();
}
}




public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
}
表单提交的controller:
要接收多条的付款明细信息,用一个对象list、来接收。
一个是报销单list一个是付款单list
List<NormalreimbursementMX> addList;
List<PaymentMX> addlist;
public List<PaymentMX> getAddlist() {
return addlist;
}
public void setAddlist(List<PaymentMX> addlist) {
this.addlist = addlist;
}
public String paymentsubmit() throws Exception{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
String timestamp=sdf.format(date)+System.currentTimeMillis();
Payment payment=new Payment();
PrintData printData=new PrintData();
printData.setTimestamp(timestamp);
normalreimbursementService.saveprintData(printData);//将财务出纳用到的保存下来
payment.setJbr(jbr);
payment.setContractname(contractname);
payment.setProjectid(projectid);
payment.setTimestamp(timestamp);
payment.setZhj(zhj);
payment.setReallypay(reallypay);
paymentService.save(payment);
for(int i=0;i<addlist.size();i++){
PaymentMX paymentmx=new PaymentMX(); 
paymentmx=addlist.get(i);
paymentmx.setTimestamp(timestamp);
paymentMXService.save(paymentmx);
}
Application appcation=new Application();
appcation.setApplicant(getCurrentUser());
appcation.setTimestamp(timestamp);
appcation.setProcessDefinitionKey("付款流程");
applicationService.submit(appcation);
return "toMyApplicationList";
}

json传多个参数到后台的方法:

 $.ajax({
   type:"post",
   url:"leaveApplicationAction_getleaveday.action",
   data: {leastart:leastart,leastartam:leastartam,leaend:leaend,leaenspm:leaenspm},
   
timeout : 4000,
success : function(data) {
    var objs = eval(data);

if(objs.length>0){
$("#leavedays").val(objs[0].tianshu);
}

},
error : function() {
alert("与服务器连接超时...");
}
});
}
}

/**
* 新建用户输入是否重复登录名
*/
public   void checkLoginName() {
String str = "";

// 查询
User user = userService.getByLoginName(loginNameS);

if (user != null) {

str="{\"success\":true,\"message\":\"error\"}";
addFieldError("loginName", "登录名重复,请重新填写!");


//return "loginUI";
} else {

str="{\"success\":true,\"message\":\"success\"}";


//return "toIndex";
}
AjaxPrint.stringPrint(str);

}

function  Checklogin(){

var loginName=$("#loginName").val();

$.ajax({
type:"post",
url:"userAction_checkLoginName.action",
data:{loginNameS:loginName},
timeout:2000,
dataType:'json',
success:function(data){
var str=data.message;

if(str=='error'){
alert("登录名重复!");
$("#loginName").val("");

}
}
});
}

转载自原文链接, 如需删除请联系管理员。

原文链接:付款流程的付款单,转载请注明来源!

0