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

📄 wwindow.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		form.setName(FORM_NAME);
		form.addElement(new input("hidden", P_Command, ""));    //  button commands
		form.addElement(new input("hidden", P_MR_RowNo, ""));   //  RowNo
		//  Set Title of main window
		String title = ws.mWindow.getName() + " - " + loginInfo;
		form.addElement(new script("top.document.title='" + title + "';"));

		//  Buttons
		form.addElement(createImage(AD_Language, "Ignore", "reset();", true, false));
		form.addElement(" ");
		form.addElement(createImage(AD_Language, "Help"));
		form.addElement(createImage(AD_Language, "New"));
		form.addElement(createImage(AD_Language, "Delete", "if (confirm(deleteText)) submit();", true, false));
		form.addElement(createImage(AD_Language, "Save"));
		form.addElement(" ");
		form.addElement(createImage(AD_Language, "Find"));
		form.addElement(createImage(AD_Language, "Refresh"));
		form.addElement(createImage(AD_Language, "Attachment", null, ws.curTab.canHaveAttachment(), ws.curTab.hasAttachment()));
		form.addElement(createImage(AD_Language, "Multi", null, true, !ws.curTab.isSingleRow()));
		form.addElement(" ");
		form.addElement(createImage(AD_Language, "History", null,
			ws.mWindow.isTransaction()&&ws.curTab.getTabNo()==0, !ws.curTab.isOnlyCurrentRows()));
		form.addElement(" ");
		boolean isFirst = ws.curTab.getCurrentRow() < 1;
		form.addElement(createImage(AD_Language, "First", null, !isFirst, false));
		form.addElement(createImage(AD_Language, "Previous", null, !isFirst, false));
		boolean isLast = ws.curTab.getCurrentRow()+1 == ws.curTab.getRowCount();
		form.addElement(createImage(AD_Language, "Next", null, !isLast, false));
		form.addElement(createImage(AD_Language, "Last", null, !isLast, false));
		form.addElement("&nbsp;");
		form.addElement(createImage(AD_Language, "Report"));
		form.addElement(createImage(AD_Language, "Print"));
		form.addElement("&nbsp;");
		form.addElement(createImage(AD_Language, "Exit"));

		//  Tabs
		form.addElement(new br());
		form.addElement(new br());
		form.addElement(new input("hidden", P_Tab, ""));
		for (int i = 0; i < ws.mWindow.getTabCount(); i++)
		{
			MTab tab = ws.mWindow.getTab(i);
			big big = new big(tab.getName());
			if (ws.curTab.getTabNo() == i)
				big.setID("tabSelected");           //  css
			else
			{
				big.setID("tab");                   //  css
				big.setOnClick("alert('" + tab.getName() + "');");
				big.setOnClick("document." + FORM_NAME + "." + P_Tab + ".value='" + i + "';submit();");
			}
			//  Status: Description
			if (tab.getDescription().length() > 0)
				big.setOnMouseOver("status='" + tab.getDescription() + "';return true;");
			form.addElement(big);
		}

		//  Fields
		form.addElement(new hr());
		form.addElement(table);

		//  Status Line
		tr statusline = new tr();
		statusline.addElement(new td().setWidth("85%").addElement(statusInfo));
		statusline.addElement(new td().setWidth("10%").setAlign("right").addElement(new small(statusDB)));
		statusline.addElement(new td().setWidth("5%").setAlign("right").addElement(createImage(AD_Language, "Save")));
		//
		form.addElement(new hr());
		form.addElement(new table().setWidth("100%").addElement(statusline));

		//  fini
		form.addElement("\n");
		/** @todo Dynamic Display */
	//	form.addElement(new Script("dynDisplay(); createWCmd();"));   //  initial Display & set Cmd Window
		return form;
	}   //  createLayout

	/*************************************************************************/

	/**
	 *  Create Image with name, id of button_name and set P_Command onClick
	 *  @param  AD_Language
	 *  @param  name        Name of the Image used also for Name24.gif
	 *  @param  js_command  Java script command, null results in 'submit();', an empty string disables OnClick
	 *  @param  enabled     Enable the immage button, if not uses the "D" image
	 *  @param  pressed     If true, use the "X" image
	 *  @return Image
	 */
	private static img createImage (String AD_Language, String name, String js_command, boolean enabled, boolean pressed)
	{
		StringBuffer imgName = new StringBuffer(name);
		if (!enabled)
			imgName.append("D");
		else if (pressed)
			imgName.append("X");
		imgName.append("24.gif");
		//
		img img = new img (WEnv.getImageDirectory(imgName.toString()), name);
		if (enabled)
			img.setAlt(Msg.getMsg(AD_Language, name));  //  Translate ToolTip
		//
		if (!pressed || !enabled)
			img.setID("imgButton");                     //  css
		else
			img.setID("imgButtonPressed");              //  css
		//
		if (js_command == null)
			js_command = "submit();";
		if (js_command.length() > 0 && enabled)
			img.setOnClick("document." + FORM_NAME + "." + P_Command + ".value='" + name + "';" + js_command);
		//
		return img;
	}   //  createImage

	/**
	 *  Create enabled Image with name, id of button_name and sumbit command
	 *  @param  AD_Language
	 *  @param  name        Name of the Image used also for Name24.gif
	 *  @return Image
	 */
	private static img createImage (String AD_Language, String name)
	{
		return createImage (AD_Language, name, null, true, false);
	}   //  createImage

	/*************************************************************************/

	/**
	 *	Add Field to Line
	 *  @param line
	 *  @param field
	 *  @param oData
	 *  @param data
	 *  @param isDependant - other columns are dependant on this column
	 */
	private static void addField (tr line, MField field, Object oData, String data, boolean isDependant)
	{
		String columnName = field.getColumnName();
		boolean readOnly = !field.isEditable(false);        //  no context check
		boolean mandatory = field.isMandatory(false);       //  no context check
		//  Any Error?
		boolean error = field.isErrorValue();
		if (error)
			data = field.getErrorValue();
		if (data == null)
			data = "";

		/**
		 *  HTML Label Element
		 *      ID = ID_columnName
		 *
		 *  HTML Input Elements
		 *      NAME = columnName
		 *      ID = ID_columnName
		 */
		label label = new label(columnName).addElement(field.getHeader());
		label.setID("ID_" + columnName);
		label.setTitle(field.getDescription());
		int dt = field.getDisplayType();

		//	String, Date, Timestamp
		if (dt == DisplayType.String || DisplayType.isDate(dt))
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//
			input string = new input(input.text, columnName, data);
			string.setSize(field.getDisplayLength());
			if (dt == DisplayType.String)
				string.setMaxlength(field.getFieldLength());
			else
				string.setMaxlength(field.getDisplayLength());
			string.setID("ID_" + columnName);
			string.setDisabled(readOnly);
			if (error)
				string.setClass(C_ERROR);
			else if (mandatory)
				string.setClass(C_MANDATORY);
			if (isDependant)
				string.setOnChange("dynDisplay();");
			td td = new td().addElement(string).setAlign(AlignType.LEFT);
			if (field.isLongField())
				td.setColSpan(3);
			line.addElement(td);
		}
		//	Numeric
		else if (DisplayType.isNumeric(dt))
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//
			input string = new input(input.text, columnName, data);
			string.setSize(field.getDisplayLength());
			string.setID("ID_" + columnName);
			string.setDisabled(readOnly);
			if (error)
				string.setClass(C_ERROR);
			else if (mandatory)
				string.setClass(C_MANDATORY);
			if (isDependant)
				string.setOnChange("dynDisplay();");
			line.addElement(new td().addElement(string).setAlign(AlignType.LEFT));
		}
		//	Text
		else if (dt == DisplayType.Text)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT).setVAlign(AlignType.TOP));
			//
			textarea text = new textarea(columnName, 3, field.getDisplayLength()).addElement(data);
			text.setID("ID_" + columnName);
			text.setDisabled(readOnly);
			if (error)
				text.setClass(C_ERROR);
			else if (mandatory)
				text.setClass(C_MANDATORY);
			if (isDependant)
				text.setOnChange("dynDisplay();");
			td td = new td().addElement(text).setAlign(AlignType.LEFT);
			if (field.isLongField())
				td.setColSpan(3);
			line.addElement(td);
		}
		else if (dt == DisplayType.Memo)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT).setVAlign(AlignType.TOP));
			//
			textarea text = new textarea(columnName, 25, field.getDisplayLength()).addElement(data);
			text.setID("ID_" + columnName);
			text.setDisabled(readOnly);
			if (error)
				text.setClass(C_ERROR);
			else if (mandatory)
				text.setClass(C_MANDATORY);
			if (isDependant)
				text.setOnChange("dynDisplay();");
			td td = new td().addElement(text).setAlign(AlignType.LEFT);
			if (field.isLongField())
				td.setColSpan(3);
			line.addElement(td);
		}
		//	CheckBox
		else if (dt == DisplayType.YesNo)
		{
			line.addElement(new td());
			//
			boolean check = data.equals("Y");
			input cb = new input(input.checkbox, columnName, "true").setChecked(check).addElement(field.getHeader());
			cb.setID("ID_" + columnName);
			cb.setDisabled(readOnly);
			if (error)
				cb.setClass(C_ERROR);
		//	else if (mandatory)             //  looks odd
		//		cb.setClass(C_MANDATORY);
			if (isDependant)
				cb.setOnChange("dynDisplay();");
			line.addElement(new td().addElement(cb).setAlign(AlignType.LEFT));
		}
		//  Search
		else if (dt == DisplayType.Search)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//  The hidden field        Name=columnName
			input hidden = new input(input.hidden, columnName, data);
			//  The display field       Name=columnName_D, ID=ID_columnName
			String displayData = field.getLookup().getDisplay(oData);
			input display = new input(input.text, columnName + "_D", displayData);
		//	display.setSize(field.getDisplayLength()).setMaxlength(field.getFieldLength());
			display.setID("ID_" + columnName);
			display.setReadOnly(true);
			//  The button              Name=columnName_B, ID=ID_columnName
			input button = new input(input.image, columnName + "_B", "x");
			String gif = "PickOpen10.gif";
			if (columnName.equals("C_BPartner_ID"))
				gif = "BPartner10.gif";
			else if (columnName.equals("M_Product_ID"))
				gif = "Product10.gif";
			button.setSrc(WEnv.getImageDirectory(gif));
			button.setBorder(1);
			button.setOnClick("return startLookup(" + columnName + ");");
			if (error)
				display.setClass(C_ERROR);
			else if (mandatory)
				display.setClass(C_MANDATORY);
			if (isDependant)
				display.setOnChange("dynDisplay();");
			td td = new td()
				.addElement(hidden)
				.addElement(display)
				.addElement(button)
				.setAlign(AlignType.LEFT);
			line.addElement(td);
		}
		//  Location
		else if (dt == DisplayType.Location)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//  The hidden field        Name=columnName
			input hidden = new input(input.hidden, columnName, data);
			//  The display field       Name=columnName_D, ID=ID_columnName
			String displayData = field.getLookup().getDisplay(oData);
			input display = new input(input.text, columnName + "_D", displayData);
		//	display.setSize(field.getDisplayLength()).setMaxlength(field.getFieldLength());
			display.setID("ID_" + columnName);
			display.setReadOnly(true);
			//  The button              Name=columnName_B, ID=ID_columnName
			input button = new input(input.image, columnName + "_B", "l");
			button.setSrc(WEnv.getImageDirectory("Location10.gif")).setBorder(1);
			button.setOnClick("return startLocation(" + columnName + ");");
			if (error)
				display.setClass(C_ERROR);
			else if (mandatory)
				display.setClass(C_MANDATORY);
			if (isDependant)
				display.setOnChange("dynDisplay();");
			td td = new td()
				.addElement(hidden)
				.addElement(display)
				.addElement(button)
				.setAlign(AlignType.LEFT);
			line.addElement(td);
		}
		//  Account
		else if (dt == DisplayType.Account)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//  The hidden field        Name=columnName
			input hidden = new input(input.hidden, columnName, data);
			//  The display field       Name=columnName_D, ID=ID_columnName
			String displayData = field.getLookup().getDisplay(oData);
			input display = new input(input.text, columnName + "_D", displayData);
		//	display.setSize(field.getDisplayLength()).setMaxlength(field.getFieldLength());
			display.setID("ID_" + columnName);
			display.setReadOnly(true);
			//  The button              Name=columnName_B, ID=ID_columnName
			input button = new input(input.image, columnName + "_B", "x");
			button.setSrc(WEnv.getImageDirectory("Account10.gif"));
			button.setBorder(1);
			button.setOnClick("return startAccount(" + columnName + ");");
			if (error)
				display.setClass(C_ERROR);
			else if (mandatory)
				display.setClass(C_MANDATORY);
			if (isDependant)
				display.setOnChange("dynDisplay();");
			td td = new td()
				.addElement(hidden)
				.addElement(display)
				.addElement(button)
				.setAlign(AlignType.LEFT);
			line.addElement(td);
		}
		//	Lookup, Loactor -> Popup
		else if (DisplayType.isLookup(dt) || dt == DisplayType.Locator)
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			//
			Lookup lookup = (Lookup)field.getLookup();
			Object[] list = lookup.getData(mandatory, true, false).toArray();    //  also inactive
			int size = list.length;
			option options[] = new option[size];
			if (size > 0)
			{
				boolean isNumber = list[0] instanceof KeyNamePair;
				for (int i = 0; i < size; i++)
				{
					String key = null;
					if (dt == DisplayType.Locator)
					{
						Locator loc = (Locator)list[i];
						key = String.valueOf(loc.M_Locator_ID);
						options[i] = new option(key).addElement(loc.Value);
					}
					else if (isNumber)
					{
						KeyNamePair p = (KeyNamePair)list[i];
						key = String.valueOf(p.getKey());
						options[i] = new option(key).addElement(p.getName());
					}
					else
					{
						ValueNamePair p = (ValueNamePair)list[i];
						key = p.getValue();
						if (key == null || key.length() == 0)
							key = "??";
						String name = p.getName();
						if (name == null || name.length() == 0)
							name = "???";
						options[i] = new option(key).addElement(name);
					}
					if (data.equals(key))
						options[i].setSelected(true);
				}
			}
			select sel = new select(columnName, options);
			sel.setID("ID_" + columnName);
			sel.setDisabled(readOnly);
			if (error)
				sel.setClass(C_ERROR);
			else if (mandatory)
				sel.setClass(C_MANDATORY);
			if (isDependant)
				sel.setOnChange("dynDisplay();");
			line.addElement(new td().addElement(sel));
		}
		//  button
		else if (dt == DisplayType.Button)
		{
			line.addElement(new td());
			//
			input b = new input(input.button, columnName, field.getHeader());
			b.setID("ID_" + columnName);
			b.setDisabled(readOnly);
		//	b.setOnClick("submit();");
			line.addElement(new td().addElement(b).setAlign(AlignType.LEFT));
		}

		//  Unknown
		else
		{
			line.addElement(new td().addElement(label).setAlign(AlignType.RIGHT));
			line.addElement(new td().addElement("[" + data + "]").setID("ID_" + columnName));
		}

		//  Additional Values
		String dispLogic = field.getDisplayLogic();
		if (dispLogic == null)
			dispLogic = "";
		if (dispLogic.length() > 0)
		{
			dispLogic = dispLogic.replace('\'', '"');   //  replace ' with "
			String attrib = "document." + FORM_NAME + "." + columnName + ".displayLogic='" + dispLogic + "';";
			line.addElement(new script(attrib));
		}
	}	//	addField

}   //  WWindow

⌨️ 快捷键说明

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