Sabtu, 27 April 2019

Create Header Detail without define relation table

Requirement :
James sebagai directur perusahaan tidak mau melihat comment workflow yang tersimpan di Form Workflow. James menginginkan informasi workitem dan comment ada diform utama.

Req ini bisa kita kerjakan dengan metode QUERY,VIEW, Query table/view dengan QUERY CLASS

Pertama kita harus membuat QUERY yang terbuat dari Table-table workflow dan tentunya berelasi dengan table document entah itu jurnal,PO atau apapun.

Sebagai contoh disini adalah table SQ.

CREATE QUERY : SQ2WFQuery
SQ berelasi dengan WorkflowTrackingStatusTable,
melalui :
              SQ.dataareaId <> WorkflowTrackingStatusTable.ContexCompanyId
              SQ.RecId        <> WorkflowTrackingStatusTable.ContectRecId
              SQ.TableId      <> WorkflowTrackingStatusTable.ContextTableId

WorkflowTrackingStatusTable berelasi dengan WorkflowTrackingTable,
melalui :
       WorkflowTrackingStatusTable.RecId <> WorkflowTrackingTable.WorkflowTrackingStatusTable

WorkflowTrackingTable berelasi dengan WorkflowTrackingCommentTable
melalui :
       WorkflowTrackingTable.RecId <>  WorkflowTrackingCommentTable.WorkflowTrackingTable

CREATE VIEW : SQ2WFView
VIEW yang sudah dibuat dengan nama SQ2WFview dengan Query SQ2WFQuery.
Definisikan field mana saja yang akan dibawa sebagai field SQ2WFView
ex : SQnum, TrackingStatus, User, TrackingType, Comment.
Defisinikan Field2 yang akan dipakai dengan cara memasukannnya keGroup

DIform SQTable. Tambah Datasourcenya dari SQ2WFView.
Dikarenkaan source yang kita pakai berasal dari VIEW sehingga kita membutuhkan codes yang akan membuat SQ2WFView berelasi ke SQTable.di Method Exceute Query table SQ2WFView harus didefisikan code berikut :


public void executeQuery()
{
    //mendefinisikan variable qbds
    QueryBuildDataSource    qbds;

    //qbds tersebut adalah Datasourcenya sendiri(yang diadd di form)
    qbds = this.queryBuildDataSource();
   
    //qbds membersihkan chace range query agar default selalu dalam keadaan kosong
    qbds.clearRanges();
    //qbds melakukan query seperti "while select" berdasarkan paramater SQTable.SQNum
    qbds.addRange(fieldNum(PSMWF2SQtableView, SQNum)).value(SysQuery::value(SQTable.SQNum));

   //maka Datasource SQ2WFView berisi hasil Query = While select * from SQ2WFView where  SQ2WFView.SQnum == SQTable.SQNum

    super();
//setelah super() maka hasil Query ditampilkan di Grid
}





Tidak ada komentar:

Posting Komentar

Erorr CS1963 - An expression tree may not contain a dynamic operation.

Kali ini saya mendapatkan erorr dengan code CS1963, padahal sebelumnya saya sudah mendefinisikan 'var item in Model' di @foreach(var...