1. Yeni bir form yapın. (Ör : ATOL_CustTableSelection)
2. Formunuzun dataSource düğümüne formda göstermek istediğiniz tabloyu sürükleyip bırakın. (Ör CustTable)
3. Formunuzun metodlarını alttaki gibi düzenleyin.
4. Formunuzun CustTable datasource’una alttaki gibi bir edit metodu ekleyin.
5. Formunuzun Design düğümüne bir Grid ekleyin.
6. Formda göstermek istediğiniz tüm alanları ve edit metodunuzu formdaki giride sürükleyip bırakın.
7. Formunuza görüntüdeki gibi butonlar ekleyin. Ve formunuzun genel görünümünün görüntüdeki gibi olduğundan emin olun.
8. Butonların clicked metodlarından ilgili metodları çağırın. Örneğin ButtonMarkAll.clicked metodu alttaki gibi görünmeli :
9. Formunuzu açıp test edin.
Dikkat : Bu yazıda daha önce değinmedimiz pek çok yapıyı zorunlu olarak kullandık.
Anlamadığınız konuları özellikle sorarsanız ayırca makale yazarak açıklayabilirim.
Bu kodları tam olarak anlamadan canlı ortamda kullanmayın.
Emre TÜFEKÇİ
2. Formunuzun dataSource düğümüne formda göstermek istediğiniz tabloyu sürükleyip bırakın. (Ör CustTable)
3. Formunuzun metodlarını alttaki gibi düzenleyin.
1 | //classDeclaration metodunu değiştirin |
2 |
3 | public class FormRun extends ObjectRun |
4 | { |
5 | Map markedLines; |
6 | } |
1 | //init metodunu değiştirin |
2 |
3 | public void init() |
4 | { |
5 | super(); |
6 |
7 | this .initMarkedLines(); |
8 | } |
1 | //yeni bir metod ekleyin |
2 | void initMarkedLines() |
3 | { |
4 | ; |
5 | markedLines = new Map(Types::Int64, Types::String); |
6 | } |
01 | //yeni bir metod ekleyin |
02 | void showSelected() |
03 |
04 | { |
05 | MapEnumerator mapEnumerator; |
06 | RecID recId; |
07 | int lineNum = 1; |
08 | CustTable custTableLocal; |
09 | ; |
10 | mapEnumerator = markedLines.getEnumerator(); |
11 |
12 | while (mapEnumerator.moveNext()) |
13 | { |
14 | recId = mapEnumerator.currentKey(); |
15 | custTableLocal = CustTable::findRecId(recId, true ); |
16 |
17 | if (custTableLocal) |
18 | { |
19 | info(strFmt( "%1 : %2 - %3" , |
20 | lineNum, |
21 | custTableLocal.AccountNum, |
22 | custTableLocal.Name)); |
23 |
24 | lineNum++; |
25 | } |
26 | } |
27 |
28 | if (lineNum == 1) |
29 | warning( "@SYS34359" ); |
30 | } |
01 | //yeni bir metod ekleyin |
02 | void markAll() |
03 | { |
04 | Query q = CustTable_ds.queryRun().query(); |
05 | QueryRun qr = new QueryRun(q); |
06 | CustTable custTableLocal; |
07 | ; |
08 | while (qr.next()) |
09 | { |
10 | custTableLocal = qr. get (tableNum(CustTable)); |
11 | CustTable_ds.editMark( true , custTableLocal, true ); |
12 | } |
13 |
14 | CustTable_ds.research( true ); |
15 | } |
1 | //yeni bir metod ekleyin |
2 | void clearSelections() |
3 | { |
4 | this .initMarkedLines(); |
5 |
6 | CustTable_ds.research( true ); |
7 | } |
4. Formunuzun CustTable datasource’una alttaki gibi bir edit metodu ekleyin.
01 | edit boolean editMark( boolean _set, |
02 | CustTable _custTable, |
03 | boolean _mark) |
04 | {; |
05 | if (_set) |
06 | { |
07 | if (!_mark) |
08 | { |
09 | if (markedLines.exists(_custTable.RecId)) |
10 | { |
11 | markedLines.remove(_custTable.RecId); |
12 | } |
13 | } |
14 | else |
15 | { |
16 | markedLines.insert( |
17 | _custTable.RecId, |
18 | _custTable.AccountNum); |
19 | } |
20 | } |
21 | return markedLines.exists(_custTable.RecId); |
22 | } |
5. Formunuzun Design düğümüne bir Grid ekleyin.
6. Formda göstermek istediğiniz tüm alanları ve edit metodunuzu formdaki giride sürükleyip bırakın.
7. Formunuza görüntüdeki gibi butonlar ekleyin. Ve formunuzun genel görünümünün görüntüdeki gibi olduğundan emin olun.
8. Butonların clicked metodlarından ilgili metodları çağırın. Örneğin ButtonMarkAll.clicked metodu alttaki gibi görünmeli :
1 | void clicked() |
2 | { |
3 | super(); |
4 | element.markAll(); |
5 | } |
9. Formunuzu açıp test edin.
Dikkat : Bu yazıda daha önce değinmedimiz pek çok yapıyı zorunlu olarak kullandık.
Anlamadığınız konuları özellikle sorarsanız ayırca makale yazarak açıklayabilirim.
Bu kodları tam olarak anlamadan canlı ortamda kullanmayın.
Emre TÜFEKÇİ