[gelöst] Formular aus Tabellenformular öffnen

14. August 2008 17:20

Hallöchen,

ich hab dann auch mal wieder ne Frage.

Habe ein Formular im Tabellenlayout erstellt. Nun will ich ein anderes Formular öffnen, indem ich auf die entsprechende Zeile in der Tabelle klicke und sich das andere Formular mit dem entsprechenden Datensatz öffnet.
Das es geht, weiß ich, wir haben sowas hier schon in nem Formular integriert, ist allerdings kein Standardformular in Navision.

Also natürlich nachschauen, wie`s andere gemacht haben. Leider kann ich dort kaum was sehen. Weder in den Properties der Form, noch der Tablebox oder den einzelnen Textboxes ist irgendein Verweis auf das zu öffnende Formular. Genauso wenig in den Trigger der Genannten.

Also hab ich mir das Formular mal als TXT exportiert und siehe da: anscheinend is in dem Formular noch ein (wohl unsichtbarer) CommandButton drin, der beim OnPush das andere Formular öffnet. Allerdings seh ich den nicht (auch nicht im DesignModus ... hab alles hin- und hergeschoben).

Hat hier irgendwer sowas schonmal realisiert und könnte mir sagen, wie`s geht? Und wo ist dieser Button hin? Irgendwie in der TableBox verankert?

Grüße enno
Zuletzt geändert von enno am 15. August 2008 10:38, insgesamt 1-mal geändert.

Re: Formular aus Tabellenformular öffnen

14. August 2008 17:31

Ein riesiger CommandButton über die ganze Form mit Backtransparent=true?¿ Könnte gehen, aber das wäre ja eine grausige Lösung :-/

Re: Formular aus Tabellenformular öffnen

14. August 2008 17:54

Bist du dir sicher, dass es mit einem unsichtbaren Button realisiert ist?

Der Standard löst es im einfachsten Fall so:
Auf den Forms ist nichts programmiert.
Wenn du von Tabelle A auf Tabelle B einen Lookup machen möchtest, dann hat Tabelle B die Eigenschaft LookupFormID = Irgendeine Form.
Wenn du nun den Lookup in Tabelle A machst (direkt auf dem Feld), dann holt sich Navision aus der Eigenschaft der Tabelle B automatisch die Form. Ganz egal, von welcher Tabelle aus ich den Lookup machen würde, es würde automatisch die dort geöffnete Form verwendet werden.

Dies kannst du auch im Quelltext nutzen: Code-Reduzierung: Form-ID 0 (null) öffnen

Re: Formular aus Tabellenformular öffnen

15. August 2008 09:01

Guten Morgen,

ob der Button tatsächlich unsichtbar ist kann ich dir nicht genau sagen ... ich seh ihn nur nicht, bzw. kann ihn nicht finden :lol:

Ich hab ma lden Formular-Quelltext aufs Nötigste reduziert:
Code:
OBJECT Form 50012 Verkaufsübersicht
{
  OBJECT-PROPERTIES
  {
    Date=15.08.08;
    Time=18:00:00;
  }
  PROPERTIES
  {
    Width=15180;
    Height=6930;
    Editable=No;
    InsertAllowed=No;
    DeleteAllowed=No;
    ModifyAllowed=No;
    TableBoxID=1;
    SourceTable=Table36;
    SourceTableView=SORTING(Document Type,Sell-to Contact No.);
    DataCaptionFields=Document Type;
  }
  CONTROLS
  {
    { 1   ;TableBox     ;0    ;0    ;15180;6930 ;HorzGlue=Both;
                                                 VertGlue=Both;
                                                 HeadingHeight=440 }
    { 2   ;TextBox      ;0    ;0    ;1650 ;0    ;ParentControl=1;
                                                 InColumn=Yes;
                                                 SourceExpr="No." }
    { 3   ;Label        ;0    ;0    ;0    ;0    ;ParentControl=2;
                                                 InColumnHeading=Yes }
    { 1140000;CommandButton;0 ;0    ;0    ;0    ;Default=Yes;
                                                 OnPush=VAR
                                                          SalesHeader@1140001 : Record 36;
                                                        BEGIN
                                                          SalesHeader := Rec;
                                                          CASE "Document Type" OF
                                                            "Document Type"::Quote:
                                                              BEGIN
                                                                FORM.RUN(FORM::"Sales Quote",SalesHeader);
                                                              END;
                                                            "Document Type"::Order:
                                                              BEGIN
                                                                FORM.RUN(FORM::"Sales Order",SalesHeader);
                                                              END;
                                                            "Document Type"::"Blanket Order":
                                                              BEGIN
                                                                FORM.RUN(FORM::"Blanket Sales Order",SalesHeader);
                                                              END;
                                                            "Document Type"::"Return Order":
                                                              BEGIN
                                                                FORM.RUN(FORM::"Sales Return Order",SalesHeader);
                                                              END;
                                                            "Document Type"::Invoice:
                                                              BEGIN
                                                                FORM.RUN(FORM::"Sales Invoice",SalesHeader);
                                                              END;
                                                            "Document Type"::"Credit Memo":
                                                              BEGIN
                                                                FORM.RUN(FORM::"Sales Credit Memo",SalesHeader);
                                                              END;
                                                          END;
                                                        END;
                                                         }
  } 
}


Da "sieht" man den Button ganz deutlich, nur in der Designansicht ist er nirgends vorhanden. Deshalb ist es auch schwierig für mich, das ganze "Nachzubauen".
Und da der Form die Table Sales Header(36) hinterlegt ist, welche ihrerseits die LookUpForm auf Form Sales List (45) hat, muss das alles mit dem Button zuammenhängen, da bei Doppelklick auf nen beliebigen Datensatz halt die Form Sales Order (42) aufgeht und nicht die Sales List.

Ich hoffe, ich hab mich irgendwie verständlich ausgedrückt, bin noch nicht ganz fit ...
Ich glaub, ich geh erstmal nen Kaffee trinken :wink:

Re: [gelöst] Formular aus Tabellenformular öffnen

15. August 2008 10:42

Er hat keine Breite. Kannst ja mal den dritten Parameter im txt-File verdrehen, dann siehst du ihn wieder.

Re: [gelöst] Formular aus Tabellenformular öffnen

15. August 2008 10:46

so ... habs hingekriegt

hab mein Formular auch einfach exportiert, dann über die TXT-DAtei den Button eingebaut (natürlich um einiges abgespeckter als im obigen Beispiel) und dann wieder importiert ...

funktioniert super, nur sehen tu ich den Button auch bei mir im Formular nicht ... aber ich weiß ja, dass er da is :lol:

edit: da war wieder jemand schneller :-D
zum thema keine breite: hab ich dann auch gesehn und auch schon probiert ... es reicht aber nicht, nur den dritten wert zu ändern, sondern auch der vierte muss eingegeben werden ... dann erscheint der gute ... und ich wollte schon anfangen, an übernatürliches zu glauben :-)