DIALOG.SALT70D001.BEFORE();
DIALOG.SALT70D001.AFTER();
COMPANY = '01';
DOCTYPE = 1;
DOCSTAT = 4;
VALIDFROM = FIRSTDATEINMONTH('01',GETYEAR(SYS_CURRENTDATE));
VALIDUNTIL = LASTDATEINMONTH('03',GETYEAR(SYS_CURRENTDATE));
DIALOG.SALT70D001.SEARCH();
COPY FIELDS REPORTLIST INTO TMPTABLE;
LOOP AT REPORTLIST
BEGIN
APPEND ROW TO TMPTABLE;
MOVE-CORRESPONDING REPORTLIST TO TMPTABLE;
ENDLOOP;
/*
Trace ile çekilen rapordaki veri tiplerini getirir.
TRACEON;
DUMP REPORTLIST;
TRACEOFF;
*/
SET TMPTABLE TO TABLE TMPTABLE;
Bir dialogtan dönen veri tablosunu başka bir tabloda kullanmamız gerekebilir. Bu durumda yukarıdaki scripti DEVT11 de test edebilirsiniz. #DialogdanRaporÇekme
INSERT INTO IASNUMRANGEPARTVALS SELECT A.*
FROM OTHERDBNAME.DBO.IASNUMRANGEPARTVALS A
WHERE A.CLIENT = '00'
AND A.COMPANY = '01'
AND NOT EXISTS (SELECT B.CLIENT
FROM IASNUMRANGEPARTVALS B
WHERE B.CLIENT = A.CLIENT
AND B.COMPANY = A.COMPANY
AND B.NUMRANGE = A.NUMRANGE);
Test DB’de çalışırken Canlı DB’deki bir tablodan veri çekmekilmesi için yukarıdaki scripti kullanabilirsiniz. Yukarıda Canlı’daki numaratörlerin Test DB ile eşitlenmesi içindir. #UpdateDBFromOtherDB
SELECT DISTINCT IASADRBOOKCONTACT.EMAIL, IASUSERINFGRP.*, IASADRBOOKCONTACT.NAME, IASADRBOOKCONTACT.SURNAME,
IASADRBKCNTORG.DEPARTMENT
FROM IASUSERINFGRP
LEFT OUTER JOIN IASUSERS ON (IASUSERS.CLIENT = IASUSERINFGRP.CLIENT
AND IASUSERS.USERNAME = IASUSERINFGRP.USERNAME)
LEFT OUTER JOIN IASADRBOOKCONTACT ON (IASADRBOOKCONTACT.CLIENT = IASUSERS.CLIENT
AND IASADRBOOKCONTACT.CONTACTNUM = IASUSERS.CONTACTNUM)
LEFT OUTER JOIN IASADRBKCNTORG ON (IASADRBKCNTORG.CLIENT = IASUSERS.CLIENT
AND IASADRBKCNTORG.CONTACTNUM = IASUSERS.CONTACTNUM)
WHERE IASUSERINFGRP.CLIENT = SYS_CLIENT
AND IASUSERINFGRP.INFOGRP = 'SYST40_KullaniciGrupAdi'
AND IASADRBOOKCONTACT.EMAIL != ''
ORDER BY IASUSERINFGRP.USERNAME
SYST40’da oluşturulan kullanıcı grubundan mail adresini çekmek için yukarıdaki scripti kullanabilirsiniz.
SELECT IASADRBKCNTORG.COMPANY
FROM IASUSERS
LEFT OUTER JOIN IASADRBKCNTORG ON (IASADRBKCNTORG.CLIENT = IASUSERS.CLIENT
AND IASADRBKCNTORG.CONTACTNUM = IASUSERS.CONTACTNUM)
WHERE IASADRBKCNTORG.CLIENT = '00'
AND IASUSERS.USERNAME = SYS_USER
Login olan kullancının firma bilgisi almak için yukarıdaki scripti kullanabiliriz.
SELECT USERNAME
FROM IASUSERINFGRP
WHERE INFOGRP = 'Kullanici_Grup';
LOOP AT IASUSERINFGRP
BEGIN
IF SYS_USER == IASUSERINFGRP_USERNAME THEN
SET CHKISDELETE TO SHOW;
RETURN;
ELSE
CONTINUE;
ENDIF;
ENDLOOP;
Dialogun “AFTER” metoduna yukarıdaki scripti ekleyerek login olan kullanıcıya göre toolları gizleme/gösterme fonksiyonunu kullanabilirsiniz.