2016-03-29 18 views
0

Denetimlerimden birkaçını eklediğim geçersiz kılınmış iletişim yöntemini içeren bir RunBaseReport var. Bu kontrollerden biri bir açılan kutu. Denetimler etkin() özelliği, combobox'ı değiştirdiğimde değiştirilmelidir.dialogPostRun yöntemi RunBaseReport

Temel olarak, dfReportType iletişim kutusunun değerinin ne zaman değişeceğini bilmem gerekiyor.

public void dialogPostRun(DialogRunbase dialog) 
{ 
    super(dialog); 
    dialog.dialogForm().formRun().controlMethodOverload(true); 
    dialog.dialogForm().formRun().controlMethodOverloadObject(this); 
} 

Ama ne yazık ki RunBaseReport sınıfında bu yöntemi yoktur: Ben dialogPostRun Yöntemi geçersiz kılmak gerekir ve böyle bir şey yapmak bulundu Birçok makale göre

public Object dialog(Object dialog) 
{ 
    DialogRunbase dialog = dialog; 
    ; 
    //adding my combobox 
    dfReportType = dialog.addFieldValue(typeid(ReportType), ReportType:DefaultType); 
    //adding some other controls here 
    return dialog; 
} 

. msdn'a göre orada bulunmalıdır.

Başka bir geçici çözüm var mı?

cevap

0

Eh, RunBaseReport devralır Raporu nesne hiçbir dialogPostRun yöntemi var, ama biz RunBaseReport devralır Sınıf bu yöntemi var.

Bu benim hatamdı. Sınıf yerine rapor nesnesini kullandım. vb sınıfı

  • devral RunBaseReport
  • geçersiz kıl iletişim

    • oluşturma getFromDialog
    • :

      rapor için özel iletişim yapmak istiyorum ama aynı zamanda gereken tüm varsayılan kontrolleri kullanmak istiyorsanız

    • ile tahrik lastValueElementName yöntem

      public identifiername lastValueElementName() 
      { 
          //just put name of your report object 
          return reportStr(YourReportName); 
      } 
      

    menuItem'den arama yapacaksanız main() yöntemini eklemeyi unutmayın.

  • 0

    Şu anda AX 2012'deyim ama yine de ona baktım. Bağlam menüsünde mevcut olan yönteme sahibim, ancak ilk sütunda değil. İkinci sütundaki yöntemi bulmak için "Artı ..." yı geçmem gerekiyor.

    +0

    Ne yazık ki AX 2009'da bu "Artı" yok. – oleksandr

    +0

    EN-US'a geçtim. Ardından, 'Geçersiz kılma yöntemi' altında, bir sonraki sütunu açacak bir Ok ile 'Daha fazla ...' seçeneği vardır. –

    +0

    Sanırım yeterince açık değildim. Ben ** ** rapor ** inhertis RunBaseReport sınıfını geçersiz kılmaya çalıştım ve bu bir hataydı, bunun yerine ** class ** nesnesini kullanmak zorunda kaldım. Yinede teşekkürler. – oleksandr