📄 uiwebscreensection.java
字号:
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'><</option>");
conditionOptions.append("<option value='greaterThan'>></option>");
conditionOptions.append("<option value='lessThanEqualTo'><=</option>");
conditionOptions.append("<option value='greaterThanEqualTo'>>=</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 + -