⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uiwebscreensection.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    fieldNbr++) {
                UIFieldInfo fieldInfo = getUiField(fieldNbr);
                UIDisplayObject uiDisplayObject = fieldInfo.getUiDisplayObject();

                if (uiDisplayObject.getDisplayTypeId().equals(UIDisplayObject.DISPLAY_TYPE_FILE)) {
                    isMultiPart = true;

                    break;
                }
            }

            displayHtml.append("    <FORM METHOD=\"post\" NAME=\"" +
                getSectionName() + "Form\"" + " onSubmit=\"preSubmit" +
                getSectionName() + "()\"");

            if (action.equals(ACTION_SHOW_QUERY) ||
                    action.equals(ACTION_SHOW_QUERY_REPORT) ||
                    action.equals(ACTION_SHOW_REPORT)) {
                Debug.logVerbose("[displayFreeFormSection] search action: " +
                        getSearchAction(), module);
 
                Debug.logVerbose("[displayFreeFormSection] search target: " +
                        getSearchTarget(), module);

                displayHtml.append(" ACTION=\"" + getSearchAction() + "\"");

                if ((getSearchTarget() != null) &&
                        !getSearchTarget().equals("")) {
                    displayHtml.append(" TARGET=\"" + getSearchTarget() + "\"");
                }
            } else {
                displayHtml.append(" ACTION=\"" + getButtonAction() + "\"");

                if ((getButtonTarget() != null) &&
                        !getButtonTarget().equals("")) {
                    displayHtml.append(" TARGET=\"" + getButtonTarget() + "\"");
                }
            }

            if (isMultiPart) {
                displayHtml.append(" enctype=\"multipart/form-data\"");
            }

            displayHtml.append(">\n");
        }

        displayHtml.append(
            "     <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"" +
            getNextAction(action) + "\">\n");
        displayHtml.append(
            "     <INPUT TYPE=\"hidden\" NAME=\"rowCount\" VALUE=\"1\">\n");
        displayHtml.append(sendQueryParams);

        int htmlColumnCount = 0;
        int htmlRowCount = 0;
		ArrayList requiredFields = new ArrayList();

		if ( action.equals(ACTION_SHOW_QUERY) && getQueryMode().equals("advanced") )
		{
			int fieldListSize = getUiFieldList().size();
			
			StringBuffer fieldNameOptions = new StringBuffer(200);
			fieldNameOptions.append("<option value=''></option>");
			for (int fieldNbr = 0; fieldNbr < fieldListSize; fieldNbr++) {
				UIFieldInfo fieldInfo = getUiField(fieldNbr);
				if (fieldInfo.getIsSearchable()) {
					String htmlName = UIWebUtility.getHtmlName(getSectionName(), fieldInfo,0);
					String displayObjectId = fieldInfo.getDisplayObjectId();
					String displayTypeId = fieldInfo.getUiDisplayObject().getDisplayTypeId();
					String attributeId = fieldInfo.getAttributeId();
					String optValue = htmlName + ";" + attributeId + ";" + displayTypeId + ";" + displayObjectId;
					fieldNameOptions.append("<option value='" + optValue + "'>" + fieldInfo.getDisplayLabel() + "</option>");	
				}

			}

			List extendedFields = getRelatedSectionQueryFields();
			if ( extendedFields != null )
			{
				int numFields = extendedFields.size();
				for ( int i=0; i < numFields; i++)
				{
					GenericValue fieldInfo = (GenericValue) extendedFields.get(i);
					String entityName = fieldInfo.getString("entityName");
					String attributeId = fieldInfo.getString("attributeId");
					String attributeName = fieldInfo.getString("attributeName");
					String displayObjectId = fieldInfo.getString("displayObjectId");
					String displayTypeId = fieldInfo.getString("displayTypeId");
					String sectionName = fieldInfo.getString("sectionName");
					String sectionDescription = fieldInfo.getString("sectionDescription");
					String displayLabel = fieldInfo.getString("displayLabel");
					String htmlName = UIWebUtility.getHtmlName( sectionName, entityName, attributeName, 0 );
					String optValue = htmlName + ";" + attributeId + ";" + displayTypeId + ";" + displayObjectId;
					displayLabel = sectionDescription + "." + displayLabel;
					fieldNameOptions.append("<option value='" + optValue + "'>" + displayLabel + "</option>");	
				}
			}
			
			StringBuffer conditionOptions = new StringBuffer(100);
			conditionOptions.append("<option value='startsWith'>STARTS WITH</option>");
			conditionOptions.append("<option value='equals'>=</option>");
			conditionOptions.append("<option value='like'>CONTAINS</option>");
			conditionOptions.append("<option value='endsWith'>ENDS WITH</option>");
			conditionOptions.append("<option value='equals'>=</option>");
			conditionOptions.append("<option value='notEqual'>NOT EQUAL</option>");
			conditionOptions.append("<option value='lessThan'>&lt;</option>");
			conditionOptions.append("<option value='greaterThan'>&gt;</option>");
			conditionOptions.append("<option value='lessThanEqualTo'>&lt;=</option>");
			conditionOptions.append("<option value='greaterThanEqualTo'>&gt;=</option>");
			conditionOptions.append("<option value='in'>IN</option>");
			conditionOptions.append("<option value='not-in'>NOT IN</option>");
			conditionOptions.append("<option value='between'>BETWEEN</option>");

			
			displayHtml.append("<table id='queryListTable' border=1>\n");
			displayHtml.append("<tr><td>Field</td><td>Condition</td><td>Value</td><td>Action</td></tr>\n");

			// default show 4 rows
			for ( int i=1; i < 5; i++)
			{
				displayHtml.append("<tr id=queryListRow" + i + "><td><select name=queryListField" + i + ">" +  fieldNameOptions.toString() + "</select></td>\n");
				displayHtml.append("	<td><select name=queryListOperator" + i + ">" + conditionOptions.toString() + "</select></td>\n");
				displayHtml.append("	<td><input name=queryListValue" + i + " size=60></td>\n");
				displayHtml.append("	<td><img src=/sfaimages/remove.gif alt=Del onClick=delConditionRow(" + i + ")>\n");
				displayHtml.append("	    <img src=/sfaimages/add.gif alt=Add onClick=addConditionRow(" + i + ")></td>\n");
				displayHtml.append("</tr>");
				
			}

			displayHtml.append("</table>\n");
			displayHtml.append("<input type=hidden id=queryListMaxRows name=queryListMaxRows value=4>\n");			

			displayHtml.append("<script type='text/javascript'>\n");
			displayHtml.append("function addConditionRow(i) {\n");
			displayHtml.append("	var tab1=document.getElementById('queryListTable')\n");
			displayHtml.append("	if ( tab1 ) {\n");
			displayHtml.append("		var numRows = tab1.rows.length\n");
			displayHtml.append("		var maxRows = 10\n");
			displayHtml.append("		if ( numRows > maxRows )\n");
			displayHtml.append("			alert(\"Can't have more than 10 conditions\");\n");
			displayHtml.append("		else {\n");
			displayHtml.append("			var x = tab1.insertRow(numRows)\n");
			displayHtml.append("			var maxRows = document.getElementById('queryListMaxRows')\n");
			displayHtml.append("			var newRow = maxRows.value -  -1\n");
			displayHtml.append("			maxRows.value = newRow\n");
			displayHtml.append("			x.id = \"queryListRow\" + newRow\n");
			displayHtml.append("			var c1=x.insertCell(0)\n");
			displayHtml.append("			var c2=x.insertCell(1)\n");
			displayHtml.append("			var c3=x.insertCell(2)\n");
			displayHtml.append("			var c4=x.insertCell(3)\n");
			displayHtml.append("			c1.innerHTML=\"<select name=queryListField\" + newRow + \">" + fieldNameOptions.toString() + "</select>\"\n");
			displayHtml.append("			c2.innerHTML=\"<select name=queryListOperator\" + newRow + \">" + conditionOptions.toString() +"</select>\"\n");
			displayHtml.append("			c3.innerHTML=\"<input name=queryListValue\" + newRow + \" size=60>\"\n");
			displayHtml.append("			c4.innerHTML=\"<img src=/sfaimages/remove.gif alt=Del onClick=delConditionRow(\" + newRow + \")>\" + \" <img src=/sfaimages/add.gif alt=Add onClick=addConditionRow(\" + newRow + \")>\"\n");

			displayHtml.append("		}\n");
			displayHtml.append("		fixSize()\n");
			displayHtml.append("	}\n");
			displayHtml.append("}\n");
				
			displayHtml.append("function delConditionRow(i)\n");
			displayHtml.append("{\n");
			displayHtml.append("	var row1 = document.getElementById('queryListRow' + i)\n");
			displayHtml.append("	var tab = document.getElementById('queryListTable')\n");
			displayHtml.append("	var rows = tab.rows\n");
			displayHtml.append("	if ( rows.length == 2 ) {\n");
			displayHtml.append("		event.returnValue = false\n");
			displayHtml.append("		return;\n");
			displayHtml.append("	}\n");
			displayHtml.append("	for ( i=0; i < rows.length; i++ ) {\n");
			displayHtml.append("		row = rows[i];\n");
			displayHtml.append("		if ( row.id == row1.id) {\n");
			displayHtml.append("			tab.deleteRow(i);\n");
			displayHtml.append("			break;\n");
			displayHtml.append("		}\n");
			displayHtml.append("	}\n");
			displayHtml.append("	fixSize()\n");
			displayHtml.append("}\n");		
		
			displayHtml.append("</script>\n");
			
		}
		else
		{
        int column = 1;
        int row = 1;
        boolean[][] cellUsed = new boolean[100][20];
        boolean trOpen = false;

	        if (TIMER) {
	            timer.timerString(1,
	                "[UIWebScreenSection.displayFreeFormSection] Finished preparing form");
	        }
	
			int fieldListSize = getUiFieldList().size();
	        for (int fieldNbr = 0; fieldNbr < fieldListSize; fieldNbr++) {
	            if (TIMER) {
	                timer.timerString(1,
	                    "[UIWebScreenSection.displayFreeFormSection] Start field " +
	                    String.valueOf(fieldNbr));
	            }
	
	            UIFieldInfo fieldInfo = getUiField(fieldNbr);
	
	            // Multiply the column count by 2 since we need space for the labels, too.
	            htmlColumnCount = (getColumnCount() > 1) ? (getColumnCount() * 2) : 2;
	
	            int rowSpan = (fieldInfo.getRowSpan() < 2) ? 1
	                                                       : fieldInfo.getRowSpan();
	
	            // Double the col span and then substract one from the label to get the actual col span of the data field.
	            int colSpan = (fieldInfo.getColSpan() < 2) ? 1
	                                                       : ((fieldInfo.getColSpan() * 2) -
	                1);
	            int displayOrder = fieldInfo.getDisplayOrder();
	            String attributeName = fieldInfo.getUiAttribute().getAttributeName();
	            int fieldWidth = fieldInfo.getDisplayLength();
	            boolean startOnNewRow = fieldInfo.getStartOnNewRow();
	
	            if (fieldInfo.getIsVisible()) {
	
					if ( (startOnNewRow ) && (column > 1) )
					{
						int numCellsSkipped = 0;
						for ( int i = column; i <= htmlColumnCount; i++)
						{
							if ( !cellUsed[row][i])
								numCellsSkipped++;
							cellUsed[row][i] = true;
						}            		
						if ( numCellsSkipped > 0)
							displayHtml.append("<TD class=freeFormSectionField colspan=" + numCellsSkipped +"></TD>");
					}
	                if (column == 1) {
	                    // We are at the beginning of a new row.
	                    Debug.logVerbose("[displayFreeFormSection] Starting row " +
	                            String.valueOf(row), module);
	
	                    displayHtml.append("     <TR>");
	                    trOpen = true;
	                }
	
	                // Skip cells already used by fields that were taller or wider than one cell.
	                while (cellUsed[row][column]) {
	                    column++;
	
	                    if (column > htmlColumnCount) {
	                        if (trOpen) {
	                            displayHtml.append("     </TR>\n");
	                            trOpen = false;
	                        }
	
	                        Debug.logVerbose("[displayFreeFormSection] Ending row " +
	                                String.valueOf(row) + " (skipped used cells)", module);
	
	                        column = 1;
	                        row++;
	
	                        Debug.logVerbose("[displayFreeFormSection] Starting row " +
	                                String.valueOf(row) + " (skipped used cells)", module);
	
	                        displayHtml.append("     <TR>");
	                        // + " HEIGHT=\"" +
	                        //    String.valueOf(FREE_FORM_ROW_HEIGHT) + "\">\n");
	                        trOpen = true;
	                    }
	                }
	
	                if (fieldInfo.getIsMandatory() && !getProtect(action)) {
	                    displayHtml.append(
	                        "      <TD CLASS=\"freeFormSectionLabel\"");
	                } else {
	                    displayHtml.append(
	                        "      <TD CLASS=\"freeFormSectionLabelOptional\"");
	                }
	
	                if (rowSpan > 1) {
	                    displayHtml.append(" ROWSPAN=\"" + String.valueOf(rowSpan) +
	                        "\"");
	                }
	
	                displayHtml.append(">\n");
	
	                Debug.logVerbose("[displayFreeFormSection] Displaying label " +
	                        fieldInfo.getDisplayLabel() + " at row " +
	                        String.valueOf(row) + " column " +
	                        String.valueOf(column), module);
	
	                displayHtml.append("        " + fieldInfo.getDisplayLabel() +
	                    ":\n");
	                displayHtml.append("      </TD>\n");
	                displayHtml.append("      <TD CLASS=\"freeFormSectionField\"");
	
	                if (rowSpan > 1) {
	                    displayHtml.append(" ROWSPAN=\"" + String.valueOf(rowSpan) +
	                        "\"");
	                }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -