Предполагая, что все остальное правильно, нужно просто применить скобки, чтобы получить правильную логику. Используя немного преувеличенные пробелы, чтобы попытаться прояснить ситуацию:
WHERE
SYSTEM.REGION.REGION_STATUS_CODE = N'1'
AND SYSTEM.STATE.STATE_STATUS_CODE = N'1'
AND SYSTEM.ORDERS.DISCARDED_DATE IS NULL
AND SYSTEM.SERVICE.SERVICE_DISCARDED_DATE IS NULL
AND SYSTEM.SERVICE.SERVICE_STATUS_CODE = N'01'
AND (
(SYSTEM.ORDERS.DISCOUNT_CODE = N'N/A'
AND SYSTEM.SERVICE.SERVICE_CONTRACT_CODE = N'Retail')
OR
(SYSTEM.ORDERS.DISCOUNT_CODE != N'N/A'
AND SYSTEM.SERVICE.SERVICE_CONTRACT_CODE = N'Wholesale')
)
(он может работать вечно, но это больше зависит от размера базы данных и индексации.)
Отправка вывода через FileWriter
приводит к его повреждению, поскольку данные являются байтами, а FileWriter
s предназначены для написания символов. Все, что вам нужно, это:
OutputStream out = new FileOutputStream("out.pdf");
out.write(bArray);
out.close();
byte[] filedata=null;//read from file or string to bytearray.
Строка content=new Строка (bytearray); содержание = content.replace (" \r", "") .replace (" \uf8ff", "") .replace ("'", "") .replace (" \" ", "") .replace ("'", ""); Строка [] arrOfStr = content.split (" \n"); документ PDDocument = новый PDDocument (); страница PDPage = новый PDPage (); document.addPage (страница); попробуйте (PDPageContentStream cs = новый PDPageContentStream (документ, страница)) {cs.beginText ();//устанавливающий семейство шрифтов и размер шрифта cs.setFont (PDType1Font. HELVETICA, 14); cs.setNonStrokingColor (Цвет. ЧЕРНЫЙ); cs.newLineAtOffset (20, 750); для (Представляют str:arrOfStr в виде строки) {cs.newLineAtOffset (0,-15); cs.showText (ул.);} cs.newLine (); cs.endText ();} document.save (znaFile); document.close ();}