30. Januar 2013 12:47
PROCEDURE CustGetRecordLinks@1000000000(CustomerNo@1000000002 : Code[20];VAR recXML@1000000000 : XMLport 50001;VAR totalrec@1000000001 : Integer;VAR mytotal@1000000003 : Integer);
    BEGIN
      cust.SETRANGE("No.",CustomerNo);
      IF cust.FINDFIRST THEN
        mytotal:=cust.COUNT;
        IF mytotal >0 THEN
        BEGIN
          rer.GETTABLE(cust);
          recordlink.SETCURRENTKEY("Record ID");
          recordlink.SETRANGE("Record ID",rer.RECORDID);
          totalrec:=recordlink.COUNT;
         recXML.SETTABLEVIEW(recordlink);
        END;
    END;30. Januar 2013 13:36
IF CustmerNo <> '' THEN 
  ...
else
  nix;
30. Januar 2013 14:22
30. Januar 2013 14:55
PROCEDURE CustGetRecordLinks@1000000000(CustomerNo@1000000002 : Code[20];VAR recXML@1000000000 : XMLport 50001;VAR totalrec@1000000001 : Integer;VAR mytotal@1000000003 : Integer);
    BEGIN
      cust.SETRANGE("No.",CustomerNo);
      IF cust.FINDFIRST THEN
        mytotal:=cust.COUNT;
        IF mytotal >0 THEN
        BEGIN
          rer.GETTABLE(cust);
          recordlink.SETCURRENTKEY("Record ID");
          recordlink.SETRANGE("Record ID",rer.RECORDID);
          totalrec:=recordlink.COUNT;
         recXML.SETTABLEVIEW(recordlink);
        END
      ELSE
        BEGIN
          recordlink.SETRANGE("Link ID", -1);
          recXML.SETTABLEVIEW(recordlink);
        END;
    END;30. Januar 2013 16:14
PROCEDURE CustGetRecordLinks@1000000000(CustomerNo@1000000002 : Code[20];VAR recXML@1000000000 : XMLport 50001;VAR totalrec@1000000001 : Integer;VAR mytotal@1000000003 : Integer);
    BEGIN
      cust.SETRANGE("No.",CustomerNo);
      IF cust.FINDFIRST THEN
        mytotal:=cust.COUNT; //<< Einrückung
      IF mytotal >0 THEN
        BEGIN
          rer.GETTABLE(cust);
          recordlink.SETCURRENTKEY("Record ID");
          recordlink.SETRANGE("Record ID",rer.RECORDID);
          totalrec:=recordlink.COUNT;
         recXML.SETTABLEVIEW(recordlink);
        END;
    END;PROCEDURE CustGetRecordLinks@1000000000(CustomerNo@1000000002 : Code[20];VAR recXML@1000000000 : XMLport 50001;VAR totalrec@1000000001 : Integer;VAR mytotal@1000000003 : Integer);
    BEGIN
      If cust.get(CustomerNo) THEN 
        BEGIN
          mytotal += 1;  // bzw := 1. Wobei ich den Sinn davon nicht verstehe
          rer.GETTABLE(cust);
          recordlink.SETCURRENTKEY("Record ID");
          recordlink.SETRANGE("Record ID",rer.RECORDID);
          totalrec:=recordlink.COUNT;
          recXML.SETTABLEVIEW(recordlink);
        END;
    END;30. Januar 2013 16:37
PROCEDURE CustGetRecordLinks@1000000000(VAR recXML@1000000000 : XMLport 50001);
    BEGIN
    END;30. Januar 2013 16:43
30. Januar 2013 17:06
31. Januar 2013 10:54
vsnase hat geschrieben:Hi Jan,
es funktioniert ja, nur man muss halt wirklich sicherstellen, dass im Falle eines Fehlers (z. B. falsche Kundennummer) auch wirklich (fast) nichts zurückgeliefert wird. Ich habe bei meinen ersten Versuchen nicht schlecht geschaut, als statt 0 Datensätzen plötzlich 1000 (=alle) da standen. Wenn dass dann bei einem Smartphone unterwegs passiert will ich nicht im Büro sein, wenn die Anwender anrufen.
Komplex ist das nicht zum Kunden/Auftrag/Artikel ... werden die Links abgerufen und neue bei Bedarf hinzugefügt. Dien neuen dazu gehen nicht über den XMLPort, sondern eine eigene Funktion.
Volker
31. Januar 2013 11:12
31. Januar 2013 11:57
List<Customer_Filter> filterArray = new List<Customer_Filter>();
            Customer_Filter nameFilter = new Customer_Filter();
            nameFilter.Field = Customer_Fields.Name;
            nameFilter.Criteria = "C*";
            filterArray.Add(nameFilter);
31. Januar 2013 12:10
 nameFilter.Criteria = "Customer: " & CustomerNo31. Januar 2013 12:57
vsnase hat geschrieben:Hi Jan,
ich nochmal.
Das heißt aber ich muss für meinen Filter auf "Record Link" den Filter zusammensetzen:
- Code:
 nameFilter.Criteria = "Customer: " & CustomerNo
oder kann ich RecordLinkWS.Record_ID = cust.key übergeben?
Volker