АПЕКСОФТ Community
Главный сайт | Скачать ДЕМО | Скриншоты | Продукты | Прайс-лист | Статьи | Новости | Контакты
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Как изменить расположение Индекса в конверте
Yevgeniy Offline
#1 Оставлено : 11 марта 2013 г. 12:01:40(UTC)
Ранг: Новенький

Группы: Пользователи
Зарегистрирован: 07.02.2012(UTC)
Сообщений: 1
Баллов: 180
Мужчина
Откуда: Киев

Сказал «Спасибо»: 32 раз
Приветствую!



Скажите, пожалуйста, как мне изменить расположение написания индекса в конверте.



Сейчас вот так: http://gonzha.com/work/apeksoft/konvert.JPG



А нужно, чтобы индекс был самым нижним, и, кроме того (!), чтобы ГОРОД и СТРАНА находились на ОДНОЙ строке (через запятую).



Спасибо!
Сергей Offline
#2 Оставлено : 11 марта 2013 г. 20:31:00(UTC)
Ранг: Сотрудник

Группы: Пользователи, Администраторы
Зарегистрирован: 27.12.2010(UTC)
Сообщений: 220
Баллов: 712

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 47 раз в 46 постах
Есть 2 варианта:



1. Исправить процедуру в базе, который формирует готовый адрес


GET_POST_ADDRESS






2. В отчете вытягивать не готовый адрес, как сейчас

SELECT
COALESCE(COMP.COMP_FULLNAME, COMP_BASE.NAME) AS COMP_FULLNAME
, (SELECT FIRST 1 ADDRESS_VIEW FROM GET_POST_ADDRESS(:COMP_ADDRESS_ID)) AS COMP_ADDRESS
, (SELECT NAME FROM COMP_ADDRESS INNER JOIN ASO$BASE B ON B.ID = COMP_ADDRESS.COUNTRY_ID WHERE COMP_ADDRESS.ID = :COMP_ADDRESS_ID) AS COUNTRY_NAME
FROM COMP
INNER JOIN ASO$BASE COMP_BASE ON COMP_BASE.ID = COMP.ID
WHERE COMP.ID = :COMP_ID

а отдельные части: Страна, Город, Улица и т.д. и собирать в отчете




SQL должен быть что-то типа этого:



SELECT
ADDRESS_STR, --улица
ADDRESS_HOME, -- номер дома
ADDRESS_CORPUS, --корпус
ADDRESS_FLAT, -- квартира, офис
ADDRESS_CITY, -- город
ADDRESS_INDEX, -- индекс
ADDRESS_BOX, -- а/я
REGION.NAME REGION_NAME, -- р-н
OBLAST.NAME OBLAST_NAME, -- область
COUNTRY.NAME COUNTRY_NAME, -- страна

(SELECT COALESCE(COMP.COMP_FULLNAME, COMP_BASE.NAME) FROM COMP
INNER JOIN ASO$BASE COMP_BASE ON COMP_BASE.ID = COMP.ID
WHERE COMP.ID = :COMP_ID)
AS COMP_FULLNAME -- Наименование компании

FROM COMP_ADDRESS
LEFT JOIN ASO$BASE REGION ON REGION.ID = COMP_ADDRESS.REGION_ID
LEFT JOIN ASO$BASE OBLAST ON OBLAST.ID = COMP_ADDRESS.OBLAST_ID
LEFT JOIN ASO$BASE COUNTRY ON COUNTRY.ID = COMP_ADDRESS.COUNTRY_ID
WHERE COMP_ADDRESS.ID = :COMP_ADDRESS_ID



Для написания и отладки SQL удобно использовать IBExpert:

http://apec.com.ua/forum/postt/7/
Yevgeniy Offline
#3 Оставлено : 12 марта 2013 г. 7:59:18(UTC)
Ранг: Новенький

Группы: Пользователи
Зарегистрирован: 07.02.2012(UTC)
Сообщений: 1
Баллов: 180
Мужчина
Откуда: Киев

Сказал «Спасибо»: 32 раз
Ухты! Вау! Круто!


Не, конечно спасибо, Сергей за ответ!


Но я ж не программист, я дизайнер... 


Попробовал тупо заменить в отчете (конверте) в "qryComp" на то, что Вы написали в варианте 2 - ни чего, конечно, не вышло.





О варианте 1 я ваще молчу, поскольку исполнение оного понятно только программисту, наверное.


Сорьки, но не понял.


Можно ли процедуру лечения сабжа подробнее (проще) описать.


Спасибо!


Сергей Offline
#4 Оставлено : 13 марта 2013 г. 11:23:06(UTC)
Ранг: Сотрудник

Группы: Пользователи, Администраторы
Зарегистрирован: 27.12.2010(UTC)
Сообщений: 220
Баллов: 712

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 47 раз в 46 постах
Проще это только если в релизе в SQL пропишем эти поля 
Сергей Offline
#5 Оставлено : 13 марта 2013 г. 11:28:07(UTC)
Ранг: Сотрудник

Группы: Пользователи, Администраторы
Зарегистрирован: 27.12.2010(UTC)
Сообщений: 220
Баллов: 712

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 47 раз в 46 постах
Этот запрос рабочий, проверил
SELECT
ADDRESS_VIEW AS COMP_ADDRESS,
ADDRESS_STR, --улица
ADDRESS_HOME, -- номер дома
ADDRESS_CORPUS, --корпус
ADDRESS_FLAT, -- квартира, офис
ADDRESS_CITY, -- город
ADDRESS_INDEX, -- индекс
ADDRESS_BOX, -- а/я
REGION.NAME REGION_NAME, -- р-н
OBLAST.NAME OBLAST_NAME, -- область
COUNTRY.NAME COUNTRY_NAME, -- страна

(SELECT COALESCE(COMP.COMP_FULLNAME, COMP_BASE.NAME) FROM COMP
INNER JOIN ASO$BASE COMP_BASE ON COMP_BASE.ID = COMP.ID
WHERE COMP.ID = :COMP_ID)
AS COMP_FULLNAME -- Наименование компании

FROM COMP_ADDRESS
LEFT JOIN ASO$BASE REGION ON REGION.ID = COMP_ADDRESS.REGION_ID
LEFT JOIN ASO$BASE OBLAST ON OBLAST.ID = COMP_ADDRESS.OBLAST_ID
LEFT JOIN ASO$BASE COUNTRY ON COUNTRY.ID = COMP_ADDRESS.COUNTRY_ID
WHERE COMP_ADDRESS.ID = :COMP_ADDRESS_ID
Yevgeniy Offline
#6 Оставлено : 13 марта 2013 г. 12:28:22(UTC)
Ранг: Новенький

Группы: Пользователи
Зарегистрирован: 07.02.2012(UTC)
Сообщений: 1
Баллов: 180
Мужчина
Откуда: Киев

Сказал «Спасибо»: 32 раз
Сергей, огромное Вам спасибо за Ваш труд и терпение!




Действительно, запрос работает, но при этом НЕ ОТОБРАЖАЕТСЯ Имя и Фамилия получателя в самом начале.









Кроме того нужно, чтобы адрес получателя в письме отображался так как в образуе УКРПОШТЫ  http://services.ukrposht.../postindex_new/Help.aspx




Имя Фамилия



«Название Предприятия»



ул. Название улицы, 55, оф. 555



Город, Страна



Индекс








Спасибо
yuri Offline
#7 Оставлено : 12 апреля 2013 г. 15:02:08(UTC)
Ранг: Пользователь

Группы: Администраторы, Пользователи
Зарегистрирован: 15.12.2010(UTC)
Сообщений: 21
Баллов: 147

Поблагодарили: 11 раз в 11 постах
Что бы получить Имя и Фамилию нужно в запрос добавить:



(SELECT FIRST 1 P.PERSON_FIRSTNAME || COALESCE(' ' || P.PERSON_LASTNAME, '') FROM CONT

      INNER JOIN ASO$PERSON P ON P.ID = CONT.ID

    WHERE CONT.COMP_ID = :COMP_ID

      AND CONT.IS_DEFAULT = 1) CONT_NAME
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.