我的任务是在明信片的两面打印一组地址。所有者地址将在正面居中打印,而包裹号,地址和其他数据将在背面居中打印。
[每张纸四张明信片。我知道如何对明信片进行双面打印,现在的挑战是我必须双面打印。因此,我认为首先,我需要对齐数据,以便背面打印的内容与正面打印的内容相对应。
我认为,为了能够使用SSRS进行双面打印,我需要更改记录的检索方式。
每个记录有6列。我需要每页打印4个地址(打印时两面)
我当前的数据:
ParcelNumber OwnerName OwnerAddress Owner_City_State_Zip ParcelAddress parcel_city_state_zip
70918302278 Smith, John 15 Dimondi Ct Dover, DE, 19901 15 White Oak St Laurel, DE, 19956
70918403133 Perez, Victor 8619 S Wolcott Ave Chicago, IL, 60620 6634 W 64th Pl Chicago, IL, 60638
70918404058 Flying, Lotus 5527 E Hazel Mountain Rd Cleveland, VA, 24225 1925 Freedom Ln Falls Church, VA, 22043
70919107370 Pastorius, Jaco 1549 Highland Dr Lake Geneva, WI, 53147 415 S Wells St Lake Geneva, WI, 53147
70823107036 Bocelli, Andrea 1310 Fillmore St San Francisco, CA, 94115 1099 Fillmore St #4R San Francisco, CA, 94115
70918221072 Ttracks, Shaun 516 Manford Rd SW Atlanta, GA, 30310 480 Riverside Dr NW Atlanta, GA, 30328
70919110092 Little, John 242 W Hudson St Long Beach, NY, 11561 38 Vincent St Rockville Centre, NY, 11570
我当时想完成此工作的一种方法是将4条记录插入到一行中,这样输出看起来像这样(很抱歉,它的长度):
ID Parcel1_1 Owner_1 OwnerAddress_1 OwnerCityStateZip_1 ParcelAddress_1 ParcelCityStateZip_1 Parcel1_2 Owner_2 OwnerAddress_2 OwnerCityStateZip_2 ParcelAddress_2 ParcelCityStateZip_2 Parcel1_3 Owner_3 OwnerAddress_3 OwnerCityStateZip_3 ParcelAddress_3 ParcelCityStateZip_3 Parcel1_4 Owner_4 OwnerAddress_4 OwnerCityStateZip_4 ParcelAddress_4 ParcelCityStateZip_4
1 70918302278 Smith, John 15 Dimondi Ct Dover, DE, 19901 15 White Oak St Laurel, DE, 19956 70918403133 Perez, Victor 8619 S Wolcott Ave Chicago, IL, 60620 6634 W 64th Pl Chicago, IL, 60638 70918404058 Flying, Lotus 5527 E Hazel Mountain Rd Cleveland, VA, 24225 1925 Freedom Ln Falls Church, VA, 22043 70919107370 Pastorius, Jaco 1549 Highland Dr Lake Geneva, WI, 53147 415 S Wells St Lake Geneva, WI, 53147
2 70823107036 Bocelli, Andrea 1310 Fillmore St San Francisco, CA, 94115 1099 Fillmore St #4R San Francisco, CA, 94115 70918221072 Tracks, Shaun 516 Manford Rd SW Atlanta, GA, 30310 480 Riverside Dr NW Atlanta, GA, 30328 70919110092 Little, John 242 W Hudson St Long Beach, NY, 11561 38 Vincent St Rockville Centre, NY, 11570 70918214126 Zidane, Zinedine 724 Hill Ave Pittsburgh, PA, 15221 711 Copeland St Pittsburgh, PA, 15232
and so on...
表格看起来像这样:
DECLARE @FOUR_INTO_ONE AS TABLE
( ID_NUM INT IDENTITY(1,1)
, PARCEL_1 VARCHAR(20)
, OWNERNAME_1 VARCHAR(200)
, OWNERADDRESS_1 VARCHAR(300)
, OWNERCITYSTATEZIP_1 VARCHAR(300)
, PARCELADDRESS_1 VARCHAR(300)
, PARCELCITYSTATEZIP_1 VARCHAR(300)
, PARCEL_2 VARCHAR(20)
, OWNERNAME_2 VARCHAR(200)
, OWNERADDRESS_2 VARCHAR(300)
, OWNERCITYSTATEZIP_2 VARCHAR(300)
, PARCELADDRESS_2 VARCHAR(300)
, PARCELCITYSTATEZIP_2 VARCHAR(300)
, PARCEL_3 VARCHAR(20)
, OWNERNAME_3 VARCHAR(200)
, OWNERADDRESS_3 VARCHAR(300)
, OWNERCITYSTATEZIP_3 VARCHAR(300)
, PARCELADDRESS_3 VARCHAR(300)
, PARCELCITYSTATEZIP_3 VARCHAR(300)
, PARCEL_4 VARCHAR(20)
, OWNERNAME_4 VARCHAR(200)
, OWNERADDRESS_4 VARCHAR(300)
, OWNERCITYSTATEZIP_4 VARCHAR(300)
, PARCELADDRESS_4 VARCHAR(300)
, PARCELCITYSTATEZIP_4 VARCHAR(300))
我认为这可能可行,因为我可以更好地控制每个记录页1和页2的值的放置方式和位置。
我不确定如何使用SQL完成此操作,这是使用CURSOR的地方吗?需要多少个循环,是否有一种简单的方法来处理数据,使输出看起来像我需要的那样?
编辑:我试图仿效在此question中使用STUFF的示例>
SELECT Parcel = STUFF(( SELECT [ParcelNumber] FROM [dbo].[BI_RPEC] WHERE [ParcelNumber] = t.[ParcelNumber] FOR XML PATH(''), TYPE ).value('text()[1]','NVARCHAR(MAX)'), 1, 1, N'') FROM [dbo].[BI_RPEC] t WHERE t.ParcelNumber IN ('070823107036','070919107370','070919110092','070918404058','070918403133','070918302278','070918221072', '070918214126')
但是只检索NULL。
我的任务是在明信片的两面打印一组地址。所有者地址将在正面居中打印,而包裹号,地址和其他数据将在背面居中打印。四个...
只是快速记事本上的涂鸦。尚未通过示例数据进行测试。现在要困了。