FtFindField.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /**
  2. * From-To dbfindtrigger
  3. * @author yingp
  4. */
  5. Ext.define('erp.view.core.form.FtFindField', {
  6. extend: 'Ext.form.FieldContainer',
  7. alias: 'widget.ftfindfield',
  8. layout: 'column',
  9. value: "BETWEEN '' AND ''",
  10. valuePrint:"",
  11. baseCls: null,
  12. autoScroll: false,
  13. height: 22,
  14. items: [],
  15. initComponent : function(){
  16. this.callParent(arguments);
  17. var me = this;
  18. me.insert(0, {
  19. xtype: 'dbfindtrigger',
  20. id: me.name + '_from',
  21. name: me.name,
  22. columnWidth: 0.5,
  23. fieldStyle: me.fieldStyle,
  24. listeners: {
  25. change: function(f){
  26. var from = f.value;
  27. var to = me.items.items[1].value;
  28. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  29. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  30. if(from == ''){
  31. me.value = '';
  32. me.valuePrint = '';
  33. } else {
  34. me.value = "BETWEEN '" + from + "' AND '" + to + "'";
  35. if(me.ownerCt){
  36. var tablename = me.ownerCt.tablename;
  37. me.valuePrint="{"+tablename+"."+me.name+"}>='"+from+"' and {"+tablename+"."+me.name+"}<='"+to+"'";
  38. }
  39. }
  40. }
  41. }
  42. });
  43. me.insert(1, {
  44. xtype: 'dbfindtrigger',
  45. id: me.name + '_to',
  46. name: me.name,
  47. columnWidth: 0.5,
  48. fieldStyle: me.fieldStyle,
  49. listeners: {
  50. change: function(f){
  51. var from = me.items.items[0].value;
  52. var to = f.value;
  53. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  54. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  55. if(from == ''){
  56. me.value = '';
  57. me.valuePrint = '';
  58. } else {
  59. me.value = "BETWEEN '" + from + "' AND '" + to + "'";
  60. if(me.ownerCt){
  61. var tablename = me.ownerCt.tablename;
  62. me.valuePrint="{"+tablename+"."+me.name+"}>='"+from+"' and {"+tablename+"."+me.name+"}<='"+to+"'";
  63. }
  64. }
  65. }
  66. }
  67. });
  68. },
  69. setValue: function(v){
  70. var f = Ext.getCmp(window.onTriggerClick);
  71. if(f){
  72. f.setValue(v);
  73. }
  74. if(v != null && v != '' && contains(v, '~', true)){
  75. this.items.items[0].setValue(v.split('~')[0]);
  76. this.items.items[1].setValue(v.split('~')[1]);
  77. }
  78. },
  79. listeners: {
  80. afterrender: function(){
  81. var tb = this.getEl().dom;
  82. if(tb.nodeName == 'TABLE') {
  83. return;
  84. }
  85. tb.childNodes[1].style.height = 22;
  86. tb.childNodes[1].style.overflow = 'hidden';
  87. }
  88. },
  89. reset: function(){
  90. this.items.items[0].reset();
  91. this.items.items[1].reset();
  92. },
  93. getValue: function(){
  94. if(this.items.items[0].value != null && this.items.items[0].value != ''){
  95. if(this.items.items[0].value == null || this.items.items[0].value == ''){
  96. return this.items.items[1].value + '~' + this.items.items[1].value;
  97. } else if(this.items.items[1].value == null || this.items.items[1].value == ''){
  98. return this.items.items[0].value + '~' + this.items.items[0].value;
  99. } else {
  100. return this.items.items[0].value + '~' + this.items.items[1].value;
  101. }
  102. } else {
  103. return '';
  104. }
  105. },
  106. isValid: function(){
  107. return true;
  108. }
  109. });