Virtual form and validator (bug or feature)

I got 2 virtual forms
First, VF is associated with a drop down.
Second, VF is associated with text field and a button.
The text field has a validator
Upon selecting a value from dropdown (VF1 get submitted) the text field will get populated.
Here is where it get strange, the validator get called and when first form get submitted (dorpdown change) and the validator will not get called if the second VF get submitted.
How can I reverse the order? Have the validator evoked when the right virtual form is submitted?

Ok it's a bug in the way SJSC update 1 handle validator
I have removed all the Virtual Forms, commented out all the validator procedures and made sure that in the properties there are no validator for the drop down. I also added in the prerender()
        info("VALS: ");
        Validator val[] = dropDown1.getValidators();
        for (int i = 0; i < val.length; i++) {
            info(val.toString());
When I ran it I got nothing.
I then created an
public void TEMP_validate(
            FacesContext context, UIComponent component, Object value) {
}and placed the procedure in the drop down validate property. To my surprise I found that the system is trying to find the old validator that I commented out when I change the value for the drop down.
Exception Handler
Description: An unhandled exception occurred during the execution of the web application. Please review the following stack trace for more information regarding the error.
Exception Details: javax.faces.el.MethodNotFoundException
systemAdmin_category_nameEdit_textField_validate: community_loan.systemAdmin.SystemAdminCategory.systemAdmin_category_nameEdit_textField_validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
Possible Source of Error:
Class Name: com.sun.faces.el.MethodBindingImpl
File Name: MethodBindingImpl.java
Method Name: method
Line Number: 206
Source not available. Information regarding the location of the exception can be identified using the exception stack trace below.
Stack Trace:
com.sun.faces.el.MethodBindingImpl.method(MethodBindingImpl.java:206)
com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:124)
javax.faces.component.UIInput.validateValue(UIInput.java:797)
javax.faces.component.UIInput.validate(UIInput.java:645)
javax.faces.component.UIInput.executeValidate(UIInput.java:849)
javax.faces.component.UIInput.processValidators(UIInput.java:412)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIForm.processValidators(UIForm.java:170)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:342)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:78)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
java.security.AccessController.doPrivileged(AccessController.java:-2)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
java.security.AccessController.doPrivileged(AccessController.java:-2)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
community_loan.SecurityCheckFilter.doFilter(SecurityCheckFilter.java:67)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
java.security.AccessController.doPrivileged(AccessController.java:-2)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:132)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189)
com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604)
com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475)
com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371)
com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:264)
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281)
com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83)

Similar Messages

  • Help with Spry form and Validation

    We have a form with shipping and billing information. When
    you fill out the billing and select same as billing radio button.
    Then it fills out the shipping fields properly using focus to make
    sure the spry validation recognizes the input. Everything on the
    form appears to be valid in Firefox Windows and Mac and Safari but
    the submit button does not work. Before we started we go the
    shipping fields to populate with the billing data the form
    submitted fine.
    On IE 7 the 1st Zip code fields shows the error messages and
    then only some of the hints show up in the spry validate fields
    below. This is only on IE. When you populate the shipping section
    in IE with the radio button in fills in everything but that
    shipping zip again on IE only. You actually have to manually type
    in the zip.
    Is this IE bug related to the form not submitting in the
    other browsers?
    I don't understand why the form in all the other browsers
    appears to have all fields validate but will not submit.
    I bet between three of us we have 60 hours in the stupid form
    and 2/3rds of it is not billable.
    On the other hand we need to finish this today!!. We will all
    be around at about 3 on Sunday. I am happy to pay someone to look
    at this and help us get through this last step.
    I wish there was some debug tool we could use to see what is
    going on. I look at the debug.js file in 6 in the meantime. I can
    be reached at 610-256-2843 and best email is [email protected]
    Help!!
    You can see all the by going to
    http://vv.dss-demo.com/
    then add something to your cart and go to checkout. you will
    get the form.

    Florin,
    Thanks for the response. We were looking for a way to remove
    the hints but did not see anything in the documentation.
    But I am still having issues.
    A. Not sure how you are not seeing the text &quot;Zip is
    required.Invalid format.&quot; in the grey area next to zip
    code fields. It is there on IE 6 and 7 4 different users with
    different computers see it.
    B. As soon as I add you code you suggested and comment out
    what we had it throws and error in IE and the debug says it is at
    the 1st instance of your method sprytextfield20.removeHint();
    Object does not support method.
    C. A new problem we did not notice last night on all browsers
    is that the form now does not respect the spry validations. It
    submits no matter what. I am using this to submit the form.
    &lt;input name=&quot;submit&quot;
    id=&quot;submit&quot; type=&quot;image&quot;
    src=&quot;images/complete_checkout.png&quot;
    onclick=&quot;document.forms['checkout_signup'].action='&lt;@appfilepath&gt;checkout_sign up.taf?_function=signup';document.forms['checkout_signup'].submit();&quot;
    /&gt;. We for sure don't want. It seems to have occured once we
    added the document.forms['checkout_signup'].submit(); in the 1st
    place but that without that the form would not submit even when
    everything appeared to be validated. So was adding
    document.forms['checkout_signup'].submit(); =seems to have just
    covered up another issue that is keeping the form from submitting.
    I still would like to have someone really look at this form
    with me and pay them if I have to. But it really does not seem that
    the path we are talking really works.
    I am going to roll this back to where it was till I can get
    some help.
    my guess at this point
    Hints have to go because if we fill down with fields that
    have hints then the hints become the values and are submitted. And
    it also breaks the spry validation.
    I would hope that the way we are rebuilding the zip and state
    fields would be possible with spry. It sure looks like it works. My
    hope is it is not causing the submit to not work.
    Anyway I still need help from someone who would be willing to
    take the time ort has the time to look over the page and al lthe
    logic we are using and see if there is a better way to do this
    even. This form is ending up costing me more time in non billed
    hours then the job itself. Yipes!!!
    As far as the HTML tags I will look at that again there are a
    bunch of includes build some of this page but I do see the
    beginning &lt;html&gt; seems to have been lost and I put it
    back in.
    D. I realize there is a fault with this method in the 1st
    place since it replaces the hints with values even if the value is
    the hint. Any suggestion on how to deal with that? are these hints
    more trouble then they are worth when used as field names. Should
    we just redisgn and use the field names in the 1st place?

  • Forms and validations - here's some of my ideas, what are yours?

    One of the big things still missing from the JFX space (especially where JEE is concerned) is forms and form validations. Maybe you guys have been luckier but at least 80% of the screens I've had to build in my career have been boring old forms - enter data in the fields, validate them and hit submit.
    So, I've been hacking around on this to try and get a pattern and hopefully some reusable classes for doing this in JavaFX. I have something that works but the code is verbose and less than elegant. I'm hoping some of you guys might want to kick around some ideas on this with me here. If we can come up with something that works, I'd like to either include it in [url http://www.zenjava.com/jfx-flow/]JFX Flow, or put it out as a separate open source project (whichever makes more sense).
    What I think needs to be supported:
    * Map between a normal Java bean and the fields on a form
    * Validate the data, i.e. specifying the constraints on a field and then checking those constraints
    * Show a validation summary at the top of the form
    * Highlight individual fields if they have validation errors
    * Support auto-validation, i.e. the validation highlights and messages will instantly update as the user types
    Some extra restrictions:
    * The data input will ideally be a normal bean and so it won't have observable values on it. In most projects I use, the beans are coming from the server and sometimes may be shared between desktop client and a jsp/web client, or even be a third party API so they can't be changed. End result: we don't want any JFX complexities or dependencies in our server code (design leak). This rule could be bent but only as a last resort.
    * The validations must be defined relative to the normal data bean not a JFX model or controller, etc. This is so the bean can be validated on the server as well as the client. The server must do validation to prevent dodgy data getting in (never trust a client). Ideally we don't want to be specifying the validations in two places (i.e. once for the client and once for the server) as this creates maintenance problems and weakens the integrity of the system over time.
    * Ideally the validation mechanism will be based on [url http://java.dzone.com/articles/bean-validation-and-jsr-303]JSR 303 - Bean Validations as this is quite nice. This is flexible however if there is a suitable alternative that integrates better.
    To give us something to reference in conversation, I've created a small working sample. This is only meant to be a rough starting point (at best) and I'd really like to get feedback on both the code (i.e. should we have a 'presentation model', how could bindings be better used, etc) and the general way I'm representing errors (i.e. should we use tooltips to show errors, or actually show the errors next to the field, should we use border colours or put a little exclamation mark over the field, should the fields be auto-validated or only validated on submit, etc).
    The example is a single form for editing a person. It has three fields, first name, last name and gender. When the form is blank, auto-editing is off. When the user submits the form it is validated and from that point on auto-validating is on. Error fields are highlighted with a style change, and a tooltip is added with details (I think we can do better - what's your ideas?).
    I have used all plain Java to keep thngs simple, but I'd be looking for the end result to translate to FXML as well. I've also coded everything into the one class but the eventual goal would be to have the common stuff moved out to reusable base classes, etc.
    Here's a workspace with some example code in it: http://code.google.com/p/jfxee/source/browse/trunk/jfxforms/
    Here's a running deploy of that code: http://zenjava.com/demo/form/forms.html
    (edit: I've moved the code to its own project and changed the url for the launch - the values above are the new, correct ones)
    Looking forward to hearing some thoughts on this topic.
    Edited by: zonski on 01-Dec-2011 13:41

    At Devoxx I did some straw man prototype that you might find useful (or hopeless, I'm not sure which, I did it in a hurry :-)). I followed some principles that I was influenced by years back by JGoodies, but I haven't looked at the JGoodies stuff in forever and know it isn't all the same. But anyway, like I said, I'm not sure it is actually useful but maybe there is something genius hidden in there.
    I have a Validator, which is just a simple SAM:
    import javafx.scene.control.Control;
    * @author Richard
    public interface Validator<C extends Control> {
        public ValidationResult validate(C control);
    }The idea is that it is given a Control, it will validate that control, and then return a ValidationResult. ValidationResult is actually only needed in cases of errors, since returning null indicates success, so the following is somewhat of a crock but you could rename it ValidationError or something and remove the "SUCCESS" type and there you are.
    public class ValidationResult {
        public enum Type { ERROR, WARNING, SUCCESS }
        private final String message;
        private final Type type;
        public ValidationResult(String message, Type type) {
            this.message = message;
            this.type = type;
        public final String getMessage() {
            return message;
        public final Type getType() {
            return type;
        }For good measure I threw in a ValidationEvent.
    import javafx.event.Event;
    import javafx.event.EventType;
    * @author Richard
    public class ValidationEvent extends Event {
        public static final EventType<ValidationEvent> ANY =
                new EventType<ValidationEvent>(Event.ANY, "VALIDATION");
        private final ValidationResult result;
        public ValidationEvent(ValidationResult result) {
            super(ANY);
            this.result = result;
        public final ValidationResult getResult() { return result; }
    }Because Control's don't presently have the notion of validation built in, I created a ValidationPane which is like a specialized StackPane, where there is a bottom layer, the control, and a glass pane layer. And from CSS you can style it however you like. The ValidationPane has a CSS style class set in case of errors / warnings. So without augmenting controls, the idea is that a ValidationPane subclass would exist to wrap each type of control you needed to validate. It did this because somebody has to wire up the listeners to the control to react on text input etc, and so I thought I'd like that encapsulated in something reusable, and there it was.
    import javafx.beans.DefaultProperty;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.property.ReadOnlyObjectProperty;
    import javafx.beans.property.ReadOnlyObjectWrapper;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.event.EventHandler;
    import javafx.scene.control.Control;
    import javafx.scene.layout.Region;
    * @author Richard
    @DefaultProperty("content")
    public abstract class ValidatorPane<C extends Control> extends Region {
         * The content for the validator pane is the control it should work with.
        private ObjectProperty<C> content = new SimpleObjectProperty<C>(this, "content", null);
        public final C getContent() { return content.get(); }
        public final void setContent(C value) { content.set(value); }
        public final ObjectProperty<C> contentProperty() { return content; }
         * The validator
        private ObjectProperty<Validator<C>> validator = new SimpleObjectProperty<Validator<C>>(this, "validator");
        public final Validator<C> getValidator() { return validator.get(); }
        public final void setValidator(Validator<C> value) { validator.set(value); }
        public final ObjectProperty<Validator<C>> validatorProperty() { return validator; }
         * The validation result
        private ReadOnlyObjectWrapper<ValidationResult> validationResult = new ReadOnlyObjectWrapper<ValidationResult>(this, "validationResult");
        public final ValidationResult getValidationResult() { return validationResult.get(); }
        public final ReadOnlyObjectProperty<ValidationResult> validationResultProperty() { return validationResult.getReadOnlyProperty(); }
         *  The event handler
        private ObjectProperty<EventHandler<ValidationEvent>> onValidation =
                new SimpleObjectProperty<EventHandler<ValidationEvent>>(this, "onValidation");
        public final EventHandler<ValidationEvent> getOnValidation() { return onValidation.get(); }
        public final void setOnValidation(EventHandler<ValidationEvent> value) { onValidation.set(value); }
        public final ObjectProperty<EventHandler<ValidationEvent>> onValidationProperty() { return onValidation; }
        public ValidatorPane() {
            content.addListener(new ChangeListener<Control>() {
                public void changed(ObservableValue<? extends Control> ov, Control oldValue, Control newValue) {
                    if (oldValue != null) getChildren().remove(oldValue);
                    if (newValue != null) getChildren().add(0, newValue);
        protected void handleValidationResult(ValidationResult result) {
            getStyleClass().removeAll("validation-error", "validation-warning");
            if (result != null) {
                if (result.getType() == ValidationResult.Type.ERROR) {
                    getStyleClass().add("validation-error");
                } else if (result.getType() == ValidationResult.Type.WARNING) {
                    getStyleClass().add("validation-warning");
            validationResult.set(result);
            fireEvent(new ValidationEvent(result));
        @Override
        protected void layoutChildren() {
            Control c = content.get();
            if (c != null) {
                c.resizeRelocate(0, 0, getWidth(), getHeight());
        @Override
        protected double computeMaxHeight(double d) {
            Control c = content.get();
            return c == null ? super.computeMaxHeight(d) : c.maxHeight(d);
        @Override
        protected double computeMinHeight(double d) {
            Control c = content.get();
            return c == null ? super.computeMinHeight(d) : c.minHeight(d);
        @Override
        protected double computePrefHeight(double d) {
            Control c = content.get();
            return c == null ? super.computePrefHeight(d) : c.prefHeight(d);
        @Override
        protected double computePrefWidth(double d) {
            Control c = content.get();
            return c == null ? super.computePrefWidth(d) : c.prefWidth(d);
        @Override
        protected double computeMaxWidth(double d) {
            Control c = content.get();
            return c == null ? super.computeMaxWidth(d) : c.maxWidth(d);
        @Override
        protected double computeMinWidth(double d) {
            Control c = content.get();
            return c == null ? super.computeMinWidth(d) : c.minWidth(d);
    }And finally the TextInputValidatorPane instance good for any TextInputControl. I think.
    import javafx.beans.InvalidationListener;
    import javafx.beans.Observable;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.scene.control.TextInputControl;
    * @author Richard
    public class TextInputValidatorPane<C extends TextInputControl> extends ValidatorPane<C> {
        private InvalidationListener textListener = new InvalidationListener() {
            public void invalidated(Observable o) {
                final Validator v = getValidator();
                final ValidationResult result = v != null ?
                    v.validate(getContent()) :
                    new ValidationResult("", ValidationResult.Type.SUCCESS);
                handleValidationResult(result);
        public TextInputValidatorPane() {
            contentProperty().addListener(new ChangeListener<C>() {
                public void changed(ObservableValue<? extends C> ov, C oldValue, C newValue) {
                    if (oldValue != null) oldValue.textProperty().removeListener(textListener);
                    if (newValue != null) newValue.textProperty().addListener(textListener);
        public TextInputValidatorPane(C field) {
            this();
            setContent(field);
    }This should also be usable as is from FXML since you can easily wrap a TextInputValidatorPane around a TextField, and CSS does all the styling, so I think it all just works. You probably need to have some library of sophisticated Validators which know how to read text from a TextField and compare against the validation annotations, but otherwise it should work well enough. Anyway, in the actual implementation I think I would omit the ValidationPane stuff completely and just build that part into the controls / skins. Like I said, this was a quick hack but seemed to get the "how do I visualize validation errors" part of the problem solved.
    Richard

  • Stacking Images and Ratings: Bug or Feature?

    So, I went through my main library of images (7000+ NEF Raw files), and applied Star Ratings to some of the images, several(50+) of those got 5 stars.
    Later, I got the idea that it would be good to manually stack most of the images into what I would consider logical collections or stacks: command+K on a selected group.
    And this is where I'm consfused.
    I noticed today that a custom search that I created doesn't return all of the images that it should. Here's an example:
    I created a smart album that looks for .nef files with a 5 star rating; another one looks for .psd files with a 5 star rating.
    Anyway, many of the 5 star images no longer show up in this smart album, and it would appear that is related to those images being inside a stack that was manually created. Removing those images from a stack (as an experiment) brought them back into the smart album.
    So, I'm scratching my head. Is this supposed to work this way? Why wouldn't aperture "see" a 5 star image within a stack, even when that stack was manually created without regard to time/date/etc. Why are these images hidden from a smart album?
    I may be missing some fundamental point in the whole stacking concept.
    Has anyone else noticed this behavior?

    FOUND THE COMMON DENOMINATOR!!!
    "The built-in 5-star rating smart album does not work as it cannot find rated images inside stacks."
    As an update to my previous post, I have found the cause of the problem and a PARTIAL workaround. Still a pain in the neck though!
    The built in '5 star', '1 star or Better' and the 'rejected' smart folders actually DO work, PROVIDING (and here's the problem) the rated picture is the FIRST picture in the stack!!
    It only recognises the 1st image in the stack and NO others. This means that your rated image has to be the FIRST one in the stack.
    The problem is that if you have more than one rated image in the same stack, only the FIRST image is taken into account.
    This only applies to the built in smart folders provided at library level.
    All other smart folders that we create should have the 'ignore stack' checkbox checked to view all the images.
    Anyone got a thought on whether this is a feature or a bug?
    Spike

  • PHPSESSID and javascript -- bug or feature?

    I was playing around with Firefox recently and noticed some strange behavior. Logged into a certain webpage, I typed javascript:alert(document.cookie) and got the usual dialog box containing my cookie. Almost. It was missing the PHPSESSID entry. I checked to see that this cookie was indeed being sent, it just didn't show up in the list. My question is this: can this behavior be changed? My assumption is that this is a feature to make cross-site scripting difficult, but can this feature be turned off?

    I have just tested this on a different webpage, and PHPSESSID shows up there. This seems to contradict my hypothesis of XSS prevention.

  • Across row validation in tabular form and across items in row validations.

    Hi,
    We are upgrading to APEX 4.0.
    I need to create a tabular form that will have a start date and an end date. FOr each new row or updated row I need ensure its start date is after the end date of all rows already entered and its end date is after the start date of row being entered. Also that if no end date is entered then no other rows can be found with a null end date.
    SO I need across field validations with in a row and across row validattions. That is I need rowset validations as well.
    Is it possible to do this with APEX? WHat kind of tabular solution would allow these type of validations. How might these validations be done?

    Okay, Here's a quick rundown on how to build a manual form using APEX_ITEM and collections. The process goes in 4 steps: gather the data, display the data, update based on user input, then write the changes. Each step requires it's own piece of code, but you can extend this out as far as you want. I have a complex form that has no less than a master table and 4 children I write to based on user input, so this can get as complex as you need. Let me know if anything doesn't make sense.
    First, create the basic dataset you are going to work with. This usually includes existing data + empty rows for input. Create a Procedure that fires BEFORE HEADER or AFTER HEADER but definitely BEFORE the first region.
    DECLARE
      v_id     NUMBER;
      var1     NUMBER;
      var2     NUMBER;
      var3     VARCHAR2(10);
      var4     VARCHAR2(8);
      cursor c_prepop is
      select KEY, col1, col2, col3, to_char(col4,'MMDDYYYY')
        from table1
        where ...;
      i         NUMBER;
      cntr      NUMBER := 5;  --sets the number of blank rows
    BEGIN
      OPEN c_prepop;
        LOOP
          FETCH c_prepop into v_id, var1, var2, var3, var4;
          EXIT WHEN c_prepop%NOTFOUND;
            APEX_COLLECTION.ADD_MEMBER(
            p_collection_name => 'MY_COLLECTION',
            p_c001 => v_id,  --Primary Key
            p_c002 => var1, --Number placeholder
            p_c003 => var2, --Number placeholder
            p_c004 => var3, --text placeholder
            p_c005 => var4 --Date placeholder
        END LOOP;
      CLOSE c_prepop;
      for i in 1..cntr loop
        APEX_COLLECTION.ADD_MEMBER(
            p_collection_name => 'MY_COLLECTION',
            p_c001 => 0, --designates this as a new record
            p_c002 => 0, --Number placeholder
            p_c003 => 0, --Number placeholder
            p_c004 => NULL, --text placeholder
            p_c005 => to_char(SYSDATE,'MMDDYYYY') --Date placeholder
      end loop;
    END;Now I have a collection populated with rows I can use. In this example I have 2 NUMBERS, a TEXT value, and a DATE value stored as text. Collections can't store DATE datatypes, so you have to cast it to text and play with it that way. The reason is because the user is going to see and manipulate text - not a DATE datatype.
    Now build the form/report region so your users can see/manipulate the data. Here is a sample query:
    SELECT rownum, apex_item.hidden(1, c001),  --Key ID
         apex_item.text(2, c002, 8, 8) VALUE1,
         apex_item.text(3, c003, 3, 3) VALUE2,
         apex_item.text(4, c004, 8, 8) VALUE3,
         apex_item.date_popup(5, null,c005,'MMDDYYYY',10,10) MY_DATE
    FROM APEX_COLLECTIONS
    WHERE COLLECTION_NAME = 'MY_COLLECTION'This will be a report just like an SQL report - you're just pulling the data from the collection. You can still apply the nice formatting, naming, sorting, etc. of a standard report. In the report the user will have 3 "text" values and one Date with Date Picker. You can change the format, just make sure to change it in all four procedures.
    What is critical to note here are the numbers that come right before the column names. These numbers become identifiers in the array used to capture the data. What APEX does is creates an array of up to 50 items it designates as F01-F50. The F is static, but the number following it corresponds to the number in your report declaration above, ie, F01 will contain the primary key value, F02 will contain the first numeric value, etc. While not strictly necessary, it is good practice to assign these values so you don't have to guess.
    One more note: I try to align the c00x values from the columns in the collection with the F0X values in the array to keep myself straight, but they are separate values that do NOT have to match. If you have an application you think might get expanded on, you can leave gaps wherever you want. Keep in mind, however, that you only have 50 array columns to use for data input. That's the limit of the F0X array even though a collection may have up to 1000 values.
    Now you need a way to capture user input. I like to create this as a BEFORE COMPUTATIONS/VALIDATIONS procedure that way the user can see what they changed (even if it is wrong). Use the Validations to catch mistakes.
    declare
      j pls_integer := 0;
    begin
    for j1 in (
      select seq_id from apex_collections
      where collection_name = 'MY_COLLECTION'
      order by seq_id) loop
      j := j+1;
      --VAL1 (number)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>2,p_attr_value=>wwv_flow.g_f02(j));
      --VAL2 (number)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>3,p_attr_value=>wwv_flow.g_f03(j));
      --VAL3 (text)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>4,p_attr_value=>wwv_flow.g_f04(j));
      --VAL4 (Date)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>5,p_attr_value=>wwv_flow.g_f05(j));
    end loop;
    end;Clear as mud? Walk through it slowly. The syntax tells APEX which Collection (p_collection_name), then which row (p_seq), then which column/attribute (p_attr_number) to update with which value (wwv_flow.g_f0X(j)). The attribute number is the column number from the collection without the "c" in front (ie c004 in the collection = attribute 4).
    The last one is your procedure to write the changes to the Database. This one should be a procedure that fires AFTER COMPUTATIONS AND VALIDATIONS. It uses that hidden KEY value to determine whether the row exists and needs to be updated, or new and needs to be inserted.
    declare
    begin
      --Get records from Collection
      for y in (select TO_NUMBER(c001) x_key, TO_NUMBER(c002) x_1,
                 TO_NUMBER(c003) x_2,
                 c004 x_3,
                 TO_DATE(c005,'MMDDYYYY') x_dt
               FROM APEX_COLLECTIONS
               WHERE COLLECTION_NAME = 'MY_COLLECTION') loop
        if y.x_key = 0 then  --New record
            insert into MY_TABLE (KEY_ID, COL1,
                COL2, COL3, COL4, COL5)
              values (SEQ_MY_TABLE.nextval, y.x_1,
                  y.x_2, y.x_3, y.x_4, y.x_dt);
        elsif y.x_key > 0 then  --Existing record
            update MY_TABLE set COL1=y.x_1, COL2=y.x_2,
                 COL3=y.x_3, COL4=y.x_4, COL5=y.x_dt
             where KEY_ID = y.x_key;
        else
          --THROW ERROR CONDITION
        end if;
      end loop;
    end;Now I usually include something to distinguish the empty new rows from the full new rows, but for simplicity I'm not including it here.
    Anyway, this works very well and allows me complete control over what I display on the screen and where all the data goes. I suggest using the APEX forms where you can, but for complex situations, this works nicely. Let me know if you need further clarifications.

  • Bug or feature: Finder's sidebar and shared drives

    I don't know if this is a bug or an incomplete feature.
    I have a Windows fileserver on the network. In Finder if I go to afp://<ipaddress> and authenticate with name and password I get a window with the list of available Apple shares. So far so good, just like Tiger. When I choose ONE drive I want, however, the Finder sidebar does not show the drive but shows the server itself and clicking the servername shows ALL available shares. I can click anyone I want and view the contents.
    If the Go To process didn't ask for which drive I wanted to connect to, that'd be great since the sidebar display them all anyways.
    It's a bit odd though. In list view there's no triangles to expand the folders, and it seems odd that the Go To process asks which drive to connect to but then give you all of them anyways. But I certainly like not having to choose which drives I want to connect to.
    Bug or feature? I'm rooting for feature.

    supersolenoid wrote:
    I've recently noticed some very strange behavior when I use exposé with windows minimized and applications hidden.
    When applications are hidden, their windows do not appear in exposé, which seems reasonable.
    But windows that were minimized before hiding the application continue to appear in exposé even while they are not shown in the dock.
    Is this normal behavior? It's irking the **** out of me.
    yes, it's normal behavior. minimized windows show up in exposé but are smaller than non minimized windows. Personally, I like it that way. and when you choose the option to minimize to the application this is the easiest way to unminimize them. but if you are not happy with this you can send apple feedback on the issue
    http://www.apple.com/feedback/macosx.html

  • Can not edit Forms and Reports in WebDB. Any bug?

    I could not edit a form or report on the WebDB. I am geting an
    error :--
    ORA-03114: not connected to ORACLE
    Actually I am still connected to Oracle.
    I am using WebDB version 2.0.5.6.1
    What is the way ? Is it a bug ? Is there a patch for it ?
    null

    Hi,
    Why do you want to store the forms and reports in database? Do you mean something like SCM repository for versioning?
    I don't find any use in storing the forms and reports in database.
    -Arun

  • Search in "forms" and other important features in iOs Numbers

    Hi, this Numbers is very great!! But there are 3 important features to add in "forms".
    1. It's really important the possibility to search in a "form" and not only in spreadsheet. I don't know why they don't add this feature....
    2. The possibility to start a new paragraph (to indent a new line with "enter" button) also in "form" and not only in spreadsheet...
    3. Possibility to input the excactly number of record that I want to watch in form.
    Thanks...there's someone that knows how to do these 3 things?

    August,
    Since you're talking about Forms, you must be using the iOS version of Numbers. There's a discussion area specific to the iOS version here: https://discussions.apple.com/community/app_store/iwork_for_ios
    Jerry

  • How to Update Extended Feature Forms and Keep Extended Features?

    In the company I work for we have a bunch of PDF certificates that our Customer Service department uses, namely for international sales.  Only the Customer Service manager has Adobe Acrobat so she uses Extended Features so the other people in Customer Service are able to update the forms.  The forms were updated for the new year and then saved in a new folder for 2014.  Now people that are using Adobe Reader get an error about the document being changed and so the extended features are no longer available.  I have read that it can be fixed using Acrobat and saving a copy of the form so that the extended features are disabled and then saving it again to enable extended features, but they have over 60 of these documents so that would take a long time to complete.  Is there an easier way to re-enable the extended features?

    Not without spending (tens of) thousands of dollars on an application that can apply these rights in batch.
    60 files is not that much, though. Sit someone down and they should be able to do it in an hour.
    Also, if you upgrade to Reader XI then you won't need those rights anymore, as that version can save filled-in form fields even without them.

  • Form to submit a bug or feature request to Adobe is currently unavailable

    The form found at http://adobe.com/go/wish to submit a bug or feature request to Adobe is currently unavailable.
    I will update this thread when it is online again.

    The bug or feature request form is now available again.
    http://adobe.com/go/wish

  • Forms and Reports Feature/Benefit Demo

    Hi,
    I downloaded a sample code, Forms and Reports Feature/Benefit Demo, from OTN sample code site. During the installation it says that my system (NT 4.0 Workstation with Oracle8 Server Release 8.0.6) does not have Oracle WebDB Listener. Where can I download it? Can I install it on a NT workstation (not a web server)? If not, is there other way to make that demo working? Thanks.
    hv

    That depends on what you mean by clustering and exactly what version you are talking about.

  • Features I'm missing in PDFG ,Forms and Process management

    PDF Generator:
    I think that "Optimize scanned PDF" feature should be available in PDFG.
    Something similar to  "Shared review" functionality.
    PDF Generator+Forms
    DocConverter service should be able to flatten dynamic pdf forms  not only static.Currently even if you have a licence for LC Forms and LC PDFG you have to purchase an Output to flatten dynamic forms.
    Process Management
    Support of RTL langueges in Workspace. Integration of TextLayout in Workspace project will be great.
    LC Designer
    Support of RTL langueges in Form Guides
    Thanks, Yan.

    Hi Henke,
    the New feature of WAS 700 you can find http://help.sap.com/saphelp_nw2004s/helpdata/en/57/a21f407b402402e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/6a/69f45201356248830f1e70fdd7178e/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/6a/44b2420e71c511e10000000a1550b0/frameset.htm
    You can find more info in Architecture manual and amdinistration manual.
    regards
    Anand.M

  • How to change dateformat of VALID FROM and VALID TO properties in xml forms

    Hi all,
                I have created a news using xml form bulider and i have given lifetime for that news ,also displaying the VALID FROM and VALID TO  in news.By default it is in mm.dd.yyyy format but i need to display the dateformat as dd.mm.yyyy in show form.Is there any possiblity to change the format in XSLT or any other solutions.
    Regards
    Bala

    Hi Bala
    Check this XML FORMS - Date Format.
    Its a quite easy way.
    Regards
    BP

  • Problem "bug" iOS 8 iPad 2, virtual keyboard and stream hdmi cable (adapter)

    Hi all I have a problem with regard to virtual keyboard and streaming through the adapter HdMi, the keyboard when I want to write after a while, the horizontal bar where there google voice covers the top of the letters and unable to write and had to power cycle the device to return to how it was before, while streaming via hdmi between iPad 2 and a monitor when I run the stream, the screen is completely black but emits audio and iPad remains the streaming window with the window crashed the site, what not to do, if I make an end to the stream in full screen, you see a window but not full screen, if someone knows how to help me out on this, you have had the same problem as my'd be happy to hear from you soon and solve this bug in iOS 7.1.2 before that did not happen, thanks and warm greetings to all of you.

    Hi all I have a problem with regard to virtual keyboard and streaming through the adapter HdMi, the keyboard when I want to write after a while, the horizontal bar where there google voice covers the top of the letters and unable to write and had to power cycle the device to return to how it was before, while streaming via hdmi between iPad 2 and a monitor when I run the stream, the screen is completely black but emits audio and iPad remains the streaming window with the window crashed the site, what not to do, if I make an end to the stream in full screen, you see a window but not full screen, if someone knows how to help me out on this, you have had the same problem as my'd be happy to hear from you soon and solve this bug in iOS 7.1.2 before that did not happen, thanks and warm greetings to all of you.

Maybe you are looking for

  • How do you transfer Adobe Acrobat XI Pro Student version from old computer to new computer?

    i just got a new computer and got my Adobe Acrobat XI Pro Student and Teacher Edition installed from my old computer; however on my new computer, it's only showing up as Adobe Reader and not the Acrobat XI Pro version. I've only had it for less than

  • Doubt in case statement

    in my rpd i got two columns a and b both have the below mentioned logic cloumn A : PREIOD <= 20 THEN 'No' ELSE 'Yes' END column B: PREIOD >20 THEN 'Yes' ELSE 'No' END what is the diffrence between these two logic can any one help me with a small exam

  • Why does the system chime sound whenever I open Reader 11 of a pdf document?

    Why does the system chime sound whenever I open Reader 11 or a pdf document?

  • Recover ATI Graphics

    Hi Folks, HP ENVY 14 Notebook (XQ101AV)Win7x64AMD/ATI Mobilty Radeon 5650 Display Adapter Need some help - had a perfectly functional laptop a few days ago - decided to try the Duet Apple App that allows you to run your iPad as a secondary monitor of

  • 1172: Definition fl.events could not be found.

    I've tried putting in the simple code (into the 1st keyframe of a layer) shown below but it gives me 2 "1172: Definition fl.events could not be found." errors. I also get 1172 errors if i try to import any of the other fl. classes. Code: import fl.ev